저번 포스팅에 이어 이번 포스팅에서도 경사하강법(Gradient Descent)에 대해 계속해서 알아보겠다. 저번 포스팅에서는 경사하강법의 전체적인 틀 정도만 말했는데, 이번 포스팅에서는 좀 더 자세하게 살펴보겠다. (이번에도 Coursera 강의를 참고하여 포스팅합니다.)
저번 포스팅에서 봤던 개념이다. 하지만, 처음부터 θ0, θ1을 둘 다 고려하면 헷갈릴 수 있기 때문에 θ0(bias) = 0인 즉, θ1(weight)만 있는 경우부터 생각해보자. 따라서, 우리는 Cost Function인 J(θ1)의 최소값을 구하는 θ1을 찾기 위해 θ1을 계속해서 변경해나갈 것이다.
이 식에서도 마찬가지이다. 위의 식은 θ0, θ1을 모두 고려했을 때의 식이지만 아래에 설명할 내용들은 모두 θ0=0일 때임을 기억하자.
이렇게 식으로만 보면 느낌이 잘 오지 않으니 그래프를 보면서 이해해보자. (위의 두 그림에 대한 설명은 "Gradient Descent (경사하강법) (1)" 포스팅을 참고해주세요!)
위, 아래 그래프 모두 2차 함수인 Cost Function이다. θ0가 없다고 가정했기 때문에 J(θ1)이라고 써져 있는 것이고 위 그래프부터 살펴보면 θ1이 극값을 기준으로 오른쪽에 위치해있는데 이는 점 (θ1, J(θ1))에서의 접선의 기울기(J'(θ1))가 양수인 경우를 뜻한다.
이 접선의 기울기에 α(Learning rate)을 곱한 값을 뺀 만큼 θ1이 이동하게 되고 그에 따라 점 (θ1, J(θ1))도 이동하게 된다. 그 밑의 θ1 := θ1 - α*(positive number)은 점 (θ1, J(θ1))이 어느 방향으로 이동할지를 보여주는 식이다.
점 (θ1, J(θ1))에서의 J'(θ1), 즉, 접선의 기울기가 양수이므로 "θ1 := θ1 - (양수*양수)"이기 때문에 θ1는 음의 방향인 왼쪽으로, 점 (θ1, J(θ1))은 아래 방향으로 이동한다.
P.S : Learning rate는 학습률이므로 0 < α < 1인 양수이다.
이번엔 아래 그래프를 보자. θ1이 아까와 다르게 극값을 기준으로 왼쪽에 있다. 이는 점 (θ1, J(θ1))에서의 접선의 기울기( J'(θ1))가 음수인 경우를 뜻한다. α는 Learning rate이므로 양수이므로 α*J'(θ1)은 양수*음수 = 음수이다.
따라서, "θ1 := θ1 - (양수*음수)" => "θ1 := θ1 - (음수)"이다. 음수 앞에 '-'가 있으므로 결국 θ1은 양의 방향인 오른쪽으로, 점 (θ1, J(θ1))은 아래 방향으로 이동한다. 이 내용이 θ1 := θ1 - α*(negative number)이다.
정리하면, θ1이 극값 기준으로 왼쪽에 있던 오른쪽에 있던 상관없이 최대 극값까지만 이동할 것이므로(θ1이 극값일 때 Cost Function이 최소이기 때문) 방향만 반대일 뿐 점 (θ1, J(θ1))이 아래로 이동하는 것은 똑같다. 이런 원리로 인해 경사하강법이라고 하는 것이다.
- Learning rate
: 이번엔 α인 Learning rate(학습 비율)에 대해 좀 더 자세히 알아보자. Learning rate는 우리가 경사를 따라 내려갈 때 얼만큼 이동해야 할 것인지에 대한 값이다. 아래 그림을 보자.
위의 그래프는 Learning rate가 작은 경우이고, 아래의 그래프는 Learning rate가 큰 경우이다. 두 그래프들의 시작점들은 아까 설명했듯이 점 (θ1, J(θ1))에서의 접선의 기울기( J'(θ1))가 음수이고 α는 Learning rate이기 때문에 양수이며 앞에 '-'가 있으므로 "-양수*음수 = 양수" => θ1은 양의 방향으로 업데이트된다.
따라서, J'(θ1)가 고정값이라고 할 때 Learning rate가 작으면 α*J'(θ1)이 작아지므로 그만큼 양의 방향으로 적게 이동하게 된다. 그렇게 되면, 극값까지 가는 시간이 오래 걸리게 된다(즉, 속도가 느리다). 실제로도 화살표들을 보면 엄청 조금씩 이동하고 있는 것을 확인할 수 있다. 반면, J'(θ1)가 고정값일 때 Learning rate가 크면 α*J'(θ1)이 커지므로 그만큼 양의 방향으로 많이 이동하게 된다. 즉, 극값까지 가는 시간이 짧다(속도가 빠르다).
그럼 Learning rate가 크면 무조건 좋은 거 아닌가하고 생각할 수 있다. 하지만, Learning rate가 큰 경우가 작은 경우보다 좋을 때는 이동폭이 최대 극값까지인 경우에만 해당되는 것이고, 아래 그래프처럼 극값을 넘어설 정도로 이동폭이 크면, 극값을 넘어 반대편으로 넘어가 오히려 Cost Function이 커져 점점 발산하는 형태를 띈다.
Cost Function이 최소일 때 실제 데이터와 가장 비슷하게 예측을 하므로 Cost Function이 커진다는 얘기는 예측을 그만큼 못하는, 즉, 정확도가 떨어지는 모델이 만들어진다는 뜻이다. 따라서, Learning rate를 적절하게 정하는 것이 중요하다.
그럼, 이런 경우는 어떻게 할까? 아래 그림처럼 시작점이 극값, 즉, Cost Function이 최소값인 지점에 있는 경우이다.
물론 위 그림은 고차함수지만 어렵게 생각할 필요없다. 똑같은 원리이다. 위 그림이 정 어렵다면, 여태 계속 그려왔던 2차 함수로 보자.
두 그림을 직관적으로 봤을 때 이미 Cost Function이 최소값인 지점에 도달했으므로(=목표치에 도달했으므로) θ1을 업데이트할 필요가 없다. 직관적으로 느낌이 오지 않는다면 식을 통해서 이해해보자. 고차함수 있는 그림의 식을 보면 θ1 := θ1 - α*J'(θ1)인데 J'(θ1) = 0이므로 θ1 := θ1 - α*0 = θ1으로 θ1은 변하지 않는다.
즉, 보통의 경우에는 경사하강법이 파라미터(θ1)에 영향을 주며 Cost Function의 최소값을 찾아가지만 이 경우에는 경사 하강법이 파라미터(θ1)에 아무런 영향을 끼치지 못한다.
이번엔 α인 Learning rate가 고정값인 경우를 생각해보자. Learning rate는 우리가 경사를 따라 내려갈 때 얼만큼 이동해야 할 것인지에 대한 값이므로 Learning rate가 고정되어 있다면 파라미터(θ1)에 아무런 영향을 끼치지 못할까?(θ1가 업데이트되지 못하고 계속 같은 값일까?) => 답은 'No'이다.
위에 영어로도 나와있듯이 "Gradient descent can converge to a local minimum, even with the learning rate α fixed", 즉, 경사 하강법은 Learning rate가 고정되어 있더라도 local minimum(Cost Function이 최소인 지점, 즉, 극값이 있는 지점)으로 수렴할 수 있다는 뜻이다.
실제로 그림과 식을 보면, α는 Learning rate이기 때문에 양수이고 해당 함수의 접선이 기울기가 양수이므로 α*J'(θ1)은 양수인데 앞에 '-'가 있으므로 θ1은 왼쪽인 음수 방향으로, 즉, Cost Function이 최소가 되는 방향으로 이동하고 있다. 또한 Cost Function이 최소가 되는 방향으로 갈수록 접선의 기울기 역시 점점 작아지고 있음을 확인할 수 있다(점점 경사가 낮아진다).
여기서 말하는 local minimum은 미분계수가 0이 되는, 즉, Cost Function이 최소가 되는 지점(극값이 있는 지점)을 의미한다. 그 아래에 있는 "As we approach a local minimum, gradient descent will automatically take smaller steps. So, no need to decrease α over time."을 해석해보면, 우리가 Cost Function이 최소가 되는 지점으로 접근함에 따라, 경사하강법은 자동적으로 더 작은 step을 밟는다(더 적게 이동한다)는 뜻이다.
따라서, α값을 증가/감소시키던 고정시키던 J'(θ1)을 고려하던 해서 최적의 α값을 찾는 것이 중요하다고 할 수 있겠다.
경사하강법 알고리즘은 Cost Function이나 혹은 Cost Function이 아니더라도 최소값을 구할 때 많이 사용된다. 하지만 여태 설명했던 것들은 모두 선형회귀에 관한 것임을 기억하자.
'Machine Learning' 카테고리의 다른 글
Gradient Descent for Multiple Variables (다변량에서의 경사하강법) (0) | 2020.08.22 |
---|---|
Multiple Features in Linear Regression (= Multivariate linear regression(다변량 선형회귀)) (0) | 2020.08.11 |
Gradient Descent (경사하강법) (1) (0) | 2020.07.16 |
Cost Function (비용 함수) (2) (0) | 2020.06.14 |
Cost Function (비용 함수) (1) (0) | 2020.06.12 |
댓글