Existem bons documentos que abordam algumas maneiras metódicas de escolher as dimensões dos filtros, agrupar as unidades e determinar o número de camadas convolucionais?
neural-networks
deep-learning
conv-neural-network
spacemonkey
fonte
fonte
Respostas:
Até certo ponto, sim, um artigo recente foi publicado por pesquisadores do Google sobre como escolher boas arquiteturas de Iniciação. As redes de criação atingem um desempenho muito alto com um orçamento de parâmetros restrito; portanto, esse é um bom ponto de partida para começar e é recente. Aqui está o link: Repensando a arquitetura de criação para a visão por computador .
Eles não oferecem regras quantitativas rígidas, mas diretrizes que eles usaram e acreditam que os ajudaram a obter um bom desempenho nas recentes competições ImageNet.
Por exemplo, alguns dos princípios que eles discutem são:
Use pilhas de camadas convolucionais de campo receptivo menores em vez de usar uma única camada convolucional de campo receptivo grande, ou seja, 2 pilhas de camadas conv 3x3 x 3 versus uma única camada conv 7x7. Essa idéia não é nova, também foi discutida em O retorno do diabo nos detalhes: Mergulhando profundamente nas redes convolucionais pela equipe de Oxford VGG. Isso é motivado pela necessidade de ser eficiente em parâmetros. Ele também tem o efeito duplo de mais capacidade representacional à medida que introduzimos mais não linearidade com mais camadas.
Algo que eu não vi na literatura mencionado neste artigo está fatorando camadas convolucionais em camadas profundas. Portanto, em vez de ter uma única camada de conv 7x7, teríamos uma camada de conv 1x7 e, em seguida, uma camada de conv 7x1. Adiciona mais profundidade, acredito que também seja eficiente em parâmetros.
Equilibre a profundidade e a largura da sua rede. Use representações de alta dimensão. Esse é um dos princípios por trás dos módulos Inception, que concatenam várias camadas convolutinais. Portanto, mesmo se você tiver um tamanho espacial pequeno em sua rede de conv., Usando os módulos Inception, podemos usar uma representação dimensional alta por meio de concatenação convolucional em várias escalas: 1x1, 3x3, 3x3-3x3, pool máximo todos juntos. Esses módulos de iniciação têm uma "largura", pois podem ser interpretados como executando várias operações em paralelo. Eles vão ainda mais longe com os novos módulos de iniciação, que fatorizam tamanhos convolucionais, 1x3, 3x1 etc.
Use camadas de conv1x1 (Rede no estilo Rede) para reduzir a dimensionalidade. Eles usam muitas técnicas de redução de dimensionalidade para alcançar a eficiência dos parâmetros. Eles acreditam que isso é eficaz porque os mapas de recursos adjacentes têm resultados altamente correlacionados. O que faz sentido, visto que as imagens naturais exibem algumas propriedades estatísticas locais consistentes com isso. Portanto, reduzir a dimensionalidade através de camadas 1x1 NIN não tem um efeito desastroso no poder representacional.
Há mais no artigo. Eu acho que é um artigo que pode oferecer algumas dicas sobre o que você está perguntando. Eles estão falando sobre alguns conceitos fundamentais do projeto arquitetônico de conv.
fonte
Não encontrei nenhuma literatura sobre a escolha desses hiperparâmetros em função das especificações do problema. Mas, entendo que a maioria está adotando métodos de otimização bayesiana para se concentrar nos valores efetivos. Você especifica um intervalo razoável e, testando várias combinações, aprende um modelo de como esses hiperparâmetros se relacionam com a precisão do modelo. Funcionou bem para mim. Confira "Otimização bayesiana prática de algoritmos de aprendizado de máquina" de Snoek, Larochelle e Adams ( http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf ).
fonte