-
[Week 1] Parameter LearningCourses/Andrew Ng - Machine Learning 2021. 12. 16. 22:21
Gradient Descent
이제 우리는 어떻게 비용 함수의 최솟값을 찾을 것인지 알아보겠습니다. 경사 하강법이라는 방법을 도입하여 오차가 최소가 되는 가설 함수의 파라미터들을 찾아보겠습니다.
비용 함수의 그래프가 위 그림과 같다고 가정해봅시다.
:= 기호는 대입연산자입니다. 프로그래밍에서의 =와 같은 의미입니다. α는 학습률(learning rate)라고 합니다. 학습률은 언덕을 내려갈 때 얼마의 간격으로 내려갈 지 결정합니다. 학습률의 값이 크면 간격이 크고 값이 작으면 간격도 작아서 오랜 시간이 걸릴 것 입니다.
α 뒤 미분 기호는 편미분입니다. 비용 함수 J가 θ0과 θ1 두 가지 파라미터의 함수이기 때문에 편마분을 하게 됩니다. 미분은 어떤 포인트에서의 그래프의 기울기라고 할 수 있습니다. 즉 θ0과 θ1 파라미터로 정해진 특정한 포인트(위 그림에서 표시된 곳)의 기울기를 계속 빼고 그 값을 대입하여 업데이트 해주는 것입니다.
주의해야 할 점은 θ0의 값을 구하고 그 값을 바로 J에다가 넣으면 안됩니다. θ0값을 구하고 θ1값도 구한 뒤 비용 함수에 업데이트해야 합니다.
Gradient Descent Intuition
J가 이차 함수꼴이라고 생각해봅시다. 변수는 θ1 하나라고 가정하겠습니다. θ1이 최솟값보다 우측에 있을 경우 미분값은 항상 0보다 큽니다. 왜냐하면 기울기가 항상 우상향이기 때문이죠. 학습률도 양수이기 때문에 θ1은 작아져 왼쪽으로 이동하게 됩니다. θ1이 왼쪽으로 이동하고 나면 최솟값에 근접하게 되고 기울기는 더 작아집니다. 그렇기 때문에 아까보다 더 작은 간격으로 최솟값에 접근합니다. 이 과정을 반복하면 결국 θ1은 최솟값에 수렴하게 되고 기울기는 0이 됩니다. 그렇게 되면 더 이상 움직이지 않습니다.
θ1이 최솟값보다 작다면 기울기는 음수이기 때문에 θ1은 지속적으로 증가하게 됩니다. 이 경우도 결국 기울기가 0이 되고 θ1은 최솟값에 수렴하게 됩니다.
학습률의 역할도 볼 수 있는데 , 학습률이 너무 작으면 아주 천천히 움직이게 되고 , 너무 크면 최솟값을 지나쳐 수렴이 아닌 발산할 가능성이 있으니 적절한 값을 선정하여야 합니다. 경사 하강법은 지역 최솟값에 근접할 수록 자동으로 더 작은 거리를 이동하기 때문에 학습률은 조절할 필요가 없습니다.
Gradient Descent For Linear Regression
알고리즘에 J함수를 넣고 편미분을 한 결과입니다. 풀이 자체는 크게 어렵지 않으니 한번 유도해보시는 것도 좋을 것 같습니다. 위 수식으로 계속해서 파라미터들을 업데이트 해주면 됩니다.
다행(?) 스럽게도 선형 회귀 비용 함수는 항상 그림과 같은 볼록 함수입니다. 이 말은 지역 최솟값이 없고 하나의 전역 최솟값만 존재한다는 것입니다. 어느 점에서 시작하든 경사 하강법 알고리즘을 진행하면 항상 전역 최솟값으로 수렴하게 됩니다.
저번 시간에 봤던 등고선 그래프에서 경사 하강법 알고리즘을 진행해보겠습니다. 알고리즘에 따라 파라미터를 조절하면 임의의 점에서 시작해도 결국 가운데로 수렴하는 것을 볼 수 있는데요. 그 이유는 등고점의 중심이 최솟값이기 때문입니다.
조절된 파라미터에 따른 가설 함수도 적절하게 세워진 것을 확인할 수 있습니다. 이제 집값을 예측해볼 수 있습니다.
혼자서 강의를 듣고 정리한 것이니 틀린 점이 있다면 언제든지 지적 부탁드립니다 :)
'Courses > Andrew Ng - Machine Learning' 카테고리의 다른 글
[Week 2] Multivariate Linear Regression (0) 2021.12.20 [Week 1] Linear Algebra Review (0) 2021.12.19 [Week 1] Model and Cost Function (0) 2021.12.14 [Week 1] Introduction (0) 2021.12.14 0. 시작하기 전에 (0) 2021.12.13