Deep learning

4. 경사하강법, Gradient Descent

PIYA 2021. 12. 18.

 

 

기하학적 의미부터 이해하자

그림이 이쁘지 않지만,, 해당 함수는 모델의 비용함수 \( \mathcal{J}(w,b) \)를 나타낸다고 하자
파라미터 w와 b를 Random initialization한다고 할 때, 초기화된 (w, b)는 A~E중 어느 곳에서나 시작할 수 있다

목표는 비용함수를 최소로 하는 파라미터페어 (w, b)를 구하는 것이고,
이 과정에서 경사하강법, Gradient Descent를 적용할 수 있다

 


초기화된 파라미터 (w, b)가 B라고 하자
B(w, b)점에서의 비용함수 \( \mathcal{J}(w,b) \) 를 미분한다
기울기는 양수가 나올 것인데,
기울기의 반대 방향으로 움직여 비용함수가 converge하는 E점으로 파라미터를 이동시키는 개념이다

Gradient Descent는 한번만 하는 것이 아니라,
값이 수렴할 때까지 반복해서 수행한다



 

 

 

 

다시, 쉽게 이해하기 위해 파라미터 b를 제외하고 w축만 그려보았다

함수를 w에 대해 미분한 값을 이용해 w를 업데이트해간다

F점 부터 시작해, 매 gradient descent iteration마다 F->G->H로 w값이 변화해가는것을 그려보았다

 

w와 b를 업데이트 하는 수식은 그림처럼 아래와 같다

 

$$ w = w - \alpha \frac{\partial\mathcal{J}(w,b)}{\partial w} $$

 

이때 \( \alpha \)는 Learning rate로, 파라미터가 학습하는 속도를 결정하는 hyperparameter이다.

(hyperparamter는 학습 과정을 조절하기 위해 사용하는 조작변수)

 

 

기호 \( \partial \)은 변수가 여러 개인 함수에서 한 변수에 대해 미분하는 편미분 기호이다

 

 

앞으로 코드나 표기에서 \( \frac{\partial\mathcal{J}(w,b)}{\partial w} = dw \) 로 간단히 표시하도록 약속한다

'Deep learning' 카테고리의 다른 글

6. L-p Norm, 노름  (0) 2021.12.21
5. Chain Rule  (0) 2021.12.19
3. Cost Function  (0) 2021.12.17
2. Loss Function  (0) 2021.12.17
1. deep learning intro: 용어 정리  (0) 2021.12.17

댓글