여러개의 Class로 Classification
기존 logistic classification은 단 두개의 클래스로만 구분이 가능하였다. 여러개의 클래스로 classify를 하게되는 경우를 multinomial classification이라고 한다.
사실 multinomial classification도 logistic classification을 반복적으로 수행함으로써 구현이 가능하다.
예컨데, y = [A, B, C]로 세개의 클래스로 classify를 하게된다면
- A인지 아닌지
- B인지 아닌지
- C인지 아닌지
위의 세 단계를 거쳐서 충분히 A, B, C 세개의 클래스로 구별이 가능하다.
예컨데 logistic classification으로 세개의 클래스 a,b,c를 분류한다고 하면 위와 같은 세개의 H(x)를 가지게 될 것이다.
지금은 클래스가 세개밖에 없고 또한 각 클래스의 변수도 세개에 불과하여 사실 수식이 복잡하지 않지만 그 개수가 늘어나면 굉장히 크고 복잡해질 것이다. 따라서, 이를 행렬로 단순화 하여 표현하게 된다.
위처럼 행렬로 표현하여 단순화할 수 있다.
SoftMax
H(x)에 값을 넣어 나온 y값을 보게 되면 1~0 사이의 값을 갖는 것이 아닐 것이다. 하지만 우리는 해당 인풋이 어떠한 클래스인지를 알기 위해서 각 label들에 대한 확률값을 알아야할 필요가 있고 이를 위해서 softmax를 사용하게 된다.
softmax도 sigmoid와 유사한 생김새를 가지는 activation funtion이다. 또한 모든 값이 0~1의 값을 가진다.
다만 차이점이라면 softmax는 전체의 총합이 1이 된다는 점이다. 이러한 특성으로 확률값을 계산할 때 유용하다.
이후 one hot encoding을 통해서 확률이 가장 큰값만 1로 남기고 나머지를 0으로 만드는 식으로 활용하곤 한다.
Cost Function
손실함수로는 cross entropy를 사용한다.
classify 이후 각 label에 대한 확률값을 구하게 될텐데, 이때 cross entropy를 적용하면 예측한 확률이 정답에서 큰 경우 (제대로 예측을 한 경우) 작은 loss값을 갖게 된다. 반면 잘못 예측을 한 경우 큰 loss 값을 가지게 된다.
'AI' 카테고리의 다른 글
Activation function과 Weight initialization (0) | 2024.08.22 |
---|---|
Overfitting 방지 (0) | 2024.08.20 |
Logistic Regression (0) | 2024.08.19 |
Object Detection 알고리즘 별 Label Bounding Box 좌표 (0) | 2024.05.14 |
YOLO(You Only Look Once) 논문 번역 / 리뷰 (0) | 2024.05.13 |