O custo da entropia cruzada faz sentido no contexto da regressão (em oposição à classificação)? Se sim, você poderia dar um exemplo de brinquedo através do TensorFlow? Se não, por que não?
Eu estava lendo sobre entropia cruzada em Redes Neurais e Deep Learning, de Michael Nielsen, e parece que algo poderia ser usado naturalmente para regressão e classificação, mas não entendo como você a aplicaria com eficiência no TensorFlow desde o funções de perda recebem logits (que eu também não entendo muito) e estão listadas na classificação aqui
regression
entropy
tensorflow
cross-entropy
JacKeown
fonte
fonte
Respostas:
Não, não faz sentido usar as funções do TensorFlow como
tf.nn.sigmoid_cross_entropy_with_logits
para uma tarefa de regressão. No TensorFlow, "entropia cruzada" é uma abreviação (ou jargão) para "entropia cruzada categórica". A entropia cruzada categórica é uma operação de probabilidades. Um problema de regressão tenta prever resultados contínuos, em vez de classificações.O jargão "entropia cruzada" é um pouco enganador, porque há inúmeras funções de perda de entropia cruzada; no entanto, é uma convenção no aprendizado de máquina referir-se a essa perda específica como perda de "entropia cruzada".
Se olharmos além das funções do TensorFlow às quais você se vincula, é claro que existem inúmeras funções possíveis de entropia cruzada. Isso ocorre porque o conceito geral de entropia cruzada é sobre a comparação de duas distribuições de probabilidade. Dependendo das duas distribuições de probabilidade que você deseja comparar, você pode obter uma perda diferente da perda típica de entropia cruzada categórica. Por exemplo, a entropia cruzada de um alvo gaussiano com alguma covariância média variável mas diagonal fixa reduz-se ao erro do quadrado da média. O conceito geral de entropia cruzada é descrito em mais detalhes nestas perguntas:
As redes neurais aprendem uma função ou uma função de densidade de probabilidade?
Como construir uma perda de entropia cruzada para metas de regressão geral?
fonte
A resposta dada por @Sycorax está correta. No entanto, vale ressaltar que o uso de entropia cruzada (binária) em uma tarefa de regressão em que os valores de saída estão no intervalo [0,1] é uma coisa válida e razoável a se fazer. Na verdade, é usado em auto-codificadores de imagens (por exemplo, aqui e neste documento ). Você pode estar interessado em ver uma prova matemática simples de por que funciona neste caso nesta resposta .
fonte
As estruturas de aprendizado profundo muitas vezes misturam modelos e perdas e se referem à entropia cruzada de um modelo multinomial com não-linearidade softmax por
cross_entropy
, o que é enganoso. Em geral, você pode definir entropia cruzada para modelos arbitrários .Para um modelo gaussiano com média de covariância diagonal fixa, mas fixa, é equivalente a MSE. Para uma covariância geral, a entropia cruzada corresponderia a uma distância quadrada de Mahalanobis . Para uma distribuição exponencial, a perda de entropia cruzada seria semelhante a onde é contínuo, mas não negativo. Então , sim , a entropia cruzada pode ser usada para regressão.fθ(x)y−logfθ(x), y
fonte
Infelizmente, a resposta agora aceita por @Sycorax, embora detalhada, está incorreta.
Na verdade, um excelente exemplo de regressão através da entropia cruzada categórica - Wavenet - foi implementado no TensorFlow .
O princípio é que você discretiza seu espaço de saída e, em seguida, seu modelo prevê apenas o respectivo compartimento; consulte a Seção 2.2 do documento para obter um exemplo no domínio da modelagem de som. Portanto, embora tecnicamente o modelo execute a classificação, a tarefa final resolvida é a regressão.
Uma desvantagem óbvia é que você perde a resolução de saída. No entanto, isso pode não ser um problema (pelo menos eu acho que o assistente artificial do Google falou com uma voz muito humana ) ou você pode brincar com algum pós-processamento, por exemplo, interpolar entre a lixeira mais provável e seus dois vizinhos.
Por outro lado, essa abordagem torna o modelo muito mais poderoso em comparação com a saída de unidade linear única usual, ou seja, permitindo expressar previsões multimodais ou avaliar sua confiança. Observe, porém, que o último pode ser alcançado naturalmente por outros meios, por exemplo, tendo uma saída de variação explícita (log) como nos Autoencodificadores Variacionais.
De qualquer forma, essa abordagem não se adapta bem a saídas mais dimensionais, porque o tamanho da camada de saída aumenta exponencialmente, tornando-o um problema computacional e de modelagem.
fonte
Revisitei esta questão, pois agora discordo da resposta que aceitei anteriormente. A perda de entropia cruzada PODE ser usada em regressão (embora não seja comum.)
Tudo se resume ao fato de a entropia cruzada ser um conceito que só faz sentido quando se compara duas distribuições de probabilidade. Você pode considerar uma rede neural que produz um desvio médio e padrão para uma distribuição normal como sua previsão. Seria então punido com mais severidade por ter mais confiança em previsões ruins. Então, sim, faz sentido, mas apenas se você estiver produzindo uma distribuição em algum sentido. O link de @SiddharthShakya em um comentário à minha pergunta original mostra isso.
fonte