코딩로그
3. linear regression의 cost 최소화 알고리즘의 원리 본문
- 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를 최소화하는 w와 b를 찾는다.
- 작동 원리
- 각점에서의 미분값*runnrate 값을 빼준다.
- 즉 , 경사가 급할수록 많이 이동하고, 경사가 완만할수록 조금이동한다
<Convex function>
- 방금은 w에 대한 cost의 그래프를 나타낸 것이지만, 사실 우리가 찾아야 하는 변수는 w,b의 두개이다.
- 따라서 3차원 그래프로 나타내면 위와 같다.
- 그런데 이 그래프의 경우 초기점을 어떻게 잡느냐에 따라 최적값이 달라진다.
- 따라서 cost 그래프는 반드시 다음과 같이 밥그릇의 형태를 띄어야 한다.
- 그래야 지역최솟값에 빠지지 않고 최솟값을 제대로 구할 수 있다.
'코딩로그 > 모두를 위한 딥러닝' 카테고리의 다른 글
*tip* TensorFlow로 파일에서 데이터 읽어오기 (0) | 2020.01.10 |
---|---|
4. multi-variable linear regression을 TensorFlow에서 구현하기 (0) | 2020.01.04 |
Lab 02 – TensorFlow로 간단한 linear regression을 구현 (0) | 2020.01.04 |
Lec 02 - Linear regression의 hypothesis와 cost 설명 (0) | 2020.01.04 |
Lab 01 - tensorflow의 설치 및 기본적인 operations (0) | 2020.01.04 |