Everything is NORMAL

경사하강법(Gradient Descent) 본문

개발지식 (이론)/인공지능

경사하강법(Gradient Descent)

smlee- 2020. 2. 7. 06:54

위키에 적혀있는 경사하강법의 정의.

 

더보기

경사 하강법(傾斜下降法, Gradient descent)은 1차 근삿값 발견용 최적화 알고리즘이다. 
기본 개념은 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 것이다.

 

 

 

Neural network의 weight를 조절하는 과정에서 사용한다는 것은 알고 있는데, 좀 더 쉽게 경사하강법을 정의할 수 없을까?

내가 이해할 수 있는 문장으로 경사하강법을 정의하기 위해, 여러 블로그에서 경사 하강법에 내린 정의들을 모아볼 것이다.

 

  • cost 비용을 최소화 하기 위한 최적화 알고리즘

  • 해당 함수의 최소값 위치를 찾기 위해 cost function의 그레디언트 반대 방향으로 정의한 step size를 가지고 조금씩 움직여가며 최적의 파라미터를 찾는 방법

  • 그레디언트(gradient) : 파라미터에 대해 편미분한 벡터

  • Linear Regression에서의 cost function

  • cost의 값이 최소가 되는 것 = W의 값이 가운데로 수렴하게 된다는 것을 의미한다.

  • theta = 파라미터 벡터.

  • theta는 임의의 값으로 시작(random initialization), 조금씩 cost가 감소되는 방향으로 진행한다.

  • 그래프 위에 랜덤하게 파라미터가 정해지면, 해당 파라미터의 위치로 부터 최소값을 찾아 탐색하는 기준으로 경사도를 구해야 한다.

  • 빨간점의 위치일 때 : 경사의 기울기가 음수이므로, W의 값을 증가시킨다.

  • 파란점의 위치일 때 : 경사의 기울기가 양수이므로, W의 값을 감소시킨다.

  • 경사의 기울기를 알기 위해선, 미분이 필요하다.


 

  • 경사 하강법 : Cost function을 최소화하기 위하여 반복적으로 파라미터를 조정해나가는 것.

  • 만약 당신이 짙은 안개가 낀 산속에서 길을 잃었고, 발밑 지면의 기울기만 느낄 수 있다고 가정해보자. 산 밑으로 내려갈 수 있는 가장 좋은 방법은 무엇일까? 바로 가장 가파른 길을 따라 산 아래로 내려가는 것이며, 이것이 경사 하강법의 기본 원리이다.

경사하강법의 문제점

  • random initialization으로 인해 알고리즘이 전역 최솟값(Global minima)이 아닌 지역 최솟값(Local minima)에 수렴할 수 있음.

  • 평탄한 지역을 지나기 위해선 시간이 오래 걸리고, 일찍 멈추게 되어 전역 최소값에 도달하지 못할 수 있음.

  • 선형 회귀(Linear Regression)을 위한 MSE cost function은 어떤 두 점을 선택해 어디에서 선을 그어도 곡선을 가로지르지 않는 convex function임.

  • 이는 지역 최소값이 없고, 하나의 전역 최소값만을 가지는 것을 뜻하며, 연속된 함수이고 기울기가 갑자기 변하지 않음.

평균제곱오차 (MSE, Mean Squared Error)

 

  • n = 샘플 데이터의 개수

  • yi, y'i = i번째 데이터 포인트의 라벨값과 예측값

  • 선형 회귀의 cost function은 MSE를 사용한다.

  • y= Wx + b라는 그래프에서, cost가 최소가 될 때, 최적의 W, b값을 갖는다.

  • 원래의 W 값에서, cost의 기울기만큼 빼가면서 W의 값을 업데이트한다.

  • 이렇게 반복해서 조정해나가면, 언젠가는 최소값을 찾는다.

  • '언젠가'는 학습률(learning rate)에 달려있다.

경사하강법의 수식

  • 미분을 쉽게 하기 위해, MSE의 분모에 2를 곱해주었다. (최종 값에는 영향을 미치지 않기 때문)

  • cost function을 W에 대해 편미분하면, 현재 W 위치에서의 접선의 기울기와 같다.

  • 접선의 기울기만큼을 빼주면서, W를 업데이트한다.

W값 갱신 과정

  • 접선의 기울기의 절대값이 0이 되는 지점이 바로 최소값이 되며, 최적의 W값이 된다.

 

 

 

 

딥러닝을 공부하기 이전에, Gradient descent에 대해 명확히 알고자 하여 여러 자료들을 짜깁기했다.

중구난방 느낌이 강한데, 나중에 제대로 정리하는 글을 포스팅해야겠다!


참고 자료

[1] https://gdyoon.tistory.com/9

[2] https://jaehyeongan.github.io/2019/04/23/%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95-Gradient-Descent/

[3] https://bskyvision.com/411?category=635506

 

경사감소법(경사하강법)이란?

오늘은 경사감소법(경사하강법)에 대해서 정리하려고 한다. 경사감소법은 많은 머신러닝 및 딥러닝 알고리즘을 훈련시킬 때 사용되는 방법이다. 가장 간단한 선형회귀를 예를 들어 경사감소법을 설명하겠다. 참고..

bskyvision.com

 

Comments