Como explicar a regularização do abandono em termos simples?
On Dezembro 1, 2020 by adminSe você tivesse meia página para explicar o abandono , como você procederia? Qual é a lógica por trás dessa técnica?
Resposta
O resumo do artigo sobre abandono parece perfeitamente útil.
Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov, “ Dropout: A Simple Way to Prevent Neural Networks from Overfitting “, Journal of Machine Learning Research , 2014.
Redes neurais profundas com um grande número de parâmetros são sistemas de aprendizado de máquina muito poderosos. No entanto, overfitting é um problema sério em tais redes. Redes grandes também são lentas para usar, tornando difícil lidar com overfitting, combinando as previsões de muitas redes neurais grandes diferentes no momento do teste. O abandono é uma técnica para resolver este problema. A ideia principal é remover unidades aleatoriamente (junto com suas conexões) da rede neural durante o treinamento. Isso evita que as unidades se adaptem demais. Durante o treinamento, amostras de abandono de um número exponencial de diferentes redes “estreitadas”. No momento do teste, é fácil aproximar o efeito da média das previsões de todas essas redes finas simplesmente usando uma única rede não fina que tem pesos menores. Isso reduz significativamente o overfitting e oferece grandes melhorias em relação a outros métodos de regularização. Mostramos que o abandono melhora o desempenho das redes neurais em tarefas de aprendizagem supervisionada em visão, reconhecimento de fala, classificação de documentos e biologia computacional, obtendo resultados de ponta em muitos conjuntos de dados de referência.
Se você ler o artigo,” encontrará uma descrição do que o comportamento de co-adaptação significa no contexto de abandono.
Em uma rede neural padrão, a derivada recebida por cada parâmetro diz como ele deve mudar para que a função de perda final seja reduzida, dado o que todas as outras unidades estão fazendo. Portanto, as unidades podem mudar de uma forma que consertar os erros das outras unidades. Isso pode levar a co-adaptações complexas. Isso, por sua vez, leva ao sobreajuste, porque essas co-adaptações não se generalizam para dados invisíveis. Nossa hipótese é que, para cada unidade oculta, o abandono evita a co-adaptação por tornando a presença de outras unidades ocultas não confiáveis. Portanto, uma unidade oculta não pode contar com outra r unidades específicas para corrigir seus erros. Ele deve funcionar bem em uma ampla variedade de contextos diferentes fornecidos por outras unidades ocultas. Para observar esse efeito diretamente, observamos os recursos de primeiro nível aprendidos por redes neurais treinadas em tarefas visuais com e sem abandono.
Resposta
Esta resposta é uma continuação do Sycorax “ ótima resposta , para leitores que desejam veja como o dropout é implementado.
Ao aplicar o dropout em redes neurais artificiais, é necessário compensar o fato de que no momento do treinamento uma parte dos neurônios foi desativada. Para isso, existem duas estratégias comuns:
- Invertendo o abandono durante a fase de treinamento:
- Escalonamento da ativação no momento do teste:
O /p
é movido do código de treinamento para o código de previsão, onde se torna *p
:
Esses três slides vieram da aula 6 da Standford CS231n: redes neurais convolucionais para reconhecimento visual .
Resposta
O abandono momentâneo (em um lote de dados de entrada) desliga alguns neurônios em uma camada para que eles não contribuam com nenhuma informação ou aprendam qualquer informação durante essas atualizações, e o ônus recai sobre outros neurônios ativos para aprender mais e reduzir o erro.
Se eu tiver que explicar o abandono para uma criança de 6 anos, é assim: Imagine um cenário, em uma sala de aula, um professor faz algumas perguntas mas sempre as mesmas duas crianças estão respondendo, imediatamente. Agora, a professora pede que fiquem quietos por um tempo e deixem outros alunos participarem. Desta forma, outros alunos aprendem melhor. Talvez respondam mal, mas o professor pode corrigi-los (atualização de peso). Desta forma, toda a classe (camada) aprende melhor sobre um tópico.
Resposta
Você pode ver o abandono como um probabilidade anterior de se um recurso (ou recurso latente em alguma camada intermediária) não importa – ou seja,um pico (ponto de massa em zero = característica não importa) e laje (plano = não realarizado antes em todo o espaço de parâmetros) antes.
É importante notar que isso permite que você não apenas regularize o ajuste do modelo, mas também para obter incerteza sobre inferência. Isso é discutido na dissertação e nos artigos (também this ) de Yarin Gal.
Deixe uma resposta