본문 바로가기

2020/10

(3)
모델 복잡도 제어하기 무료하게 시간을 보내다 정신을 차리니 일요일 저녁이다. 1편에 이어 2편을 바로 적어야 할 것 같은 압박감에 급하게 적는다. 이 글은 모델 복잡도를 다루는 방법들을 종합/정리하는 차원에서 적기 때문에 개념적으로 설명한다. 개별 알고리즘의 상세 내용은 다른 레퍼런스를 참조하기 바란다. 작년에 팀에 새로 합류한 친구들과 약 스무 개의 모델 복잡도를 다루는 방법을 나열한 적이 있다. 모든 방법을 다 수긍한 것은 아니지만 일반적으로 활용하는 방법들은 대부분 정리된 듯하다. 당시에 논의했던 리스트는 지금 없어서 지금 당장 생각나는 방법들만 몇 개의 카테고리로 나눠서 적는다. 1편에서 적었듯이 모델 복잡도는 모델의 변수가 많고 차수가 높아서 복잡해지는 경우도 있고, 사용되는 데이터의 차원이 너무 크거나 데이터가 부..
모델 복잡도의 개념 모델의 복잡도는 다양한 관점에서 정의되고 설명될 수 있어서 조심스러운 주제다. 좀 더 이론적이고 종합적으로 설명해야 하는 주제인데, 능력의 한계로 아주 지엽적이고 편향되게 설명할 수 있으니 다른 텍스트북이나 글들을 참조해서 개념을 제대로 정립했으면 하는 바람이다. 복잡도를 다스리는 여러 테크닉들은 다음 글로 미루고 오늘은 복잡도의 개념이나 원인 등에 관해서만 적는다. 복잡한 모델은 뭘까? 비선형 모델은 모두 복잡할까? 모델의 독립변수 (X) 종류와 개수가 많으면 복잡한 걸까? 트레이닝 데이터에 과학습(over-fit)되면 복잡한 걸까? 아니면 여러 잡다한 모델들을 앙상블 하면 복잡한 걸까? 이외에도 복잡한 모델에 관한 다양한 의문이 있을 수 있고, 그런 모든 의문이 어쩌면 모델 복잡도의 여러 측면을 잘 ..
차원의 저주와 축소 차원의 저주가 무엇이고 어떻게 해결할 수 있는가?는 인터뷰에서 종종 묻는 질문이다. 난이도가 높지 않음에도 만족스러운 답변을 들은 적은 없다. 책은 용어/개념만 소개하고 서베이 논문은 여러 알고리즘을 분류하기만 할 뿐 개념과 함의를 종합적으로 정리하지 않은 듯하다. 그래서 이 글은 다양한 관점에서 개념적으로 이해하는 데 도움을 주고자 한다. 참고자료를 찾아보지 않고 그냥 기억에 의존해서 쭉 적어나가기 때문에 일부 방법론의 구체적인 내용은 사실과 다를 수 있으니 자세한 것은 직접 찾아보기 바란다. 차원의 저주? 예외적인 경우룰 제외하면 데이터의 피쳐(와 양)가 많을수록 더 정확한 모델을 구축할 수 있다. 기존 모델이 불만족스러울 때 가장 먼저 새로운 피쳐를 발굴해서 추가하는 작업을 하는 것도 가장 쉽고 효..