ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Machine Learning] Local Minima(Local Minimum) 의 존재확률적 관점
    공부/ML 2019. 11. 18. 18:01

    머신러닝을 공부하고 다양한 예제를 작성하다 보면 몇몇 상황에서 원하지 않는 결과가 나오는 상황을 볼 수 있다.

    이유야 다양하지만(learning step, data의 특성, 나의 실력) 이번에는 Local minimum에 대한 것을 살펴보자.

     

    (바쁜 당신을 위해 빠른 진행)

     

    일반적으로 cost function을 최소화하기 위해서 열나게 모델을 작성한다.

     

    global minima == local minima

     

    위 같은 경우 크게 문제없이 최적의 값(w)을 찾아낼 수 있다. 심플하게 사람이 저기에서 걷는다고 했을 때, 아무 생각 없이 오르막길 나올 때까지 걸으면 끝이다.

     

    (우측 그림의 unregularized에 대해서는, 이 글에서 자세히 다루지 않지만, 데이터의 변수 간의 분포가 일정하지 않을 경우, 우측 그림과 같이 찌그러지게 되는데, 이 경우 overshooting의 가능성이 커지게 된다. regularize(정규화)를 통해 개선이 되기도 함.)

     

    그렇다면 이제 조금 다른 경우를 보도록 하자.

     

     

    global minima != local minima

     

    이 그래프가 산악지형을 옆에서 본 것이라고 생각해 보자.

    당신은 현재 산의 맨 좌측에서 바닥을 향해서 내려오려고 한다. 어디까지 내려가야 다 내려왔다고 알 수 있을까? 앞서 언급한 방법(오르막길나올떄까지 전진)으로는 그림의 local cost minimum에서 멈추게 될 것이다.

     

     

    아니... 거 좀 더 가면 되는거 아니냐

    맞는 말이다. 만약에 좀 더가보면 저기에 나와있는 global minimum에 도달할 수 있을 것이다.

    그렇다면 다 내려온 것이라고 할 수 있을까?

     

    다 내려왔다고 생각한 당신은 주변을 둘러보며 안심하고 그곳에 잠자리를 마련했을지 모르겠지만, 

     

    짜잔

     

    '보여주지도 않고 무슨 수작질이냐' 라고 할 수도 있다. 하지만 그게 정상이다. 전지적 작가 시점처럼 모든 것을 아는 상황이 아니라면 당신은 그곳이 최소점 인지도 모르고 저기가 시베리아 산 중턱인 것도 알 턱이 없다.

    w를 조정해 가며 최소값을 찾는 컴퓨터 또한 이와 같은 이유로 최저점을 도달하지 못하여 local minimum에 수렴해버리게 된다.

     

    그래서 w의 범위를 적절하게 부여하거나, 초기값(initial value)을 훌륭한 값으로 주어줘야 한다는 것이다.

     

     

    여기까지가 local minimum에 빠지게 되는 이유다.

    그럼 제목에서 나온 본론으로 들어가 보자.

     

    위의 내용은 local minimum이 존재한다는 가정이 깔려있다. 그렇다면 저렇게 물이 고여버릴 거 같은 local minimum이 존재하지 않는다면 정상적으로 global minimum에 도달할 수 있는 것 아닐까?

     

    적어도 필자의 생각은 '그렇다'.

    그런데 그러면 뭐해, local minimum이 저렇게 떡하니 있는데.

     

    하지만, 조금만 더 깊게, 조금만 더 높게 생각해보자.

     

    변수가 2가지일 경우(dimension=2) 하나의 데이터가 극소값(local + global)이라는 것은

    x가 감소하다가 증가하고, y가 감소하다가 증가하는 경우이다.(두 변수 모두 감소하다가 증가)

    각 x와 y는 다음과 같은 경우를 가지고 있다.

    (tmi일 수도 있지만 여기서의 x,y는 데이터 값 자체가 아닌, w(coefficient)에 의해서 변동되는 각 오차값에 대한 값이다.

    tmi=무시해도 좋다.)

     

    1. x가 증가하다가 그대로 증가한다.

    2. x가 증가하다가 감소한다.

    3. x가 감소하다가 증가한다.

    4. x가 감소하다가 그대로 감소한다.

     

    4가지 경우가 존재하며 이는 y변수 또한 똑같다.

    즉, 2차원 모델에서 어느 한 데이터가 극소값일 확률은 1/4 * 1/4 = 1/4^2 = 1/16이다.

    a개의 데이터가 존재할 때 그중에 한 녀석도 극소값이 아닌 확률은 (15/16)^a이다.

    (이는 '데이터의 특성'이나 데이터가 3개 이상이어야 minimum area가 생긴다는 여러 조건을 제외한 단순 연산이다.)

     

    위 식을 조금 n차원에서의 확률로 일반화를 시킨다면

     

    ((4^n)-1/(4^n))^a...... 음..

    n이 커질수록 확률은 1에 가까워지며 a가 커질수록 1에서 멀어진다.(하지만 n이 압도적으로 dominant 하다)

     

    물론 이 식은 정말 여러 가지 변수를 생각하지 않은 아주 구멍 투성이 식이지만, 적어도 전체적인 흐름은 이에 수렴할 것이라고 생각한다.

     

    물론 수많은 데이터에서 최솟값은 존재할 것임은 당연하다. (최솟값!= 극소값)

     

     

    실제로 "local minima high dimension"으로 검색을 해본다면 관련 논문 및 논의에 관한 것을 찾아볼 수 있다.

    관련 논문 : https://arxiv.org/pdf/1406.2572.pdf

    불러오는 중입니다...

    관련 논의 : https://www.reddit.com/r/MachineLearning/comments/2adb3b/local_minima_in_highdimensional_space/

     

    Local Minima in high-dimensional Space

    Consider a standard gradient descent approach to optimize neural networks. In a discussion with colleagues I heard the following...

    www.reddit.com

     

     

    일반적으로 modeling을 하다 보면 변수의 dimension은 굉장히 커지기도 하고 실제 사용 model의 경우 어마어마한 수의 dimension 값을 가지기도 한다.

     

    위의 내용이 맞다는 가정하에, high dimension에서 local minima의 존재 확률은 매우 작아지게 되고, 그 말은 global minima에 수렴할 확률이 높아진다는 것이다.

    (물론 얼마나 오래 걸릴지는 장담하지 않는다. trade off관계로 속도와 정확성을 교환하는 게 나을 수도 있다.)

     

    적어도 이 3차원 그래프가 2차원에서의 그래프보다 local minima의 빠질 확률이 낮다는 것은 그럴싸~하다.

     

     

     

     

    결론 : high dimension의 데이터의 경우 local minima에 대해 크게 걱정하지 않아도 될지도 모른다(?)

     

    *비판 및 조언은 매우 감사합니다.

    댓글

Designed by Tistory.