Trabalho com redes neurais convolucionais (CNNs) há algum tempo, principalmente em dados de imagem para segmentação semântica / segmentação de instância. Eu muitas vezes visualizei o softmax da saída de rede como um "mapa de calor" para ver o quão alto são as ativações por pixel para uma determinada classe. Interpretei baixas ativações como "incertas" / "não confiáveis" e altas ativações como previsões "certas" / "confiantes". Basicamente, isso significa interpretar a saída softmax (valores dentro de ) como uma medida de probabilidade ou (não) certeza do modelo.
( Por exemplo, eu interpretei um objeto / área com uma baixa ativação de softmax média sobre seus pixels para ser difícil para a CNN detectar, portanto, a CNN é "incerta" em prever esse tipo de objeto. )
Na minha percepção, isso geralmente funcionava, e adicionar amostras adicionais de áreas "incertas" aos resultados do treinamento melhorou os resultados. No entanto , já ouvi muitas vezes agora de lados diferentes que usar / interpretar a saída softmax como uma medida de (des) certeza não é uma boa idéia e geralmente é desencorajado. Por quê?
Edição: Para esclarecer o que estou perguntando aqui, vou elaborar minhas idéias até agora em responder a esta pergunta. No entanto, nenhum dos argumentos a seguir me esclareceu ** por que geralmente é uma má idéia **, como me disseram repetidamente por colegas, supervisores e também é afirmado, por exemplo, aqui na seção "1.5"
Nos modelos de classificação, o vetor de probabilidade obtido no final do pipeline (a saída softmax) é frequentemente interpretado erroneamente como confiança do modelo
ou aqui na seção "Histórico" :
Embora possa ser tentador interpretar os valores dados pela camada final de softmax de uma rede neural convolucional como escores de confiança, precisamos ter cuidado para não ler muito sobre isso.
As fontes acima raciocinam que o uso da saída softmax como medida de incerteza é ruim porque:
perturbações imperceptíveis a uma imagem real podem alterar a saída de softmax de uma rede profunda para valores arbitrários
Isso significa que a saída softmax não é robusta para "perturbações imperceptíveis" e, portanto, sua saída não é utilizável como probabilidade.
Outro artigo retoma a idéia "softmax output = confidence" e argumenta que, com essa intuição, as redes podem ser facilmente enganadas, produzindo "resultados de alta confiança para imagens irreconhecíveis".
(...) a região (no domínio de entrada) correspondente a uma classe específica pode ser muito maior que o espaço naquela região ocupado por exemplos de treinamento dessa classe. O resultado disso é que uma imagem pode estar dentro da região atribuída a uma classe e, portanto, ser classificada com um grande pico na saída do softmax, enquanto ainda está longe das imagens que ocorrem naturalmente nessa classe no conjunto de treinamento.
Isso significa que os dados que estão longe dos dados de treinamento nunca devem ter uma alta confiança, pois o modelo "não pode" ter certeza (como nunca o viu).
No entanto: isso geralmente não está simplesmente questionando as propriedades de generalização das NNs como um todo? Ou seja, que os RNs com perda de softmax não generalizam bem para (1) "perturbações imperceptíveis" ou (2) amostras de dados de entrada que estão distantes dos dados de treinamento, por exemplo, imagens irreconhecíveis.
Seguindo esse raciocínio que ainda não entendo, por que, na prática, com dados que não são abstrata e artificialmente alterados em relação aos dados de treinamento (ou seja, a maioria das aplicações "reais"), interpretar a saída do softmax como uma "pseudo-probabilidade" é ruim idéia. Afinal, eles parecem representar bem o que meu modelo tem certeza, mesmo que não esteja correto (nesse caso, preciso corrigir meu modelo). E a incerteza do modelo nem sempre é "apenas" uma aproximação?
fonte
Respostas:
Esta pergunta pode ser respondida com mais precisão do que as respostas atuais. A correção do desvio entre as probabilidades previstas (a saída da camada softmax de uma rede neural) e suas verdadeiras probabilidades (que representam uma noção de confiança) é conhecida como curvas de calibração ou confiabilidade.
O problema com muitas redes neurais profundas é que, embora elas tendam a ter um bom desempenho para previsão, suas probabilidades previstas estimadas produzidas pela saída de uma camada softmax não podem ser usadas com confiabilidade como verdadeiras probabilidades (como uma confiança para cada rótulo). Na prática, eles tendem a ser muito altos - as redes neurais são "muito confiantes" em suas previsões.
Chuan Go et. al., trabalhando com Kilian Weinberger, desenvolveram uma solução eficaz para calibrar as probabilidades previstas de redes neurais neste artigo: https://arxiv.org/pdf/1706.04599.pdf
Este artigo também explica como as probabilidades previstas podem ser interpretadas como medidas de confiança quando as probabilidades previstas são calibradas corretamente.
fonte
O que é chamado softmax em ML tem a mesma equação que a equação logística multinomial . O último pode ser usado para calcular as probabilidades. Na prática, é amplamente utilizado na estimativa de probabilidades de inadimplência na estrutura de riscos concorrentes para hipotecas, por exemplo, ver Eq. 4 neste artigo .
Por isso, eu diria que sua intuição não está completamente errada. No entanto, no exemplo de modelagem de hipoteca acima, a variável dependente é a métrica de probabilidade de inadimplência. Você tem um conjunto de hipotecas e observa o número de inadimplências. Uma única hipoteca pode ser atual ou padrão, a probabilidade de seu padrão não é observável. Observamos apenas os eventos discretos. No entanto, modelamos as probabilidades.
Como isso é diferente do aprendizado de máquina? Depende. Eu poderia decidir aplicá-lo a padrões de hipotecas, então não seria muito diferente. Por outro lado, em diferentes aplicativos, isso pode não funcionar. Se você não está modelando explicitamente a probabilidade, como no meu exemplo, a saída do seu modelo pode não representar a probabilidade adequadamente.
fonte
Softmax distribui a 'probabilidade' 0-1 entre as classes disponíveis. Não expressa incerteza, não é uma função PDF. Se você deseja expressar a incerteza, deve procurar redes neurais bayesianas. Veja este artigo: Incerteza no aprendizado profundo Algumas estruturas de probabilidade bastante recentes:
Interessante conversa keynote por Zoubin Ghahramani (Universidade de Cambridge)
Dê uma olhada neste artigo: Redes de densidade de mistura :
Eu acho que você pode implementá-lo e adicionar como uma camada final ao CONVNET. Se você implementá-lo, não esqueça de compartilhar é cuidar ;-) Boa sorte
fonte
No artigo Dropout como uma aproximação bayesiana: representando a incerteza modelo no aprendizado profundo , Yarin Gal e Zoubin Ghahramani argumentam o seguinte
Aqui está a figura 1.
Portanto, se interpretarmos as saídas do softmax como incerteza ou confiança do modelo, o modelo estará altamente confiante quanto ao pontox∗ , embora nenhum dado de treinamento tenha sido observado nessa região, mas isso pode ser enganador, porque a verdadeira função nessa região pode ser completamente diferente da aprendida (a linha preta sólida).
fonte