머신러닝(Machine Learning) 3장
- Linear Regression의 cost 최소화 알고리즘 -
Regression은 우선 Supervised Learning의 종류로 연속적인 데이터로 결과 값을 도출하는 머신러닝의 기법이다. 그 중 Linear Regression은 선형적인 예측을 하는 방법인데 H(x) = Wx + b 와 같은 형태로 예측의 가설을 만들 수 있었다. 가설을 바탕으로 실제 결과 값과 차이를 비교하여 cost function의 값을 만들었다. 그리고 예측을 최적화하는 방법은 바로 cost function의 값을 최소화로 만드는 작업이 될 것이다.
쉽게 이해하기 위해 b라는 값을 0이라고 생각하고 가설을 H(x) = Wx 라는 형태로 먼저 살펴볼 것이다. 그러면 cost function도 Wx 값을 H(x)에 대입하게 되어 간단한 형태로 바뀌게 될 수 있다. 그러면 어떻게 하면 이 cost function을 최소화 시킬 수 있을까? 저번 시간에 다루었던 예시를 가지고 살펴보자. x와 y 값이 data set으로 주어지는데 x는 입력 값이 되고 y는 그에 대한 결과 값이 된다. x가 1, 2, 3일 때 y 값도 각각 1, 2, 3이라고 생각을 해보자. 또한 이때의 W 값이 1이라고 생각하면 cost 값은 어떻게 나타날까?
이와 같이 값을 대입시켜서 결과를 생각하면 0이라는 결과가 도출된다. W가 0일 때도 같은 방법으로 계산을 하게 되면 cost의 값은 대략 4.67이라는 값을 가지게 된다.
W가 2일 때에도 4.67이라는 cost 값이 나오게 된다. 이렇게 W에 따라 다양한 값이 나타나게 된다. 이를 통해 W 값이 변함에 따라 cost의 변화를 그래프로 그릴 수 있다. 그래프를 보게 되면 2차함수의 형태로 나타나게 되며 여기서 우리는 cost가 최소화가 되는 점을 찾는 것이 목표이다. 그래프를 그려 눈으로 보고도 알 수 있지만 우리는 기계적인 컴퓨터의 계산에 의한 결과를 얻고 싶다. 그래서 사용하는 알고리즘이 바로 Gradient descent algorithm이다. 그대로 해석하게 되면 기울기를 따라 내려가는 알고리즘이라고 할 수 있다. 이 알고리즘을 적용시키면 cost function을 최소화 시킬 수 있는 것이다. 그러면 이 알고리즘의 원리는 무엇일까?
자 다시 앞에서 본 그래프를 다시 살펴보자. 이차함수의 각 점들은 각자 경사를 가지게 된다. 만약 5에서 시작을 한다면 W가 5일 때 cost function의 기울기는 가파르다. 하지만 계속해서 왼쪽으로 움직이면 기울기는 계속 줄어들게 될 것이다. 이렇게 임의의 점에서 출발하여 기울기가 감소하는 방향으로 W의 값을 움직이면서 기울기가 가장 작은 지점을 찾아간다. 어떤 점에서 시작하더라도 최저점에 도착을 할 수 있다. 그런데 기울기를 사용하려면 미분이라는 방법을 알고 있어야한다. 미분이라는 것이 그 점에서의 기울기를 가르쳐주기 때문이다.
Gradient descent algorithm을 cost function에 적용시키게 되면 다음과 같은 식이 만들어 진다.
알파의 경우 어떤 간격으로 기울기를 측정할 것인가에 대한 지표이고 그 뒤에 나오는 미분식이 바로 cost function의 기울기를 나타내는 값이다. 앞의 그래프로 생각하면 W가 5일 때 기울기는 양수이고 그 값이 크게 된다. 그러면 W라는 값에 그 변화의 양만큼 빼게 되고 그러면 W의 값은 작아져서 5이하의 수를 가지게 된다. 위의 과정을 반복하게 되면 W가 0일 때 미분한 기울기 값이 0이 되므로 변화를 하지 않아 최솟값을 가지게 된다. 반대로 W가 –5일 때를 생각해보면 기울기가 음수이므로 W의 값을 더하게 되어 W가 0으로 가게 될 것이다.
미분을 적용시킨 gradient descent algorithm을 살펴보자. 이 수식을 기계적으로 작동만 시키면 cost function을 바로 최적화 시킬 수 있게 된다.
출처: https://copycode.tistory.com/155?category=740659 [ITstory]
'자료' 카테고리의 다른 글
머신러닝(Machine Learning) 5장 - Logistic (Regression) Classification (0) | 2020.07.08 |
---|---|
머신러닝(Machine Learning) 4장 - Multi-variable Linear regression (0) | 2020.07.08 |
머신러닝(Machine Learning) 2장 - Linear Regression의 Hypothesis와 cost (0) | 2020.07.08 |
머신러닝(Machine Learning) 1장 - 용어와 개념 설명 (0) | 2020.07.08 |
C#에서 tensorflow 사용하는 방법 알아보기 (1) | 2020.07.07 |