O que é o pré-treinamento de uma rede neural?

22

Bem, a pergunta já diz tudo.

O que se entende por "pré-treinar uma rede neural"? Alguém pode explicar em inglês simples e puro?
Não consigo encontrar recursos relacionados a ele. Seria ótimo se alguém pudesse me apontar para eles.

Machina333
fonte
www.deeplearningbook.org tem uma boa introdução ao tópico.
precisa saber é o seguinte

Respostas:

22

A maneira usual de treinar uma rede:

Você deseja treinar uma rede neural para executar uma tarefa (por exemplo, classificação) em um conjunto de dados (por exemplo, um conjunto de imagens). Você inicia o treinamento inicializando os pesos aleatoriamente. Assim que você inicia o treinamento, os pesos são alterados para executar a tarefa com menos erros (ou seja, otimização). Quando estiver satisfeito com os resultados do treinamento, salve os pesos da sua rede em algum lugar.

Agora você está interessado em treinar uma rede para executar uma nova tarefa (por exemplo, detecção de objetos) em um conjunto de dados diferente (por exemplo, imagens também, mas não as mesmas que você usou antes). Em vez de repetir o que você fez na primeira rede e começar a treinar com pesos inicializados aleatoriamente, você pode usar os pesos salvos na rede anterior como os valores de peso iniciais para sua nova experiência. Inicializar os pesos dessa maneira é chamado de uso de uma rede pré-treinada. A primeira rede é a sua rede pré-treinada. O segundo é a rede que você está ajustando.

A idéia por trás do pré-treinamento é que a inicialização aleatória é ... bem ... aleatória, os valores dos pesos não têm nada a ver com a tarefa que você está tentando resolver. Por que um conjunto de valores deve ser melhor que outro conjunto? Mas de que outra forma você inicializaria os pesos? Se você sabia como inicializá-los adequadamente para a tarefa, é melhor configurá-los com os valores ideais (um pouco exagerados). Não há necessidade de treinar nada. Você tem a solução ideal para o seu problema. O pré-treinamento dá à rede um avanço. Como se tivesse visto os dados antes.

O que observar ao pré-treinamento:

A primeira tarefa usada no pré-treinamento da rede pode ser a mesma do estágio de ajuste fino. Os conjuntos de dados usados ​​para pré-treinamento versus ajuste fino também podem ser os mesmos, mas também podem ser diferentes. É realmente interessante ver como o pré-treinamento em uma tarefa diferente e em um conjunto de dados diferente ainda pode ser transferido para um novo conjunto de dados e uma nova tarefa ligeiramente diferente. O uso de uma rede pré-treinada geralmente faz sentido se ambas as tarefas ou os dois conjuntos de dados tiverem algo em comum. Quanto maior a diferença, menor será o pré-treinamento. Não faz sentido pré-treinar uma rede para classificação de imagens treinando-a primeiro em dados financeiros. Nesse caso, há muita desconexão entre os estágios de pré-treinamento e ajuste.

ypx
fonte
10

A pré-formação / ajuste fino funciona da seguinte maneira:

  1. Você tem o modelo de aprendizado de máquina .m
  2. Pré-treinamento : você tem um conjunto de dados no qual treina .UMAm
  3. Você tem um conjunto de dados . Antes de começar a treinar o modelo, você inicializar alguns dos parâmetros de com o modelo que é treinado em .BmUMA
  4. Fine-tuning : Você trem em .mB

Essa é uma forma de aprendizado de transferência. Então você pode transferir algum do conhecimento obtido a partir do conjunto de dados para dataset . Veja meu Glossário de aprendizado de máquina para obter este e mais termos explicados em poucas palavras.UMAB

Martin Thoma
fonte
Nota lateral: as pessoas podem usar o termo ajuste fino apenas se você (não) congelar os pesos. Eu não tenho certeza se há um uso consistente do termo
Martin Thoma
4

As duas respostas acima explicam bem. Só quero acrescentar uma coisa sutil sobre o pré-treinamento para redes de crenças profundas (DBN). O pré-treinamento para DBN é aprendizado não supervisionado (ou seja, sem dados rotulados) e o treinamento posterior é aprendizado supervisionado (ou seja, sem dados rotulados).

Lamothy
fonte