Redes neurais modernas que constroem sua própria topologia

21

Uma limitação dos algoritmos de rede neural padrão (como backprop) é que você precisa tomar uma decisão de design de quantas camadas ocultas e neurônios por camada deseja. Geralmente, a taxa de aprendizagem e a generalização são altamente sensíveis a essas opções. Esta foi a razão pela qual algoritmos de redes neurais como correlação em cascata têm gerado interesse. Começa com uma topologia mínima (apenas unidades de entrada e saída) e recruta novas unidades ocultas à medida que o aprendizado avança.

O algoritmo CC-NN foi introduzido por Fahlman em 1990 e a versão recorrente em 1991. Quais são alguns dos algoritmos de rede neural mais recentes (após 1992) que começam com uma topologia mínima?


Perguntas relacionadas

CogSci.SE: Redes neurais com relatos biologicamente plausíveis de neurogênese

Artem Kaznatcheev
fonte
É possível experimentar redes neurais baseadas em projeção aleatória. Código de entrada do blog (github)
Sean O'Connor

Respostas:

10

A questão implícita aqui é como você pode determinar a topologia / estrutura de uma rede neural ou modelo de aprendizado de máquina, de modo que o modelo seja "do tamanho certo" e não se ajuste demais ou não.

Desde a correlação em cascata, em 1990, já existem vários métodos para fazer isso agora, muitos deles com propriedades estatísticas ou computacionais muito melhores:

  • impulsionar: treine um aluno fraco de cada vez, com cada aluno fraco recebendo um conjunto de treinamento com novo peso para que ele aprenda coisas que os alunos anteriores não aprenderam.
  • escassez induzindo a regularização como laço ou determinação automática de relevância: comece com um modelo / rede grande e use um regularizador que incentive as unidades desnecessárias a serem "desligadas", deixando aquelas que são úteis úteis.
  • Não paramétricos bayesianos: esqueça de tentar encontrar o tamanho "certo" do modelo. Basta usar um modelo grande e ser cuidadoso ao regularizar / ser bayesiano, para não exagerar. Por exemplo, uma rede neural com um número infinito de unidades e priores gaussianos pode ser derivada de um processo gaussiano, que acaba sendo muito mais simples de treinar.
  • Aprendizado profundo: conforme observado em outra resposta, treine uma rede profunda, uma camada por vez. Na verdade, isso não resolve o problema de determinar o número de unidades por camada - geralmente isso ainda é definido manualmente ou com validação cruzada.

fonte
4

Pelo que entendi hoje, o que há de mais moderno é "Aprendizado não supervisionado de recursos e aprendizado profundo". em poucas palavras: a rede está sendo treinada de maneira não supervisionada, cada camada por vez:

Dov
fonte
começa com um número mínimo de neurônios (apenas entrada e saída)?
Artem Kaznatcheev
o aprendizado profundo contém uma ampla variedade de métodos para redes neurais com várias camadas ocultas. Eu não estou familiarizado com os métodos A tal que determina o número de neurônios, mas talvez Google Scholar sabe mais ...
Ran
Afaik, o número é previamente fixado em todos os métodos competitivos atuais. Isso é um problema, pois isso significa que há muitos hiper parâmetros. Para lidar com isso, James Bergstra recentemente propôs o uso de Processos Gaussianos para encontrar as melhores configurações de hiperparâmetros9: http://people.fas.harvard.edu/~bergstra/files/pub/11_nips_hyperopt.pdf). Mas esse é um tipo de "loop externo" que tenta muitas configurações diferentes de maneira inteligente.
Andreas Mueller
4

Já houve uma menção ao NEAT (Evolução Neural com Topologias Aumentadas). Há avanços nisso, incluindo especiação e HyperNEAT. O HyperNEAT usa uma rede 'meta' para otimizar o peso de um fenótipo totalmente conectado. Isso fornece uma 'consciência espacial' da rede, que é inestimável no reconhecimento de imagens e em problemas do tipo jogo de tabuleiro. Você também não está limitado ao 2D. Eu estou usando em 1D para análise de sinal e 2D para cima é possível, mas fica pesado no requisito de processamento. Procure documentos de Ken Stanley e há um grupo no Yahoo. Se você tiver um problema tratável com uma rede, então pode ser aplicável o NEAT e / ou o HyperNEAT.


fonte
3

Há um artigo um pouco recente sobre esse tópico: RP Adams, H. Wallach e Zoubin Ghahramani. Aprendendo a estrutura de modelos gráficos esparsos profundos. Isso está um pouco fora da comunidade de rede neural usual e mais do lado do aprendizado de máquina. O artigo utiliza inferência bayesiana não paramétrica na estrutura da rede.

Andreas Mueller
fonte