상호 배타적이지 않은 카테고리를 분류 할 수있는 딥 러닝 모델


9

예 : 직업 설명에 "영국의 Java Senior Engineer"문장이 있습니다.

나는 2 개 종류로 예측하는 깊은 학습 모델을 사용하려면 : EnglishIT jobs. 기존 분류 모델을 사용하는 경우 softmax마지막 레이어에서 함수가있는 레이블 하나만 예측할 수 있습니다 . 따라서 두 모델 신경망을 사용하여 두 범주 모두에서 "예"/ "아니오"를 예측할 수 있지만 더 많은 범주가 있으면 너무 비쌉니다. 그렇다면 동시에 2 개 이상의 카테고리를 예측할 수있는 딥 러닝 또는 머신 러닝 모델이 있습니까?

"편집": 기존의 접근 방식에 따라 3 개의 레이블이 있으면 [1,0,0]으로 인코딩되지만 제 경우에는 [1,1,0] 또는 [1,1,1]로 인코딩됩니다.

예 : 라벨이 3 개 있고 문장이이 모든 라벨에 맞는 경우. 따라서 softmax 함수의 출력이 [0.45, 0.35, 0.2] 인 경우 3 개의 레이블 또는 2 개의 레이블로 분류해야합니까? 우리가 할 때 주요 문제는 다음과 같습니다. 1, 2 또는 3 레이블로 분류하기에 좋은 임계 값은 무엇입니까?


softmax 기능 대신 sigmoid 기능을 사용해야합니다. 데이터 포인트에 여러 클래스를 할당 할 수 있습니다.
NITISH MAHAJAN

답변:


6

softmax를 시그 모이 드 활성화로 대체하고 categorical crossentropy 대신 binary crossentropy를 손실 함수로 사용하여이 다중 레이블 분류를 달성 할 수 있습니다. 그런 다음 레이블이있는만큼 출력 장치 / 뉴런이 많은 네트워크 하나만 있으면됩니다.

범주 형 교차 엔트로피는 양수 대상에 대한 예측에서 손실을 가져 오기 때문에 손실을 이진 교차 엔트로피로 변경해야합니다. 이것을 이해하기 위해, 한 예 대한 범주 형 교차 엔트로피 손실 공식을 살펴보십시오 (클래스 인덱스는 ).ij

Li=jti,jlog(pi,j)

일반 멀티 클래스 설정에서는 올바른 클래스에 대한 예측이 다른 클래스의 예측에 직접 의존하도록 softmax를 사용합니다. softmax를 sigmoid로 바꾸면 더 이상 사실 이 아니므로 더 이상 훈련에 부정적인 예 ( )가 사용되지 않습니다! 그렇기 때문에 양의 예제와 음의 예제를 모두 사용하는 이진 교차 엔트로피로 변경해야합니다. ti,j=0나는=제이나는,제이로그(나는,제이)제이(1나는,제이)로그(1나는,제이)


손실 함수로 categorical crossentropy 대신 binary crossentropy를 사용해야하는 이유는 무엇입니까? 더 설명해 주시겠습니까? 지금은 시그 모이 드 활성화 @robintibor를 사용하고
voxter

답변에 설명을 추가했습니다 @voxter
robintibor

훌륭한 ! 감사합니다. 또한 나에게 설명 한 것처럼 딥 러닝의 함수에 대한 더 많은 수학을 설명하는 문서 나 자습서를 제공 할 수 있습니까?
voxter

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.