머신러닝 역시 공짜 점심은 없다! - No Free Lunch Theorem
’공짜 점심은 없다’는 의미의 ’No Free Lunch Theorem’은 데이비드 울퍼트(David Wolpert)와 윌리엄 머크리디(William Macready)가 1997년에 발표한 「No Free Lunch Theorems for Optimization」[1] 이라는 논문에 실린것으로 머신러닝의 활용에 중요한 시사점을 제공하고 있다.
논문에서는 다음과 같이 적고 있다.
We have dubbed the associated results “No Free Lunch” theorems because they demonstrate that if an algorithm performs well on a certain class of problems then it necessarily pays for that with degraded performance on the set of all remaining problems. (’No Free Lunch Theorem’은 간단히 말해 특정한 문제에 최적화된 알고리즘은 다른 문제에서는 그렇지 않다는 것을 수학적으로 증명한 정리이다.)
다음 그림[2]은 이 내용을 표현한 것으로, ’No Free Lunch Theorem’을 직관적으로 쉽게 이해할 수 있게 도와준다.
![No Free Lunch Theorem](https://storage.googleapis.com/cdn.media.bluedot.so/bluedot.techsuda/wp-content/uploads/2016/01/Picture1-500x192.jpg)
최적화라는 단어가 의미하는 것처럼 특정한 문제에 최적화되어 있다면 다른 문제에서는 좋은 결과를 보여줄 수 없는 것은 상식적으로 생각해도 당연하다. 하지만 머신러닝을 적용하는 데 있어 종종 범하는 실수 중의 하나는 하나의 머신러닝 프로그램에서 너무 많은 것을 바란다는 것이다.
예를 들어, 아이리스 꽃의 3품종을 분류하도록 최적화한 머신러닝 모델에 5품종을 포함한 데이터를 넣고 제대로 분류하기를 바라는 것은 ‘No Free Lunch Theorem’에서 강조하는대로 헛된 기대이다. 3품종에 최적화된 모델이지 5품종에 최적화된 모델은 아니기 때문이다. 이런 경우에는 문제를 재정의해 5품종의 아이리스를 분류하도록 모델을 최적화하는 것이 올바른 접근이다.
머신러닝은 마법이 아니다. 학습용 데이터셋에서 종속변수와 독립변수의 관계를 분석하고 이를 기반으로 모델을 만드는 것이므로 철저하게 학습용 데이터셋에 종속된다. 따라서 언제나 그렇듯이 해결하려는 문제를 잘 정의하고 그에 최적화한 머신러닝을 적용해야 한다. <테크수다>
[1] 출처: Wolpert, D.H., Macready, W.G. (1997), No Free Lunch Theorems for Optimization, IEEE Transactions on Evolutionary Computation 1, 67. http://ti.arc.nasa.gov/m/profile/dhw/papers/78.pdf
[2] 출처: http://ecmendenhall.blogspot.kr/2006_02_01_archive.html i