못난명서 2023. 2. 14. 02:29

오늘 머신러닝 핵심 개념 이해는 Support Vector Machine(SVM)입니다.

그런데 공부를 하면 할수록 부족한 지식이 많아 잘 이해가 되지 않는 부분들이 많았음을 느꼈습니다.

일단 오늘은 이해한 곳까지만 정리를 해보았습니다.

후에 미적분학과 최적화 공부를 더 한 후에 다시 한번 제대로 정리해보는 시간을 가져보도록 하겠습니다.
(Lagrange Multiplier와 convex optimzer의 전반적인 추가 공부 필요!!)



오늘 제가 중점적으로 말하고 싶었던 부분은 마지막 부분입니다.

딥러닝의 인공신경망을 살펴보면 input 되어진 데이터에 서로다른 세타들을 곱해서 다음층에 생성될 첫번째 값을 만듭니다.
다른말로 하면 각각의 데이터에 서로 다른 숫자들을 곱해준 다음 하나의 열을 만든다고 할 수 있죠.

그런데 잘 생각해보면 이런 비슷한 현상이 SVM에도 있었습니다.
바로 SVM에 Kernel 함수를 적용해서 만들던 새로운 열을 생성하는 것입니다.
다시 생각해보면, 데이터를 더 높은 차원으로 보내기 위한 연산을 인공신경망에서는 내부에서 만들고 있었던 것입니다.

그런데 SVM에서 Kernel함수의 종류나 parameter들은 저희가 정했었지만,
인공신경망에서 데이터들에 곱해지는 세타는 저희가 결정하는 것이 아닙니다. 딥러닝에서는 이 세타를 에러를 줄이는 방향으로 직접 결정합니다.
이런 딥러닝의 속성을 ‘learnable kernel’이라고 부릅니다.
(컴퓨터가 데이터를 기반으로 정답을 맞추기 위한 쪽으로 직접 학습해서 세타를 결정하는 것입니다.)

지금까지는 매뉴얼하게 사람이 결정해서 불안했었는데 딥러닝에 들어가서는 컴퓨터가 알아서 찾아주게 되었고,
이 learnable kernel이라는 속성이 딥러닝이 현재 가장 좋은 성능을 내는 가장 중요한 이유라고 합니다.