먼저 질문과 상황에 대해 알려드립니다. 나는 chainer에서 다중 라벨 분류를하고 싶고 나의 클래스 불균형 문제는 매우 심각하다.체인저에서 손실 무게를 설정하는 방법은 무엇입니까?
이 경우 나는 손실 함수를 계산하기 위해 inorder를 조각 내야한다. 예를 들어 다중 레이블 분류에서 ground truth 레이블 벡터의 대부분 요소는 0이고 그 중 소수만이 1이다.이 상황에서 F .sigmoid_cross_entropy 모든 0/1 요소를 적용하면 수렴되지 않는 교육이 발생할 수 있으므로 [[xx, xxx, ..., xxx]] 슬라이스 (마지막 FC 레이어의 가변 출력)를 사용하여 슬라이스를 결정합니다. 손실 함수를 계산하기위한 특정 요소. 이 경우 레이블 불균형으로 인해 희귀 클래스의 분류 성능이 저하 될 수 있으므로 역 전파 중에 희귀 한 gt 레이블 변수가 높은 손실 무게를 설정하려고하지만 주요 레이블 (gt가 너무 많음)을 설정할 수 있습니다. 번식.
어떻게해야합니까? chainer에서 다중 라벨 불균형 문제에 대한 귀하의 제안은 무엇입니까?
sigmoid_cross_entropy에서이 기능을 찾을 수 없지만 원하는대로 정확히 수행하는'softmax_cross_entropy'에서'class_weight'를 찾을 수 있습니다. https://docs.chainer.org/en/stable/reference/generated/chainer.functions.softmax_cross_entropy.html#chainer.functions.softmax_cross_entropy sigmoid_cross_entropy에 대한 상황을 채택하도록 구현을 참조 할 수도 있습니다. https://github.com/chainer/chainer/blob/v3.0.0rc1/chainer/functions/loss/softmax_cross_entropy.py#L249-L253 – corochann
softmax_crossentropy는 다중 라벨 분류에 적합하지 않습니다. 왜냐하면 multi -label 문제 하나의 이미지에 multible 레이블이 1 일 수 있지만 softmax_crossentropy를 사용하면 단 하나의 레이블 만이 True 일 수 있습니다. – machen
softmax_cross_entropy가 다중 레이블 문제에 적합하지 않다면, BP에 대해 특정 요소 (희귀 클래스 예측 요소)를 여러 번 복사하고 손실을 계산하는 데 F.tile (pred)을 사용하는 방법, 희귀 한 클래스의 손실이 증가 될 수 있습니까? (필자는 F.tile이 이것을 할 수 있는지 모른다.) – machen