본문 바로가기

경사하강법5

[cs231n] 3강. Loss function, optimization ✔ 본 포스팅은 20/10/10 ~ 20/12/26 동안 진행하는 가짜연구소 딥러닝기초이론스터디를 통해 학습한 내용입니다. ✔ 본 포스팅은 스탠포드 대학의 cs231n 강의를 정리한 내용입니다. ✔ 아직 이해가 잘 안 되는 부분이 많아서 계속 수정하겠습니다. 😅 지난시간 data-driven approach 로 KNN classifier에 대해 보았고, CIFAR-10 데이터셋으로 실습을 진행하였다. (아직도 다 못함 ㅠㅠ) KNN classifier는 test와 train 이미지간 픽셀값차이를 통해 L2 distance를 구해 거리가 최소인 k개의 train 그리고 train/test data로 나눈 뒤, 최적 hyperparameter를 구하기 위해 검증할때 train data를 K개의 fold로 나.. 2020. 10. 23.
C1W2L1 ~ C1W2L4 C1W2L1. Neural network overview 여기서는 신경망이 어떤 원리로 구성되어 있고 구현되는지 살펴볼 것이다. 이때까지 공부한바에 의하면 로지스틱회귀는 특성x와 변수인 가중치 w,b를 입력하면 가중합 z를 계산하고, 이를 통해 활성값(예측값) a를 계산해 실제값y와의 오차를 구한 뒤 거꾸로 각단계의 도함수를 구해 초기 변수 w,b와 오차값의 도함수를 구해 가중치를 수정했다. 이를 기반으로 신경망을 다음과같이 쌓는다. 각 동그라미는 node라고 부르며, 하나의 node에서 각각 z와 a값을 구하는 위의 단계를 시행한다. [대괄호]는 layer고 0번째 layer는 특성값 x들을 넣은 input layer(입력층)이다. [2]layer는 output layer(출력층)이고 최종 활성값a (.. 2020. 10. 9.
C1 W2 L13 ~ L14 C1W2L13. Vectorizing Logistic Regression for 문 없이 로지스틱회귀의 정방향전파를 코드로 구현해보자 > 2020. 10. 9.
C1W2L10 ~C1W2L12 C1W2L10. Gradient Descent on m Examples 앞에서는 단일샘플에 대하여 경사하강법을 구현했다면, 이번에는 m개의 샘플에 대해 구현해보자. m개의 (x, y) 샘플이 있고 x는 피처값, y는 참/거짓을 나타내는 레이블값이다. 샘플간의 구분을 위해 i번째 샘플임을 위첨자로 나타냈다. m개의 샘플 전체에 대해 가중치 (w,b)를 적용한 비용함수 J(w,b)는 각샘플의 손실함수 L(a, y) 의 평균을 낸 것과 같다. 마찬가지로 도함수도 각 샘플의 도함수를 평균낸 것과 같다. 이것을 통해 경사하강법에 사용할 전체적인 경사를 구할 수 있다. 이것을 코드로 구현해보면 다음과 같다. 1. 먼저 값을 초기화한다. 2. m개의 샘플에 대하여 z, a, J 식을 for문으로 작성한다. 3. 최종.. 2020. 10. 7.
C1W2L4 ~ C1W2L9 futurelab.creatorlink.net/ C1W2L4. Gradient Descent (경사하강법) 이제까지 Binary classification에서 주어진 데이터를 가지고 임의로 설정한 가중치 (w,b)에 대한 선형예측함수를 만들고, 이함수의 결괏값을 binary classification에 적용하기 위해 한차례 더 시그모이드함수에 넣어서 예측값 y_hat을 구했다. 실제결괏값 y와 우리가 임의로 설정한 가중치 (w, b)로 설정한 예측모델함수에 의한 결괏값 y_hat의 오차를 나타내는 오차함수 J(w,b)가 있다. 이것이 가장 작아지는 (w,b)를 구하는 것이 목표이다. x축이 w, y축이 b, z축이 J(w,b)인 3차원그래프를 그려보면 다음과 같다. 특별히 한지점이 볼록한 최솟값을 갖게 .. 2020. 10. 7.