Pergunta

De um modo geral, o que você sair de estender uma rede neural artificial, adicionando mais nós em uma camada oculta ou mais camadas escondidas?

Será que permitir mais precisão no mapeamento, ou será que permitem mais sutileza nas relações que podem identificar, ou algo mais?

Foi útil?

Solução

Não é um resultado muito conhecida na aprendizagem de máquina que os estados que uma única camada oculta é suficiente para aproximar qualquer suave, função limitada (o papel foi chamado "Multilayer feedforward redes são aproximadores universais" e é agora quase 20 anos de idade). Há várias coisas a nota, no entanto.

  • A camada escondida única pode precisar de ser arbitrariamente grande.
  • Este não diz nada sobre a facilidade com que uma aproximação pode ser encontrada; em geral grandes redes são difíceis de treinar corretamente e ser vítima de overfitting com bastante freqüência (a exceção são os chamados "redes neurais convolucionais" que realmente são destinadas apenas para problemas de visão).
  • Isto também não diz nada sobre a eficiência da representação. Algumas funções requerem números exponenciais de unidades escondidas, se feito com uma camada, mas escala muito mais bem com mais camadas (para mais discussão desta leitura Scaling Aprendizagem Algoritmos Rumo a AI )

O problema com redes neurais profundos é que eles são ainda mais difíceis de trem. Você acaba com muito, muito pequenos gradientes sendo backpropagated para as camadas anteriormente escondidas e a aprendizagem realmente não vai em qualquer lugar, especialmente se os pesos são inicializados para ser pequeno (se você inicializa-la para ser de maior magnitude você costuma ficar preso em mau mínimos locais) . Existem algumas técnicas para "pré-formação" como os discutidos neste Google Tech Talk por Geoff Hinton que tentam contornar esta situação.

Outras dicas

Esta é a pergunta muito interessante, mas não é tão fácil de responder. Depende do problema que você tentar resolver e que rede neural tentar usar. Existem vários tipos de rede neural.

I geral não é tão claro que mais nós é igual a mais precisão. Pesquisas mostram que você precisa camada principalmente apenas um escondido. O numer de nós deve ser o numer mínima de nós que são necessárias para resolver um problema. Se você não tem um número suficiente deles - você não vai chegar a uma solução.

De outro lado - se você tiver atingido o número de nós o que é bom para solução resolve -. Você pode adicionar mais e mais deles e você não vai ver qualquer novos progressos na estimativa de resultado

É por isso que existem tantos tipos de redes neurais. Eles tentam resolver diferentes tipos de problemas. Então você tem NN para resolver problemas estáticos, para os problemas relacionados com tempo resolve e assim um. O número de nós não é tão importante como o design deles.

Quando você tem uma camada escondida é que você está criando um recurso combinado da entrada. Então, é melhor o problema abordado por mais recursos da entrada existente, ou por meio de recursos de ordem superior que vêm da combinação de recursos existentes? Este é o trade-off para uma rede feed-forward padrão.

Você tem uma garantia teórica de que qualquer função pode ser representada por uma rede neural com duas camadas escondidas e ativação não-linear.

Além disso, considere o uso de recursos adicionais para aumentar, em vez de adicionar mais nós, se você não tiver certeza da topologia apropriada.

regras muito aproximado do polegar

geralmente mais elementos por camada para vectores de entrada maior.

mais camadas podem deixá-lo modelar sistemas mais não-lineares.

Se o tipo de rede que você está usando tem atrasos na propagação, mais camadas pode permitir a modelagem de séries temporais. Tome cuidado para ter jitter tempo nos atrasos ou não vai funcionar muito bem. Se este é apenas gobbledegook para você, ignorá-lo.

Mais camadas permite que você insira características recorrentes. Isto pode ser muito útil para tarefas de discriminação. implementação Você ANN minha não permite isso.

HTH

O número de unidades por camada escondida representa o potencial da ANN para descrever uma função arbitrariamente complexa. Algumas funções (complicado) pode exigir muitos nós escondidos, ou possivelmente mais de uma camada oculta.

Quando uma função pode ser mais ou menos aproximado por um determinado número de unidades escondidas, nenhum nós extras irá fornecer mais precisão ... mas isto só é verdade se as amostras de treinamento utilizados são o suficiente para justificar esta adição - caso contrário, o que vai acontecer é "overconvergence". Overconvergence meios que seu ANN perdeu suas habilidades de generalização porque tem subestimada nas amostras particulares.

Em geral, é melhor usar as unidades menos escondidos possível, se a rede resultante pode dar bons resultados. Os padrões de formação complementar necessária para justificar os nós mais ocultas não podem ser facilmente encontrados na maioria dos casos, e precisão não é o ponto forte dos NNs.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top