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

로지스틱 회귀는 0과 1.0 사이의 소수를 생성합니다. 예를 들어 이메일 분류자의 로지스틱 회귀 출력이 0.8이면 이메일이 스팸일 확률이 80%이고 스팸이 아닐 확률이 20%임을 나타냅니다. 분명히 이메일이 스팸일 확률과 스팸이 아닐 확률의 합은 1.0입니다.

소프트맥스는 이 아이디어를 다중 클래스 문제에 적용합니다. 즉 소프트맥스가 다중 클래스 문제의 각 클래스에 소수 확률을 할당합니다. 소수 확률의 합은 1.0이 되어야 합니다. 이 제약조건을 추가하면 제약조건을 추가하지 않은 경우보다 더 빠르게 수렴을 학습할 수 있습니다.

예를 들어 그림 1에 표시된 이미지 분석의 경우 이미지가 특정 클래스에 속할 확률은 다음과 같습니다.

클래스 확률
사과 0.001
0.04
사탕 0.008
0.95
계란 0.001

소프트맥스는 출력 레이어 바로 앞의 신경망 레이어를 통해 구현됩니다. 소프트맥스 레이어의 노드 수는 출력 레이어와 같아야 합니다.

입력 레이어 하나, 별 특징이 없는 히든 레이어 두 개, 소프트맥스 레이어 하나, 노드 수가 소프트맥스 레이어와 같은 출력 레이어 하나가 포함된 심층 신경망

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

소프트맥스 옵션

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

  • 전체 소프트맥스는 지금까지 설명한 소프트맥스입니다. 즉 모든 가능한 클래스의 확률을 계산하는 소프트맥스입니다.

  • 후보 샘플링은 소프트맥스가 양성 라벨의 확률은 모두 계산하지만 음성 라벨의 경우 무작위 샘플의 확률만 계산합니다. 예를 들어 입력 이미지가 비글인지, 블러드하운드인지 확인하는 경우 개가 아닌 예의 확률은 제공할 필요가 없습니다.

전체 소프트맥스는 클래스 수가 적으면 매우 적은 비용이 들지만 클래스 수가 증가하면 엄청나게 많은 비용이 듭니다. 클래스 수가 많은 문제에서 후보 샘플링을 사용하면 효율성이 향상됩니다.

라벨 1개 대 라벨 여러 개

소프트맥스에서는 각 예가 정확히 한 클래스의 멤버라고 가정합니다. 하지만 동시에 여러 클래스의 멤버인 예도 있습니다. 이러한 예의 경우

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

정확히 하나의 항목(과일 한 개)이 포함된 이미지를 예로 들어보겠습니다. 소프트맥스는 해당 항목이 배, 오렌지, 사과 또는 다른 과일일 확률을 확인할 수 있습니다. 모든 종류의 항목(여러 종류의 과일 접시)이 포함된 이미지 예의 경우 대신 로지스틱 회귀를 여러 개 사용해야 합니다.