본문 바로가기
코딩 독학/모두의딥러닝

모두의 딥러닝 4장. 오차수정하기: 경사하강법

by 효니루 2020. 9. 29.

이전내용에 이어서 설명 : https://bookandmed.tistory.com/9?category=1152328

 

[모두의딥러닝] 3장. 선형회귀 (Logistic regression)

선형회귀란? 한 개 이상의 독립변수(설명변수, x)와 종속변수(y)의 상관관계를 모델링하는 회귀기법이고, 이에 따라 만들어진 회귀식을 선형모델이라고 한다. 하나의 y에 하나의 x가 대응되는 경�

bookandmed.tistory.com

앞에서 그냥 쫙 그은 직선에서 실제 y값과 비교하여 평균제곱오차(mse)를 구했다.

이 mse 가 최소가 되는 직선을 구하는 것이 경사하강법이다.

 

손실함수(loss func) = 비용함수(cost func)

: 알고리즘의 오차를 나타내는 함수로 이 오차가 최소가 되는 지점의 가중치(w)를 찾아 최적의 예측함수를 찾는 것이 목표이다.

MSE 는 손실함수 중의 하나이다.

 

 

 

 

 

경사하강법의 순서

 

 

1. 특정 파라미터값으로 시작 : 임의의 a, b (가중치)로 예측함수선을 쫙 긋기!

2. Cost Function 계산 : 비용함수의 한종류인 mse를 구한다 (이전포스팅참조). 

3. 파라미터값 업데이트 : 가중치 W의 미분변화량 dW를 구하고 학습률(lr)에 따라 업데이트 한다.

dW = W - lr * dW

4. 반복학습 : 반복학습할 횟수인 epochs를 설정해주고, cost function의 결괏값이 최솟값으로 수렴할때의 가중치(w)를 구한다.

 

 

 

 

 

실습 

x는 공부한 시간 y는 성적

여기서 가중치는 처음 예측함수를 만들때 사용한 a와 b가 될 것이고, 이 가중치들이 임의로 정한 학습률(learning rate) 에 따라 얼마나 변하는지 미분변화량 da, db를 평균제곱오차(mse) 공식을 각각 a와 b에 대해 미분하여 구해준다.

 

 

 

다중선형회귀

하지만 이렇게 구한 예측함수도 실제데이터와는 오차가 당연히 꽤 클 것이다. 성적 y에 영향을 미칠 다른 요소 x를 추가적으로 고려하여 2개이상의 x와 y에 대하여 회귀분석을 하는 다중선형회귀를 구해보자.

 

실습

x1 공부시간, x2 과외횟수, y 성적 

y = a1x1 + a2x2 + b  → 가중치 a1, a2, b 

책대로 lr = 0.05 하면 수렴안하고 날라간다. lr = 0.02로 하고 epoch를 늘려서 3001로 하니 수렴한다.

댓글