AlexNet é uma rede neural convolucional para classificação de imagens. Desenvolvimento de um sistema de reconhecimento de imagens baseado no aparato de redes neurais artificiais Redes neurais multicamadas

AlexNet é uma rede neural convolucional que teve um grande impacto no desenvolvimento de aprendizado de máquina, especialmente algoritmos de visão computacional. A rede venceu a competição de reconhecimento de imagem ImageNet LSVRC-2012 por uma grande margem em 2012 (com 15,3% de erros contra 26,2% no segundo lugar).

A arquitetura do AlexNet é semelhante à do LeNet de Yann LeCum. No entanto, AlexNet tem mais filtros por camada e camadas convolucionais aninhadas. A rede inclui convoluções, pooling máximo, dropout, aumento de dados, ativações ReLU e descida gradiente estocástica.

Recursos do AlexNet

  1. Como uma função de ativação, Relu é usado em vez de arco tangente para adicionar não linearidade ao modelo. Devido a isso, com a mesma precisão do método, a velocidade torna-se 6 vezes mais rápida.
  2. Usar o abandono em vez da regularização resolve o problema de overfitting. No entanto, o tempo de treinamento dobra com uma taxa de evasão de 0,5.
  3. Junções sobrepostas são realizadas para reduzir o tamanho da rede. Devido a isso, o nível de erros do primeiro e quinto níveis são reduzidos para 0,4% e 0,3%, respectivamente.

Conjunto de dados ImageNet

ImageNet é uma coleção de 15 milhões de imagens marcadas de alta resolução divididas em 22.000 categorias. As imagens foram coletadas online e marcadas manualmente usando o crowdsourcing Mechanical Turk da Amazon. Desde 2010, o Desafio de Reconhecimento Visual em Grande Escala da ImageNet (ILSVRC) anual é realizado como parte do Pascal Visual Object Challenge. O desafio usa uma parte do conjunto de dados ImageNet com 1000 imagens em cada uma das 1000 categorias. Um total de 1,2 milhão de imagens são obtidas para treinamento, 50.000 imagens para verificação e 150.000 para teste. ImageNet consiste em imagens com diferentes resoluções. Portanto, para a competição, eles são redimensionados para uma resolução fixa de 256 × 256. Se a imagem original era retangular, ela é cortada em um quadrado no centro da imagem.

Arquitetura

Imagem 1

A arquitetura da rede é mostrada na Figura 1. AlexNet contém oito camadas ponderadas. Os primeiros cinco deles são convolucionais e os outros três estão totalmente conectados. A saída é passada por uma função de perda softmax que gera uma distribuição de 1000 rótulos de classe. A rede maximiza a regressão logística multilinear, o que equivale a maximizar a média sobre todos os casos de treinamento do logaritmo da probabilidade de rotulagem correta sobre a distribuição de expectativa. Os kernels da segunda, quarta e quinta camadas convolucionais são associados apenas aos mapas de kernel na camada anterior que estão na mesma GPU. Os núcleos da terceira camada convolucional estão associados a todos os mapas principais da segunda camada. Neurônios em camadas totalmente conectadas são conectados a todos os neurônios na camada anterior.

Assim, AlexNet contém 5 camadas convolucionais e 3 camadas totalmente conectadas. Relu é aplicado após cada camada convolucional e totalmente conectada. A eliminação é aplicada antes da primeira e da segunda camadas totalmente conectadas. A rede contém 62,3 milhões de parâmetros e requer 1,1 bilhão de cálculos em uma passagem para frente. Camadas convolucionais, que respondem por 6% de todos os parâmetros, fazem 95% dos cálculos.

Educação

AlexNet passa por 90 eras. O treinamento leva 6 dias por vez em duas GPUs Nvidia Geforce GTX 580, que é a razão pela qual a rede está dividida em duas. A descida gradiente estocástica é usada com uma taxa de aprendizado de 0,01, um impulso de 0,9 e um declínio de pesos de 0,0005. A taxa de aprendizagem é divisível por 10 após a saturação da precisão e diminui em 3 vezes ao longo do treinamento. Esquema de atualização do coeficiente de ponderação C parece:

Onde eu- número da iteração, vÉ a variável de impulso, e épsilon- taxa de Aprendizagem. Durante todo o estágio de treinamento, a taxa de aprendizagem foi escolhida igual para todas as camadas e ajustada manualmente. Uma heurística subsequente era dividir a taxa de aprendizado por 10 quando o número de erros de validação parasse de diminuir.

