Existe uma regra geral para o design de redes neurais?

12

Eu sei que uma arquitetura de rede neural é baseada principalmente no problema em si e nos tipos de entrada / saída, mas ainda assim - sempre existe um "quadrado" ao começar a construir um. Portanto, minha pergunta é - dado um conjunto de dados de entrada MxN (M é o número de registros, N é o número de recursos) e uma possível classe de saída C - existe uma regra geral para quantas camadas / unidades devemos começar?

abalado
fonte
As respostas possíveis para esta pergunta são muito específicas para cada problema. Pode haver algumas regras úteis para o reconhecimento de objetos de imagem, mas essas regras podem não funcionar em um conjunto de dados diferente.
horaceT

Respostas:

10

Esta pergunta foi respondida em detalhes no CrossValidated: Como escolher o número de camadas e nós ocultos em uma rede neural feedforward?

No entanto, deixe-me adicionar meus próprios dois centavos:

Não existe uma regra mágica para escolher a melhor arquitetura de rede neural, mas se você puder encontrar uma arquitetura usada por alguém para resolver um problema semelhante, esse é geralmente um excelente ponto de partida.

Os melhores lugares para procurar são exemplos oficiais ou não oficiais usando bibliotecas de redes neurais populares, como Keras, PyTorch ou Tensorflow, e arquiteturas descritas na literatura acadêmica. keras / examples no github é um ótimo recurso.

Essas arquiteturas provavelmente foram escolhidas após várias tentativas e erros; portanto, a maior parte do trabalho será realizada por você.

Imran
fonte
5
Uma ressalva à resposta CrossValidated é que ela agora tem mais de 7 anos e aponta para uma FAQ de mais de 15 anos para um "excelente resumo" da configuração de suas camadas ocultas. Dizer que houve muito trabalho na configuração da NN nos últimos 7 a 15 anos é um pouco de eufemismo. Há um número crescente de aplicativos que ficam fora do regime " uma camada oculta é suficiente ". - Dito isto, para uma série de problemas, uma abordagem de aprendizado profundo pode ser um exagero. Começar com uma única camada oculta e aprofundar se necessário é uma estratégia sólida.
RM
1
Bons pontos, RM - No entanto, a segunda resposta é muito mais recente.
Imran
@Imran Acho que você nunca responde à pergunta do OP. A escolha de nós e arquitetura ocultos é uma questão muito profunda que ainda não está muito bem entendida. Testemunhe ResNet e amplo ResNet com conexões de camada cruzada.
horaceT
Obrigado pelo seu comentário, @horaceT. Minha tentativa de resposta foi feita para significar "Não existe regra de ouro, mas existem heurísticas que podem ser aplicadas". Estou ciente das redes Res. Informe-me de que outra forma posso melhorar minha resposta.
Imran
3

Li um artigo explorando a idéia de usar redes neurais para projetar outras redes neurais, explorando qual configuração de nós e camadas era a mais eficiente. Aqui está a página onde você pode baixar um PDF https://arxiv.org/abs/1611.02120

Daniel Ephrat
fonte
2

Após a resposta de @ Imran, encontrei este artigo em um dos comentários do post CrossValidated ao qual ele vinculou. Além de uma tentativa de encontrar a arquitetura correta usando Modelos Genéticos (em vez de usar uma regra de ouro), a seção 2.1 fornece alguns limites teóricos para quantas unidades ocultas devem estar em um sistema de uma / duas camadas ocultas.

Edição: Eu testei esse teorema e descobri que usar modelos genéticos é tão bom quanto selecionar uma arquitetura aleatória.

abalado
fonte