본문 바로가기

Machine Learning/CNN (ConvNets)

(CNN Study) Linear Regression

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


위키백과

통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다.[참고 1]



즉 Linear Regression 이란 간단하게 말해, 입력 X 와 출력 Y 에 대한 관계의 정보를 가진 선형 그래프를 말하고 있다.

linear regression 을 표현하는 수식은 다음과 같다.

y = wx+b 

 

익숙한 위 수식은 1차원 선형 그래프 함수와 동일하다.

w는 기울기를 말하며 b는 x가 0일 때 y의 값이다. 흔히, NN을 표현하기 위해 w는 weight, b는 bias 이다.


여기서 잊지 말아야 할 중요한 개념이 있다.


우리는 예측이라는 것을 하기 위해 linear 를 그린 것이다.

즉, 주어진 training set x, y 를 이용하여 나중에 미지의 x'을 던져주면 y를 예측해주는 것이다.

사실, 이것이 Machine Learning이라는 것이다. (생각보다 간단하게 생각할 수 있다.)


예를 들어, 

 y

 1

 3

 2

 4

 3

 5


위와 같은 값이 주어지면, 

 의 수식을 만족하는 w는 1, b는 2 가 될 것이다.

이렇게 찾아낸 w, 와 b 를 이용해 미지의 값 x' 이 5라면 y'은 7 이 될 것이라는 것을 쉽게 예측 할 수 있다.


여러분은 이러한 간단한 수식을 통해 자율주행 자동차를 구현하고, 영상 인식을 통해 카메라 안에 잡힌 물체가 무엇인지 알아내며, 나의 목소리를 구분해 내고 명령을 따르는 비서를 만들 수 있다.


그렇다면 어떻게 w 와 b 를 찾아 낼 수 있을까?

사실 답은 위에 나와 있겠지만 아래 문제를 풀어보자.

위 주어진 x,y 를 이용해 가장 알맞는 w, b는 무엇일까?


1. w=1, b = 1

2. w = 2, b = 2

3. w = 1, b = 2


위 1~3 까지는 모두 x, y를 만족하는 hypothesis(가설)이라 할 수 있는데, 그중 가장 알맞는 hypothesis은 바로 3번이 되는 것이다.

그렇다면 어떻게 w를 찾을 수 있을까?

우리는 가장 알맞는 w를 찾기 위해 cost 를 계산한다.




위와 같이 입력한 x 값에 대한 y 값에 맞는 위치에 점을 찍었다고 가정할 때, 파란 선을 우리는 임의의 hypothesis라 말할 수 있다.


cost 는 H(x) - y, 즉 가설 H(x) 에 x를 대입한 결과 와 실제 y 값의 차이를 cost 로 볼 수 있으며, 

모든 점들의 cost 의 합을 계산하면 해당 가설이 얼마나 오차가 발생하는 지 알 수 있다.


아래와 같이 Cost function 을 정의할 수 있다. 

 그렇다면 우리는 어떻게 cost function 을 이용하여 최적의 w를 찾을 수 있을까?
(2m추후 미분을 편리하게 하기 위해 임의로 추가 된 상수이다. 지금은 신경쓰지 않아도 된다.)


w, b값을 변화하며서 cost 값이 어떻게 변화 하는지 그래프를 그려보면 어떻게 모든 점들의 cost의 합이 최소가 되는 w를 찾을 수 있는지 쉽게 확인할 수 있다.




위 그림의 x축은 w값 y축은 cost(w)를 타나내는 그래프이다. 이와 같이 cost function 은 convex function(볼록 그래프)의 형태를 가지고 있다.

즉 cost 가 최소가 되는 W를 찾기 위해서는 gradient descent algorithm 을 이용한다.

gradient descent algorithm 이란 무엇인가?

위 그래프에서 기울기가 최저가 되는 점을 단계적으로 움직이면서 찾는 알고리즘이라고 볼 수 있다.

그럼 기울기란 어떻게 구할 수 있는가? 중학교 그래프 수업에서 배웠듯이, 그래프 즉 cost function 을 미분하면 w 점에 해당하는 기울기를 구할 수 있는 수식을 얻을 수 있다.

그렇다면 위에서 말한 최소 w를 찾을 수 있는 수식은 무엇인가? (minimize Cost(w))

수식은 다음과 같다.

W = W - 기울기


말로 풀면, w에 기울기를 뺀 값을 w에 다시 저장한다. 그런데 여기서 기울기가 너무 크거나 작을 수 있기 때문에 알파 만큼 곱하여 사용한다. (learning factor) b 또한 동일한 방식으로 구할 수 있다.

이렇게 우리는 w 와 b 를 구함으로써 모든 학습을 수행하였고, (처음 얘기했던) 미지의 x' 이 들어오면 예상되는 y'을 구할 수 있다.