Regularização? Ortogonalização! Melhorando redes compactas


Enquanto outras empresas discutem o gerenciamento remoto da equipe, nós da Smart Engines continuamos compartilhando nossa pilha de tecnologias com você. Hoje sobre a otimização de redes neurais. É extremamente difícil criar um sistema de reconhecimento baseado em redes neurais que possam funcionar rapidamente em smartphones e outros dispositivos móveis. E garantir que a qualidade seja alta é ainda mais difícil. Neste artigo, falaremos sobre um método simples de regularização de redes neurais que usamos nos Smart Engines para melhorar a qualidade das redes "móveis" com um pequeno número de parâmetros. A idéia do método baseia-se em uma diminuição gradual da dependência linear dos filtros nas camadas convolucionais durante o treinamento, devido à qual cada neurônio trabalha com mais eficiência e, portanto, a capacidade de generalização do modelo é aprimorada.Para isso, apresentamos filtros na forma de vetores unidimensionais e ortogonalizamos um par com o maior comprimento de projeção um sobre o outro.

Ao projetar a maioria das redes neurais modernas, entende-se que elas serão executadas em algum lugar remotamente no servidor e os dados para processamento serão enviados pelo cliente em um PC ou dispositivo móvel. No entanto, essa abordagem é inaceitável quando se trata da segurança dos dados pessoais que você não deseja transferir para outro lugar (por exemplo, uma foto de passaporte ou um cartão bancário para reconhecimento). Felizmente para nós, hoje os dispositivos móveis têm capacidade suficiente para executar redes neurais, para que você possa evitar o envio de dados a terceiros. Outra coisa é que essas redes devem ser pequenas e conter um pequeno número de operações para não testar a paciência do usuário. Tais condições limitam a qualidade máxima alcançável de seu trabalho,e como melhorar redes leves sem sacrificar o tempo de execução é uma questão em aberto. Refletindo sobre isso, criamos um novo método de regularização em redes neurais, focado em redes compactas e consistindo na ortogonalização de filtros convolucionais.

A publicação é uma versão curta do relatório "Regularização convencional de pesos de redes neurais via ortogonalização", apresentado em novembro de 2019 na conferência internacional ICMV 2019, Amsterdã, Holanda.

A idéia de regularização usando ortogonalização


Como o método proposto se refere à regularização, primeiro recordamos brevemente o que é. A regularização consiste em impor algumas restrições ao modelo com base em nossas idéias sobre como a tarefa deve ser resolvida. Como resultado, a capacidade de generalização da rede é aumentada. Por exemplo, a regularização de L1 contribui para zerar parte da balança, fazendo com que a rede seja descarregada, L2 - mantém coeficientes em pequenos números, o abandono elimina as dependências de neurônios individuais, etc. Esses métodos são parte integrante do processo de aprendizado de muitas redes modernas, especialmente se elas contiverem um grande número de parâmetros - a regularização permite lidar razoavelmente bem com a reciclagem.

Agora, de volta ao nosso método. Nós fazemos uma reserva imediatamente que, em primeiro lugar, consideramos o problema de classificar imagens com uma rede neural convolucional. A suposição, com base na qual chegamos ao uso da ortogonalização, é a seguinte: se a rede é extremamente limitada em seus recursos para o conceito de padrões nos dados, então cada neurônio nela deve funcionar da maneira mais eficiente possível e para que desempenhe a função estritamente atribuída a ela. Em outras palavras, para que "ligue" características que qualquer outro neurônio não consiga detectar. Resolvemos esse problema reduzindo gradualmente a relação linear entre os vetores de peso dos neurônios durante o treinamento. Para isso, modificamos o algoritmo de ortogonalização clássico, adaptando-o às realidades do processo de aprendizagem.

Ortogonalização do filtro de convolução


