Search
Duplicate

Multiclass SVM Loss

개념

Li=jyimax(0,sjsyi+Δ)L_i = \sum_{j\neq y_i} \max(0, s_j - s_{y_i} + \Delta)
sjs_j : 분류기를 통해 예측한 각 클래스 별 score syis_{yi} : 해당 클래스의 정답 score Δ\Delta : Safty Margin (예측 값과 정답 값에 대한 상대적인 차이를 주기 위해 설정)
f(xi,W)f(x_i,W)를 통해 구한 정답 카테고리(yiyi)의 score와 나머지 카테고리(jj)의 score를 비교한다.
sjs_jsyis_{yi}의 차이가 Safety Margin(아래의 예시에서는 1) 이상이라면 Loss는 0. 그렇지 않은 경우에는 Loss는 sjsyi+Δs_j - s_{y_i} + \Delta
나머지 카테고리의 모든 값의 합이 한 이미지의 Loss이고, Training Data Set에 속한 이미지들의 Loss 값을 평균내 Data Set에 대한 Loss를 구한다.

Example

고양이 이미지의 경우 jj에 속하는 자동차와 개구리에서의 score와 각각 비교하여 Loss를 구한다. 자동차와 비교한 경우 sjs_j (5.1)에서 syis_{yi} (3.2)를 뺴고 1를 더하면 2.9 값을 얻게되고, maxmax 함수 값에서 최종 2.9의 값을 얻는다. 개구리와 비교한 경우 score 간의 차이를 구하면 -3.9 값이 나오고 이 때 maxmax 함수 값은 0이 된다. 자동차와 비교하여 얻은 2.9 값과 개구리와 비교하여 구한 0 값을 더해 고양이 이미지에 대한 최종 Loss는 2.9가 나온다.
나머지 두개의 사진에 대해서도 같은 방법으로 Loss를 구한다음, 각 Loss 값을 더하고 클래스 수 만큼 나누면 최종적으로 이 Data Set에 대해서 5.27이라는 Loss 값을 얻게된다.