소프트맥스 이해하기
다중 클래스 분류 에 대한 일반적인 접근 방식은 모든 클래스에 대해 별도의 이진 분류기를 사용하는 것입니다.
각 분류자는 자체 관련 클래스를 인식해야 합니다.
먼저, 단일 이진 분류기 구성 뒤에 있는 설계 선택을 고려하십시오. 다음에서는 디자인을 이진 분류기 컬렉션으로 확장합니다.
출발점으로 기능 x 의 벡터를 사용하고 입력 기능과 해당 매개변수의 가중 합계인 출력 y를 반환하는 선형 방정식을 사용합니다. 출력 y 는 결정에 매핑되어야 하는 실수입니다. 입력 x는 내가 감지해야 하는 클래스에 속하는 객체를 나타냅니까 ? 가장 간단한 선택은 y가 양수 값일 때 ' my class' 메시지를 반환하고 y가 음수일 때 분류기를 비활성화 상태로 유지하는 것입니다.
그러나 그러면 분류기 출력의 불확실성/신뢰도에 대한 정보를 놓칠 것입니다. 또한 분류기 출력 y 의 원시 값을 결과에서 분류기의 신뢰도 측정값으로 반환할 수 있습니다 . 그러나 -∞에서 +∞까지의 범위는 해석, 비교, 후처리에 불편할 것이다.
설계 요구 사항 №1: 확률로 출력
대신 입력 x가 ' my class ' 에 속하는 개체를 나타내는 확률 p 로 해석될 수 있는 엄격하게 제한된 범위의 값을 반환하는 것이 좋습니다 .
따라서 문제는 확률로 느슨하게 해석될 수 있는 값 p 에서 y를 어떻게 투영하는가 입니다.
처음에 이 값은 <0,1> 범위에 속해야 합니다 . 다음으로 0.5는 결정의 전환점이 되어야 합니다. 마지막으로 0.5 보다 큰 값은 클래스의 긍정적인 감지에 유리해야 합니다.
수학적 관점에서 연속 함수 φ를 찾습니다 .
0 이 0.5 에 도달하고 +∞가 1 에 투영되고 -∞가 0 에 투영됩니다 .
이 경우 쉬운 방법은 역공학입니다. p 에서 시작하여 y 로 돌아갑니다 . 승산비를 사용하여 클래스 p 의 확률을 < 0 , +∞) 간격 으로 <0,1>에서 쉽게 투영할 수 있습니다 .
다음 매핑은 얻은 값을 (-∞, +∞) 로 캐스트해야 합니다. 확실한 선택은 대수 함수입니다.
그런 다음 두 끝이 여기서 만납니다. 우리는 < 0 , 1 > 간격에서 시작하여 (-∞,+∞) 간격에 도달했습니다. 처음에는 y가 반환한다고 가정했습니다 .
지금은 로그의 밑수 B가 지정되지 않은 상태로 유지됩니다.
다음 단계는 관계를 원하는 p = φ ( y )로 되돌리는 것입니다.
마지막으로 원하는 공식에 도달합니다.
이제 B 값을 결정해야 합니다 . 다양한 B 값에 대한 φ 함수 의 변형을 보여주는 그래프를 살펴보겠습니다 .
가장 작은 것은 B=2.71 인 것 같습니다 . 놀랍게도 비슷한 값은 자체 기호 e를 가지며 자연 염기라고합니다. 따라서 자연 밑 로그의 경우 마지막 공식은 다음과 같은 형식을 취합니다.
축하해요!
우리는 유명한 시그모이드 함수를 재발견했습니다 .
당신을 위한 질문은 : e가 정말 최선의 선택인가? 다른 값을 선택했다면 어떻게 되었을까요? 확률론적 해석을 잃어버렸을까요?
또한 이것을 고려하십시오 : y 와 x 사이에 어떤 비선형 관계를 사용하지 않는 이유는 무엇입니까 ? φ를 유도하기 위해 y 의 값이 (-∞,+∞) 구간에 있다고 가정했습니다.
많은 클래스(예: M )를 처리할 때 각 클래스에 고유한 이진 분류기를 할당합니다.
분류기가 독립적으로 작동하는 경우 반환된 모든 확률의 합이 1 이 되지 않아 출력의 확률론적 해석에 결함이 있을 수 있습니다. 이것은 지금 해결해야 할 과제 입니다.
설계 요구 사항 2번: 하나로 합산
모든 분류자는 동일한 x 를 사용합니다 . i 번째 분류 자는 y_i 를 계산합니다 . 우리는 다시 p_i 에서 y_i 의 투영을 만들고 싶지만 이번에는 다른 모든 분류기와 동기화 하여
분류기 간의 동기화는 p_i 에서 독립적으로 계산된 y_i를 투영하는 방법에 대한 상호 합의에 관한 것입니다 . 단일 분류기의 경우 승산비는 확률이 p 인 ' my class '와 확률이 1-p 인 ' not my class ' 의 두 가지 출력의 확률과 관련됩니다 . y 값이 높을수록 ' my class ' 가 출력될 가능성이 높아집니다 . 이제 ' not my class ' 출력 대신 더 구체적이어야 하며 ' your class ' 출력을 도입해야 합니다. 따라서 더 일반적인 버전은 다음과 같습니다. ' my class ' 확률 p_kp_l 확률로 ' 당신의 클래스 '와 비교 . 그리고 my output y_k 이 your output y_l 보다 높을수록 ' your class ' 보다 ' my class ' 가 더 가능성이 높습니다 .
설계 요구 사항 3번: 확률 간의 상호 관계
방정식 (1)의 업데이트된 버전은 다음과 같습니다.
이 요구 사항은 설계 요구 사항 1번의 확장 버전입니다.
과제는 방정식 (2) 및 (3)으로 표현되는 설계 요구 사항 №2 및 №3을 모두 취하고 다음 과 같은 함수 Φ _i 에 대한 공식을 도출하는 것입니다 .
우리는 이미 자연 밑 로그 e를 사용하기로 결정했으므로 나머지 고려 사항에 대해 이를 사용하겠습니다.
방정식 (2)에 포함된 정보를 사용하기 위해 양쪽에 합계를 적용합니다.
합 부호 앞에서 k 로 변하지 않는 요소를 추출합니다 . 방정식 (2)에 따르면 모든 확률의 합은 1 과 같습니다 .
마지막으로 다음 기능에 도달합니다.
l 대신 i 에 대해 다음과 같이 다시 작성할 수 있습니다 .
축하합니다!
이 방법으로 우리는 마침내 널리 알려진 softmax 함수를 재발견했습니다.
마지막 생각들
우리가 softmax 함수로 가는 길을 명확하게 만들었다는 점에 감사하기를 바랍니다. 우리는 계시, 물리 과학의 느슨한 유추 또는 고려 사항에 따른 권위에 의지하지 않았습니다. 이 기사에서 softmax 함수는 다중 클래스 문제에 대한 자연스러운 요구 사항에서 비롯된 직선적 추론의 결과입니다 .
제 의도는 기계 학습 문제를 해결하는 데 있어 softmax 함수의 기원에 대해 더 강한 느낌을 주는 것입니다.
Will Wolf 블로그 에서 만든 시그모이드 함수 파생에 대한 또 다른 매우 고무적인 접근 방식을 확인하는 것이 좋습니다 .
마지막으로 이 모든 것이 독립적으로 작동하는 분류기를 사용하고 나중에 모든 p_i를 정규화한 다음 p_i를 정규화된 값으로 대체하는 다른 방법으로 달성할 수 있는지 여부를 스스로 고려하십시오 .
참조
[1] Gabriel Furnieres : 5분 안에 Sigmoid 및 SoftMax 기능 . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9
[2] 윌 울프 : 첫 번째 원칙에서 소프트맥스 도출 .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































