본문 바로가기
ML & DL (Machine Learning&Deep Learning)/Deep Learning (DL)

[TensorFlow] 경사 하강법(Gradient Descent)

by 초코칩프라푸치노 2021. 2. 1.

⊙ 경사 하강법(Gradient Descent)

경사 하강법(GD)은 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘이다. 경사 하강법의 기본 아이디어는 비용(2차원: y, 3차원: z)을 최소화하기 위해 반복해서 파라미터를 조정해 나가는 것이다. 파라미터 벡터 세타에 대해 비용 함수의 현재 그레디언트를 계산한다. 그리고 그레디언트가 감소하는 방향으로 진행하다가 0이 되는 지점이 최소인 것이다. 

 

 

구체적으로 보면 초기값을 임의의 값으로 시작하여 한 스텝에 비용 함수가 감소되는 방향으로 진행하여 알고리즘이 최솟값에 수렴할 때까지 점진적으로 향상한다.

 

⊙ 학습률(Learning Rate)

경사 하강법에서 중요한 파라미터는 학습 스텝의 크기로, 학습률 하이퍼 파라미터(모델링을 할 때 사용자가 직접 세팅해주는 값)로 결정된다. 학습률이 작으면 알고리즘이 수렴하기 위해 반복을 많이 진행해야 하므로 시간이 오래 걸릴 것이다. 반면 학습률이 너무 크면 최솟값을 건너뛰게 되어 이전보다 더 높은 곳으로 올라가게 될지도 모른다.  

 

학습률이 너무 작을 때 / 학습률이 너무 클 때

 

⊙ 특성 스케일

경사 하강법을 사용할 때는 반드시 모든 특성이 같은 스케일을 갖도록 만들어야 한다. 즉, 데이터들의 수치의 크기를 맞춰된다는 것이다.

 

특성 스케일 적용한 경사 하강법 / 특성 스케일 적용하지 않은 경사 하강법

 

그림에서 볼 수 있듯이 왼쪽의 경사 하강법 알고리즘이 최솟값으로 곧장 진행하고 있어 빠르게 도달한다. 반면에 오른쪽 그래프는 처음엔 전역 최솟값의 방향에 거의 직각으로 향하다가 방향이 꺾이는 것을 알 수 있다. 결곡 둘 다 최솟값에 도달하겠지만 시간이 오래 걸릴 것이다. 

또한 우리는 이 그림을 통해 다차원을 다룰수록 그에 맞는 파라미터 조합을 찾아야 되므로, 차원이 커질수록(파라미터가 많아질수록) 검색이 오래 걸림을 알 수 있다.

 

⊙ 한계

모든 비용 함수가 이차함수와 같이 미분 가능하거나 매끈하지 않다. 이 때문에 경사 하강법은 임의의 비용 함수에 대하여 두 가지 한계를 갖는다. 

① 지역 최솟값이 전역 최솟값과 같지 않을 경우

지역 최솟값(극솟값)이 전역 최솟값이 아닐 경우에는 지역 최솟값을 전역 최솟값보다 먼저 도달하게 될 경우, 모델은 이를 전역 최소로 오해할 수 있다.

 

② 비용 함수의 일부 개형이 상수 함수 꼴일 경우

그레디언트가 0인 경우는 극값을 제외하고도 상수 함수 꼴일 경우가 있다. 삼차 함수의 개형을 생각해보면 x = 0인 지점은 최소가 아님에도 불과하고 그레디언트 값이 0 임을 알 수 있다. 이 지점을 통과할 때, 학습률이 낮으면 모델은 x = 0인 지점에서 최소로 오해할 수 있다.

 

다행히도 선형 회귀를 위한 MSE(평균 제곱 오차) 함수는 곡선에서 어떤 두 점을 선택해 선을 그어도 곡선을 가로지르지 않는 볼록 함수이다. 이는 지역 최솟값이 없고 하나의 전역 최솟값만 있다는 뜻이다. 또한 연속된 함수이고 미분 불가능하지 않다. 이 두 가지 사실로부터 비용 함수가 MSE이고 적절한 학습률, 스케일과 시간이 존재한다면 우리는 경사 하강법을 이용하여 전역 최솟값을 구할 수 있다는 것을 보장받는다.

 

 

 

⊙ 해당 문서는 '핸즈온 머신러닝(2판) - 오렐리앙 제롱 저'의 책을 공부하며 정리한 글입니다.

book.naver.com/bookdb/book_detail.nhn?bid=16328592

 

핸즈온 머신러닝(2판)

컬러판으로 돌아온 아마존 인공지능 분야 부동의 1위 도서이 책은 지능형 시스템을 구축하려면 반드시 알아야 할 머신러닝, 딥러닝 분야 핵심 개념과 이론을 이해하기 쉽게 설명한다. 사이킷런,

book.naver.com

 

 

반응형

댓글