Uczę sieci neuronowej, aby klasyfikować zestaw obiektów do n-klas. Każdy obiekt może należeć do wielu klas jednocześnie (wiele klas, wiele etykiet).
Czytałem, że w przypadku problemów wieloklasowych ogólnie zaleca się stosowanie softmax i kategorycznej entropii krzyżowej jako funkcji straty zamiast mse i mniej więcej rozumiem dlaczego.
W przypadku mojego problemu wielu etykiet nie ma sensu stosowanie softmax, ponieważ prawdopodobieństwo każdej klasy powinno być niezależne od drugiej. Tak więc moją ostatnią warstwą są tylko jednostki sigmoidalne, które wyciskają swoje dane wejściowe w zakresie prawdopodobieństwa 0..1 dla każdej klasy.
Teraz nie jestem pewien, jakiej funkcji utraty powinienem użyć do tego. Patrząc na definicję kategorycznej crosssentropy, uważam, że nie przydałaby się ona dobrze do tego problemu, ponieważ uwzględni jedynie wyjście neuronów, które powinny wynosić 1, i ignoruje pozostałe.
Binarna entropia krzyżowa brzmi tak, jakby lepiej pasowała, ale widzę ją tylko wspomnianą w przypadku problemów z klasyfikacją binarną z jednym neuronem wyjściowym.
Używam Pythona i Keras do szkolenia na wypadek, gdyby miało to znaczenie.