본문 바로가기
AI/머신러닝

ML - Linear Regression(1) / Linear Regression이란?

by Guardy 2020. 7. 7.
728x90

본 글은 홍콩과기대 김성훈 교수님의 강의를 참고함 

 

Linear Regression으로 예측 가능한 모델은 무엇일까?

Linear Regression 말 그대로, 선형 관계를 가지고 있는 데이터를 비교적 정확하게 예측할 수 있다.

선형관계란 무엇일까?

 

선형 관계

 

y라는 데이터가 x 라는 데이터와 다음과 같은 관계성을 지닌다면, 우리는 선형관계라 칭한다.

우리는 이 관계를 머신러닝 측면에서 다음과 같이 표현 가능하다.

 

머신러닝 측면 방정식

 

이때 y프라임은 result(예측한 결과)이고, b는 bias(편향), w1은 weight1(가중치), x1은 input(입력한 데이터)이다.

하지만 실제 환경에서 대부분의 모델은 하나의 특성에 좌우되진 않는다.

따라서 대부분의 ML을 이용한 Linear Regression 모델은 여러 input(x1,x2...)들에 대해 각각의 weight(w1,w2...)을 구하는 과정으로 학습하게 된다.

 

두가지 특성에 의존하는 모델

 

 

그렇다면 어떻게 weight을 구할 수 있을까?

사실 아이디어 자체는 심플하다. 예측한 값을 y1이라하고 실제 값을 y2라고 가정하면

|y2-y1|이 최소가 되면 정확하게 예측했다고 볼 수 있고 그때의 weight을 구하면 되는것이다.

우리는 |y2-y1| 즉 모델의 오차를 구하기 위해 MSE를 사용한다.

MSE(평균제곱오차)는 다음과 같다.

 

평균제곱오차

 

 

그렇다면 어떻게 평균제곱오차가 작아지는 방향으로 학습할 수 있을까

우리는 이를 위해서 Gradient Descent Algorithm을 사용한다.

MSE 모델을 다음과 같은 cost function으로 바꿔서 생각해보자.

 

cost function

 

cost function의 모양은 어떻게 생겼을까? 

 

W와 Cost와의 관계

 

Weight과 Cost의 관계는 다음과 같이 생겼을 것이다.

Cost가 작아지는 방향은 어디일까 

현재 예측한 순간 Cost가 왼쪽에 있으면 오른쪽으로 가야할 것이고, Cost가 오른쪽에 있으면 왼쪽으로 가야할 것이다.

즉 기울기가 0인 쪽으로 가야할 것이다.

다시말해 Cost를 최소화 시키려면 기울기가 0인쪽을 향해 가면 된다. 이를 수학적으로 표현하면 다음과 같다.

 

 

여기에서 알파는 Learning Rate라고 부른다.

알파에 Cost function을 미분한 것(기울기)을 곱해서 현재 Weight에서 뺀다.

기울기가 양의 값이면 W를 감소시키는 방향으로 가고, 기울기가 음의 값이면 W를 증가시키는 방향으로 간다.

이러한 과정을 거쳐 Linear Regression 모델은 Cost function이 최소가 되는 지점으로 알아서 찾아가게 되는 것이다.

 

다음 글에서는 TensorFlow를 사용하여 간단한 Linear Regression 모델을 예측해본다.

 

 

728x90