Studies & Courses/Machine Learning & Vision17 [ML/DL] 수포자가 이해한 Softmax (+Python 구현) *본 포스팅은 중학교 때 수학을 놓아버린 수포자가 기계학습을 이해하기 위해 정리한 것이므로 정확한 정보가 아닐 수 있습니다. 잘못된 정보는 댓글로 알려주시면 감사하겠습니다. 신경망 구현 과제의 TODO #2를 하기 위해서 Softmax classifier를 이해하고 Softmax classifier loss를 계산하는 forward pass 코드를 작성해야 합니다. 그래서 Softmax classifier loss가 무엇이며, python에서는 어떻게 표현되는지 알아보려고 합니다. logistic function / sigmoid function / softmax function 시그모이드 함수는 로지스틱 함수라고 부르기도 하며, 로지스틱 함수의 한 케이스라 볼 수 있습니다. 인풋이 하나일 때 사용되는 .. 2021. 1. 9. [ML/DL] 수포자가 이해한 Cross Entropy와 KL-divergence *본 포스팅은 중학교 때 수학을 놓아버린 수포자가 기계학습을 이해하기 위해 정리한 것이므로 정확한 정보가 아닐 수 있습니다. 잘못된 정보는 댓글로 알려주시면 감사하겠습니다. 신경망 구축 과제와 CNN과제를 하면서 Cross Entropy가 딥러닝의 기초 개념이라고하여 찾아보니 Cross Entropy와 KL-divergence는 한 세트로 배우는 것 같아 이번 기회에 정리하고 넘어가보고자 합니다. Entropy Entropy는 정보를 표현하는데 필요한 최소 평균 자원량입니다. "What is a common currency of information?" 여기서 '정보를 표현한다'라는 의미를 이해하기 위해서 언어를 비유할 수 있습니다. 한국어, 일본어, 중국어 등 다양한 언어가 있는데 이를 '만국공통어처럼.. 2021. 1. 8. [ML/DL] 수포자가 이해한 2-Layer Neural Net의 vector form *본 포스팅은 중학교때 수학을 놓아버린 수포자가 기계학습을 이해하기 위해 만든 자료이오니 정확한 정보가 아닐 수 있습니다. Python으로 2층 신경망 구현 과제를 하면서 score 계산을 위한 Dimension과 Neural Net의 vector form의 이해가 필요하여 복습을 진행하였습니다. 이 글에서 이해하고자 하는 2층 신경망의 구조는 아래 같으며, Dx1, MxD 등과 같은 vector가 무엇을 의미하는지 살펴봅시다. 먼저 vector derivatives와 matrix multiplication에 대해 알아봅시다. Vector Derivatives (벡터 도함수) Scalar to Scalar: scalar 형태인 x가 조금씩 변할 때 scalar 형태인 y가 얼마나 바뀔까? → Regula.. 2021. 1. 5. [ML/DL] MNIST 손글씨 데이터 인식하기 이전 글에서 언급했듯이 이번 글에서는 '신경망 첫걸음(타리트 라시드)'의 MNIST 손글씨 데이터 인식하기 실습을 수행하고자 한다. 먼저 데이터셋을 다운 받아야 하는데 경로는 적절히 선택하면 되겠다. 제공되는 Dataset와 Code MNIST train data: http://www.pjreddie.com/media/files/mnist_train.csv MNIST test data: http://www.pjreddie.com/media/files/mnist_test.csv MNIST train data (100개): https://git.io/vySZ1 MNIST test data (10개): https://git.io/vySZP part2_neural_network_mnist_data.ipynb 아.. 2020. 12. 31. [ML/DL] 파이썬으로 인공 신경망 만들기 대학원 2학기가 종강했지만, 기계학습 수업에서의 MLP 과제를 다시 해보기 위해 '신경망 첫걸음(타리트 라시드)'란 책을 읽고 있다. 이 책의 Chapter 20부터는 Python 실습 내용인데 이를 블로그에 정리해보며 내재화하려 한다. 그렇다면 인공 신경망의 뼈대 코드부터 단계별로 코드를 쌓아보자. COLAB Link : https://colab.research.google.com/drive/1Vjvf9uUW2bbwGFn0SzYL-nlzor7nb_0K?usp=sharing 뼈대 코드 만들기 신경망은 적어도 다음 세 가지 기능을 가져야 한다. 아래 코드에 살을 붙여 나갈 것이다. 초기화: 입력, 은닉, 출력 노드의 수 설정 학습: 학습 데이터들을 통해 학습하고 잉 따라 가중치를 업데이트 질의: 입력을 받.. 2020. 12. 29. [ML 기초] 수포자가 이해한 미분과 편미분 (feat. 경사하강법) *본 포스팅은 중학교 때 수학을 놓아버린 수포자가 기계학습을 이해하기 위해 정리한 것이므로 정확한 정보가 아닐 수 있습니다. 잘못된 정보는 댓글로 알려주시면 감사하겠습니다. 미분은 왜 하며 무엇일까? 미분을 하는 이유는 해당 곡선의 기울기(slope)를 알기 위해서 한다. 미분의 정의는 아래와 같으며 △x대신 'h'를 사용하기도 한다. 'f(x)를 미분하라'는 뜻은 아래 의미를 내포하고 있다. → 입력변수 x미세하게 변할 때, 함수 f가 얼마나 변하는지 알 수 있는 식을 구하라. → 함수f(x)는 입력 x의 미세한 변화에 얼마나 민감하게 반응하는지 알 수 있느 식을 구하라. 위 그림을 보면 기울기가 (+)이면 녹색이 되고 (-)이면 빨간색이 된다. 기울기가 0이면 검정색이 된다. 기울기는 변화율을 활용하.. 2020. 12. 5. [머신러닝 기초] NumPy Tutorial - Python #NumPy란? - NumPy는 Numerical Python의 줄임 말로써 고성능의 수치 계산을 하기 위해 만들어진 python package - 파이썬을 이용한 데이터 분석을 하기 위해서는 pandas 뿐만 아니라 numpy를 익혀야만 효율적인 데이터 분석이 가능 #Github Arrays Array Indexing Datatypes Array Math Broadcasting #Arrays #Array Indexing #Datatypes #Array Math #Broadcasting 위 내용은 Stanford의 CS231: Convolutional Neural Networks for Visual Recognition 수업 내용을 참고했습니다. 2020. 10. 24. 이전 1 2 다음