ML & DL/[강의] 모두를 위한 딥러닝 강좌 시즌 1

[정리/모두를 위한 딥러닝] ML lec 03 - Linear Regression의 cost 최소화 알고리즘의 원리 설명

uni2237 2022. 9. 14.
728x90
728x90

https://youtu.be/TxIVr-nk1so

 

 

📌 ML lec 03 - Linear Regression의 cost 최소화 알고리즘의 원리 설명

 

 

우선 지난 강의에서 다룬 것 처럼 

우리의 hypothesis가, 대략 우리의 모델이 위와 같이 wx+b 형태로 주어지고,

이를 기반으로 cost function, 즉 우리가 가지고 있는 모델이 실제 데이터와 얼마나 다른지,같은 지를 위와 같이 정했다.

-> linear regression의 목표cost를 최소화시키는 w와 b를 데이터를 통해 구하는 것이다.

 


 

Simplified hypothesis


앞으로의 설명을 쉽게 하기 위하여, hypothesis에서 b 를 없앴다.

hypothesis와 cost를 간략하게 바꾸었다.

 

 

바뀐 cost function으로 예시 그래프를 그려보면 위와 같다. 

우리의 목표는 cost를 최소화 시키는 w를 구하는 것인데, 그럼 어떻게 구할 수 있을 지를 생각해보자.

🤷‍♀️우선 위 그림을 보면 cost의 값이 0인 w(=1)값을 찾아내면 되지 않을까?


 

Gradient descent algorithm


그래서, 위와 같은 상황에 많이 쓰이는 알고리즘이 있다. 

바로 Gradient descent algorithm. (경사 하강)

이름을 그대로 해석해보면 경사를 따라 내려가는 알고리즘이다.

 

- cost funtion 최소화할 때 많이 쓰임

- 또 다른 많은 최소화 문제들에 많이 쓰임

- cost(w,b)의 문제에서, cost를 최소화하는 w와 b를 찾아냄

- cost(w1, w2, w3, ...)와 같이 여러개의 값들이 있는 cost fucntion도 최소화 가능

 

 

gradient descent algorithm의 동작 법

- 아무 점에서나 시작 가능하다.

- w와 b를 계속 조금씩 바꿔가면서 cost(w,b)값을 감소시킨다.

- 그런 다음 경사도를 계산해서 계속해서 위의 과정을 반복한다.

=> 항상 최저점에 도달할 수 있다는 장점 ( 예외 있을 수 있음 )

 

🙋 위에서 경사도를 이야기 했는데, 그럼 경사도는 어떻게 구할까?

-> 미분을 이용해서 그래프의 기울기 구함

 

 


 

Formal definition


cost함수는 깔끔한 미분식을 위하여 1/m을 1/2m으로 바꿔주었다.



W를 보면, '알파 값에 cost(W)를 미분한 값을 곱한 것'을 W에서 빼주고 있다. (알파 = learning rate 값 )

여기서, cost(W)를 미분한 값은 그래프의 기울기이므로
기울기가 양수 였을 때: W 값에 양수의 값을 빼줌 ->  W가 감소됨.
기울기가 음수 였을 때: W 값에 음수의 값을 빼줌 ->  W가 증가됨.



기울기(미분 값)에 따른 W 변화 방향




🙋 그렇다면, 이론상으로 완벽해보이는 gradient descent algorithm은 언제나 잘 동작할까?





 

Convex function


cost(W,b) 의 3차원화

만약 우리의 cost function이 위와 같이 그려진다면

시작점이 다른 경우 gradient discent algorithm이 여러개의 다른 방향으로 진행될 수 있다

-> 잘못된 동작 ! 

 

 

 

 

gradient discent가 잘 동작할 수 밖에 없음을 보장하는 convex function

🙋 그럼 만약 우리의 cost function이 위와 같이 그려진다면 어떨까?

이런 경우에는 gradient discent를 어떤 지점에서 시작해도 도착하는 지점이 우리가 원하는 한 지점이다.

-> gradient discent 알고리즘이 항상 답을 찾는다는 것을 보장해준다.

 

이러한 함수의 모양을 convex function이라고 한다.

 

=> Cost function을 설계할 때, 반드시 그 모양이 convex function이 되는지 확인해야한다.

 

728x90

댓글