Defina os filtros da camada convolucional como um conjunto de vetores , onde c é o índice da camada convolucional e N é o número de filtros nela. Depois que os pesos foram atualizados durante a propagação posterior do erro, em cada camada convolucional individual, procuramos um par de vetores com um comprimento máximo de projeção um em cima do outro:



A projeção do vetor f g em f k pode ser calculada como . Então, a fim de orthogonalize os filtros de f um e f b , substituímos o primeiro passo do algoritmo de Gram-Schmidt com a



seguinte fórmula:



onde η é a velocidade de aprendizagem e de mostocoeficiente de ortogonalização, cujos valores estão no intervalo [0,0, 1,0]. A introdução do coeficiente de ortogonalização se deve ao fato de que a ortogonalização "instantânea" dos filtros interrompe bastante o processo de aprendizado, negando as alterações sistemáticas nos pesos nas iterações anteriores. Os pequenos valores de mosto preservam a dinâmica do aprendizado e contribuem para uma diminuição suave na relação linear entre os filtros em cada camada separadamente. Observamos mais uma vez um ponto importante no método: em uma iteração, modificamos apenas um vetor para não prejudicar o algoritmo de otimização.


FIG. Visualização de uma iteração.

Consideramos apenas a ortogonalização de filtros convolucionais, já que nas redes neurais modernas as camadas convolucionais compõem uma grande parte da arquitetura. No entanto, o algoritmo é facilmente generalizado para os pesos dos neurônios em camadas totalmente conectadas.

Experiências


Passamos da teoria para a prática. Para experimentos, decidimos usar os 2 conjuntos de dados mais populares para avaliar redes neurais no campo da visão computacional - MNIST (classificação de imagens de números escritos à mão) e CIFAR10 (fotos de 10 classes - barcos, caminhões, cavalos, etc.).

Como assumimos que a ortogonalização será útil principalmente para redes compactas, adotamos uma arquitetura do tipo LeNet em 3 modificações, que diferem entre si no número de filtros nas camadas convolucionais. A arquitetura de nossa rede, que será chamada LeNet 1.0 por conveniência, é mostrada na Tabela 1. As arquiteturas LeNet 2.0 e LeNet 3.5 derivadas dela são distinguidas por um grande número de filtros em camadas convolucionais, 2 e 3,5 vezes, respectivamente.

Escolhendo a função de ativação, paramos na ReLU não apenas porque é a função mais popular e computacionalmente eficiente (lembramos que ainda estamos falando de redes rápidas). O fato é que o uso de funções lineares não por partes nega o efeito da ortogonalização: por exemplo, a tangente hiperbólica distorce fortemente os vetores de entrada, pois possui uma não linearidade pronunciada em regiões próximas à saturação.

Tabela 1. Arquitetura de rede LeNet 1.0 usada nas experiências.
Camadas
#Um tipoParâmetrosFunção de
ativação
1 1conv8 filtros 3x3, passada 1x1, sem preenchimentoRelu
2conv16 filtros 5x5, passada 2x2, preenchimento 2x2Relu
3conv16 filtros 3x3, passada 1x1, preenchimento 1x1Relu
4conv32 filtros 5x5, passada 2x2, preenchimento 2x2Relu
5conv32 filtros 3x3, passada 1x1, preenchimento 1x1Relu
6conv32 filtros 3x3, passada 1x1, preenchimento 1x1Relu
7totalmente conectado10 neurôniosSoftmax

Tentamos 3 valores do coeficiente de ortogonalização do mosto : 0,01, 0,05, 0,1. Todas as experiências foram realizadas 10 vezes e os resultados foram calculados como média (o desvio padrão ( std ) para a taxa de erro é mostrado na tabela com os resultados). Também calculamos quantos por cento o número de erros ( benefício ) diminuiu .

Os resultados experimentais confirmaram que quanto maior a melhora ortogonalizada, menores os parâmetros na rede (tabelas 2 e 3). Também obtivemos um resultado interessante de que o uso da ortogonalização no caso de redes “pesadas” leva a baixa qualidade.

