É possível obter uma ANN melhor removendo algumas conexões?

11

Eu queria saber se, em algumas circunstâncias, é possível que a ANN funcione melhor se você remover algumas conexões com elas, como por exemplo:

Construindo uma RNA, tomando duas RNAs A e B de várias camadas em paralelo (mesmos nós de entrada e saída) adicionando algumas conexões de "comunicação" entre as camadas ocultas de A e B?

Alguém poderia obter melhores resultados de generalização?

Isso é de alguma forma usado na prática ou sempre se usa apenas redes totalmente conectadas em várias camadas?

SlimJim
fonte

Respostas:

7

Sim, é possível. Algumas pessoas analisaram esse problema em detalhes. Aqui está um artigo antigo sobre um método para fazer isso: dano cerebral ideal

carlosdc
fonte
Por que desanexar os nós é melhor que a regularização? Eu pensei que, com a regularização, não há necessidade de podar as conexões - as "desnecessárias" receberão pesos muito pequenos e é isso.
andreister
@andreister Eu não acho que seja melhor que a regularização. Eu acho que é uma alternativa (inicial) à regularização. É um artigo muito antigo, a regularização tornou-se predominante no ML em meados dos anos 90.
Carlosdc
7

Como regra geral, redes pequenas e / ou esparsas generalizam melhor. Você pode permitir que seu algoritmo de treinamento elimine conexões desnecessárias em uma rede de tamanho fixo, aplicando alguma forma de redução de peso, ou você pode aplicar um algoritmo que visa otimizar a arquitetura / topologia de rede, removendo entradas desnecessárias, nós ou conexões ocultos.

Dê uma olhada nessas referências de idéias e pontos de partida para futuras pesquisas ou analise o uso de algoritmos evolutivos para projetar, podar e otimizar arquiteturas.

  1. Castellano, G., Fanelli, AM (2000) 'Seleção variável usando modelos de redes neurais', Neurcomputing (31)
  2. Ji C., Psaltis D. (1997) "Síntese de Rede através de Crescimento e Decaimento Dirigido por Dados", Neural Networks vol. 10, No. 6, pp. 1133-1141
  3. Narasimha PL et al (2008) 'Um método integrado de poda crescente para treinamento de rede feedforward', Neurocomputing (71), pp. 2831-2847
  4. Schuster, A. (2008) 'Arquiteturas de redes neurais artificiais robustas', International Journal of Computational Intelligence (4: 2), pp. 98-104
Graham Jones
fonte
Eu realmente gostaria de ouvir mais sobre a parte da resposta "analisar o uso de algoritmos evolutivos para projetar, podar e otimizar arquiteturas". Talvez eu faça uma pergunta sobre isso!
Artem Kaznatcheev
6

Na maioria dos casos, se você remover conexões desnecessárias, obterá uma rede melhor. É fácil treinar demais (overfit) a rede - nesse caso, ela terá um desempenho ruim no conjunto de dados de validação.

A remoção de conexões desnecessárias provavelmente reduzirá a probabilidade de overtraining. Por favor, consulte: http://en.wikipedia.org/wiki/Overfitting .

jb.
fonte
5

Sim, é possível. Podemos considerar, a conexão entre as unidades computacionais, o número de camadas ocultas, as unidades por camada oculta etc. como hiperparâmetros. É possível encontrar valores ótimos para esses parâmetros, realizando uma série de experimentos.

Por exemplo:

Você pode dividir seu conjunto de dados da seguinte maneira: conjunto de treinamento 60% dos dados, validação cruzada 20% dos dados, teste 20% dos dados,

Em seguida, treine seu NN usando o conjunto de dados de treinamento e o parâmetro de ajuste usando o conjunto de dados de validação cruzada.

Finalmente, você pode usar seu conjunto de dados de teste para avaliar o desempenho do seu NN.

Upul
fonte