Professor da Escola Superior de Economia em Nizhny Novgorod Andrey Savchenko desenvolveu um algoritmo que funciona 40% mais rápido do que os análogos. Ao mesmo tempo, a perda de precisão não foi superior a 0,5-1 por cento. Isso irá acelerar o trabalho dos sistemas de vigilância por vídeo em tempo real.

Os resultados da pesquisa são publicados na revista Information Sciences. Para reconhecimento de imagem, redes neurais convolucionais são usadas, que são uma sequência de camadas. Cada camada tem uma entrada e uma saída. A entrada da primeira camada é uma descrição digital da imagem, que é convertida em outro conjunto de números na saída.
A nova descrição é enviada para a entrada da próxima camada, e assim por diante, até que a classe do objeto retratado na imagem seja prevista na última camada: por exemplo, uma pessoa, um gato ou uma cadeira. Para fazer isso, a rede neural é treinada em imagens, cuja classe é conhecida de antemão. Quanto mais imagens diferentes de cada classe no conjunto de dados, mais precisa a rede treinada funcionará.
Se houver poucos exemplos, o chamado algoritmo de ajuste fino da rede neural é usado. A rede é pré-treinada para reconhecer imagens de um grande conjunto de dados semelhante que resolve o problema original. Por exemplo, ao aprender a reconhecer rostos ou seus atributos (emoções, gênero, idade), a rede é pré-treinada para identificar celebridades a partir de suas fotos.
Em seguida, a rede neural resultante é retreinada para reconhecer imagens do pequeno conjunto de dados disponível, por exemplo, para identificar os rostos de membros da família ou parentes em sistemas de vigilância por vídeo doméstico. Quanto maior a profundidade (número) de camadas da rede neural, mais precisa ela funciona, ou seja, prediz o tipo de objeto da imagem de forma mais correta. Mas com um aumento no número de camadas, a rede neural reconhece objetos por mais tempo.
O autor do estudo, o professor da Escola Superior de Economia de Nizhny Novgorod, Andrey Savchenko, conseguiu acelerar o trabalho de outras redes neurais convolucionais profundas treinadas de um tipo arbitrário, consistindo de 90-780 camadas, até 40 por cento, enquanto controla a perda de precisão - não mais do que 0,5-1 por cento. O cientista confiou em métodos estatísticos de análise sequencial e comparações múltiplas (teste de múltiplas hipóteses).
“A decisão no problema de reconhecimento de imagem é feita por um classificador - um algoritmo matemático especial que recebe uma matriz de números (características de uma imagem) como entrada e na saída dá uma previsão sobre a qual classe a imagem pertence. O classificador pode ser aplicado alimentando-o com as saídas de qualquer camada da rede neural. Para reconhecer imagens "simples", o classificador só precisa analisar os dados (saídas) das primeiras camadas da rede neural.
Não há necessidade de perder mais tempo se já estivermos confiantes na confiabilidade da decisão tomada. Para imagens "complexas", as primeiras camadas claramente não são suficientes - você precisa passar para a próxima. Portanto, classificadores foram adicionados à rede neural em várias camadas intermediárias. Dependendo da complexidade da imagem de entrada, eles decidiram se continuar o reconhecimento ou concluí-lo. Como é importante controlar os erros em tal procedimento, apliquei a teoria das comparações múltiplas: apresentei muitas hipóteses, em que camada intermediária parar, e testei consistentemente essas hipóteses”, explicou Andrey Savchenko.
Se o primeiro classificador já produziu uma solução considerada confiável pelo procedimento de teste de múltiplas hipóteses, o algoritmo parava. Se a solução fosse declarada não confiável, os cálculos na rede neural continuavam até a próxima camada intermediária e a verificação de confiabilidade era repetida.
Como observa o cientista, as soluções mais precisas são obtidas para as saídas das últimas camadas da rede neural. As saídas das primeiras camadas da rede são classificadas com muito mais rapidez, mas geralmente de forma imprecisa. Portanto, é necessário treinar simultaneamente todos os classificadores para acelerar o reconhecimento, controlando a perda de precisão. Por exemplo, para que o erro devido a uma parada anterior não seja superior a um por cento.
“Alta precisão é sempre importante no reconhecimento de imagem. Por exemplo, se uma decisão em sistemas de reconhecimento facial for tomada incorretamente, então alguém de fora pode obter acesso às informações confidenciais ou, ao contrário, o acesso será negado repetidamente ao usuário, porque a rede neural não conseguiu identificá-lo corretamente.
A velocidade às vezes pode ser sacrificada, mas é importante, por exemplo, em sistemas de vigilância por vídeo, onde é altamente desejável tomar decisões em tempo real, ou seja, não mais do que 20-30 milissegundos por quadro. Para reconhecer um objeto em um quadro de vídeo aqui e agora, é muito importante agir rapidamente, sem perder a precisão”, disse o professor Savchenko.