머신러닝에서 다항함수/지수함수/로그함수/합성함수가 어떻게 활용되는지 웹앱으로 알아본다.
https://metamath1.github.io/noviceml/toyclassifier.html
이미지를 강아지와 고양이로 분류해주는 분류기이다. 벡터가 10개 밖에 안되지만(실제로 분류기가 기능하려면 화소에 따라 최소 몇천개 차원으로 이루어진다) 이미지가 10개 벡터로 변환되었다 가정하고 살펴본다.
이 분류기의 성능을 높여주려면, -log() 그래프에 표현된 최종출력값을 최소화해야 함.
즉, 입력값인 를 1에 가깝게 만들면 됨. 1에 가까우면 강아지, 0에 가까우면 고양이
벡터에 대한 값은 정해져 있으니, w의 값을 조절하여 최종적으로 가 최소화되는 w를 찾아내는 것이 분류기의 성능을 높이는 모델(벡터 w)를 찾아내는 것 같다.
만일 강아지를 클릭한 상태에서 를 2로 바꾸면 가 0.949로 1에 근접하게 된다. 그러나 고양이를 클릭하면 여전히 강아지로 분류중이다.
을 -2로 바꾸면, 고양이일 확률이 0.668로 올라간다. 의 벡터가 0이므로 를 바꿔줘도 강아지 벡터가 입력되었을 때의 성능에 영향을 주지 않는다.
이제, 최종적으로 에 아래 값을 입력해보자
성능이 좋다.
현실에선 벡터가 10개 일리가 없다. 50000차원인 경우는 를 이렇게 손으로 찾는 것은 불가능하다.
를 찾기 위해 미분을 공부해보도록 하자.