Para ilustrar minha pergunta, suponha que eu tenha um conjunto de treinamento em que a entrada tenha um grau de ruído, mas a saída não, por exemplo;
# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]
aqui a saída é o gradiente da matriz de entrada, se não tiver ruído (não o gradiente real).
Depois de treinar a rede, a saída deve se parecer com isso para uma determinada entrada.
# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]
Minha pergunta é como uma rede neural pode ser criada de modo a retornar um valor previsto e uma medida de confiança, como uma variação ou intervalo de confiança?
Respostas:
Parece que você está procurando um intervalo de previsão , ou seja, um intervalo que contém uma porcentagem pré-especificada de realizações futuras. (Olhe para o tag wikis para previsão do intervalo e confiança do intervalo para a diferença.)
É provável que sua melhor aposta funcione diretamente com arquiteturas NN que não produzem previsões de ponto único, mas distribuições preditivas inteiras . Você pode então extrair diretamente os intervalos de previsão desejados (ou previsões de ponto médio ou mediano) dessas distribuições. Eu e outros temos argumentado que as distribuições preditivas são muito mais úteis do que as previsões pontuais , mas, para ser sincero, ainda não vi muito trabalho sobre distribuições preditivas com redes neurais, embora eu esteja mantendo meus olhos abertos. Este artigo soa como ele pode ser útil. Você pode pesquisar um pouco, talvez também usando outras palavras-chave como "distribuições de previsão" ou "densidades preditivas" e outras.
Dito isto, você pode querer examinar o algoritmo NeuroBayes de Michael Feindt , que usa uma abordagem bayesiana para prever densidades preditivas.
fonte
Não tenho certeza se você pode calcular um intervalo de confiança para uma única previsão, mas é possível calcular um intervalo de confiança para a taxa de erro de todo o conjunto de dados (você pode generalizar a precisão e qualquer outra medida que esteja avaliando).
Se for sua taxa de erro ao classificar alguns dados S de tamanho n , um intervalo de confiança de 95% para sua taxa de erro será dado por: e ± 1,96 √e S n .
(consulte o livro "Machine Learning" de Tom Mitchell, capítulo 5.)
EDITAR
Acho que devo declarar um caso mais geral, que é: onde as opções comuns parazNestão listadas na tabela a seguir:
fonte
Intervalos de previsão (PI) em regressão não paramétrica e problemas de classificação, como redes neurais, SVMs, florestas aleatórias, etc., são difíceis de construir. Eu adoraria ouvir outras opiniões sobre isso.
No entanto, tanto quanto eu sei, a previsão conforme (CP) é o único método baseado em princípios para a construção de PI calibrado para previsão em problemas de regressão e classificação não paramétricos. Para um tutorial sobre CP, consulte Shfer & Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]
fonte
Não conheço nenhum método para fazer isso de maneira exata.
fonte
Não ouvi nenhum método que dê um intervalo de confiança para uma previsão de rede neural. Apesar da falta de metodologia formal, parece possível criar uma. Eu nunca tentei isso devido ao poder de computação que seria necessário e não afirmo que isso funcione com certeza, mas um método que pode funcionar para uma pequena rede neural (ou com uma potência GPU extremamente rápida, pode funcionar para redes de tamanho moderado ) seria redefinir a amostra do conjunto de treinamento e criar muitas redes semelhantes (digamos 10.000 vezes) com os mesmos parâmetros e configurações iniciais e criar intervalos de confiança com base nas previsões para cada uma das suas redes de inicialização.
Por exemplo, nas 10.000 redes treinadas conforme discutido acima, é possível obter 2,0 (depois de arredondar as previsões de regressão da rede neural) 9.000 dessas vezes, portanto, você poderia prever 2,0 com um IC de 90%. Em seguida, você pode criar uma matriz de ICs para cada previsão feita e escolher o modo de relatório como o IC primário.
fonte
Em termos de saída direta de intervalos de previsão, há um artigo de 2011 ' Revisão abrangente dos intervalos de previsão baseados em redes neurais '
Eles comparam quatro abordagens:
1: Método Delta 2: Método Bayesiano 3: Estimativa da variância média 4: Bootstrap
Os mesmos autores desenvolveram o Método de Estimação de Limite Superior Inferior para Construção de Intervalos de Previsão Baseados em Redes Neurais, que produz diretamente um limite inferior e superior do NN. Infelizmente, ele não funciona com backprop, mas trabalhos recentes tornaram isso possível, Intervalos de Previsão de Alta Qualidade para Aprendizado Profundo .
Alternativa à saída direta de intervalos de previsão, as redes neurais bayesianas (BNNs) modelam incerteza nos parâmetros de uma NN e, portanto, capturam incerteza na saída. Isso é difícil de fazer, mas os métodos populares incluem a execução do abandono do MC no momento da previsão ou a montagem .
fonte
Na verdade, existem maneiras de fazer isso usando o dropout. Execute a avaliação com o abandono ativado (geralmente está desativado para avaliação, mas ativado durante o treinamento) e execute a avaliação várias vezes.
A distribuição de resultados de várias execuções diferentes pode ser usada como intervalos de confiança.
Veja o artigo "O abandono escolar como uma aproximação bayesiana: representando a incerteza do modelo no aprendizado profundo " Assista à apresentação do youtube Andrew Rowan - Aprendizado profundo Bayesiano com Edward (e um truque usando o Dropout)
fonte
Não há como, nem todos os modelos de ML tratam de compreensão de fenômenos, são métodos de interpolação com esperança "de que funcione". Comece com essas perguntas confiança, robustez ao ruído, não há respostas.
Então, para derivar algo, use várias ciências fundamentais e aplicadas:
Use o controle (e faça suposições sobre dinâmica)
Use otimização convexa (com alguma condição extra na função)
Use estatísticas matemáticas (com premissas preliminares sobre distribuições)
Usar processamento de sinal (com algumas suposições de que o sinal é limitado à banda)
Os cientistas usam algumas suposições preliminares (chamadas axiomas) para derivar alguma coisa.
Não há como dar confiança sem alguma suposição preliminar; portanto, o problema não está no método DL, mas é um problema em qualquer método que tente interpolar sem QUALQUER suposição preliminar - não há como derivar através da álgebra algo de forma inteligente, sem suposição.
NN e vários métodos de ML são para prototipagem rápida para criar "algo" que parece funcionar "de alguma maneira" verificado com validação cruzada.
Ainda mais profundo, o ajuste de regressão E [Y | X] ou sua estimativa podem ser um problema absolutamente incorreto a ser resolvido (talvez o pdf no ponto Y = E [Y | X] tenha o mínimo, não o máximo), e existem muitos itens sutis. coisas.
Permitam-me também lembrar dois problemas insolúveis em AI / ML, que podem ser esquecidos por alguns motivos, por trás de slogans de beleza:
(1) São métodos de interpolação, não extrapolação - não tem capacidade de lidar com novos problemas
(2) ninguém sabe como um modelo se comportará em dados que não são da mesma distribuição (homem fantasiado de banana para localização de pedestres)
fonte
Este artigo é uma apresentação interessante de uma técnica baseada no abandono:
http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html
fonte