🤖머신러닝/독서공부및 노트필기

경사하강법(Gradient Descent) 공식 유도

Mawile 2021. 10. 30.
728x90

텐서플로우나 케라스와 같은 머신러닝 프레임워크로 경사하강법을 사용하다보면 내부적으로 어떻게 작동하는지,

어떻게 최적의 w와 b값을 얻을 수 있는지 궁금해지신분들이 계실겁니다.

 

이번 포스팅에서는 경사하강법에 대한 공식유도에 대한 포스팅입니다.

평균값정리편미분정도만 알고계시면 이해하는데 크게 지장없으십니다.

 

 

노트로 정리했습니다.

글씨체는 좀 더럽긴합니다.

부가설명 들어갑니다.

 

E

우선 E는 예측값(y_hat)과 y에 대한 평균값이 되겠습니다.

이 부분은 고등학교 미분 시간에 배웠던 평균값정리에 대한 내용이 되겠습니다.

또한 EMSE손실함수와 내용이 같습니다.

 

G

GEG에 대하여 편미분한 값과 a(학습률)를 곱한 값에서 G를 뺀값이 되겠습니다.

뺀 이유는 a(학습률)만큼 그래프에서 비용이 적은 방향으로 이동하기 위함입니다.

 

뺀다는것을 수학적의미로 해석하자면 앞에 나와있는 2차원곡선의 꼭짓점에 a(학습률)만큼 가까워진다는 의미입니다.

a(학습률)는 앞에 나와있는 1차원 직선이 2차원곡선의 꼭짓점으로 한 발자국 다가가는데에 대한 진폭의 크기입니다.

당연히 a(학습률)가 높으면 1차원 직선이 한번에 쑥쑥 이동할것이고,

반대로 적으면 엄청 조금조금씩 이동하게되겠습니다.

 

* 연산자 ':='의 의미: 할당(Assignment)을 의미하며, 프로그래밍에서는 그냥 'X = X' 라고 표현하면 X에 X값이 들어가게 된다는의미지만, 수학적의미로 해석하면 답은 0이 되기때문에 수학적오류를 배제하기위해 연산자 '=' 대신에 연산자 ':=' 를 사용함.

 

Weight와 bias 최소화

\( \frac{\delta E}{\delta w} \)와 \( \frac{\delta E}{\delta b} \) 에 대한 설명입니다.

 

\( \frac{\delta E}{\delta w} \) 는 편미분에 대한 지식을 이미 습득하신분이라면 쉽게 이해하시겠지만,

E를 w에 관하여 미분한다는 의미입니다.

 

미분한식을 설명하자면, 지수 '2'가 내려와서 2가 곱해진 후,

w에 대한 미분이기때문에 1차식인 wx에서 x가 튕겨져나가서 위의 사진과 같은 최종식이 나옵니다.

 

똑같이 \( \frac{\delta E}{\delta b} \) 에대하여 설명하자면, 지수 '2'가 내려와서 2가 곱해진 후,

b에 대한 미분이기때문에 상수식인 b에서 1이 튕겨져나가서 위의 사진과 같은 최종식이 나옵니다.

 

미분배우신분들은 아시다시피 n차식을 미분을 하게되면,

n차식 -> n-1차식 -> ... -> 상수식 -> 1 -> 0

다음과 같은 순으로 바뀌게 됩니다.

 

그리고 weight와 bias를 업데이트하는 식은 G에다가 \( \frac{\delta E}{\delta w} \)와 \( \frac{\delta E}{\delta b} \) 를 대입하면 위의 사진과 같이 유도됩니다.

 

 

일반적인 경사하강법은 이것이 끝입니다!

그럼 안녕!

 

 


728x90

댓글