Por que a rede neural mesclada do AlphaGo Zero é mais eficiente do que duas redes neurais separadas?
O AlphaGo Zero contém várias melhorias em comparação com seus antecessores. Detalhes arquitetônicos do Alpha Go Zero podem ser vistos nesta folha de dicas .
Uma dessas melhorias é usar uma única rede neural que calcula as probabilidades de movimento e o valor do estado ao mesmo tempo, enquanto as versões mais antigas usavam duas redes neurais separadas. Foi demonstrado que a rede neural mesclada é mais eficiente, de acordo com o artigo:
Ele usa uma rede neural em vez de duas. As versões anteriores do AlphaGo usavam uma "rede de políticas" para selecionar a próxima jogada a ser jogada e uma "rede de valores" para prever o vencedor do jogo em cada posição. Eles são combinados no AlphaGo Zero, permitindo que ele seja treinado e avaliado com mais eficiência.
Isso parece contra-intuitivo para mim, porque, de uma perspectiva de design de software, isso viola a principal separação de preocupações . É por isso que me pergunto, por que essa mesclagem se provou benéfica.
Essa técnica - mesclando tarefas diferentes em uma única rede neural para melhorar a eficiência - pode ser aplicada a outras redes neurais em geral ou isso exige certas condições para funcionar?
Por que essa fusão provou ser benéfica?
Se você pensa na rede Value / Policy compartilhada como consistindo em um componente compartilhado (as camadas da Rede Residual) com um componente Value and Policy no topo, em vez de Separação de Preocupações, faz mais sentido.
A premissa subjacente é que a parte compartilhada da rede (o ResNet) fornece uma generalização de alto nível da entrada (os estados do jogo que antecederam a mudança), que é uma boa representação de entrada para as redes rasas de Valor e Política.
Nesse caso, podemos reduzir muito a carga computacional treinando uma única ResNet compartilhada e usando-a para duas redes muito mais simples do que treinando duas ResNets para o valor e a política. No caso deles, treinar os dois juntos também melhora a regularização e, assim, cria uma representação geral mais robusta.
Especificamente, o artigo Alpha Go Zero, de Silver et al. , Dominando o jogo de ir sem conhecimento humano , afirma que:
A combinação de política e valor em uma única rede reduziu levemente a precisão da previsão de movimentação, mas reduziu o erro de valor e aumentou o desempenho de reprodução no AlphaGo em cerca de outros 600 Elo. Isso se deve em parte à melhoria da eficiência computacional, mas o mais importante é que o objetivo duplo regulariza a rede para uma representação comum que suporta vários casos de uso.
Essa técnica pode ser aplicada em geral ou apenas em casos especiais?
Como componentes comuns em bibliotecas de software, só faz sentido quando os problemas que você está tentando resolver se beneficiam de uma representação compartilhada.
Você pode usá-lo se estiver treinando classificadores para tarefas semelhantes ou treinando uma nova tarefa com poucos dados, onde você já possui um classificador treinado em um conjunto de dados semelhante maior .
Fora do Go, geralmente é usado no reconhecimento de imagens. Redes profundas e pré-treinadas, como as das competições ImageNet ILSVRC , são comumente usadas como ponto de partida. São classificadores treinados (há semanas!) Em mais de um milhão de imagens.
Então, diga que deseja criar uma rede para reconhecer sua marca favorita de bicicletas, comece com o pipeline de reconhecimento de imagem geral treinado no ImageNet, selecione as últimas camadas que fazem a classificação real ("é um Border Collie") e adicione um pequeno classificador novo para escolher apenas as bicicletas mais importantes para você.
Como o classificador pré-treinado já fornece conceitos de imagem de alto nível que são bons componentes para o reconhecimento de imagens (ele classifica 200 categorias), isso poupa muito treinamento e cria um classificador muito robusto.
É claro que existem muitos casos em que os problemas não têm representações compartilhadas úteis e, portanto, não se beneficiam de uma rede combinada. No entanto, é uma ferramenta útil nas situações certas.
Procure Transfer Learning ou Multi-Task Learning para saber mais sobre isso.
Se alguém quiser usar os princípios de engenharia de software para analisar a arquitetura dessa rede neural, eu também apontaria que a rede de blocos residuais sobre a qual repousam o valor e a política honra o princípio DRY. Dependendo do mesmo componente (a rede de blocos residuais) para pré-processar os dados antes de passar esses dados para os outros componentes no pipeline (os cabeçalhos de valor e política), eles garantem que cada um processe a mesma representação da entrada original. Duplicar esse processamento com duas redes separadas quase garante divergência ao longo do tempo.