딥러닝으로 모델을 학습시키기 위해 미분 값을 구하는 과정이 필요하다. 만약 왜 미분이 필요한지 모른다면 '경사하강법과 학습률'을 참고하면 된다. 해당 내용을 몰라도 이번 글을 이해하는 데는 문제가 없다. 문제점Chain-rule연산자와 미분 결과계산 과정 시각화역방향으로 계산문제점일반적으로 미분값을 구할 때, 도함수를 구한 후 값을 대입해 계산한다.$f(x)=ax^3+bx^2+c \\ \cfrac{d}{dx}f(x)=3ax^2+2bx$하지만 문제는 모델의 연산 과정이 너무 복잡하다. $f(x)=Linear(Droupout( ... (maxpool(relu(conv(...))))))$위 예시는 아주 기본적인 CNN 모델의 구조이다. 그리고 가장 많이 사용되는 손실 함수인 Cross Entropy with ..
1번에서 전체 개념을 가볍게 설명하고, 2번부터 자세하고 차근차근 설명해 두었습니다. 그러니 첫 부분이 이해되지 않아도 일단은 넘어가서 뒷부분을 읽고 돌아오시면 이해하기 더 편할 겁니다. 전체 개념 딥러닝에서 모델을 학습한다는 것은 실제 값과 예측 값의 오차를 최소화하는 가중치를 찾는 과정이다. 여기서 '오차'를 정의하는 함수를 비용 함수(Cost function)라고 한다. 즉, 비용 함수가 최솟값을 갖는 방향으로 가중치를 업데이트하는 작업이 필요하다. 경사 하강법이라고 불리는 Gradient Descent는 최솟값을 찾을 때 사용할 수 있는 최적화 알고리즘이다. 먼저, 최솟값을 찾을 함수를 설정한 후, 임의의 값으로 초기화하고 해당 값의 기울기를 빼면서 최솟값에 가까워질 때까지 반복하는 방법이다. $..
선형 구조 아래와 같이 은닉층이 있는 신경망은 어떻게 결과값을 계산하는지 확인해보자. $z_0=w_0x_0+w_1x_1$ $z_1=w_2x_0+w_3x_1$ $y=w_5z_0+w_6z_1$ 확인을 위해 식을 직접 대입해 보면, $y=w_5(w_0x_0+w_1x_1)+w_6(w_2x_0+w_3x_1) \\ =(w_5w_0+w_6w_2)x_0+(w_5w_1+w_6w_3)x_1 \\ =w_{t0}x_0+w_{t1}x_1$ 결과적으로 레이어를 추가했지만 또 다른 선형 함수가 만들어졌다. 그림으로 나타내면 아래와 같다. 즉, 은닉층을 선형적으로 쌓아도 결국 하나의 선형 함수로 정의된다는 것이다. 따라서 위와 같은 문제를 해결하기 위해 활성화 함수가 필요하다. 예: $y=w_5h_0(z_0)+w_6h_1(z_1)$..