학습이라고 해서 공부하는걸 의미하는건 아니고 Machine Learning에서의 학습을 의미한다.
나도 처음에 그랬지만 ML학습하는 과정을 아래와 같이 수행을 하곤한다.
대부분의 ML 초심자들도 마찬가지라 생각한다.
1. 분류하고자 하는 문서정보를 입력 데이터 형식으로 변환한다.
2. 분류기의 파라메터 값을 랜덤하게 선택해서 학습을 시킨다.
3. 테스트 해보고 가장 좋은 파라메터를 선택한다.
위의 과정에서 가장 문제시 되고 있는것이 바로 학습기의 파라메터인데 이 부분에 대해서 랜덤하게 수행을 해서 가장 좋은 성능을 가진것을 줄곧 쓴다. 하지만 이런 방법은 가장 좋은 최적의 파라메터를 구하는게 전적으로 운에 맡겨지는 것이라 성능이 그다지 좋지 않다.
그래서 제안하는 학습 전략은…
1. 분류하고자 하는 문서정보를 입력 데이터 형식으로 변환한다.
2. 데이터에 대해서 scaling을 수행해서 데이터의 입력 형식을 단순화 한다.
3. 가장 좋은 파라메터를 추적하기 위해 cross-validation을 수행한다.
4. cross-validation을 수행해서 얻은 파라메터를 가지고 full data를 활용해 학습을 시킨다.
5. 테스트 한다.
3번에서 모든 데이터를 가지고 한 라운드를 돌려서 가장 정확도가 높게 나오는 파라메터를 선택하게 된다. 이렇게 하게 되면 특정 training set에 아주 적응이 되어버리는 현상이 over fitting 문제를 어느정도 피할 수 있다.(왜 그럴까 잘 생각해보면 알 수 있다. )
이때 파라메터를 grid search 방법으로 무식하게 돌려서 찾는 방법이 가장 편하게 쓸 수 있는 방법이고 가장 널리 쓰이고 있다.
grid search 방법은 시간이 많이 걸리는 대신 병렬 처리가 가능해서 전략을 잘 짜면 쉽게 최적의 파라메터 값을 구할 수 있을거라 생각한다.
학습 전략 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.