Exemplos de uso e implementação

Os resultados mostram que uma grande rede neural convolucional profunda é capaz de alcançar resultados recordes em conjuntos de dados muito complexos usando apenas aprendizado supervisionado. Um ano após a publicação do AlexNet, todos os participantes do ImageNet começaram a usar redes neurais convolucionais para resolver o problema de classificação. AlexNet foi a primeira implementação de redes neurais convolucionais e deu início a uma nova era de pesquisa. Agora ficou mais fácil implementar AlexNet usando bibliotecas de aprendizado profundo: PyTorch, TensorFlow, Keras.

Resultado

A rede atinge as seguintes taxas de erro de nível 1 e 5: 37,5% e 17,0%, respectivamente. O melhor desempenho obtido na competição ILSVRC-2010 foi de 47,1% e 28,2% usando uma abordagem que calcula a média das previsões de seis modelos de codificação esparsos treinados em diferentes vetores de recursos. Desde então, os resultados foram alcançados: 45,7% e 25,7% usando uma abordagem que calcula a média das previsões de dois classificadores treinados nos vetores de Fisher. Os resultados do ILSVRC-2010 são apresentados na Tabela 1.


Esquerda: oito imagens de teste ILSVRC-2010 e cinco tags que o modelo considera mais prováveis. O rótulo correto é escrito abaixo de cada imagem e a probabilidade é mostrada com uma barra vermelha se estiver entre as cinco primeiras. À direita: cinco imagens de teste ILSVRC-2010 na primeira coluna. As colunas restantes mostram seis imagens de treinamento. 1

Uma rede neural é um modelo matemático e sua implementação na forma de software ou implementação de hardware-software, que se baseia na modelagem da atividade de redes neurais biológicas, que são redes de neurônios em um organismo biológico. O interesse científico por essa estrutura surgiu porque o estudo de seu modelo permite obter informações sobre um determinado sistema. Ou seja, tal modelo pode ter implementação prática em vários ramos da ciência e tecnologia modernas. O artigo discute questões relacionadas ao uso de redes neurais para a construção de sistemas de identificação de imagens amplamente utilizados em sistemas de segurança. Questões relacionadas ao tópico do algoritmo de reconhecimento de imagem e sua aplicação são investigadas em detalhes. Fornece informações resumidas sobre a metodologia de treinamento de redes neurais.

redes neurais

aprendendo com redes neurais

reconhecimento de imagem

paradigma de percepção local

Sistemas de segurança

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard e L. D. Jackel: Optimal Brain Damage, em Touretzky, David (Eds), Advances in Neural Information Processing Systems 2 (NIPS * 89). - 2000 .-- 100 p.

2. Zhigalov K.Yu. Método de vetorização fotorrealística de dados de intervalo a laser para uso posterior em GIS // Izvestiya vysshikh uchebnykh zavod. Geodésia e fotografia aérea. - 2007. - No. 6. - P. 285–287.

3. Ranzato Marc'Aurelio, Christopher Poultney, Sumit Chopra e Yann LeCun: Aprendizagem eficiente de representações esparsas com um modelo baseado em energia, em J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006). - 2010 .-- 400 p.

4. Zhigalov K.Yu. Preparação de equipamentos para uso em sistemas de controle automatizado para construção de estradas // Ciências naturais e técnicas. - M., 2014. - No. 1 (69). - S. 285–287.

5. Y. LeCun e Y. Bengio: Redes convolucionais para imagens, fala e séries temporais, em Arbib, M. A. (Eds) // The Handbook of Brain Theory and Neural Networks. - 2005 .-- 150 p.

6. Y. LeCun, L. Bottou, G. Orr e K. Muller: Efficient BackProp, em Orr, G. e K. Muller (Eds) // Neural Networks: Tricks of the trade. - 2008 .-- 200 p.

Hoje, o progresso tecnológico e de pesquisa cobre todos os novos horizontes, progredindo rapidamente. Um deles é modelar o mundo natural circundante usando algoritmos matemáticos. Nesse aspecto, são triviais, por exemplo, modelar vibrações do mar, e tarefas extremamente complexas, não triviais, multicomponentes, por exemplo, modelar o funcionamento do cérebro humano. No processo de estudo desse problema, um conceito separado foi identificado - uma rede neural. Uma rede neural é um modelo matemático e sua implementação na forma de software ou implementação de hardware-software, que se baseia na modelagem da atividade de redes neurais biológicas, que são redes de neurônios em um organismo biológico. O interesse científico por essa estrutura surgiu porque o estudo de seu modelo permite obter informações sobre um determinado sistema. Ou seja, tal modelo pode ter implementação prática em vários ramos da ciência e tecnologia modernas.

