Por que as RNNs geralmente têm menos camadas ocultas que as CNNs?

8

As CNNs podem ter centenas de camadas ocultas e, uma vez que são frequentemente usadas com dados de imagem, ter muitas camadas captura mais complexidade.

No entanto, tanto quanto eu vi, os RNNs geralmente têm poucas camadas, por exemplo, 2-4. Por exemplo, para a classificação de eletrocardiograma (ECG), vi artigos usar LSTMs com 4 camadas e CNNs com 10-15 camadas com resultados semelhantes.

Isso ocorre porque os RNNs / LSTMs são mais difíceis de treinar se forem mais profundos (devido a problemas de fuga do gradiente) ou porque os RNNs / LSTMs tendem a superestimar rapidamente os dados sequenciais?

KRL
fonte

Respostas:

3

CNNs e RNNs apresentam métodos de extração:

CNNs tendem a extrair características espaciais. Suponha que tenhamos um total de 10 camadas de convolução empilhadas umas sobre as outras. O kernel da 1ª camada extrairá recursos da entrada. Esse mapa de recursos é então usado como uma entrada para a próxima camada de convolução, que novamente produz um mapa de recursos a partir do seu mapa de recursos de entrada.

Da mesma forma, os recursos são extraídos nível a nível da imagem de entrada. Se a entrada for uma imagem pequena de 32 * 32 pixels, definitivamente precisaremos de menos camadas de convolução. Uma imagem maior de 256 * 256 terá uma complexidade comparativamente maior de recursos.

RNNs são extratores de recursos temporais, pois mantêm uma memória das ativações da camada anterior. Eles extraem recursos como um NN, mas os RNNs lembram os recursos extraídos nos timesteps. Os RNNs também podem se lembrar de recursos extraídos via camadas de convolução. Como eles mantêm um tipo de memória, eles persistem em recursos de tempo / tempo.


Em caso de classificação do eletrocardiograma:

Com base nos papéis que você lê, parece que,

Os dados de ECG podem ser facilmente classificados usando características temporais com a ajuda de RNNs. Recursos temporais estão ajudando o modelo a classificar os ECGs corretamente. Portanto, o uso de RNNs é menos complexo.

As CNNs são mais complexas porque,

Os métodos de extração de recursos usados ​​pelas CNNs levam a esses recursos que não são poderosos o suficiente para reconhecer ECGs de forma exclusiva. Portanto, é necessário um número maior de camadas de convolução para extrair esses recursos menores para uma melhor classificação.

Finalmente,

Um recurso forte fornece menos complexidade ao modelo, enquanto um recurso mais fraco precisa ser extraído com camadas complexas.


Isso ocorre porque os RNNs / LSTMs são mais difíceis de treinar se forem mais profundos (devido a problemas de fuga do gradiente) ou porque os RNNs / LSTMs tendem a superestimar rapidamente os dados sequenciais?

Isso pode ser tomado como uma perspectiva de pensamento. As LSTM / RNNs são propensas a sobreajuste, em que uma das razões pode estar desaparecendo do problema de gradiente, conforme mencionado por @Ismael EL ATIFI nos comentários.

Agradeço a @Ismael EL ATIFI pelas correções.

Shubham Panchal
fonte
4
"LSTM / RNNs são propensos a sobreajuste por causa do problema de gradiente de fuga." Discordo. A supervisão excessiva não pode ser causada pelo problema do gradiente de fuga apenas porque o gradiente de fuga evita que os parâmetros das camadas iniciais sejam adequadamente atualizados e, portanto, se ajustem demais. "As camadas de convolução geralmente não se ajustam demais, são extratores de recursos". As camadas de convolução PODEM superajustar, assim como qualquer outra camada treinável e qualquer CNN, se superaquecerem, se tiverem muitos parâmetros em comparação com a quantidade e variedade de dados em que são treinados.
Ismael EL ATIFI
1

Sobre o número de camadas

O motivo pode ser entendido observando a arquitetura de uma CNN e de um LSTM e como ele pode operar com dados de séries temporais. Mas devo dizer que o número de camadas é algo que depende muito do problema que você está tentando resolver. Você pode resolver uma classificação de ECG usando poucas camadas LSTM, mas para o reconhecimento de atividades de vídeos, você precisará de mais camadas.

Colocando isso de lado, veja como uma CNN e um LSTM podem processar um sinal de série temporal. Um sinal muito simples, onde após três ciclos positivos você obtém um ciclo negativo.

CNN vs LSTMs

Para uma CNN ver esse padrão simples, são necessárias 4 camadas neste exemplo. Quando uma CNN processa uma entrada de série temporal, as saídas de convolução não conhecem as saídas anteriores (ou seja, elas não estão conectadas). No entanto, um LSTM pode fazer isso usando apenas uma camada, pois pode lembrar de padrões temporais em etapas de até 100s. Como uma saída é baseada na entrada atual e nas entradas anteriores que o modelo viu.

Não estou dizendo que esse é o único motivo, mas é provavelmente um dos principais fatores pelos quais as CNNs exigem mais camadas e os LSTMs não exigem dados de séries temporais.

Sobre o desaparecimento de gradientes e ajuste excessivo

É provável que o gradiente de fuga se torne um problema em uma única camada do que em várias camadas. Ou seja, ao processar muitas etapas seqüenciais, o conhecimento sobre as primeiras etapas provavelmente desaparecerá. E não creio que os modelos sequenciais possam se superestimar nos dados de séries temporais se você os regularizar corretamente. Portanto, essa escolha é provavelmente mais influenciada pela arquitetura / recursos dos modelos do que pelo gradiente de fuga ou sobreajuste.

thushv89
fonte
0

Vejo duas razões possíveis pelas quais uma RNN pode precisar de menos camadas que uma CNN para alcançar o mesmo desempenho:
- As camadas RNN são geralmente camadas totalmente conectadas que têm mais parâmetros que uma camada convolucional.
- uma RNN possui alguns componentes que permitem combinar entradas por multiplicação, diferentemente de uma CNN que só pode combinar entradas por adição ponderada. Assim, a capacidade multiplicativa da RNN lhe dá mais "poder" para calcular recursos. A CNN precisaria de muitas camadas para "imitar" essa capacidade multiplicativa.

Ismael EL ATIFI
fonte