본문 바로가기

카테고리 없음

softmax의 의미 (소프트맥스 의미)

반응형

그림 출처 :Large-Margin Softmax Loss for Convolutional Neural Networks

 

Softmax

( 입력 벡터 x와 클래스 별 w 사이의 각도 & w의 크기에 따라 결정)

소프트맥스의 수식을 최대한 쉽게 표현 하면 다음과 같다. (bias 텀등을 모두 날리면)

 

각각의 클래스를 대표하는 w라는 벡터(weight vector)가 있고 

x 벡터와의 각이 가장 좁은 w 벡터를 가진 클래스에 높은 확률을 준다.

더불어 w 벡터의 크기가 커지면 높은 확률을 가져온다.

좀 더 쉽게 말하자면 w벡터와의 각차이, w 벡터의 크기가 확률을 좌우한다.

 

 

소프트맥스 학습의 핵심은 클래스를 대표하는 w들을 잘 학습하는 것이다.

잘 학습되면 트레이닝 데이터와 각이 가까운 w들이 나오게 된다.

위의 그림보면 클래스 데이터에 각편차를 최대한 줄인 w1, w2가 나온 것을 알수 있다.

 

L-softmax

(클래스 별로 각을 늘려서 분별력을 높여보자)

 

위의 예는 W1 과 W2의 크기가 같아서 x는 각이 가까운 클래스 1에 속할 확률이 높을 것이다.

 

하지만 이런 식으로는 경계가 스무스하기 때문에 자칫하면 다른 클래스로 오분류 되기 쉽다 

 

 

그래서  성능을 위해 아래와 같이 m배 마진을 차이두게 만든다. 

그림으로 보자면 아래와 같고

식으로 보자면 다음과 같은데 쉽게 말하자면  클래스 1과의 각차이의 m배보다  클래스 2를 더 벌리겠다는 의미이다. 

이를 L-softmax(large margin softmax)라고 하고  m=4일때 제일 성능이 나왔다고 한다.

 

 

 

A-softmax

(w의 크기를 무시해보자, 물론 위처럼 마진도 잘 주면서)

또한 이렇게 각만 영향을 미치는게 아니라 

w의 단순 크기도 영향을 미치기에 만약에 크기가 매우큰 w를 가진 클래스가 있다면 

쉽게 높은 확률을 가져온다.

 

그래서 w의 크기를 1으로 통일 시켜버린다면 이런문제가 사라진다.

그럼 대충 식은 이렇게 되고 오직 각으로만 승부를 보게 된다.

 

이를 Angular-softmax A-softmax라고 부른다.

반응형