더북(TheBook)

5.3.4 단순함

복잡도와 단순함에 대해 조금만 더 생각해 봅시다. 방금 복잡도가 성능을 얼마나 악화시키는지 구체적인 사례를 살펴보았습니다. 결과가 좋지 않았던 것은 복잡도를 올바른 이유로 사용하지 않았기 때문입니다. 학습해야 할 진짜 패턴 대신 노이즈를 표현하기 위해 복잡도를 사용했습니다. 모델이 무엇을 위해 복잡도를 사용하는지 우리는 결정할 수 없습니다. 복잡도가 다양한 여러 모델이 동일한 성능을 보였다면, 그중 제일 간단한 모델을 선택하는 것이 옳습니다.

단순한 것이 경험적으로 좋다는 것은 오컴의 면도날로도 잘 알려져 있습니다. 이는 윌리엄 오컴의 “실체가 필요 이상으로 늘어나서는 안 된다.”라는 라틴어 표현에서 유래했습니다. 우리 관점에서는 정당한 이유 없이 모델 복잡도를 늘릴 필요가 없다고 해석할 수 있습니다. 구체적인 예를 들면, 더 낮은 테스트 오차를 얻을 수 없는 한 더 높은 차수의 다항식이 필요하지 않다는 것입니다. 아인슈타인의 조금 더 긴 명언을 인용하겠습니다. “모든 것은 가능한 한 단순하게 만들어야 하지만, 지나치게 단순하면 안 된다.”

여러분 밤잠을 설치게 만들 아이디어를 하나 소개합니다. 12.4절에서 다룰 학습 방법은 훈련 세트를 완벽히 정복한 이후에도 테스트 세트 성능을 계속 개선시키는 녀석입니다. 머신 러닝을 배우는 학생은 이 모델은 학습 오차를 0으로 만들었지만 여전히 계속 성능을 개선하고 있다 말할 것입니다. 실생활에서 찾아볼 수 있는 비슷한 예로는 무엇이 있을까요? 여러분은 곧 있을 공연을 앞두고 연습을 하고 있습니다. 가족과 친구들 앞에서 리허설을 마쳤지만, 무대를 위해서는 더 준비해야 할 것이 남아 있죠. 첫 무대인 만큼 잔인한 비평가에게도 좋은 평가를 받고 싶으니까요. 나중에 이야기할 이 학습 시스템은 가족 앞 리허설을 브로드웨이 쇼로 바꾸어 주는 신기한 물건입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.