Uma breve história do desenvolvimento de redes neurais

Deve-se notar que inicialmente o conceito de "rede neural" tem origem no trabalho dos matemáticos, neurolinguistas e neuropsicólogos americanos W. McCulloch e W. Pitts (1943), onde os autores o mencionam pela primeira vez, definem e fazem a primeira tentativa de construir um modelo de rede neural. Já em 1949, D. Hebb propôs o primeiro algoritmo de aprendizagem. Depois, houve uma série de estudos no campo do aprendizado neural, e os primeiros protótipos de trabalho surgiram por volta de 1990-1991. século passado. No entanto, o poder de computação dos equipamentos da época não era suficiente para o funcionamento rápido das redes neurais. Em 2010, o poder das placas de vídeo GPU aumentou muito e o conceito de programação diretamente nas placas de vídeo apareceu, o que aumentou significativamente (3-4 vezes) o desempenho dos computadores. Em 2012, as redes neurais pela primeira vez ganharam o campeonato ImageNet, que marcou seu rápido desenvolvimento e o surgimento do termo Deep Learning.

No mundo moderno, as redes neurais têm uma cobertura colossal, os cientistas consideram as pesquisas realizadas no campo do estudo das características comportamentais e dos estados das redes neurais extremamente promissoras. A lista de áreas nas quais as redes neurais encontraram aplicação é enorme. Isso inclui o reconhecimento e a classificação de imagens, e a previsão, e a solução de problemas de aproximação, e alguns aspectos de compactação de dados, análise de dados e, é claro, aplicação em sistemas de segurança de natureza diferente.

O estudo das redes neurais está ocorrendo ativamente nas comunidades científicas de diferentes países. Com tal consideração, é apresentado como um caso especial de uma série de métodos de reconhecimento de padrões, análise discriminante e métodos de agrupamento.

De referir ainda que ao longo do último ano, o financiamento tem vindo a ser alocado para startups na área de sistemas de reconhecimento de imagem há mais de 5 anos, o que indica uma procura bastante elevada por este tipo de desenvolvimento no mercado final.

Aplicação de redes neurais para reconhecimento de imagem

Considere as tarefas padrão resolvidas por redes neurais quando aplicadas a imagens:

● identificação de objetos;

● reconhecimento de partes de objetos (por exemplo, rostos, braços, pernas, etc.);

● definição semântica dos limites dos objetos (permite que você deixe apenas os limites dos objetos na imagem);

● segmentação semântica (permite dividir a imagem em vários objetos separados);

● seleção de normais de superfície (permite converter imagens bidimensionais em imagens tridimensionais);

● destacar objetos de atenção (permite determinar a que uma pessoa prestaria atenção em uma determinada imagem).

Deve-se destacar que o problema do reconhecimento de imagens possui um caráter marcante, a solução deste problema é um processo complexo e extraordinário. Ao realizar o reconhecimento, o objeto pode ser um rosto humano, um dígito manuscrito, bem como muitos outros objetos que se caracterizam por uma série de características únicas, o que complica significativamente o processo de identificação.

Neste estudo, vamos considerar um algoritmo para criar e aprender a reconhecer símbolos manuscritos de uma rede neural. A imagem será lida por uma das entradas da rede neural e uma das saídas será usada para dar saída ao resultado.

Neste estágio, é necessário nos determos brevemente na classificação das redes neurais. Hoje, existem três tipos principais:

● redes neurais convolucionais (CNN);

● redes recorrentes (aprendizagem profunda);

● aprendizagem por reforço.

Um dos exemplos mais comuns de construção de uma rede neural é a topologia de rede neural clássica. Essa rede neural pode ser representada como um gráfico totalmente conectado, seu recurso característico é a propagação direta de informações e a retropropagação de sinalização sobre um erro. Esta tecnologia não possui propriedades recursivas. Uma rede neural ilustrativa com topologia clássica pode ser representada na Fig. 1

Arroz. 1. Rede neural com a topologia mais simples

