[이 자료는 Coursera Stranford University Andrew Ng 교수님의 강의 자료를 활용하였습니다.]
* Using An SVM
SVM 을 구현하기 위해서 직접 코드를 작성하는 것보다 SVM 소프트웨어 패키지를 사용할것을 권장하는군요. 패키지를 사용하되 매개변수 C 와 similarity 함수와 같은 커널은 직접 선택해야 합니다. 커널을 고를때는 theta 의 개수 n 과 학습 셋의 개수인 m 을 고려해야 합니다. 어떤 커널을 선택해야 하는지에 대한 두 가지 경우를 보겠습니다.
1. n 이 크고 m 이 작을 때, 선형 커널을 선택합니다.
2. n이 작고 m 이 클 때, 가우시안 커널을 선택합니다.
가우시안 커널을 사용할 때는 반드시 feature scaling 을 해줍니다.
다양한 커널들에 대해 언급하고 있습니다. 이 커널들에 대해 자세하게 다루는것은 이 강의의 범위를 넘어서므로 스킵하겠습니다.
Multi-class classification 은 이미 많은 SVM 패키지에서 지원하고 있습니다. 로지스틱 회귀에서도 다뤘던 방법과 동일합니다.
기계학습을 할 때 가장 중요한 것은 내가 어떤 데이터 셋을 가지고 있고 이 데이터 셋에 가장 잘 맞는 모델링이 무엇이 될 것인지 고민하는 일이 아닐까 싶습니다. 위 그림은 로지스틱 회귀와 SVM 을 비교했을 때 그리고 SVM 내에서도 언제 선형 커널을 사용하거나 가우시안 커널을 사용할 것인지에 대한 케이스 분류가 되있습니다.
뉴럴 네트워크는 언급된 모든 케이스에 대해 잘 작동하겠지만 학습하는데 시간이 오래걸리는 단점이 있습니다.