Redes neurais. Para onde tudo isso vai dar?

O artigo consiste em duas partes:

  1. Uma breve descrição de algumas arquiteturas de redes de detecção e segmentação de objetos em imagens, com links para recursos que considero mais compreensíveis. Procurei escolher explicações em vídeo, preferencialmente em russo.
  2. A segunda parte procura compreender a direção do desenvolvimento das arquiteturas de redes neurais e das tecnologias baseadas nelas.

Redes neurais. Para onde tudo isso vai dar?

Figura 1 – Compreender as arquiteturas de redes neurais não é fácil

Все началось с того, что сделал два демонстрационных приложения по классификации и обнаружению объектов на телефоне Android:

  • Demonstração de back-end, quando os dados são processados ​​no servidor e transmitidos para o telefone. Classificação de imagens de três tipos de ursos: marrom, preto e de pelúcia.
  • Demonstração de front-end, quando os dados são processados ​​no próprio telefone. Detecção de objetos de três tipos: avelã, figo e tâmara.

Existe uma diferença entre tarefas de classificação de imagens, detecção de objetos em uma imagem e segmentação de imagemPortanto, tornou-se necessário aprender quais arquiteturas de redes neurais detectam objetos em imagens e quais conseguem segmentá-los. Encontrei os seguintes exemplos de arquiteturas com os links mais fáceis de entender para recursos:

  • Uma série de arquiteturas baseadas em R-CNN (Rregiões com Crevolução Neural NRecursos de rede): R-CNN, Fast R-CNN, R-CNN mais rápida, Máscara R-CNNPara detectar objetos em uma imagem, caixas delimitadoras são extraídas usando o mecanismo de Rede de Proposta de Regiões (RPN). Inicialmente, um mecanismo de Busca Seletiva mais lento era usado em vez do RPN. As caixas delimitadoras extraídas são então enviadas para uma rede neural convencional para classificação. A arquitetura R-CNN usa laços "for" explícitos para iterar sobre as caixas delimitadoras, com até 2000 execuções na rede AlexNet interna. Esses laços "for" explícitos tornam o processamento de imagem mais lento. O número de laços explícitos e execuções na rede neural interna é reduzido a cada nova versão da arquitetura, e dezenas de outras mudanças estão sendo feitas para aumentar a velocidade e substituir a tarefa de detecção de objetos pela segmentação de objetos no Mask R-CNN.
  • YOLO (You Only Look OYOLO (New York Network) é a primeira rede neural a reconhecer objetos em tempo real em dispositivos móveis. Sua característica distintiva é a capacidade de distinguir objetos em uma única execução (apenas um olhar). Ou seja, a arquitetura YOLO não utiliza laços "for" explícitos, o que permite que a rede opere rapidamente. Por exemplo, aqui está uma analogia: o NumPy também não utiliza laços "for" explícitos ao realizar operações matriciais; estas são implementadas no NumPy em níveis mais baixos da arquitetura por meio da linguagem de programação C. O YOLO utiliza uma grade de janelas predefinidas. Para evitar que o mesmo objeto seja detectado várias vezes, utiliza-se uma taxa de sobreposição de janelas (IoU). Iinterseção over Union). Essa arquitetura opera em uma ampla faixa e possui alta robustezO modelo pode ser treinado com fotografias, mas também funciona bem com pinturas feitas à mão.
  • SSD (Single SHot MultiBox DA rede neural YOLO utiliza os "truques" mais bem-sucedidos da arquitetura YOLO (por exemplo, supressão não máxima) e adiciona novos para torná-la mais rápida e precisa. Sua característica distintiva é a capacidade de distinguir objetos em uma única execução, utilizando uma grade específica de janelas (por padrão, caixas) em uma pirâmide de imagens. A pirâmide de imagens é codificada em tensores convolucionais por meio de operações sucessivas de convolução e pooling (com max-pooling, a dimensionalidade espacial diminui). Isso permite a detecção de objetos grandes e pequenos em uma única execução da rede.
  • MobileSSD (MobileNetV2 + SSD) é uma combinação de duas arquiteturas de redes neurais. A primeira rede MobileNetV2 Ele funciona rapidamente e aumenta a precisão do reconhecimento. O MobileNetV2 é usado em vez do VGG-16, que era usado originalmente em artigo originalA segunda rede SSD determina a localização dos objetos na imagem.
  • SqueezeNet – uma rede neural muito pequena, porém precisa. Ela não resolve o problema de detecção de objetos sozinha. No entanto, pode ser usada em combinação com diversas arquiteturas e é adequada para uso em dispositivos móveis. Sua característica distintiva é que os dados são primeiro comprimidos em quatro filtros convolucionais 1×1 e, em seguida, expandidos em quatro filtros convolucionais 1×1 e quatro filtros convolucionais 3×3. Uma dessas iterações de compressão e expansão de dados é chamada de "Módulo de Disparo".
  • DeepLab (Segmentação Semântica de Imagens com Redes Convolucionais Profundas) – segmentação de objetos em uma imagem. Uma característica distintiva da arquitetura é a convolução dilatada, que preserva a resolução espacial. Isso é seguido por uma etapa de pós-processamento usando um modelo de probabilidade gráfica (um campo aleatório condicional), que remove pequenos ruídos na segmentação e melhora a qualidade da imagem segmentada. Por trás do nome complexo "modelo de probabilidade gráfica" reside um filtro gaussiano simples aproximado por cinco pontos.
  • Tentei descobrir como funcionava o dispositivo. RefineDet (Tiro único) RefinarRede Neural de mento para Objeto Detseção), mas entendia pouco.
  • Analisei também como funciona a tecnologia de "atenção": vídeo 1, vídeo 2, vídeo 3Uma característica distintiva da arquitetura de "atenção" é a seleção automática de regiões de maior atenção na imagem (RoI, Regiões of Iinteresse) usando uma rede neural chamada Unidade de Atenção. As regiões de atenção são semelhantes às caixas delimitadoras, mas, ao contrário destas, não são fixas na imagem e podem ter limites desfocados. As características são então extraídas das regiões de atenção e inseridas em redes neurais recorrentes com arquiteturas LSDM, GRU ou RNN VanillaRedes neurais recorrentes podem analisar as relações entre características em uma sequência. Inicialmente, elas eram usadas para traduzir textos para outros idiomas, e agora também para tradução. imagens para texto и texto para imagem.

