매직코드
article thumbnail

경사하강법

 

 

 

 

 

앤드류응 머신러닝 한글자막 - 경사하강법

 

경사하강법을 통해 비용함수의 매개변수 w와 b를 훈련세트에 학습시키는 방법을 알아본다.

 

비용함수 J(w, b) = 손실함수들의 평균 = 손실함수들의합 / 손실함수의 갯수

손실함수 = 각 훈련샘플에 대한 참값과 예측값을 비교하는 함수

 

 

비용함수가 훈련세트를 잘 예측하는지 측정하려면 비용함수의 최솟값을 만드는 매개변수 w와 b를 찾아야 한다.

이차함수에서 최솟값을 찾는것과 같은 수학적 원리를 가진다.

따라서 비용함수는 항상 볼록한 형태의 이차함수여야 한다.

 

 

 

 

 

w, b를 가로축으로 하는 비용함수 그래프

 

비용함수의 그래프에서 임의의 점 하나를 골라서 경사하강법을 시작한다.

시작점에서 가장 기울기가 큰 방향으로 점이 이동하면서 결국에는 기울기가 0이 되는 지점을 찾는다.

 

 

점이 이동할 때 마다 w와b의 값이 변하는데 다음 이동지점을 얼마큼 떨어진 곳으로 할지는 학습률 a를 통해 정해진다.

새로운 w값은 기존 w값 - 학습률 a * 비용함수J의 미분계수(dw) 식을 통해 갱신할 수 있다.

보통 이차함수식에서 미분계수는 기울기라고 볼 수 있다.

 

 

w와 b의 값이 계속 갱신되다가 기울기가 0이 되는 점의 w, b값이 비용함수를 최소로 만드는 매개변수 w, b값이 된다.

보통 미분을 하는 경우 미분 대상에 대해서 d를 이용해 표기하는 편인데, 변수 2개 이상에 대해서 미분을 하는 경우 편미분이라고 구분하고 소문자 d보다는 편미분기호를 이용한다.

 


 

미분

딥러닝을 공부할 사람이라면 미적분에 대해 어느정도 알고있는 것이 좋다.

고등학생 때 이과였다면 미적분은 당연히 배웠겠지만 졸업한지 오래되어서 생각이 안난다면 개념문제집을 보는것도 좋은 방법일것같다.

미국 교육과정에서 미적분을 어떻게 가르치는지는 모르겠지만 수학 개념서는 한국문제집만큼 좋은것이 없다고 생각한다.

 

 

 

우리가 함수에서 배우는 기울기(y증가량/x증가량)는 도함수라고도 한다.

도함수의 정확한 정의는 x값은 무한하게 작은 값 만큼 이동시켰을 경우 y값이 이동하는 양을 나타내는 함수다.

d를 무한하게 작은 값 만큼 이동했다는 의미로 본다면 도함수 = dy / dx = df(x) / dx 라고 식을 쓸 수 있다.

 

일차함수에서는 기울기의 값을 그냥 x증가량 분에 y증가량으로 구하면 되지만,

경사하강법에서 사용하는 함수는 2차함수이고, 2차함수의 기울기를 구하는 방법은 미분을 하는 것이다.

 

미분을 하는 방법은 개념서에 잘 나와있고 결과론적으로만 본다면 지수 = 지수-1, 계수=지수가 된다는 것이다.

계수와 지수는 중학교 1학년때 배운 개념이다.

 

 

미분식이기 때문에 기울기에 문자a가 포함되는 것이 맞다.

 


01. Intro - 앤드류 응(Andrew Ng)교수님 머신러닝/딥러닝 한글자막 공부하기

02. 경사하강법 Gradient Descent - 앤드류 응(Andrew Ng)교수님 머신러닝/딥러닝 한글자막 공부하기

03. 얕은 신경망 네트워크 - 앤드류응(Andrew Ng)교수님 머신러닝/딥러닝 한글자막 공부하기

profile

매직코드

@개발법사

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!