모두를 위한 딥러닝 시즌2 - TensorFlow

Lec-03 Liner Regression and How to minimize cost

sososoy 2021. 10. 27. 15:32

<Simplified Hypothesis>

H(x) = Wx

+b를 생략하고 W에만 생각한다. 나중에는 matrix를 통해 W 안에다가 구현하게 된다.

Cost 함수에서 에러 역시 (Wx - y)로 간략화된다.

 

<What cost(W) looks like?>

W 값에 따른 cost값의 변화에 주목한다.

cost가 최소화 됐을 때의 W값을 구하는 것이 목표!!!

 

 

<How to minimize cost?>

목표: cost가 최소화가 되는 지점의 W 값 찾기

=> W가 1일 때

 

<Gradient descent algorithm>

기계적으로 경사를 따라 내려가면서 최저점을 찾도록 설계된 알고리즘

  • cost를 최소화하는 것이 목표 - 이때의 W와 b 값 찾기
  • 이득을 최대화하기
  • 변수가 여러 개일 때도 사용 가능한 알고리즘

 

<How it works?>

  • 최초의 추정을 통해 W와 b를 설정한다.
  • W와 b값을 cost가 줄어들 수 있는 방향으로 지속적으로 조금씩 바꾼다.
  • 바꿀 때마다 cost가 줄어드는 방향으로 값들을 update를 해나간다.
  • 최소점에 도달했다고 판단될 때까지 반복한다.

위 그래프 그림을 다시 살펴보면 초기 Weight에서 gradient 값은 양수이다. 

화살표 방향대로 조금씩 값을 수정하여 내려오다보면 더 이상 비용이 줄어들지 않는 순간이 온다.

=> Minimum cost

어디에서 시작하든 (ex. 기울기가 음수일 때) 동일한 결과를 도출해낸다.

gradient는 곡선에 접하는 직선의 기울기, 즉 cost함수의 미분 값을 통해 구한다.

 

<Formal definition>

α: 작은 상수로 learning rate (학습률)를 뜻한다. 값을 얼만큼 반영해서 W에서 뺄 지를 결정한다. 변화량을 결정한다.

0.01과 같은 작은 값으로 설정하여 조금씩 update한다. 

 

W - α * 기울기: 식을 W에 대해 편미분을 한다. 다른 변수들은 그대로 두고, W에 대해서만 미분을 하여 결과 값을 본다는 의미이다.

 

<Convex function>

local minimum: 어디에서 시작했을 때에 따라 전체 함수의 최솟값 global minimum이 아닌 지역적으로 최솟값이 될 수 있다.

이러한 상황에서는 알고리즘을 주의해서 사용해야 한다.

이러한 볼록한 함수를 Convex라고 한다.

이 그림의 경우는 local minimum이 여러 개가 아니고, local minimum과 global minimum이 일치하는 경우이다.

어디에서 시작하든 항상 최저점에 도착하는 것이 보장되므로 알고리즘을 마음 놓고 쓸 수 있다.

 

 

 

 

 

 

출처: https://youtu.be/D_ws0YyHAm8

모든 이미지 출처: http://bit.ly/2LQMKvk