1. [회귀분석] 단순선형회귀분석(Linear Regression)(1) - 단순선형회귀분석과 가정 : ysyblog.tistory.com/157
해당 포스팅은 위 포스팅에 이어서 진행됩니다.
X값이 [1,2,3,4,5] 이고 Y가 [1,3,5,7,9] 인 예제를 활용하여 포스팅을 진행하겠습니다.
비용함수란?
단순선형회귀 분석에서는 선형성을 가정하기 때문에 H(w,b) = Wx + b [Y = wx +b]입니다.
위의 예제에서는 W가 2이고 b가 -1라고 예측할 수 있으나 컴퓨터는 이를 바로 알아낼 수 없습니다. 따라서 컴퓨터를 학습(training)시켜서 W가 2이고 b가 -1이라고 예측하게 하는 것이 선형회귀분석의 목표인것입니다.
먼저 w가 1이고 b가 0이라고 가정합시다. (H(1,0) = x) -> y=x
이때 w가 1이고 b가 0인 것을 w가 2고 b가 -1이 되도록 학습을 시켜야 하는데 이를 위해서는 현재 w와 b가 얼마나 잘못되었는지 알려주어야 하는데, 이를 비용함수라고 합니다.
비용함수 계산(최소제곱법)
위의 예제(파란색 점)와 가설(f(x)=y)(연두색 선)를 그래프로 그려보면 위와 같습니다. 우리의 목표는 값을 학습시켜 잘못된 가설(연두색 선)을 예제와 잘 맞는 함수(노란색 선)으로 바꾸는 것입니다. 따라서 목표(노란색선)에 가까워지기 위해 값(w,b)를 계속 갱신해 나가야 하는 것입니다. 이 때 목표와 가설의 차이(잔차)들(빨간색선들)을 줄이면서 학습하게 하여야 하는데, 빨간색 선들의 값을 계산하는 것이 비용함수입니다.
비용함수를 구할 때는 최소제곱법(최소자승법)을 사용합니다. 최소제곱법은 근사적으로 구하려는 해와 실제 해의 잔차의 제곱의 합이 최소가 되는 해를 구하는 방법입니다. 즉, 잔차들의 제곱들을 더한 것(잔차제곱합)을 최소로 만들어주는 파라미터를 찾는 것입니다.
참고로 오차와 잔차에 대한 내용은 아래 링크를 참고하시기 바랍니다.
최소제곱법의 공식은 다음과 같습니다.
위의 예제해서 최소제곱법을 이용하여 비용을 계산하면 다음과 같습니다.
비용이 크다는 것은 처음에 설정한 w와 b가 많이 잘못되었다는 것을 의미합니다. 목표와 근사하게 되면 비용이 0에 근접하게 줄어듭니다.
비용함수를 정의하면 다음과 같습니다. 예상한 값에서 실제값을 뺀 오차의 제곱의 평균이라고 할 수 있습니다.
비용함수에서 최소제곱법을 이용하는 이유
1. 설정한 가설이 잘못되었을 때 그에 대한 패널티를 강하게 줌으로서, 학습을 빠르게 하는 효과가 있음
2. 음수처리의 문제때문. 제곱을 하지않고 절대값으로 처리하게 되면 컴퓨터는 조건문을 이용해서 처리하기 때문에 연산속도가 더 느려질 수 있음
비용을 줄이는 방법(경사하강법)
만약 기울기인 w값이 변했다고 가정합시다. 원래 값인 1보다 작아지게 되면 그래프는 아래와 같을 것입니다.
이때 빨간선들의 값들은 커지며, 제곱을 해주기 때문에 비용은 기하급수적으로 커지게 될 것입니다.
이번에는 y절편인 b값이 변했다고 가정합시다. 원래 값인 -1보다 작아지게되면 그래프는 아래와 같을 것입니다.
이때도 빨간선들의 값들은 커지며, 제곱을 해주기 때문에 비용은 기하급수적으로 커지게 될 것입니다.
따라서 W,b와 Cost와의 관계는 다음과 같습니다.
예제의 w의 최적점은 비용이 최소가 되는 2이며, 현재 가정 w=1은 최적점보다 왼쪽에 있다고 할 수 있습니다.
이때 w값을 이동시켜야하는데, 이때 기울기를 이용합니다. 2차함수에서는 기울기가 0인지점에서 최소값을 가지기 때문에 기울기를 조정하면서 이 값을 찾아야합니다. 만약 기울기가 음수라면 w를 오른쪽(증가)으로, 기울기가 양수라면 w를 왼쪽(감수)으로 이동시켜야합니다. 현재 가정인 w=1의 기울기는 음수이기 때문에 w를 증가시켜야합니다. 따라서 기울기를 조정하면서 cost가 가장 작아지게 할 수 있습니다. 이것이 경사하강법입니다.
경사하강법은 Cost를 줄이기 위해 반복적으로 기울기를 계산하여 변수의 값을 변경해나가는 과정입니다. b역시 w처럼 변화하면 비용이 크게 차이가 나기 때문에 경사하강법을 이용하여 b값을 찾아나갑니다.
W와 b 기울기 계산하기(편미분)
w와 b의 기울기를 계산하려면 cost함수를 w와 b에 대해서 미분하여야합니다.
cost함수를 풀어쓰면 다음과 같습니다.
이때 w와, b의 기울기를 구하기 위해서는 편미분이라는 것을 사용합니다.
편미분은 미분하고자하는 값으로 전체 식을 미분하는 것입니다. 편미분의 예시는 다음과 같습니다.
이제 편미분을 이용하여 w와 b의 기울기를 구해보겠습니다.
[머신러닝] 경사하강법을 이용한 선형회귀
지금까지 공부한 것을 도식으로 정리하면 다음과 같습니다.
cost가 0이라면 계산을 멈추고 그렇지 않다면 W/b값을 업데이트해주어야 합니다.
이때 업데이트는 기존 W나 b에서 편미분한 W나 b를 빼주는 것입니다.
그런데 기울기가 너무커서 최적점을 지나는 경우가 있기 때문에 알파(기본적으로 0.001)을 곱해서 값을 조절해줍니다.
이때 알파값이 학습률(learning rate)입니다.
또한 업데이트를 하는것을 EPCOH라고 하며 epoch를 반복해서 하게되면 w와 b값이 최적점에 도달하게 될 것입니다. 데이터가 많아질 경우 epoch횟수도 기하급수적으로 늘어나게됩니다.
이번 포스팅에서는 선형회귀분석의 원리와 비용함수의 원리 그리고 이것이 머신러닝에서 어떻게 작용되는지를 살펴보았습니다.
다음 포스팅에서는 최소자승법을 이용하여 w와 b의 추정량을 구해보겠습니다.
해당 포스팅은 아래 링크를 참고하였습니다.
'Data Analysis & ML > 회귀분석' 카테고리의 다른 글
[회귀분석] 단순선형회귀분석(Linear Regression)(6) - 회귀분석과 T-test (2) | 2021.02.13 |
---|---|
[회귀분석] 단순선형회귀분석(Linear Regression)(5) - 표준오차 (0) | 2021.02.13 |
[회귀분석] 단순선형회귀분석(Linear Regression)(4) - 최소제곱추정량(LSE)의 통계적 특성(불편추정량, 효율성, 선형성 가우스-마르코프 정리) (0) | 2021.01.29 |
[회귀분석] 단순선형회귀분석(Linear Regression)(1) - 단순선형회귀분석과 가정 (0) | 2021.01.28 |
[회귀분석] 단순선형회귀분석(Linear Regression)(3) - 비용함수와 최소제곱법(최소자승법) (크래머공식 / 분산 / 공분산) (0) | 2021.01.28 |