Arroz. 2. Rede neural com 4 camadas de neurônios ocultos

Uma das desvantagens claramente significativas dessa topologia de rede é a redundância. Devido à redundância ao fornecer dados na forma de, por exemplo, uma matriz bidimensional para a entrada, um vetor unidimensional pode ser obtido. Portanto, para a imagem de uma letra latina manuscrita descrita em uma matriz 34x34, são necessárias 1156 entradas. Isso sugere que o poder de computação gasto na implementação da solução de software e hardware desse algoritmo será muito grande.

O problema foi resolvido pelo cientista americano Ian Le Koon, que analisou o trabalho dos ganhadores do Prêmio Nobel de medicina T. Wtesel e D. Hubel. Como parte do estudo, o objeto de estudo era o córtex visual do cérebro do gato. A análise dos resultados mostrou que o córtex contém várias células simples, bem como várias células complexas. As células simples reagiram à imagem de linhas retas recebidas dos receptores visuais e células complexas - ao movimento de translação em uma direção. Como resultado, o princípio de construção de redes neurais, denominado convolucional, foi desenvolvido. A ideia desse princípio era que, para implementar o funcionamento da rede neural, alternância de camadas convolucionais, que geralmente são denominadas C - Camadas, camadas de subamostragem S - Camadas e camadas F - Camadas totalmente conectadas, na saída de a rede neural são usados.

No cerne da construção de uma rede desse tipo estão três paradigmas - o paradigma da percepção local, o paradigma dos pesos compartilhados e o paradigma da subamostragem.

A essência do paradigma da percepção local é que não toda a matriz da imagem é fornecida a cada neurônio de entrada, mas uma parte dela. O resto das partes é alimentado para outros neurônios de entrada. Nesse caso, pode-se observar o mecanismo de paralelização, usando este método, é possível salvar a topologia da imagem camada a camada, processando-a multidimensionalmente, ou seja, várias redes neurais podem ser utilizadas durante o processamento.

O paradigma de pesos compartilhados sugere que um pequeno conjunto de pesos pode ser usado para vários relacionamentos. Esses conjuntos também são chamados de "núcleos". Para o resultado final do processamento de imagens, podemos dizer que os pesos compartilhados têm um efeito positivo nas propriedades da rede neural, cujo estudo de comportamento aumenta a capacidade de encontrar invariantes em imagens e filtrar componentes de ruído sem processá-los.

Com base no exposto, podemos concluir que ao aplicar o procedimento de dobramento de imagens com base no kernel, aparecerá uma imagem de saída, cujos elementos serão a principal característica do grau de correspondência ao filtro, ou seja, um mapa de recursos será gerado. Este algoritmo é mostrado na Fig. 3

Arroz. 3. Algoritmo para gerar um mapa de características

O paradigma de subamostragem é que a imagem de entrada é reduzida diminuindo a dimensão espacial de seu equivalente matemático - uma matriz n-dimensional. A necessidade de subamostragem é expressa em invariância à escala da imagem original. Ao aplicar a técnica de camadas alternadas, torna-se possível gerar novos mapas de características a partir dos já existentes, ou seja, a implementação prática desse método é que a capacidade de degenerar uma matriz multidimensional em uma matriz vetorial, e então completamente em um valor escalar será adquirido.

Implementando treinamento de rede neural

As redes existentes são divididas em 3 classes de arquiteturas em termos de aprendizagem:

● aprendizagem supervisionada (percepção);

● aprendizagem não supervisionada (redes de ressonância adaptativas);

● aprendizagem combinada (redes de funções de base radial).

Um dos critérios mais importantes para avaliar o desempenho de uma rede neural no caso de reconhecimento de imagem é a qualidade do reconhecimento de imagem. Deve-se notar que, para uma avaliação quantitativa da qualidade do reconhecimento de imagem usando o funcionamento de uma rede neural, o algoritmo de erro quadrático médio é mais frequentemente usado:

(1)

Nesta dependência, Ep é o p-ésimo erro de reconhecimento para um par de neurônios,

Dp é o resultado de saída esperado da rede neural (normalmente a rede deve se esforçar para 100% de reconhecimento, mas isso não acontece na prática), e a construção O (Ip, W) 2 é o quadrado da saída da rede, que depende na entrada p e no conjunto os coeficientes de peso W. Esta construção inclui os núcleos de convolução e os coeficientes de peso de todas as camadas. O cálculo do erro consiste em calcular a média aritmética para todos os pares de neurônios.

