다중 클래스 신경망: 소프트맥스

로지스틱 회귀는 0과 1.0 사이의 십진수를 생성합니다. 예를 들어 이메일 분류기에서 로지스틱 회귀 출력이 0.8이면 이메일이 스팸일 가능성이 80% 이고 스팸이 아닐 가능성이 20% 임을 나타냅니다. 명확하게는 이메일의 스팸 확률 또는 스팸 확률이 1.0인 것이 분명합니다.

소프트맥스는 이 아이디어를 다중 클래스로 확장합니다. 즉, 소프트맥스가 다중 클래스 문제의 각 클래스에 소수 확률을 할당합니다. 십진수 확률의 합은 1.0이어야 합니다. 이 추가 제약조건은 다른 방식으로 학습하는 것보다 더 빠르게 수렴을 수행하는 데 도움이 됩니다.

예를 들어 그림 1에 표시된 이미지 분석으로 돌아가면 소프트맥스가 특정 클래스에 속하는 이미지의 가능성을 다음과 같이 생성할 수 있습니다.

클래스 확률
apple 0.001
0.04
사탕 0.008
dog 0.95
달걀 0.001

소프트맥스는 출력 레이어 직전의 신경망 레이어를 통해 구현됩니다. 소프트맥스 레이어의 노드 수는 출력 레이어와 동일해야 합니다.

입력 레이어, 심화되지 않은 히든 레이어 2개, 소프트맥스 레이어, 소프트맥스 레이어와 동일한 수의 노드가 있는 출력 레이어가 있는 심층신경망

그림 2. 신경망 내 소프트맥스 레이어

소프트맥스 옵션

다음과 같은 소프트맥스의 변형이 있습니다.

  • 전체 소프트맥스는 논의 중인 소프트맥스입니다. 즉, 소프트맥스는 모든 가능한 클래스의 확률을 계산합니다.

  • 후보 샘플링은 소프트맥스가 모든 양성 라벨의 확률을 계산하지만 음성 라벨의 무작위 샘플에 대해서만 확률을 계산합니다. 예를 들어 입력 이미지가 비글인지 또는 블러드하운드인지 판단하는 데 관심이 있다면 개 이외의 예시에 대한 확률을 제공할 필요가 없습니다.

전체 소프트맥스는 클래스 수가 적으면 매우 저렴하지만 클래스 수가 오르면 엄청나게 많은 비용이 듭니다. 후보 샘플링은 클래스가 많으면 문제에서 효율성을 높일 수 있습니다.

단일 라벨과 여러 라벨 비교

소프트맥스에서는 각 예가 정확히 한 클래스의 멤버라고 가정합니다. 그러나 일부 예는 동시에 여러 클래스의 구성원일 수 있습니다. 예를 들면 다음과 같습니다.

  • 소프트맥스를 사용할 수 없습니다.
  • 여러 로지스틱 회귀를 사용해야 합니다.

예를 들어 정확히 하나의 항목(과일 한 조각)이 포함된 이미지가 있다고 가정해 보겠습니다. 소프트맥스는 해당 항목이 배, 오렌지, 사과 등이 될 가능성을 판단합니다. 모든 종류의 이미지(다양한 종류의 과일 그릇)가 포함된 이미지라면 대신 여러 개의 로지스틱 회귀를 사용해야 합니다.