KOOC에서 제공하는 KAIST 문인철 교수님의 "인공지능 및 기계학습 개론 1" 수업입니다.
세상의 데이터를 정확하게 나눌 수 있는 '기준'을 정하는 것은 어렵다. 왜냐하면 어디에나 error case가 존재하기 때문일 것이다. 위의 오른쪽 사진을 보면 파랑색 점과 빨강색 점을 나누는 Decision Boundary(이하 D.B)를 정해야 할 때, error 표시된 점을 고려한 D.B를 긋는다면 파랑색 줄과 같이 Non-linear 비선형 형태의 D.B가 될 것이다. 즉 more complex한 D.B를 만들면 되는 것인데, 이건 말 그대로 비선형성을 갖기 때문에 쉽지 않을 것이다.
그렇다면 다른 방법은 없을까? 경향성을 벗어나는 것이라 정의한 error에 대한 Penalty를 부여하면 어떨까? 하는 개념에서 시작되는 것이 Penalization 우리가 앞으로 배울 것이다.
그렇다면 error case를 어떻게 다룰 것인가에 대해 고민해볼 필요가 있다. Error Handling in SVM에는 크게 두 가지가 있다. 0-1 Loss와 Hinge Loss이다.
우선 0-1 Loss에 대해 알아보자.
0-1 Loss는 D.B을 넘어가는 error case를 counting해서 이를 고려한 D.B를 결정하는 방법이다. 오른쪽 그림을 보면 파랑색 점이 D.B에 닿는 순간 Size of Loss가 1로 튀는 것을 볼 수 있다. 이를 수식으로 나타내면,
이다. 이때 는 arbitrary constant 임의의 상수이다. D.B의 벡터 를 minimize하는 데에 error case를 고려해준다는 것이다.
0-1 Loss의 단점은 Penalty의 크기를 정의하지 못하고 거리에 상관없이 동일한 Penalty를 부여한다는 것이다. 또한, 교수님은 항을 quardratic program으로 정의하는 것이 어렵다고 설명해주시는데, quardratic program에 대해서 추가적으로 공부해 볼 필요가 있다는 거~
Error Handling in SVM의 두 번째 방법 Hinge Loss에 대해 알아보자. 이때 우리는 새로운 개념 slack variable에 대해 알아야 한다. 교수님의 설명에 따르면 slack variable 은 mis-classified 되었을 때 miss되는 정도라고 설명하신다.
오른쪽 그림을 보면 빨강색 점이 인 선과 만나는 순간(2번 점)부터 Penalty를 부여한다는 것을 볼 수 있다. 그리고 거리에 비례하여 Penalty는 증가한다. 이를 수식으로 나타내면,
가 된다. 이때 는 slack var의 강도를 나타내는 parameter이다. 그리고 이전에 정의한 Confidence level 는 항상 0보다 큰 값을 가지고, 이 Positive line이기 때문에, 가 된다. 그리고 slack variable 는 항상 0보다 크거나 같은 값을 가진다.
Hinge loss는 Quardratic program 관점에서 여전히 Quardratic program의 특성을 갖고 있지만, parameter 를 정해줘야 한다는 단점을 가지고 있다. 그럼 이제 이 를 어떻게 정해줘야 할까에 대해 다음장에서 알아볼거지롱~
Slack variable 를 두어 D.B를 결정하는 모델을 Soft Margin SVM이라고 부른다.
오른쪽 사진의 초록색으로 표시된 것이 slack var의 값을 지니고 있는 것이다. Hard Margin SVM에서는 error를 허용하지 않기 때문에 infeasible problem이 되었다. 즉, D.B를 만들 수 없었다. 하지만 Soft Margin SVM에서는 error case에 대한 Penalty를 부여함으로써 D.B를 정의할 수 있게 되었다.
Penalize the mis-classification case하는 penalizing func은 다음과 같다.
식을 보면 알 수 있듯이, C 값을 얼마로 정하느냐에 따라 결과가 달라질 수 있다는 것을 알 수 있다.
C값의 영향에 대해 알아보기 앞서 Logistic Regression의 Loss func에 대해 알아본다.
Logistic의 Loss func을 Log loss라고 한다. Logistic Regression을 다시 보면, MCLE(Maximum Conditional Likelihood Estimation)는 라는 것을 multiplication했는데, log func은 monotonic increase 단조롭게 증가하는 성질이 있기 때문에 log를 취해도 argmax하는 것은 달라지지 않는다. 그래서 multiplication을 sumation으로 바꿔주어 위의 사진같이 나타낼 수 있다.
이때 가 와 닮아있고, 는 마치 loss func의 역할을 하고 있다.....고 말씀하시는데 이해가 조금 안된다ㅎㅎㅎㅎ
그래서 이 slack의 loss 처럼 나타낸다고 해서, 오른쪽 사진의 파란색 선과 같다고 한다.
Hinge Loss, 0-1 Loss, Log Loss 중 어떤 loss func이 가장 좋을까? 대답은 없다 이다. 정답은 없다. 문제에 맞춰 적절한 특성을 가진 Loss func을 선택해줘야 한다.
자, 이제 C의 영향에 대해 알아보자.
그림을 보면 알 수 있듯이, C값이 커짐에 따라서 D.B가 어느정도 모습을 갖춰나가는 것을 볼 수 있다. 그리고 특정값 이상의 D.B는 크게 변하지 않는 것 또한 볼 수 있다. 그럼 마냥 큰 C값이 좋은 것일까?
하지만 주어진 데이터에 맞춰 D.B를 정해놓은 상태에서 새롭게 들어오는 데이터에 대해서 이 D.B를 적용하는 것이 옳은 것인가에 대한 판단이 더 필요할 것이라 생각한다.
다음에는 linear D.B가 아닌 non-linear D.B에 대해 알아보자자자.