Como resultado da análise, obteve-se uma regularidade de que o valor nominal do peso, quando o valor do erro é mínimo, pode ser calculado com base na relação (2):

(2)

Desta dependência, podemos dizer que o problema de calcular o peso ótimo é a diferença aritmética da derivada da função de erro de primeira ordem em relação ao peso, dividida pela derivada da função de erro de segunda ordem.

As dependências fornecidas tornam possível calcular trivialmente o erro que está na camada de saída. O cálculo do erro nas camadas ocultas dos neurônios pode ser implementado usando o método de retropropagação do erro. A ideia principal do método é disseminar informações, na forma de sinalizar um erro, de neurônios de saída para neurônios de entrada, ou seja, na direção oposta à propagação dos sinais pela rede neural.

É importante notar também que o treinamento da rede é realizado em bancos de dados de imagens especialmente preparados e classificados em um grande número de classes e leva muito tempo.
Hoje, o maior banco de dados é ImageNet (www.image_net.org). Tem livre acesso às instituições acadêmicas.

Conclusão

Como resultado do exposto, deve-se notar que as redes neurais e algoritmos, implementados no princípio do seu funcionamento, podem ser usados ​​em sistemas de reconhecimento de um cartão de impressão digital para órgãos de corregedoria. Freqüentemente, é o componente de software de um complexo de software e hardware destinado a reconhecer uma imagem complexa única como um desenho, que é um dado de identificação, que não resolve totalmente as tarefas atribuídas a ele. Um programa baseado em algoritmos baseados em uma rede neural será muito mais eficiente.

Para resumir, podemos resumir o seguinte:

● as redes neurais podem encontrar aplicação, tanto na questão do reconhecimento de imagens como de textos;

● esta teoria permite falar sobre a criação de uma nova classe promissora de modelos, a saber, modelos baseados em modelagem inteligente;

● as redes neurais são capazes de aprender, o que indica a possibilidade de otimizar o funcionamento do processo. Esta possibilidade é uma opção extremamente importante para a implementação prática do algoritmo;

● A avaliação do algoritmo de reconhecimento de padrão usando um estudo de rede neural pode ter um significado quantitativo; portanto, existem mecanismos para ajustar os parâmetros para o valor necessário, calculando os coeficientes de peso necessários.

Hoje, pesquisas adicionais de redes neurais parecem ser uma área promissora de pesquisa que será aplicada com sucesso em ainda mais ramos da ciência e tecnologia, bem como nas atividades humanas. A ênfase principal no desenvolvimento de sistemas de reconhecimento modernos está agora mudando para o campo da segmentação semântica de imagens 3D em geodésia, medicina, prototipagem e outras áreas da atividade humana - estes são algoritmos bastante complexos e isso se deve a:

● falta de um número suficiente de bancos de dados de imagens de referência;

● falta de um número suficiente de especialistas gratuitos para o treinamento inicial do sistema;

● as imagens não são armazenadas em pixels, o que requer recursos adicionais do computador e dos desenvolvedores.

Também deve ser notado que hoje existe um grande número de arquiteturas padrão para a construção de redes neurais, o que facilita muito a tarefa de construir uma rede neural do zero e a reduz à seleção de uma estrutura de rede adequada para uma tarefa específica.

Atualmente, existe um grande número de empresas inovadoras no mercado que se dedicam ao reconhecimento de imagens utilizando tecnologias de aprendizagem de redes neurais para o sistema. É sabido que eles alcançaram uma precisão de reconhecimento de imagem em torno de 95% usando um banco de dados de 10.000 imagens. No entanto, todas as conquistas referem-se a imagens estáticas, com sequências de vídeo no momento tudo é muito mais complicado.

Referência bibliográfica

Markova S.V., Zhigalov K.Yu. APLICAÇÃO DE UMA REDE NEURAL PARA A CRIAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE IMAGENS // Investigação fundamental. - 2017. - No. 8-1. - S. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (data de acesso: 24/03. Chamamos a sua atenção os periódicos publicados pela "Academy of Natural Sciences"

Amigos, continuamos a história sobre redes neurais, que começamos da última vez, e sobre.

O que é uma rede neural

