다음과 같이 시험점수를 예측하는데 세 개의 변수를 사용해보자.

변수가 여러 개일 때는 가설이 아래와 같이 각 변수에 가중치가 곱해지고,
비용함수는 동일하게 만들어진다.

일일이 n개의 항을 나열해서 쓰는 것은 번거롭기 때문에 아래와 같이 행렬을 이용해서 간편하게 가설을 나타낼 수 있다.
행렬로 나타내면 피처가 몇개가 되던 동일한 표현 방식으로 심플하게 나타낼 수 있다.

주의할 점은 이론적으로 우리가 가설식을 쓸 때 가중치를 먼저 쓰지만(wx)
텐서플로에서 가설을 나타낼 때는 데이터 값을 먼저 쓴다.(XW)

계산을 단순하게 하기 위해서 bias가 없는 Hypothesis를 가정하면 비용함수는 아래와 같다.
(W가 매트릭스가 되면 bias도 W안에 포함되어 있다.)

이 단순한 가설에서 W에 따른 cost를 계산하면 아래와 같이 나온다.

조밀한 그래프로 그리면 이와 같이 나오는데, 이 그래프에서 cost가 최소값이 되는 지점을 찾는 것이 목표이다.
그래프를 직접 눈으로 보면 직관적으로 알 수 있지만, 컴퓨터가 최저점을 하려면 알고리즘이 필요하다.

Gradient Descent Algorithm

이를 위한 방법 중 하나가 Gradient Descent Algorithm(경사하강법)이다.
비용함수 cost(W,b) 에서는 비용이 최소화되는 W와 b를 찾게 된다.

작동방식

(1) 최초의 임의의 추정값을 통해서 W와 b값을 정한다.
(2) cost(W,b)가 줄어들도록 W와 b를 계속 변화시키며 Gradient(기울기, 미분값)를 구한다.
(3) local minumum에 도달할 때까지 반복한다.

Cost function의 미분(Gradient 구하기)

우선 미분 이후 식을 간편하게 보기 위해 Cost 함수를 약간 수정한다.
(몇으로 나누는 Cost의 특성에 크게 영향을 주지 않는다.)

경사하강법에서는 W를 비용함수의 미분값과 학습률(ɑ, learning rate)의 곱을 차감하며 계속 업데이트 한다.
W가 얼마나 빠르게 업데이트 되는지는 학습률(ɑ)의 값에 따라 달라진다.

아래 그림은 W와 b의 값에 따른 비용함수를 3차원으로 나타낸 것이다.
이런 형태의 비용함수에서는 경사하강법에서 어떤 지점에서 경사하강법을 사용하느냐에 따라
최소값을 찾지 못할 수 있다. (Local Mimimum에 빠질 수 있다.)

1. Regression

  • 의미 : Regression toward the mean
    → 데이터들은 전체의 평균으로 되돌아가려는 특징이 있다는 의미

2. Linear Regression

데이터(아래의 파란색 점)를 가장 잘 대변하는 직선의 방정식을 찾는 것(기울기와 절편을 찾는 것)

3. Hypothesis

데이터를 대변하는 것으로 생각되는 직선의 식(가설)을 H(x) = Wx + b 라고 한다.
이 때의 W를 Weight, b를 bias라고 한다.


위 그래프의 파란 세점을 나타내는 세 개의 선이 있다고 하자.
이 경우에는 파란색 점선이 가장 이 점들을 잘 나타내는 것으로 보인다.
이 때의 W와 b를 어떻게 정의할 수 있을까?

4. Cost


H(x) = Wx + b의 W와 b값을 찾기 위해 Cost라는 개념을 도입하게 된다.
위의 그래프에서 가설의 그래프가 실제 데이터(점)과의 거리, H(x)-y를 Error 혹은 Cost라고 한다.
이 Cost가 작을수록 점선(가설)이 데이터를 잘 대변한다고 볼 수 있다.


그런데 이 때, 단순히 합을 최소화하고자 할 때, 데이터에 따라 Cost 값이 양수일수도 음수일수도 있다.
실제 데이터와 차이가 많이 나더라도, 양수와 음수 값이 서로 상쇄해서 Cost가 적은 것처럼 보일 수 있다.
이 점을 보완하기 위해서 각 Error의 제곱을 합산해서 이 값의 최소값을 구하는 방식이 많이 사용된다.

가설의 비용함수(Cost function)을 아래와 같이 나타낼 수 있다.


이 때 W와 b의 함수인 비용함수를 최소화하는 것이 선형회귀에서의 우리의 목표라 할 수 있다.

+ Recent posts