한 페이지 머신러닝

결정 (decision)과 최적화 (optimization)

[동영상 링크]

 

이번 시간에는

결정 (decision) 하는 문제와

최적화 (optimization)하는 문제가

개념상으로 어떤 관련이 있는지를 살펴보려고 합니다.

 

머신러닝은

사람 대신에 결정해주는 기계를 만드는 일이라고 했습니다.

그러기 위해서는 학습(learning)을 해야 하는데요.

왜냐하면

현재 알려진 (known) 정보는

결정을 하기에 언제나 불완전하기 때문입니다.

현재 알려진 것에만 기대어 결정을 한다면

현재 알려진 결론 외의 것은 기대할 수가 없겠죠.

결정이란 자신이 모르거나 불확실한 대상에 대하여 내리는 것이지

다 알고 있는 대상에 대하여는 결정이 필요하지 않습니다.

그래서 유용한 결정이란

필연적으로 불확실성을 어느정도 내포합니다.

 

지금 우리가 알고 있는 지식으로

어떤 기계 (M)을 만들고요.

그 M을 구성하는 어떤 값 (theta)들을 무작위로 세팅 (randomly initialize)해줍니다.

이렇게 아무렇게나 세팅된 M은

데이터를 덜 배웠으므로

당연히 근거없는 아무 말이나 하면서 아무 결정이나 무의미하게 내리는 기계 이겠죠.

이것을 underfit 된 기계라고 부릅니다.

fit 이란, 맞추어졌다. 라는 뜻입니다.

우리가 몸에 잘 맞는 옷을 보면

핏이 잘 맞네

라고 하죠.

그때 말하는 fit 입니다.

underfit 이니까, fit이 덜 되었다는 것을 말하는 것이죠.

 

M에게 데이터를 보여주고 보여주고 더 많이 보여줄 수록

M이 가진 theta라는 값은 점점

수많은 데이터를 공통으로 설명할 수 있는 지점을 향해서 교정되어 갑니다.

그러나 데이터를 너무 심하게 보여주면

M이 가진 theta라는 값은

오직 알려진 정보의 범위 안에서만 결정을 내리는

overfit 된 기계가 되고 맙니다.

우리말로 과적합 이라고 하는데요,

overfit된 기계는, 주어진 데이터는 심하게 잘 설명하지만

모르는 데이터에 대해서는 아주 엉뚱한 결정을 내립니다.

이러면 결정해주는 기계를 만드는 의미가 없지요.

모르는 상황에 대해서 결정을 하라고 기계를 만들었더니

뻔히 아는 것에 대해서만 모조리 잘 결정하고

모르는 상황에서는 엉뚱한 소리를 하는 것이니까요.

 

그래서 underfit과 overfit 사이의 ‘적당한' 값에 닿을 때

theta를 튜닝하기를 멈춰야 합니다.

이 ‘적당한’ 이라는게 애매한 부분이 분명히 있지만

공학적으로는 기준이 있는데

기계 M이

training데이터에 대해 내리는 결정을 유심히 지켜보면서

동시에 validation 데이터에 대해 내리는 결정도 유심히 지켜봅니다.

training데이터는 기계 M이 theta를 튜닝하는데(변화시키는데) 사용하는 데이터 이고요

validation데이터는 기계 M에 설정된 theta는 변화시키지 않고, 단지 M이 내놓는 결정이 옳은지 그른지만을 판단합니다.

 

학습 초기에는

training데이터를 결정하는 정도와

validation데이터를 결정하는 정도가 함께 나아지지만

학습이 과적합 (overfit)을 향해 갈수록

training데이터는 더욱 잘 설명하면서

validation데이터에 대해서는 엉뚱한 소리를 하기 시작합니다.

그 지점에서 학습을 멈추어야 되는 것이죠.

 

아주 정밀한 결정과

아주 맘대로 결정의

어중간한 지점에서 학습을 멈추면

그때의 theta에는 hat 을 붙여서 표기를 해 주는데

최적의 결정 (optimum)을 내리도록 세팅이 완료된 theta라는 영광의 표시 입니다.

이렇게 만들어진 기계 M은, 자신이 본 적 없는 데이터에 대해서

아주 뻔하지는 않으면서 (=적당히 유용하면서), 또 엉뚱하지도 않은 (=적당히 합리적인)

결정을 내려줍니다.  

 

요약하자면

결정하는 기계 M을 만들고,

데이터를 탐사하면서 스스로의 값 theta를 fit (학습) 시키고,

optimum한 지점에서 fit (학습)을 멈춰서

마침내 사람 대신

결정을 내리는 일에 사용할 수 있게 됩니다.

 

댓글

댓글 본문