개념 정리

다클래스 분류

명징직조지훈 2022. 11. 11. 12:42

클래스 분류란, 입력 x를 내용에 따라 유한개의 클래스로 분류하는 문제, 

예로 손글씨 인식의 문제, 이미지가 주어졌을 때 이미지의 모든 픽셀값을 성분값으로 갖는 벡터를 입력 x라고 하자, 이러한 x가 주어졌을 때 해당 이미지가 0~9 중 어느 클래스에 속하는지 분류하는 것이 목표다.

이러한 다클래스 분류를 대상으로 할 때, 신경망의 출력층에 분류하려는 클래스 수 L과 같은 수의 유닛을 구성하고, 이 층의 활성화 함수를 다음과 같이 선택한다.

출력층 l = L 의 각 유닛 k(=1,...,K) 의 총 입력은 바로 아래층 l = L-1 의 출력으로부터 

으로 주어진다. 이것으로부터 다시 출력층의 k 번째 유닛의 출력을 다음과 같이 한다.

이 함수를 소프트맥스 함수라고 부른다. 이런 방법으로 결정되는 출력은 총 합이 항상 1이 된다. 다른 활성화 함수와 달리, 유닛 k의 출력 zk 는 해당 유닛으로 들어오는 총 입력 uk 로부터만 결정되는 것과 대조적으로, 소프트맥스 함수에서는 이 층의 모든 유닛의 총 입력으로부터 결정되는 점이 다르다.

분류하려는 클래스를 C1,...Ck 라고 했을 때, 출력층의 유닛 k의 출력은 주어진 입력 x가 클래스 Ck 에 속할 확률을 나타내는 것으로 해석한다.

조건부 확률로 해석, 입력 x 일 때 Ck 일 확률

다클래스 분류에도 이진 분류와 같이 신경망이 구현하는 함수를 각 클래스의 사후확률에 대한 함수로 간주하고, 그러한 확률 모형을 기반으로 훈련 데이터에 대한 신경망 파라미터의 우도를 평가하여 그 우도를 최대화한다. 지금 입력 x와 그 정답 클래스의 쌍이 훈련 데이터로 주어진다고 하자. 

이때 신경망의 목표 출력을 이진 값을 K 개 열거한 벡터로 표현한다고 하자. dn의 각 성분은 대응하는 클래스가 정답 클래스일 때 1이 되며, 그 외에는 0을 갖는다. 

사후분포는 다음과 같이 나타낼 수 있다.

이 사후확률의 표기를 적용하면, 훈련 데이터 {(xn,dn)|n=1,...,N} 에 대한 w의 우도를 다음 식으로 유도할 수 있다.

이 우도에 로그를 취하여 부호를 반전한 것을 오차함수로 삼는다.

이 함수를 교차 엔트로피라고 한다. 
위에서는 소프트맥스 함수를 출력층의 활성화 함수로 선택하여 그 출력을 각 클래스의 확률로 간주하였으나, 이것은 다음과 같이 다르게 생각할 수 있다.

클래스 Ck 의 사후확률은 정의로부터 다음과 같이 쓸 수 있다.

이 확률은 다음과 같이 바꿔 쓸 수 있다.

이 식은 소프트맥스 함수과 같다는 것을 알 수 있다.

이와 같은 잉여성으로 신경망의 가중치를 학습할 때 출력츠으이 가중치가 잘 수렴하지 않고 학습이 느리게 진행되는 단점이 있다. 

대개의 경우 출력층에 몇 가지 제약을 추가하게 된다. 하나는 최적화를 실행할 때 가중치 감쇠를 이용하거나 출력층의 유닛 중 하나를 선택하여 그 유닛의 입력을 강제로 0으로 바꾼다.