Exemplos: Eu tenho uma frase na descrição do trabalho: "Java senior engineer in UK".
Eu quero usar um modelo de aprendizado profundo para prever em duas categorias: English
e IT jobs
. Se eu usar o modelo de classificação tradicional, ele poderá prever apenas 1 rótulo com softmax
função na última camada. Assim, eu posso usar duas redes neurais modelo para prever "Sim" / "Não" nas duas categorias, mas se tivermos mais categorias, será muito caro. Então, temos algum modelo de aprendizado profundo ou de aprendizado de máquina para prever duas ou mais categorias ao mesmo tempo?
"Editar": com 3 rótulos por abordagem tradicional, ele será codificado por [1,0,0], mas no meu caso, será codificado por [1,1,0] ou [1,1,1]
Exemplo: se tivermos três marcadores, e uma frase pode ser adequada a todos esses marcadores. Portanto, se a saída da função softmax for [0,45, 0,35, 0,2], devemos classificá-la em 3 rótulos ou 2 rótulos, ou pode ser um? o principal problema quando o fazemos é: qual é o limite ideal para classificar em 1, 2 ou 3 rótulos?
fonte
Respostas:
Você pode obter essa classificação de vários rótulos substituindo o softmax por uma ativação sigmóide e usando a entropia cruzada binária em vez da entropia cruzada categórica como função de perda. Então você só precisa de uma rede com tantas unidades de saída / neurônios quanto etiquetas.
Você precisa alterar a perda para entropia cruzada binária, pois a entropia cruzada categórica só obtém a perda da previsão para os destinos positivos. Para entender isso, observe a fórmula da perda de entropia cruzada categórica para um exemplo (os índices de classe são ):jEu j
Na configuração normal de multiclasse, você usa um softmax, para que a previsão para a classe correta seja diretamente dependente das previsões para as outras classes. Se você substituir o softmax pelo sigmoid, isso não será mais verdade; portanto, exemplos negativos (onde ) não serão mais usados no treinamento! É por isso que você precisa mudar para a entropia cruzada binária, que usa exemplos positivos e negativos: L i = - ∑ j t i , j log ( p i , j ) - ∑ j ( 1 - t i , j ) log ( 1 - p i , j )ti , j= 0 euEu= - ∑jti , jregistro( pi , j) - ∑j( 1 - ti , j) log( 1 - pi , j)
fonte