📌 이 글은 권철민님의 CNN 완벽 가이드를 바탕으로 정리한 내용입니다.
목차
- Gradient Descent : weight 값을 없데이트 하면서 오류 값이 최소가 되는 weight 값을 구하는 방식
- 미분을 통해 Loss function(비용 함수)의 최솟값 찾기
- Loss function(MSE)의 편미분
- 가중치(weight), 절편(bias) 업데이트
- 퍼셉트론 기반 선형회귀에서 Gradient Descent 적용하기
Gradient Descent(경사하강법) - 비용 최소화 하기
딥러닝의 목표인 최적의 w값은 Gradient Descent(경사하강법)으로 찾는다.
경사하강법은 점진적으로 하강할 수 있는 방향성으로, 반복적으로 계산하게 되면, 그때 오류 값이 최솟값이 되는 W 값을 구하는 방식이다.
아무것도 안보이는 밤 산에 밑으로 내려가기 위해서, 그냥 본능적으로 다리만 뻗어서, 다리가 밑으로 가는 방향으로 가는 방법이 있다.
근데 잠깐 언덕이 있다면? 내가 잘못 가고 있나?
다리를 뻗어도 계속 평지라면? 내가 잘못 가고 있나?
이런 생각이 들 수 있다.
따라서 어떻게 하면 오차가 작아지는 방향으로 Weight 값을 보정할 수 있을까?를 고민해야 한다.
이것이 바로 경사 하강법의 핵심이다.
미분을 통해 비용 함수의 최솟값 찾기
Gradient Descent는 최초의 w 부터 미분하면서 미분 값이 계속 감소하는 방향으로 w를 업데이트 한다.
MSE = ∑(실제값-예측값)^2 / n
MSE는 2차함수이므로 최솟값을 구하려면 미분을 때리면 된다.
Loss function(손실함수)의 편미분
Loss function은 두개의 파라미터인 w0, w1을 가지고 있으므로 편미분 해주어야 한다.
편미분은 아래와 같은 방식으로 한다.
가중치(Weight), 절편(Bias) 업데이트
위의 식에서 w1과 w0를 계속 업데이트 하면서 Loss function도 업데이트 한다.
앞서 말했지만 Loss function의 미분값이 감소하는 방향으로 업데이트 한다.
이때 미분값을 그냥 감소시키는 것이 아니라, 일정한 계수를 곱하면서 감소시킨다.
이때 일정한 계수가 바로 Learning Rate(학습률)이다.
Learning Rate(학습률)는 경사하강법을 튜닝하는데에 중요한 요소 중 하나이다.
Weight 값을 업데이트 하는 법은 "새로운 w1 = 과거의 w1 - (학습률 x Loss함수의 편미분값)" 으로 한다.
Bias(w0)도 같은 방법으로 업데이트 한다.
퍼셉트론 기반 선형회귀에서 Gradient descent 적용하기
그럼 얼마나 업데이트 해야할까?
그건 우리가 정해주어야 한다. 아래처럼 반복 횟수를 정해주면 된다.
정해진 반복 수만큼 손실함수 편미분을 구하고 Weight 와 Bias를 업데이트 한다.
'🖼 Computer Vision > CNN' 카테고리의 다른 글
CNN - SGD, Mini-Batch GD (0) | 2022.01.19 |
---|---|
CNN - 보스턴 주택가격 Perceptron 기반 학습 (0) | 2022.01.14 |
CNN - Regression, RSS, MSE (0) | 2022.01.14 |
CNN - Perceptron (0) | 2022.01.14 |
Tensor 에 대한 이해 (0) | 2021.06.09 |