Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

코딩로그

3. linear regression의 cost 최소화 알고리즘의 원리 본문

코딩로그/모두를 위한 딥러닝

3. linear regression의 cost 최소화 알고리즘의 원리

hyeonnny 2020. 1. 4. 15:05

 - linear regression의 cost 최소화 알고리즘에 대해 알아보자. 이전시간에는 텐서플로에서 제공하는 간단한 코드 몇줄로 cost를 최소화 했지만, 이번에는 그 원리에 대해 알아보고 구체적인 부분까지 구현해볼 것이다.

 

<cost function>

 - 일단, 설명을 간단하게 하기 위해 편향 b를 없애보았다.

 - 다음과 같은 training data 가 있을 때, W의 값에 따라 cost(W)의 값은 어떻게 변할까?

  • W = 1, cost(W) = 0
  • W = 0, cost(W) = 4.67
  • W = 2, cost(W) = 4.67

 - 계산해 보면 위와 같다. W를 x축으로, cost(W)를 y축으로 하여 그래프로 나타내보았다.

 - 다음과 같이 이차함수의 형태를띈다. 그림을 보면 1에서 최솟값을 갖는 것을 알 수 있다.

 - 그런데 기계는 과연 이런 최솟값을 어떻게 알 수 있을까? 밑에서 알아보자.

 

 

<Gradient descent algorithm>

- cost function을 최소화한다

- 많은 최소화 문제에서 쓰이는 알고리즘이다

- 주어진 cost function cost(w,b)에 대해 cost를 최소화하는 wb를 찾는다.

 

 

 - 작동 원리

 - 각점에서의 미분값*runnrate 값을 빼준다.

 - 즉 , 경사가 급할수록 많이 이동하고, 경사가 완만할수록 조금이동한다

 

 

<Convex function>

 - 방금은 w에 대한 cost의 그래프를 나타낸 것이지만, 사실 우리가 찾아야 하는 변수는 w,b의 두개이다.

 - 따라서 3차원 그래프로 나타내면 위와 같다.

 - 그런데 이 그래프의 경우 초기점을 어떻게 잡느냐에 따라 최적값이 달라진다.

 - 따라서 cost 그래프는 반드시 다음과 같이 밥그릇의 형태를 띄어야 한다.

 - 그래야 지역최솟값에 빠지지 않고 최솟값을 제대로 구할 수 있다.