No caso mais simples, uma rede neural é um modelo matemático que consiste em várias camadas de elementos que realizam cálculos paralelos. Inicialmente, tal arquitetura foi criada por analogia com os menores elementos de computação do cérebro humano - os neurônios. Os menores elementos computacionais de uma rede neural artificial também são chamados de neurônios. As redes neurais geralmente consistem em três ou mais camadas: uma camada de entrada, uma camada oculta (ou camadas) e uma camada de saída (Fig. 1), em alguns casos as camadas de entrada e saída não são levadas em consideração, e então o número de camadas na rede é contado pelo número de camadas ocultas. Esse tipo de rede neural é chamado de perceptron.

Arroz. 1. O perceptron mais simples

Uma característica importante de uma rede neural é sua capacidade de aprender por exemplo, isso é chamado de aprendizado supervisionado. A rede neural é treinada em um grande número de exemplos consistindo em pares de entrada e saída (entrada e saída correspondentes entre si). Em problemas de reconhecimento de objetos, esse par será a imagem de entrada e o rótulo correspondente - o nome do objeto. Ensinar uma rede neural é um processo iterativo que reduz o desvio da saída da rede de uma dada "resposta do professor" - um rótulo correspondente a uma determinada imagem (Fig. 2). Esse processo consiste em etapas chamadas épocas de aprendizado (geralmente na casa dos milhares), em cada uma das quais os "pesos" da rede neural - os parâmetros das camadas ocultas da rede - são ajustados. Após a conclusão do processo de treinamento, a qualidade da rede neural é geralmente boa o suficiente para realizar a tarefa para a qual foi treinada, embora o conjunto ideal de parâmetros que reconhece perfeitamente todas as imagens seja frequentemente impossível de encontrar.


Arroz. 2. Treinar a rede neural

O que são redes neurais profundas

Redes neurais profundas ou profundas são redes neurais que consistem em várias camadas ocultas (Fig. 3). Esta figura é uma imagem de uma rede neural profunda, dando ao leitor uma ideia geral de como é uma rede neural. No entanto, a arquitetura real das redes neurais profundas é muito mais complexa.


Arroz. 3. Uma rede neural com muitas camadas ocultas

Os criadores das redes neurais convolucionais foram, é claro, inspirados inicialmente pelas estruturas biológicas do sistema visual. Os primeiros modelos computacionais baseados no conceito de fluxo visual hierárquico de primatas são conhecidos como Fukushima Neocognitron (Figura 4). A compreensão moderna da fisiologia do sistema visual é semelhante ao tipo de processamento de informações em redes convolucionais, pelo menos para reconhecimento rápido de objetos.


Arroz. 4. Diagrama mostrando conexões entre camadas no modelo Neocognitron.

Mais tarde, esse conceito foi implementado pelo pesquisador canadense Ian LeCune em sua rede neural convolucional, que ele criou para reconhecer caracteres manuscritos. Essa rede neural consistia em dois tipos de camadas: camadas convolucionais e camadas de subamostragem (ou camadas de agrupamento). Nele, cada camada possui uma estrutura topográfica, ou seja, cada neurônio está associado a um ponto fixo da imagem original, bem como a um campo receptivo (área da imagem de entrada que é processada por esse neurônio). Em cada local em cada camada, há vários neurônios diferentes, cada um com seu próprio conjunto de pesos de entrada associados aos neurônios na fatia retangular da camada anterior. Fragmentos retangulares de entrada diferentes com o mesmo conjunto de pesos estão associados a neurônios de locais diferentes.

A arquitetura geral de uma rede neural profunda para reconhecimento de padrões é mostrada na Figura 5. A imagem de entrada é representada como um conjunto de pixels ou pequenas áreas da imagem (por exemplo, 5 por 5 pixels)


Arroz. 5. Diagrama de rede neural convolucional

Como regra, as redes neurais profundas são representadas de uma forma simplificada: como estágios de processamento, às vezes chamados de filtros. Cada estágio difere de outro em uma série de características, como o tamanho do campo receptivo, o tipo de recursos que a rede aprende a reconhecer em uma determinada camada e o tipo de computação realizada em cada estágio.

Os campos de aplicação de redes neurais profundas, incluindo redes convolucionais, não se limitam ao reconhecimento facial. Eles são amplamente usados ​​para reconhecimento de sinal de voz e áudio, processamento de leituras de diferentes tipos de sensores ou para segmentação de imagens complexas de múltiplas camadas (como mapas de satélite) ou imagens médicas (imagens de raios-X, imagens fMRI - consulte).

