이론
우리가 Supervised Learning을 할 때에, 학생이 몇시간 정도 공부를 했더니 얼마정도의 성적을 받았다는 데이터를 학습을 하게됩니다.
여기서 우리가 예측을 하고자하는 최종적인 목표가 0~100의 범위를 가지는 값입니다.
이런 종류의 학습을 Supervised Learning 중에서도 regression이라고 합니다.
설명을 간단히 하기 위해서, 데이터셋을 다음과 같이 간단하게 두어 보겠습니다.
이 데이터를 그래프로 그려보면 오른쪽 그래프와 같이 표현됩니다.
그래서 우리가 이 regression 모델을 학습한다는 것은 어떠한 하나의 가설을 세울 필요가 있습니다.
"어떤 Linear한 모델이 우리 데이터에 맞을 것이다" 라는 가설 하에 생성된 모델이 바로 Linear regression입니다.
이 Linear regression이 효과가 좋은 이유가 세상에 있는 많은 데이터들이 또는 세상에 있는 많은 현상들이 이 Linear한 것으로 설명될 수 있는 경우가 많이 있기 때문입니다.
맨 위에서 설명했듯이, 어떤 학생이 공부를 많이할수록 성적을 잘 받는다던지, 연습을 많이할수록 실력이 좋아진다던지, 집의 크기가 크면 클 수록 집의 가격이 올라간다는 것들이 이 Linear로 설명을 할 수 있고, Linear하게 모델을 세울 수 있습니다.
Linear로 설명을 할 수 있는 또는 Linear하게 모델을 세울 수 있다는 것은 어떤 데이터들에 잘 맞는 Linear한 선을 찾는다라고 말할 수 있습니다.
이에 맞는 어떤 선을 찾는 것이 바로 학습을 하는 것입니다.
이 선을 수학적으로 나타내면 다음 형태의 수식이 나옵니다.
이 선의 모양은 W와 b에 따라 결정이 되겠죠.
우리는 이 Hypothesis를 이런 1차 방정식으로 될 것이라고 세우는 것이 Linear regression입니다.
이런 가설에 따라 우리는 많은 선들을 만들어낼 수 있습니다.
이 선들 중 어떤 선이 데이터와 가장 맞는 선인지에 대해서 결정할 수 있습니다.
위의 데이터에 따라서는 H(x) = 1* x + 0 의 가설이 가장 잘 들어맞는다고 할 수 있습니다.
가장 기본적으로는 어떤 선이, 어떤 모델이, 어떤 가설이 좋은 가를 판단할 때는 실제 데이터와 이 선들이 이루는 거리로 판단합니다.
즉 선과 데이터들의 거리가 멀면 잘 맞지않은 모델이고, 거리가 가까우면 잘 맞는 모델이라고 할 수 있습니다.
이것을 Linear regression에서는 Cost function이라고 합니다. 다른 말로 하면 Loss function입니다.
가장 기본적으로 계산하는 방법은 이 차이를 계산하는 것입니다.
즉 H(x) - y 라는 식을 보게됩니다.
그러나 이 식은 양수일 수 있고, 음수일 수도 있기 때문에, 거리를 계산하는 아래와 같은 방법을 채택하게 됩니다.
이 식은 차이가 양수와 음수인 것에 상관없이 일정하게 차이를 양수로 표현합니다.
또 제곱을 하기 때문에, 차이가 커질수록 더욱 큰 페널티를 주게됩니다.
모든 데이터에 대해서 위의 거리를 계산하여, 산술평균을 구합니다.
이 구해진 식을 Linear regression에서는 Cost function이라고 합니다.
그럼 이 Cost function은 실제적으로
다음과 같이 표현할 수 있습니다.
그럼 이 Cost function은 결국 W와 b에 대한 function입니다.
여기서 Linear regression의 과제는 이 Cost function을 가장 작게 만드는 W와 b를 구하는 것입니다.
즉 Linear regression의 학습은 Cost function이 가장 작은 값 W와 b를 구하는 것입니다.
'AI > Lecture notes' 카테고리의 다른 글
[ML lec 06] Softmax Regression (0) | 2017.07.21 |
---|---|
[ML lec 05] Logistic Classification (0) | 2017.07.19 |
[ML lec 04] multi-variable linear regression (*new) (0) | 2017.07.17 |
[ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2017.07.15 |
[ML lec 01] 기본적인 머신러닝의 용어와 개념 설명 (0) | 2017.07.04 |