모든 예제와 모든 클래스에 대해 `grad` 행렬을 동시에 계산하기 위해 Softmax는 각 예제가 정확히 하나의 클래스의 멤버라고 가정합니다. 그러나 일부 예제는 동시에 여러 클래스의 구성원이 될 수 있습니다. 이러한 예: 이제 Keras 기능 API를 사용하여 깊은 피드포워드 신경망 분류기와 와인 분류를 수행합니다. 우리는 우리에게 강력한 분류를 제공하기 위해 여러 신경망의 앙상블 모델을 사용합니다 (실제로 이것은 당신이해야 할 일이며, 무작위 초기화 및 스토커스 그라데이션 교육으로 인한 개별 신경망 예측의 차이는 평균화되어야합니다. 좋은 결과). 앙상블 모델의 출력은 일부 테스트 예제가 각 클래스에 속하는 확률 벡터, 즉 클래스 레이블에 대한 범주분포를 제공해야 합니다. 표준 (단위) softmax 함수 σ : R K → R K {디스플레이 스타일 sigma :mathbb {R} ^{K}\mathbb {R} ^{K}}는 수식에 의해 정의됩니다.이러한 방정식이 무서운 것처럼 보일 경우 걱정하지 마십시오 – 다음 섹션에서 실제 숫자 예제를 작업합니다. J = 1에 대한 … K.

softmax 함수는 임의의 실제 값의 K 차원 벡터 z를 K 차원 벡터 σ(z)로 정규화하는 것을 볼 수 있으며, 그 구성 요소는 1(즉, 확률 벡터)으로 합산되며, 또한 각 zj에 대한 가중 평균을 제공합니다. zj의 규모 면에서 zj의 값이 매우 다른 경우 차이를 과장하는 방식으로 zj의 집계 (0 또는 1에 가까운 값을 반환)하지만 zj의 규모가 상대적으로 동일한 경우 중간 값을 반환합니다. 분류자 모델이 후자보다 전자 조건을 부여하는 매개 변수를 배우는 것이 바람직합니다(즉, 결정적인 대 우유부단한). Softmax 회귀는 입력 값을 총 합계가 1인 확률 분포 다음에 오는 값 벡터로 정규화하는 로지스틱 회귀의 한 형태입니다. 출력 값은 [0,1] 범위 사이에 있는데, 이 값은 이진 분류를 피하고 신경망 모델에서 많은 클래스 또는 차원을 수용할 수 있기 때문에 좋습니다. 이것이 소프트맥스가 다항 물류 회귀라고도 하는 이유입니다. 간단한 파이썬 코드를 사용하여이 예제의 계산 : 이 함수는 단일 클래스 j에 대한 그라데이션을 계산합니다. 괄호 안의 표현식은 0에서 1 사이의 단일 값으로 평가됩니다. 이것은 벡터 x^(i)를 곱하여 단일 학습 예제 i 및 단일 클래스 j에 대한 가중치 업데이트를 가져옵니다. 이 예제를 파생하기 위해 Excel 스프레드시트를 사용했습니다. 비행기에 대한 음의 로그 손실은 계산되었습니다: 이 변환은 전체 출력 계층에서 작동하는 로지스틱의 다중 입력 일반화로 간주될 수 있습니다.