ML/NLP
[NLP] 모두를 위한 딥러닝 : "Linear Regression cost함수 최소화"
dokylee
2020. 5. 26. 16:45

Linear regression에서 Cost function 최소화
1. Cost function 그래프 개형 알아보기


위의 결과를 그래프로 찍어보면 다음과 같다.

그래프에서 y축이 cost이니까, 그 점의 값이 최소인 점을 찾는 것이 Linear Regression 학습의 목표!
즉, 점 (1, 0)을 기계적으로 찾아내야 함
그걸 찾을 수 있는 방법 -> Gradient descent algorithm
2. Gradient descent algorithm
- 최소 지점을 찾기 위해 경사를 따라 내려가는 알고리즘 ex. 등산에서 하산할 때 경사가 낮은 곳으로 계속 가면 되는 것처럼!
- cost function을 최소화함
- 많은 최소화 문제에 사용됨
- 주어진 cost function( = cost(W, b) )을 최소화하기 위해 W, b를 찾아냄
- 더 일반적인 function에도 적용 가능함 ex. cost(w1, w2, ...)
3. Gradient descent algorithm 작동법
1) 아무 점에서나 시작 가능
ex. (0, 0)에서 시작
2) 매번 파라미터(W, b)를 바꿀 때마다, cost(W, b)를 줄일 수 있는 경사도를 선택함
3) local minimum으로 갈 때까지 반복
4. 경사도(Gradient)를 구하는 방법
1) 계산을 깨끗하게 하기 위해 cost function에 1/2를 곱해줌 -> 그래도 최소값은 여전히 같은 W, b에서 찾아짐

2) 경사도에 따라 W(아까 본 cost function 그래프에서 x축)를 얼마나 바꿀 것인지 결정 (단, α는 상수)

3) 미분 절차

마지막 식이 바로 gradient descent algorithm의 핵심 수식
추가. Convex function

문제점:
cost function이 이렇게 생기면, 어느 점에서 시작하느냐가 어느 minimum에서 멈춰질 지 결정하게 됨

하지만 cost function이 밥그릇을 뒤집어 놓은 형태(convex function)라면 하나의 극소점으로 모이게 됨
그래서 cost function이 convex function이라는 것을 확인해주기만 하면 gradient descent algorithm의 동작을 보장할 수 있음
<Reference>
모두를 위한 머신러닝/딥러닝 강의
hunkim.github.io