컴공과컴맹효묘의블로그

수알못의 머신러닝 공부 : 경사하강법 Python으로 구현해보기 본문

컴퓨터/머신러닝

수알못의 머신러닝 공부 : 경사하강법 Python으로 구현해보기

효묘 2019. 6. 18. 16:06
반응형

지금까지 공부한 선형회귀를 수식적으로 표현한 후에 Python으로 구현해볼려고 합니다.

 

아래의 수식들은 이전 포스팅에서 자세히 다뤘습니다.

 

바로가기

수알못의 머신러닝 공부 : 비용함수

수알못의 머신러닝 공부 : 경사하강법

 

일단 점들을 지나는 직선을 표현해보겠습니다.

 

그리고 오차를 구합니다.

위 수식의 오차는 쓸모가 없습니다.

 

이유는 만약, 2개의 데이터셋에서 오차가 각각 -1, 1이 나온다면, 오차들의 평균은 0이기때문에 적절한 오차를 구할 수 없습니다. 따라서 절댓값 혹은 제곱을 씌워줍니다.

 

절댓값은 미분 불가능한 점이 나올 수 있기때문에 제곱을 씌워줍니다.

 

그리고 데이터셋의 개수인 m으로 나누고, 미분하면 2가 떨어지니 1/2을 또 곱합니다.

 

매개변수가 두 개인 비용함수

비용함수를 구했습니다. 이제 비용함수의 극소값을 구하기 위해서 경사하강법을 사용합니다.

(세타값은 임이의 수로 초기화 해줍니다.)

 

매개변수의 업데이트

 

모든 매개변수를 각각 편미분해줍니다.

 

이제 이 수식들을 모두 파이썬으로 구현합니다.

 

 

출력된 그래프를 봅니다.

 

노란색 직선은 이전 업데이트의 흔적입니다.

파란색 직선이 학습을 모두 마친 후의 직선입니다.

반응형
Comments