반응형

지도 학습에는 대표적으로 세가지가 있습니다.

 

1. 선형 회귀 ( Linear Regression ) : 3월 : 60점, 6월 : 70점, 9월 : 80점이라면, 12월은 몇 점일까?

 

2. 이진 분류 ( Binary Classification ) : [0, 1], [True, False], [개, 고양이]

 

3. 다중 분류 ( Multi classification ) : [A, B, C, D], [개, 고양이, 사슴, 곰] ...

 

 

< Linear Regression >

 

지도 학습 중 가장 대표격인 선형 회귀에 대해 먼저 알아보겠습니다. 

 

입력

X = [1, 2, 3, 4]

 

출력

Y = [3, 5, 7, 9]

 

이라면 과연 X=5일 때, Y의 값은?

 

사람은 쉽게 Y의 값이 11임을 금방 알 수 있습니다. 

 

그렇다면 기계는 어떻게 Y의 값을 알아낼 수 있을까요?

 

 

 

 

 

 

 

 

 

1. 가설 ( hypothesis ) : 초기의 값을 정해준다. 

기계는 처음엔 아무 것도 모르는 상태이므로 

 

처음엔 H(x)라는 초기 가설을 세우게 됩니다. 

 

W, b에 임의의 값이 들어가 H(x)의 값을 정합니다.

 

H(x)는 기계가 생각한 답인 Y'입니다. 

 

하지만 당연히 처음부터 답이 될 수는 없습니다.

 

 

2. Cost Fucntion ( = Loss Fucntion ) : 정답과 얼마나 틀린지 알려준다.

 

기계가 H(x)라는 가설을 세웠으니, 정답과 얼마나 같은지 비교합니다. 

 

비교를 하기 위해 사용하는 방법이 제곱의 평균(mean Mean of squares) 입니다.

 

정답과 얼마나 다른지 알려면 |H(x) - Y| 하면 되는데 왜 제곱을 하였을까요? 

 

제곱을 한 이유는

 

1. 틀렸을 때, 패널티 값을 좀 더 크게 하기위해

 

2. 컴퓨터 내부에서 절댓값보다 제곱의 속도가 더 빠르기 때문입니다. 

 

 

 

 

 

3. Cost의 값을 줄이기. 정답에 최대한 가깝게!

 

2번에서 Cost(W, b)를 구하였습니다. 

 

학습은 Cost( = loss)를 줄이는 것이 목표입니다.

 

학생으로 표현하게 되면,  문제 풀기 -> 채점 -> 오답정리로 볼 수 있습니다. 

 

기계는 채점을 했으니, 오답정리 ( 가장 최적의 W, b를 구하기 )를 하면 됩니다.

 

Cost( = loss)를 줄이기 위해 많이 사용하는 방법이 경사 하강법( Gradient Descent ) 입니다.

Gradient Descent

 

* 편미분 : 다변수 함수의 특정 변수를 제외한 나머지 변수를 상수로 생각하여 미분하는 것

 

Cost(W, b)는 이차함수 두 개를 볼 수 있습니다. 

 

1. 이차함수

▶ W ( = 기울기 )에 대한 이차함수

b ( = 절편 )에 대한 이차함수

 

2. 편미분

▶ W에 대한 이차함수를  W에 대해서 편미분한 값(기울기)이 0이 되는 지점이 정답입니다.

▶ b에 대한 이차함수를 b에 편미분에 대해서 편미분한 값(기울기)이 0이 되는 지점이 정답입니다.

 

3. Update

만약, 기울기가 0이 되지 않았다면, 0이 될 때까지 계속해서 반복합니다.

 

Learning rate란, 최적의 w값을 찾아가기위해서 비용함수를 w에 대해서 편미분해준 것에학습률이라고 합니다.

 

아직까진 정답은 없으며, Learning rate를 크게 해주면 아래의 그림보다 더 많이 움직일 것이며, 

 

작게 해주면, 아래의 그림보다 조금 움직일 것입니다. 많은 사람들이 0.0001로 사용합니다. 

 

Update : 기울기가 음수라면 오른쪽으로, 양수라면 왼쪽으로 업데이트

 

정리하자면, 문제 풀기 -> 채점 -> 오답정리로 볼 수 있습니다. 

 

수식적인 부분에서는 제가 자세히 풀지 않은 이유는

 

수학을 잘 못하는 것도 있지만, 

 

이미 많은 라이브러리들이 이러한 수식들을 제공하고 있고, 사용하면 되기 때문입니다. 

 

주마다 큰 흐름을 이해할 수 있게끔 하나씩 글을 올리도록 하겠습니다. 

728x90
반응형

+ Recent posts