로지스틱 분류기에서 기능 선택 (Softmax vs Sigmoid)을 결정하는 것은 무엇입니까?
4 개의 출력 클래스가 있다고 가정하십시오. 위의 각 함수는 각 클래스의 확률이 올바른 출력이되도록합니다. 그렇다면 분류자를 위해 어느 것을 사용해야합니까?
로지스틱 분류기에서 기능 선택 (Softmax vs Sigmoid)을 결정하는 것은 무엇입니까?
4 개의 출력 클래스가 있다고 가정하십시오. 위의 각 함수는 각 클래스의 확률이 올바른 출력이되도록합니다. 그렇다면 분류자를 위해 어느 것을 사용해야합니까?
답변:
시그 모이 드 함수 반면, 두 클래스 로지스틱 회귀 분석에 사용 softmax를 함수 멀티 클래스 회귀 (일명 MaxEnt, 다항 로지스틱 회귀, 회귀 softmax를 최대 엔트로피 분류)에 사용된다.
2 류 로지스틱 회귀 분석에서 시그 모이 드 함수를 사용하여 예측 된 확률은 다음과 같습니다.
클래스 의 다중 클래스 로지스틱 회귀 분석 에서 softmax 함수를 사용하여 예측 된 확률은 다음과 같습니다.
softmax 함수는 아래 설명 된 것처럼 sigmoid 함수를 멀티 클래스 케이스로 확장 한 것을 볼 수 있습니다. 클래스 의 멀티 클래스 로지스틱 회귀 분석을 살펴 보겠습니다 .
함께 . 우리는 sigmoid 함수를 사용하여 2 클래스 로지스틱 회귀 분석에서와 동일한 확률을 얻습니다. Wikipedia 는 그것에 대해 조금 더 확장합니다.
그것들은 실제로 하나가 다른 것으로 변형 될 수 있다는 의미에서 동등하다.
데이터가 임의의 차원 의 벡터 로 표시되고 affine 변환과 softmax를 사용하여 이진 분류기를 만들었다 고 가정합니다.
softmax 대신 sigmoid를 사용하는 동등한 이진 분류기로 변환 해 봅시다. 우선, 우리는 시그 모이 출력 될 확률을 결정해야합니다 ( 또는 클래스 일 수 있음 ). 이 선택은 완전히 임의적이므로 클래스 선택합니다 . 그런 다음 분류 기준은 다음과 같습니다.
확률이 동일하면 분류 기준이 동일하므로 다음을 부과해야합니다.
장착 , 및 측면에서 그들의 식에서 및 일부 간단 하 대수 조작에서 및 가 다음 과 같은 경우에만 위의 동등성이 유지되는지 확인할 수 있습니다 .
신경망에서 시그 모이 드 대 소프트 맥스를 사용할지 여부를 검색 할 때 사람들이 종종이 질문에 지시하는 것을 알았습니다. 신경망 분류기를 작성하는 사람들 중 하나 인 경우 네트워크의 원시 출력 값에 시그 모이 드 또는 소프트 맥스를 적용할지 여부를 결정하는 방법은 다음과 같습니다.
참고 자료 : 계산 예제를 포함하여 신경망 설계에서 시그 모이 드 vs. 소프트 맥스 를 사용하는시기에 대한 자세한 설명은 "분류 : 시그 모이 드 vs. 소프트 맥스" 문서를 참조하십시오 .
이전의 모든 답변에 추가-모든 단일 클래스 분류 문제를 "일대 다"방법을 사용하여 여러 이진 분류 문제로 줄일 수 있다는 사실을 언급하고 싶습니다. 즉 C 시그 모이 드 (C가 클래스) 및 모든 시그 모이 드를 특정 클래스에 속하거나 그렇지 않을 확률로 해석하고 최대 확률을 취합니다.
예를 들어, MNIST 숫자 예제에서는 softmax 또는 10 개의 시그 모이 드를 사용할 수 있습니다. 실제로 Andrew Ng가 Coursera ML 과정에서 수행하는 작업입니다. 당신은 체크 아웃 할 수있다 여기에 앤드류 응이 (내게로 파이썬에 matlab에에서 적응) 멀티 클래스 분류를위한 10 sigmoids을 사용하는 방법과 여기에 파이썬 내 softmax를 적응이다.
또한 함수가 동일하지만 (멀티 클래스 분류의 목적으로) 기능은 구현에서 약간 다릅니다 (특히 파생 상품 및 y를 나타내는 방법 과 관련하여 ).
단일 멀티 클래스 분류 (즉, Softmax)에 비해 다중 이진 분류 (즉, Sigmoids)를 사용하면 얻을 수있는 가장 큰 장점은 소프트 맥스가 너무 큰 경우 (예 : 사전 크기가 10K 이상인 원 핫 단어 임베딩을 사용하는 경우) )-훈련하는 것이 비효율적 일 수 있습니다. 대신 훈련 세트의 일부를 가져 와서 S 자형의 일부만 훈련하는 것이 좋습니다. 이것이 네거티브 샘플링 의 기본 아이디어 입니다.