Redes neurais em biometria e reconhecimento facial

Para alcançar uma alta precisão de reconhecimento, a rede neural é pré-treinada em uma grande variedade de imagens, por exemplo, como no banco de dados MegaFace.Este é o principal método de treinamento para reconhecimento de rosto.


Arroz. 6. O banco de dados MegaFace contém 1 milhão de imagens de mais de 690 mil pessoas

Depois que a rede for treinada para reconhecer rostos, o processo de reconhecimento de rostos pode ser descrito como segue (Figura 7). Primeiro, a imagem é processada usando um detector de rosto: um algoritmo que detecta uma seção retangular da imagem com um rosto. Este fragmento é normalizado para ser mais fácil de processar pela rede neural: o melhor resultado será alcançado se todas as imagens de entrada forem do mesmo tamanho, cor, etc. A imagem normalizada é alimentada para a entrada da rede neural para processamento pelo algoritmo. Este algoritmo é geralmente um desenvolvimento exclusivo da empresa para melhorar a qualidade de reconhecimento, mas também existem soluções "padrão" para este problema. A rede neural constrói um vetor de recursos exclusivo, que é então transferido para o banco de dados. O mecanismo de busca o compara com todos os vetores de características armazenados no banco de dados e dá o resultado da busca na forma de um certo número de nomes ou perfis de usuário com características faciais semelhantes, a cada um dos quais é atribuído um determinado número. Este número representa o grau de similaridade de nosso vetor de características com aquele encontrado no banco de dados.


Arroz. 7. Processo de reconhecimento facial

Determinando a qualidade do algoritmo

Precisão

Quando escolhemos qual algoritmo aplicar a um objeto ou problema de reconhecimento de face, devemos ter um meio de comparar a eficácia de diferentes algoritmos. Nesta parte, descreveremos as ferramentas com as quais isso é feito.

A qualidade do sistema de reconhecimento facial é avaliada por meio de um conjunto de métricas que correspondem a cenários típicos de uso do sistema para autenticação por meio da biometria.

Como regra, o desempenho de qualquer rede neural pode ser medido em termos de precisão: após definir os parâmetros e completar o processo de treinamento, a rede é testada em um conjunto de teste, para o qual temos uma resposta do professor, mas que é separada da o conjunto de treinamento. Normalmente, esse parâmetro é uma medida quantitativa: um número (geralmente como uma porcentagem) que indica quão bem o sistema é capaz de reconhecer novos objetos. Outra medida comum é o erro (pode ser expresso em porcentagem ou equivalente numérico). No entanto, existem medidas mais precisas para a biometria.

Na biometria em geral e na biometria para reconhecimento facial em particular, existem dois tipos de aplicações: verificação e identificação. A verificação é o processo de confirmar uma determinada identidade comparando uma imagem de um indivíduo (um vetor de características faciais ou outro vetor de características, por exemplo, uma retina ou impressões digitais) com um ou mais modelos salvos anteriormente. Identificação é o processo de determinar a identidade de um indivíduo. Amostras biométricas são coletadas e comparadas com todos os modelos do banco de dados. Há uma identificação em um conjunto fechado de recursos se for assumido que uma pessoa existe no banco de dados. Assim, o reconhecimento combina um ou ambos os termos - verificação e identificação.

Freqüentemente, além do resultado direto da comparação, é necessário avaliar o nível de "confiança" do sistema em sua decisão. Esse valor é chamado de "pontuação de similaridade" (ou pontuação de similaridade). Uma pontuação de similaridade mais alta indica que as duas amostras biométricas comparadas são mais semelhantes.

Existem vários métodos para avaliar a qualidade do sistema (tanto para a tarefa de verificação como para a identificação). Falaremos sobre eles na próxima vez. E você fica conosco e não hesite em deixar comentários e fazer perguntas.

NOTAS

  1. Fukushima (1980) "Neocognitron: Um modelo de rede neural auto-organizável para um mecanismo de reconhecimento de padrões não afetado pela mudança de posição", Biological Cybernetics.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard e L.D. Jackel (1989) "Backpropagation Applied to Handwritten Zip Code Recognition", Neural Computation, vol. 1, pp., 541-551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Processo Gaussiano Profundo para Previsão de Rendimento de Safra com Base em Dados de Sensoriamento Remoto.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. MIT press.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) e Javier Galbally (UAM) (2012) Description of Metrics For the Evaluation of Biometric Performance.