Ao estudarmos essas arquiteturas, Percebi que não entendo nada.E não é que minha rede neural tenha problemas com seu mecanismo de atenção. Criar todas essas arquiteturas é como uma espécie de enorme hackathon, onde os autores competem em soluções improvisadas. Uma solução improvisada é uma solução rápida para um problema de programação difícil. Ou seja, não há nenhuma conexão lógica visível ou compreensível entre todas essas arquiteturas. Tudo o que as une é um conjunto das soluções improvisadas mais bem-sucedidas que elas copiam umas das outras, além de um objetivo comum a todas elas. operação de convolução de feedback (retropropagação de erros). Não. pensamento sistêmicoNão está claro o que precisa ser mudado ou como otimizar as conquistas existentes.

Como os hacks carecem de uma conexão lógica, são extremamente difíceis de memorizar e aplicar. O conhecimento é fragmentado. Na melhor das hipóteses, alguns pontos interessantes e inesperados são lembrados, mas a maior parte do que foi compreendido e do que não foi se perde em poucos dias. Seria ótimo se você conseguisse ao menos se lembrar do nome da arquitetura depois de uma semana. E, no entanto, horas e até dias de trabalho foram desperdiçados lendo artigos e assistindo a vídeos explicativos!

Redes neurais. Para onde tudo isso vai dar?

Figura 2 – Zoológico de redes neurais

Na minha opinião, a maioria dos autores de artigos científicos faz tudo o que pode para garantir que nem mesmo esse conhecimento fragmentado seja compreendido pelo leitor. Mas frases adverbiais participiais em frases de dez linhas com fórmulas tiradas do nada são um tema para um artigo à parte (problema). publique ou pereça).

