O esquecimento catastrófico é um problema inerente às redes neurais. Na Wikipedia,
(Esquecimento catastrófico) é uma manifestação radical do dilema "sensibilidade-estabilidade" ou do dilema "estabilidade-plasticidade". Especificamente, esses problemas se referem à questão de poder criar uma rede neural artificial que seja sensível a, mas não interrompida por, novas informações. As tabelas de pesquisa e as redes conexionistas estão do lado oposto do espectro da plasticidade da estabilidade. O primeiro permanece completamente estável na presença de novas informações, mas carece da capacidade de generalizar, isto é, inferir princípios gerais, a partir de novos insumos.
O que é o esquecimento catastrófico? Vamos considerar duas tarefas: Tarefa A e tarefa B. Agora, suponha que estamos usando um modelo pré-treinado que já é bastante bom na tarefa A (pesos aprendidos ) e queremos "ajustá-lo" para também ajustar a tarefa B. A prática comum é pegar os pesos de um modelo treinado na tarefa A e usá-los como inicialização para o treinamento na tarefa B. Isso funciona bemθUMAem aplicações nas quais a tarefa B é uma "subtarefa" da tarefa A (por exemplo, a tarefa B está detectando óculos e a tarefa A está detectando rostos). Quando B não é uma subtarefa de A, existe o medo de que o esquecimento catastrófico ocorra: essencialmente, a rede usará os mesmos neurônios que antes eram otimizados para a tarefa A, para prever a tarefa B. Ao fazer isso, perde completamente sua capacidade de classificar instâncias da tarefa A corretamente. Na verdade, você pode experimentar isso: você pode criar uma pequena rede que possa dizer se uma imagem MNIST é 5 ou não 5 e mede sua precisão nessa tarefa; Se você depois ajustar o modelo com a tarefa de determinar se uma imagem MNIST é 4 ou não, notará que a precisão do modelo final na tarefa original (reconhecimento 5) piorou.
Uma solução ingênua. A solução ingênua para o esquecimento catastrófico seria não apenas inicializar os pesos do modelo com para , mas também adicionar regularização: penalizar a solução do modelo com quando ele estiver longe de . Essencialmente, isso significa que o objetivo será encontrar a melhor solução para a tarefa B que ainda seja semelhante a , a solução para a tarefa A. A razão pela qual chamamos isso de uma abordagem ingênua é que muitas vezes não funciona bem. As funções aprendidas pelas redes neurais costumam ser muito complicadas e longe de lineares; portanto, uma pequena alteração nos valores dos parâmetros (por exemplo, estando próximo de ) ainda pode levar a resultados muito diferentes (por exemplo,θUMAθUMAθUMAθBθUMAfθUMA é muito diferente de ). Como são os resultados com os quais nos preocupamos, isso é ruim para nós.fθB
Pseudo-ensaio . Uma abordagem melhor seria tentar ser bom na tarefa B e, ao mesmo tempo, dar respostas semelhantes às respostas dadas por . O bom é que essa abordagem é muito fácil de implementar: Depois de aprender , podemos usar esse modelo para gerar um número infinito de exemplos "rotulados" . Então, ao treinar o modelo ajustado, alternaremos entre exemplos rotulados para a tarefa B e exemplos do formulário . Você pode pensar sobre este último como "exercícios de revisão" que se certificar que a nossa rede não perde a sua capacidade de alça tarefa Um tempo aprendendo a tarefa alça B .fθUMAθUMA( x ,fθUMA( x ) )( x ,fθUMA( x ) )
Uma abordagem ainda melhor: adicione memória . Como seres humanos, somos bons em generalizar (plasticidade) usando novos exemplos e em lembrar eventos muito raros, ou em manter habilidades que não usamos por um tempo (estabilidade). De muitas maneiras, o único método para alcançar algo semelhante com as redes neurais profundas, como as conhecemos, é incorporar alguma forma de "memória" nelas. Isso está fora do escopo da sua pergunta, mas é um campo de pesquisa interessante e ativo, então eu gostaria de mencioná-lo. Veja este exemplo de trabalho recente: APRENDENDO A LEMBRAR EVENTOS RAROS .