1월, 2022의 게시물 표시

[CS231n] Fully Connected Network 과제(Assignment)

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io   * 블로그 작성자 github 주소: https://github.com/withAnewWorld/JamesHanamura Assignment 구조 작성되어 있는 부분(파란색), 과제로 주어진 부분(빨간색)     - Load the preprocessed data     - fully connected network          - init(W, b)          - Loss(soft max)          - Gradient(backpropagation)     - Debugging strategy(Gradient check, relative error, visualize)               - Update rules           - SGD                     - SGD + Momentum          - RMS prop          - Adam     - Debugging s...

[CS231n] Features 과제(Assignment)

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io   * 블로그 작성자 github 주소: https://github.com/withAnewWorld/JamesHanamura 서론 이전까지의 과제에서 Image data로 모두 RGB 데이터를 이용했습니다. 하지만 사진 이미지를 분류할 때에 RGB 데이터뿐 아니라 Image의 edge, texture 등 다양한 정보를 이용할수록 컴퓨터가 더 잘 학습을 할 것이라고 기대할 수 있습니다.  Assignment 구조 작성되어 있는 부분(파란색), 과제로 주어진 부분(빨간색)     - Load data     - PreProcessing(Extract Features)     - linear classifier(svm)          - Cross Validation          - Test image 예측     - Two Layer Network           - Cross Validation          - Test image 예측 Linear Classifier(svm) 기존 과제들과 같이 Cross Validation을 통해 가장 좋은 예측을 보일 것으로 기대되는 hyper parameters를 선택해 주시면 됩니다. 이 때 random.uniform 함수와 반복문...

[CS 231n] Two layer net 과제(Assignment)

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io * 블로그 작성자 github 주소: https://github.com/withAnewWorld/JamesHanamura Fully connected layer 구조 input -> hidden layers(activation function cf) relu, sigmoid 등) -> loss function(svm, softmax 등) Assignment 구조 작성되어 있는 부분(파란색), 과제로 주어진 부분(빨간색)     - 데이터 불러오기     - 상대 오차 함수     - layers          - affine_forward & backward          - relu_forward & backward         - svm_loss         - softmax_loss     - Debugging strategy(gradient check, relative error)          cf) layer_utils(max(0, wx+b) forward & backward) - 자동화     - fc_net         - w1, b1,...

[CS231n] lecture 4. backpropagation 강의 요약

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io 1. 필요성     Deep learning의 경우 layer의 개수가 많아짐에 따라 자연스레 loss function은 매우 복잡한 형태를 띠게 된다. 따라서 이를 변수에 따라 편미분 하기 매우 어려워진다. 2. Idea     Chain rule에 따라 복잡한 문제를 쉬운 문제의 집합체로 생각한다. 3. 예시 새로운 노드의 gradient = 이전 노드의 gradient*새로운 노드의 미분 값 (value = result) 4. 특성(Add, Multiplication, Max)      뉴럴 네트워크의 특성 상 add 연산과 mul 연산, max 연산이 자주 쓰인다. ex) max(0, wx+b)    1. Add gate Add gate는 이전의 gradient를 공평하게 나눠주는 역할을 한다. 즉, 해당 노드의 gradient = 이전노드의 gradient (${d(x+y) \over dx}={d(x+y) \over dy}=1$)     2. Multiplication gate 해당 노드의 gradient = 이전 노드의 gradient*상대 value (${d(x*y) \over dx}$ = y, ${d(x*y) \over dy}$= $x$)     3. Max gate Max gate는 Add gate와 비슷하게 이전 노드의 gradient를 그대로 끌고 온다는 점이 비슷하지만 가장 큰 value를 가졌던 노드에만 gradient가 할...

[CS 231n] Linear Classification Softmax 과제(Assignment)

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io * 블로그 작성자 github 주소: https://github.com/withAnewWorld/JamesHanamura 이번 과제는 기본적으로 전에 포스팅한 SVM 과제와 유사하므로 코드 작성부분에 대해서만 올리겠습니다. Softmax_loss_naive     1. loss     1) scores[i, :] = X[i, :].dot(W)     2) scores -= max(scores)  (Softmax는 x.dot(W)의 결과가 지수로 올라가므로 컴퓨터가 처리하기에 너무 큰 수입니다. 이를 해결하기 위해 가장 큰 수를 빼주는 작업이 필요합니다.)     3) exp(scores)     4) loss += -log( scores[y[i]] / sum(scores) )     5) loss /= num_train         loss += reg*sum(W^2)     2. dW softmax_loss_vectorized     1. loss          1) scores = X.dot(W)     2) scores의 각 행 중 최대값을 행 별로 뺀다.     3) exp(scores)     4) 분자: 각 행에 따른 scores y[i]열...

[CS 231n] Linear Classification SVM 과제(Assignment)

이미지
포스팅을 시작하기에 앞서 수준 높은 강의와 강의 자료를 무료로 배포해주신 Stanford University CS231n 교수진께 감사의 말씀을 드립니다.  온라인 강의: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk  강의 자료: https://cs231n.github.io * 블로그 작성자 github 주소: https://github.com/withAnewWorld/JamesHanamura Assignment 구조 작성되어 있는 부분(파란색), 과제로 주어진 부분(빨간색)     - 데이터 전처리     - SVM Classifier          - svm_loss_naive          - svm_loss_vectorized     - Gradient Check(Debugging strategy)          - naive 코드와 vectorized 코드 시간 비교     - Linear Classifier          - train          - predict     - Loss Function 시각화(Debugging strategy)     - Cross Validation(learning rate, regularization)     - Test image 예측     - 시각화 svm_loss_naive dW는 loss function을 W로 미분한 결과를 담은 vector입니다. svm_loss_vectorized   ...