본문 바로가기
Studying/Machine Learning

[머신러닝] Local optimum이란?

by giem 2022. 7. 25.
반응형

2022.07.22 - [Studying/Machine Learning] - [머신러닝] CNN 모델 구현 with Pytorch (CIFAR-10 dataset)

 

[머신러닝] CNN 모델 구현 with Pytorch (CIFAR-10 dataset)

2022.07.21 - [Studying/Machine Learning] - [머신러닝] Convolution Layer - Padding, Stride, Dilation [머신러닝] Convolution Layer - Padding, Stride, Dilation 2022.07.21 - [Studying/Machine Learning]..

gm-note.tistory.com

이번 포스트에는 위 포스트에서 나온 local optimum에 대해 설명하려고 한다.

 


우리는 target값과 모델의 output 값을 가장 비슷하게 만들어

그 차이인 cost(loss)를 낮게 만드는데 목표를 둔다.

 

여기서 이해를 위해 그림을 보겠다.

 

By Christoph Roser at AllAboutLean.com under the free CC-BY-SA 4.0 license.

 

맨 처음 초기화가 되어 왼쪽부터 gradient descent를 하게 되면

아직 최종 목표(Global Optimum)에 도달하지 않았지만 더 진행하려고 하면

cost가 늘어나게 되어 local optimum 쪽에 멈추게 된다.

 


이전 포스트에서는 이를 방지하기 위해 Batch normalize를 했는데

전체적인 함수의 울퉁불퉁한 정도를 줄여서 빠지지 않게 하는 법이다.

 

이 방법이나 초기화를 다르게 하는 방법들도 있다.

위 그림에서는 함수의 오른쪽 부분에서 gradient descent를 시작하도록 하는 방법이다.

 

이는 weight initialization(가중치 초기화)이라 하는데

나중에 사용하게 되면 다뤄 보겠다.

 


이렇게 local optimum에 다뤄 봤지만 최근 트렌드는 이를 중요하게 생각하지 않는다고 한다.

위의 예시는 w가 1개이지만 실제 딥러닝에서는 w가 아주 많으며,

그 많은 w가 다 local optimum에 빠질 확률은 적기 때문이라고 한다.

반응형

댓글