이책의 저자인 페드로 도밍고스는 기호주의자(Inverse Deduction), 연결주의자(Back-propgation), 진화주의자(Genetic Programming), 베이즈주의자(Bayesian Inference), 유추주의자(Support Vector Machine)로 머신러닝의 다섯 종족을 구분해두었다.

 

머신러닝의 기본서 같은 책이라 추천받아 봤는데, 세상에나... 난 진화연산을 머신러닝의 한 분파로 분류해줄 줄은 몰랐다.

 

진화연산을 공부하면서 항상 고민되던 부분이 어떻게하면, 진화의 부분을 학습과 같이 수행할 수 있도록 하는가에 대한 것이었다. 예를 들면 역전파 알고리즘은 항상 결과의 피드백으로 가중치의 값을 변경해나아가는데, 이 과정을 하나의 목표를 향한 학습이라 볼 수 있다.

 

그런데, 진화 연산에서의 선택은 많은 부분에 있어서 랜덤이다. 물론 진화연산을 이용한 수치최적화 부분에서의 일부 연산 방식의 경우, 결과값을 기반으로하여 점점 본래의 값을 변화시켜 나아가기 때문에 일종의 학습처럼 보일 수 있다. 그러나 유전프로그래밍의 연산자는 트리의 어떤 한 노드를 선택하여 하위 전체 노드를 변경하거나, 랜덤으로 특정 노드를 특정 트리나, 노드로 변경하는 방식이 대부분이다. 그렇기에 이를 학습이라보기는 항상 어렵다고 생각하고 있었는데, 이를 머신러닝의 한 분류로 넣어줄 줄은 몰랐다.

 

이 책에서도 물론 의문을 제기하고 있긴 하다. 여전히 유전프로그래밍이 문제를 해결하는 방식이 수많은 탐색공간을 뒤지는 탐색의 결과인지, 진화를 모델링한 것의 효과인지는 불분명 하지만... 이라는 단서를 달아서. 그리고 나 역시도, 이 부분에 대해서 공감은 하지만, 순수한 랜덤 탐색으로만 찾아낼 수 있는 결과에 비해 항상 더 우수한 결과를 보여줄 수 있는 것은 진화의 모델링에 의한 결과라고 생각한다.

 

아무튼 흥미로운 관점이고, 머신러닝의 다른 부분에 대해서도 다시 간단하게 살펴볼 수 있는 좋은 기회였다.

+ Recent posts