1 camada oculta com 1000 neurônios vs. 10 camadas ocultas com 100 neurônios

13

Esses tipos de perguntas podem ser dependentes de problemas, mas tentei encontrar pesquisas que abordassem a questão de saber se o número de camadas ocultas e seu tamanho (número de neurônios em cada camada) realmente importa ou não.

Então, minha pergunta é: realmente importa se, por exemplo, temos uma grande camada oculta de 1000 neurônios vs. 10 camadas ocultas com 100 neurônios cada?

Stephen Johnson
fonte

Respostas:

12

Basicamente, ter várias camadas (também conhecida como rede profunda) torna sua rede mais ansiosa para reconhecer certos aspectos dos dados de entrada. Por exemplo, se você tiver os detalhes de uma casa (tamanho, tamanho do gramado, localização etc.) como entrada e desejar prever o preço. A primeira camada pode prever:

  • Área grande, preço mais alto
  • Pequena quantidade de quartos, preço mais baixo

A segunda camada pode concluir:

  • Área grande + pequena quantidade de quartos = quartos grandes = + - efeito

Sim, uma camada também pode 'detectar' as estatísticas, no entanto, será necessário mais neurônios, pois não pode confiar em outros neurônios para fazer 'partes' do cálculo total necessário para detectar essa estatística.

Confira esta resposta

Thomas W
fonte
Muito obrigado pela sua resposta. Apenas para esclarecer, quando você escreve "faz sua rede [...]", você está se referindo ao caso em que tenho muitas camadas ocultas com menos neurônios cada, em vez de ter mais neurônios em menos camadas?
Stephen Johnson
@StephenJohnson oops, editei a pergunta. Estou me referindo à rede profunda (várias camadas).
Thomas W
Boa resposta, obrigado novamente. Talvez eu deva continuar isso em outro tópico, mas você acha que o mesmo tipo de raciocínio se aplica a redes neurais recorrentes, como GRU ou LSTM?
Stephen Johnson
@StephenJohnson, você quer dizer redes recorrentes em camadas versus redes recorrentes multicamadas ou por causa de suas conexões recorrentes?
Thomas W
Em geral, como as conexões recorrentes permitem mapear contextos a longas distâncias, essas redes se beneficiam por serem Deep da mesma maneira que uma rede feedforward regular faria? Talvez eles não possam ser comparados assim, pois as redes recorrentes geralmente são usadas quando dados sequenciais, como áudio, são usados.
Stephen Johnson
4

Existem muitos aspectos.

1. Treinamento: O treinamento de redes profundas é um trabalho árduo devido ao problema de gradiente de fuga (explosão traseira). Portanto, não é recomendável construir uma rede neural de 10x100.

2. Desempenho de rede treinado:

  • Perda de informação: o uso clássico de redes neurais é o problema de classificação . O que significa que queremos obter informações bem definidas dos dados. (Ex. Existe uma face na imagem ou não.) Portanto, normalmente, o problema de classificação tem muitas entradas e poucas saídas, quanto mais o tamanho das camadas ocultas desce da entrada para a saída. No entanto, perdemos informações usando menos neurônios camada por camada. (Ou seja, não podemos reproduzir a imagem original com base no fato de haver uma face ou não.) Portanto, você deve saber que perde informações usando 100 neurônios se o tamanho da entrada for (digamos) 1000.
  • Complexidade das informações: no entanto, as redes mais profundas (como Tomas W mencionou) podem buscar informações mais complexas dos dados de entrada. Apesar disso, não é recomendável usar 10 camadas totalmente conectadas. É recomendado o uso de convolutional / relu / maxpool ou outro tipo de camadas. As camadas mais firmes podem comprimir parte essencial das entradas. (Ex existe alguma linha em uma parte específica da imagem) As segundas camadas podem dizer: Há uma forma específica nesse local da imagem. Etc etc.

Redes mais profundas são mais "inteligentes", mas a estrutura líquida de 10x100 é uma boa escolha.

betontalpfa
fonte
1

Se o problema que você está resolvendo é linearmente separável, uma camada de 1000 neurônios pode fazer um trabalho melhor do que 10 camadas com cada um dos 100 neurônios. Se o problema for não linear e não convexo, você precisará de redes neurais profundas.

Sreedhar Veluri
fonte
2
Se o problema é linearmente separável, você não precisa de camadas ocultas
Amedeo Baragiola
0

Eu acho que você tem uma confusão no básico das redes neurais. Cada camada possui uma função de ativação separada e pesos de conexão de entrada / saída.

A saída da primeira camada oculta será multiplicada por um peso, processada por uma função de ativação na próxima camada e assim por diante. As redes neurais de camada única são muito limitadas para tarefas simples; NN mais profundo pode ter um desempenho muito melhor do que uma camada única.

No entanto, não use mais de uma camada se o seu aplicativo não for bastante complexo. Em conclusão, camada de 100 neurônios não significa rede neural melhor do que 10 camadas x 10 neurônios, mas 10 camadas são algo imaginário, a menos que você esteja aprendendo profundamente. comece com 10 neurônios na camada oculta e tente adicionar camadas ou adicionar mais neurônios à mesma camada para ver a diferença. aprender com mais camadas será mais fácil, mas é necessário mais tempo de treinamento.

ahmadjordan
fonte