Por essa razão, surgiu a necessidade de sistematizar as informações sobre redes neurais e, assim, melhorar a qualidade da compreensão e da memorização. Portanto, o principal tema da análise das tecnologias e arquiteturas individuais das redes neurais artificiais tornou-se a seguinte tarefa: Descubra para onde tudo isso está caminhando., e não a estrutura de qualquer rede neural específica isoladamente.

Para onde tudo isso está caminhando? Principais conclusões:

  • O número de startups de aprendizado de máquina nos últimos dois anos caiu abruptamentePossível motivo: "redes neurais já não são uma novidade."
  • Qualquer pessoa pode criar uma rede neural funcional para resolver um problema simples. Para isso, basta pegar um modelo pronto do "repositório de modelos" e treinar a camada final da rede neural (transferir aprendizado) em dados prontos de Pesquisa de conjunto de dados do Google ou de 25 conjuntos de dados do Kaggle em liberdade Nuvem do Jupyter Notebook.
  • Grandes fabricantes de redes neurais começaram a criar "zoológicos modelo" (zoológico modelo). Com a ajuda deles, você pode criar rapidamente um aplicativo comercial: Centro TF para TensorFlow, Detecção de MM para PyTorch, Detetron para Caffe2, chainer-modelzoo para Chainer e outros.
  • Redes neurais operando em tempo real (Em tempo real) em dispositivos móveis. De 10 a 50 quadros por segundo.
  • Aplicação de redes neurais em telefones (TF Lite), em navegadores (TF.js) e em utensílios domésticos (IoT, Internet of Tcoisas). Especialmente em telefones que já suportam redes neurais em nível de hardware (aceleradores neurais).
  • “Todos os dispositivos, peças de roupa e talvez até mesmo alimentos terão Endereço IPv6 e se comunicar uns com os outros" – Sebastian Thrun.
  • O número de publicações sobre aprendizado de máquina começou a crescer. exceder a Lei de Moore (dobrando a cada dois anos) desde 2015. Obviamente, são necessárias redes neurais para análise de artigos.
  • As seguintes tecnologias estão ganhando popularidade:
    • PyTorch – Sua popularidade está crescendo rapidamente e parece estar ultrapassando o TensorFlow.
    • Seleção automática de hiperparâmetros AutoML – A popularidade está crescendo de forma constante.
    • Diminuição gradual da precisão e aumento da velocidade de cálculo: lógica difusa, algoritmos impulsionando, cálculos imprecisos (aproximados), quantização (quando os pesos da rede neural são convertidos em números inteiros e quantizados), neuroaceleradores.
    • Tradução imagens para texto и texto para imagem.
    • criação Objetos 3D de vídeo, agora em tempo real.
    • A chave para o aprendizado profundo é a grande quantidade de dados, mas coletá-los e rotulá-los não é fácil. Portanto, a automação da rotulagem está em desenvolvimento.anotação automatizada) para redes neurais usando redes neurais.
  • Com as redes neurais, a Ciência da Computação de repente se transformou em algo completamente diferente. ciência experimental e surgiu crise de reprodutibilidade.
  • O dinheiro da TI e a popularidade das redes neurais surgiram simultaneamente, quando a computação se tornou um valor de mercado. A economia se transformou de uma economia baseada em moeda-ouro. computação-moeda-ouroVeja meu artigo sobre econofísica e a razão para o surgimento do dinheiro da TI.

Uma nova está gradualmente surgindo. Metodologia de programação ML/DL (Aprendizado de Máquina e Aprendizado Profundo), que se baseia em representar um programa como um conjunto de modelos de redes neurais treinados.

Redes neurais. Para onde tudo isso vai dar?

Figura 3 – ML/DL como uma nova metodologia de programação

No entanto, nunca apareceu. teorias de redes neurais, dentro da qual se pode pensar e trabalhar sistematicamente. O que hoje chamamos de "teoria" são, na verdade, algoritmos heurísticos experimentais.

Links para meus recursos e outros:

Obrigado!

Fonte: habr.com

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster