Przykłady: w opisie stanowiska mam zdanie: „Starszy inżynier Java w Wielkiej Brytanii”.
Chcę użyć modelu głębokiego uczenia się, aby przewidzieć go jako 2 kategorie: English
i IT jobs
. Jeśli użyję tradycyjnego modelu klasyfikacji, może on przewidzieć tylko 1 etykietę z softmax
funkcją na ostatniej warstwie. Dlatego mogę użyć 2 modelowych sieci neuronowych, aby przewidzieć „Tak” / „Nie” dla obu kategorii, ale jeśli mamy więcej kategorii, jest to zbyt kosztowne. Czy mamy zatem model dogłębnego uczenia się lub uczenia maszynowego do przewidywania 2 lub więcej kategorii jednocześnie?
„Edytuj”: przy 3 etykietach według tradycyjnego podejścia kodowany będzie przez [1,0,0], ale w moim przypadku będzie kodowany przez [1,1,0] lub [1,1,1]
Przykład: jeśli mamy 3 etykiety, a zdania mogą pasować do wszystkich tych etykiet. Więc jeśli wyjściem z funkcji softmax jest [0,45, 0,35, 0,2], powinniśmy podzielić ją na 3 etykiety lub 2 etykiety, czy może być jedna? głównym problemem, kiedy to robimy, jest: jaki jest dobry próg, aby zaklasyfikować do 1, 2 lub 3 etykiet?
źródło
Odpowiedzi:
Możesz osiągnąć tę klasyfikację wieloznakową, zastępując softmax aktywacją sigmoidalną i używając binarnej crossentropy zamiast kategorycznej crossentropy jako funkcji straty. Potrzebujesz tylko jednej sieci z tyloma jednostkami wyjściowymi / neuronami, ile masz etykiet.
Musisz zmienić stratę na binarną crosssentropię, ponieważ kategoryczna entropia krzyżowa uzyskuje tylko stratę z prognozy dla pozytywnych celów. Aby to zrozumieć, spójrz na wzór na kategoryczną stratę crossentropii dla jednego przykładu (indeksy klas to ):i j
W normalnym ustawieniu wieloklasowym używasz softmax, dzięki czemu przewidywanie dla właściwej klasy jest bezpośrednio zależne od przewidywań dla innych klas. Jeśli zastąpisz softmax przez sigmoid, nie jest to już prawdą, więc negatywne przykłady (gdzie ) nie są już używane w treningu! Dlatego musisz przejść na binarną crosssentropy, która wykorzystuje zarówno pozytywne, jak i negatywne przykłady:ti,j=0 Li=−∑jti,jlog(pi,j)−∑j(1−ti,j)log(1−pi,j)
źródło