Tabela 2. Resultados experimentais para MNIST
MnistLeNet 1.0 (52k parâmetros)LeNet 2.0 (179k parâmetros)LeNet 3.5 (378k parâmetros)
taxa de errostdbenefíciotaxa de errostdbenefíciotaxa de errostdbenefício
linha de base0,402%0,033-0,366%0,026-0,361%0,028-
mosto = 0,010,379%0,0275,72%0,355%0,013,01%0,359%0,0260,55%
mosto = 0,050,36%0,02210,45%0,354%0,0183,28%0,356%0,0341,39%
mosto = 0,10,368%0,0158,46%3,53%0,0243,55%0,335%0,0182,22%

Tabela 3. Resultados experimentais do CIFAR10
Cifar10LeNet 1.0 (52k parâmetros)LeNet 2.0 (179k parâmetros)LeNet 3.5 (378k parâmetros)
taxa de errostdbenefíciotaxa de errostdbenefíciotaxa de errostdbenefício
linha de base22,09%0,65-18,49%1.01-17,08%0,47-
mosto = 0,0121,56%0,862,38%18,14%0,651,89%17,33%0,49-1,46%
mosto = 0,0521,59%0,482,24%18,30%0,571,03%17,59%0,31-3,02%
mosto = 0,121,54%0,412,48%18,15%0,531,85%17,53%0,4-2,63%

No entanto, as redes LeNet agora são raras e modelos mais modernos são geralmente usados. Portanto, também experimentamos o modelo ResNet, facilitado pelo número de filtros, composto por 25 camadas convolucionais. As primeiras 7 camadas continham 4 filtros, as próximas 12 por 8 filtros e as últimas 6 por 16 filtros. O número total de parâmetros treinados para este modelo foi de 21 mil. O resultado foi semelhante: a ortogonalização melhora a qualidade da rede.


FIG. Comparação da dinâmica de aprendizado ResNet no MNIST com e sem ortogonalização.

Apesar das melhorias alcançadas na qualidade, para total confiança na operação correta do método proposto, você precisa ver quais alterações ocorreram nos próprios filtros. Para isso, os valores do comprimento máximo de projeção do filtro nas camadas 2, 12 e 25 da ResNet foram baixados para todas as épocas do treinamento. Damos a dinâmica das mudanças nos gráficos abaixo. O mais importante aqui é que, em todas as camadas, há uma diminuição na dependência linear dos filtros.


FIG. Dinâmica das alterações no comprimento máximo de projeção dos filtros em uma camada convolucional usando o ResNet como exemplo.

A regularização baseada em ortogonalização é extremamente fácil de implementar: no python, usando o módulo numpy, são necessários menos de 10 linhas de código. Ao mesmo tempo, não retarda o treinamento e é compatível com outros métodos de regularização.

Conclusão


Apesar de sua simplicidade, a ortogonalização ajuda a melhorar a qualidade das redes "leves", que impõem restrições ao tamanho e velocidade da execução. Devido à proliferação de tecnologias móveis, essas restrições são cada vez mais comuns: uma rede neural não deve ser executada em algum lugar da nuvem, mas diretamente em um dispositivo com um processador fraco e pouca memória. O treinamento dessas redes é contrário às tendências modernas da ciência das redes neurais, onde são usados ​​ativamente conjuntos de modelos com milhões de parâmetros treinados que nenhum smartphone pode puxar. É por isso que, no quadro da solução de problemas industriais, é extremamente importante inventar e desenvolver métodos para melhorar a qualidade de redes simples e rápidas.

Lista de fontes utilizadas


Alexander V. Gayer, Alexander V. Sheshkus, "Rede neural convolucional ponderação regularização via ortogonalização", Proc. SPIE 11433, Décima Segunda Conferência Internacional sobre Visão de Máquina (ICMV 2019), 1143326 (31 de janeiro de 2020); https://doi.org/10.1117/12.2559346

All Articles