神经网络。 这一切要去哪里?

文章由两部分组成:

  1. Краткое описание некоторых архитектур сетей по обнаружению объектов на изображении и сегментации изображений с самыми понятными для меня ссылками на ресурсы. Старался выбирать видео пояснения и желательно на русском языке.
  2. 第二部分是尝试了解神经网络架构的发展方向。 以及基于它们的技术。

神经网络。 这一切要去哪里?

Рисунок 1 – Понимать архитектуры нейросетей непросто

这一切都是从在 Android 手机上制作两个用于对象分类和检测的演示应用程序开始的:

  • 后端演示,当数据在服务器上处理并传输到手机时。 三种熊的图像分类:棕色、黑色和泰迪熊。
  • 前端演示, когда данные обрабатываются на самом телефоне. Обнаружение объектов (object detection) трех типов: фундук, инжир и финик.

图像分类、图像中的目标检测和图像分类任务之间存在差异 сегментацией изображений。 因此,需要找出哪些神经网络架构可以检测图像中的对象以及哪些可以进行分割。 我找到了以下架构示例,其中包含对我来说最容易理解的资源链接:

  • 一系列基于R-CNN的架构(Regions with Convolution Neural Networks 功能):R-CNN、Fast R-CNN、 更快的R-CNN, 面具R-CNN. Для обнаружения объекта на изображении с помощью механизма Region Proposal Network (RPN) выделяются ограниченные регионы (bounding boxes). Первоначально вместо RPN применялся более медленный механизм Selective Search. Затем выделенные ограниченные регионы подаются на вход обычной нейросети для классификации. В архитектуре R-CNN есть явные циклы «for» перебора по ограниченным регионам, всего до 2000 прогонов через внутреннюю сеть AlexNet. Из-за явных циклов «for» замедляется скорость обработки изображений. Количество явных циклов, прогонов через внутреннюю нейросеть, уменьшается с каждой новой версией архитектуры, а также проводятся десятки других изменений для увеличения скорости и для замены задачи обнаружения объектов на сегментацию объектов в Mask R-CNN.
  • YOLO (You ONLY LOOK Once)是第一个在移动设备上实时识别物体的神经网络。 显着特征:一次就能区分物体(只需看一次)。 也就是说,在 YOLO 架构中,没有明确的“for”循环,这就是网络运行速度很快的原因。 例如,这样类比:在 NumPy 中,当执行矩阵运算时,也没有显式的“for”循环,而在 NumPy 中,循环是通过 C 编程语言在架构的较低级别实现的。YOLO 使用预定义窗口的网格。 为了防止同一对象被多次定义,使用了窗口重叠系数(IoU)。 Intersection o版本 U信联盟)。 该架构运行范围广,具有较高的 робастностью:模型可以在照片上进行训练,但在手绘上仍然表现良好。
  • SSD (S炉火 S热门多功能盒 Detector) – используются наиболее удачные «хаки» архитектуры YOLO (например, non-maximum suppression) и добавляются новые, чтобы нейросеть быстрее и точнее работала. Отличительная особенность: различение объектов за один прогон с помощью заданной сетки окон (default box) на пирамиде изображений. Пирамида изображений закодирована в сверточных тензорах при последовательных операциях свертки и пулинга (при операции max-pooling пространственная размерность убывает). Таким образом определяются как большие, так и маленькие объекты за один прогон сети.
  • MobileSSD (联络号码网络V2+ SSD) – комбинация из двух архитектур нейросетей. Первая сеть 移动网络V2 работает быстро и увеличивает точность распознавания. MobileNetV2 применяется вместо VGG-16, которая первоначально использовалась в 来源文章. Вторая сеть SSD определяет местоположение объектов на изображении.
  • 挤压网 – 一个非常小但准确的神经网络。 它本身并不能解决对象检测的问题。 然而,它可以用于不同架构的组合。 并用于移动设备。 其显着特点是数据首先被压缩为四个 1×1 卷积滤波器,然后扩展为四个 1×1 和四个 3×3 卷积滤波器。 一种这样的数据压缩-扩展迭代称为“Fire Module”。
  • 深度实验室 (Semantic Image Segmentation with Deep Convolutional Nets) – сегментация объектов на изображении. Отличительной особенностью архитектуры является разряженная (dilated convolution) свертка, которая сохраняет пространственное разрешение. Затем следует стадия постобработки результатов с использованием графической вероятностной модели (conditional random field), что позволяет убрать небольшие шумы в сегментации и улучшить качество отсегментированного изображения. За грозным названием «графическая вероятностная модель» скрывается обычный фильтр Гаусса, который аппроксимирован по пяти точкам.
  • Пытался разобраться в устройстве RefineDet (Single-Shot 提炼ment Neural Network for Object 节),但我不太明白。
  • 我还研究了“注意力”技术的工作原理: 视频1, 视频2, 视频3. Отличительной особенностью архитектуры «внимание» является автоматическое выделение регионов повышенного внимания на изображении (RoI, Regions of Interest) с помощью нейросети под названием Attention Unit. Регионы повышенного внимания похожи на ограниченные регионы (bounding boxes), но в отличие от них не зафиксированы на изображении и могут иметь размытые границы. Затем из регионов повышенного внимания выделяются признаки (фичи), которые «скармливаются» рекуррентным нейросетям с архитектурами LSDM, GRU или Vanilla RNN. Рекуррентные нейросети умеют анализировать взаимоотношение признаков в последовательности. Рекуррентные нейросети изначально применялись для переводов текста на другие языки, а теперь и для перевода изображения в текст и 文本到图像.

По мере изучения этих архитектур я понял, что ничего не понимаю. И дело не в том, что у моей нейросети есть проблемы с механизмом внимания. Создание всех этих архитектур похоже на какой-то огромный хакатон, где авторы соревнуются в хаках. Хак (hack) – быстрое решение трудной программной задачи. То есть между всеми этими архитектурами нет видимой и понятной логической связи. Все, что их объединяет – это набор наиболее удачных хаков, которые они заимствуют друг у друга, плюс общая для всех 闭环卷积运算 (обратное распространение ошибки, backpropagation). Нет системного мышления! Не понятно, что менять и как оптимизировать имеющиеся достижения.

Как результат отсутствия логической связи между хаками, их чрезвычайно трудно запомнить и применить на практике. Это фрагментированные знания. В лучшем случае запоминаются несколько интересных и неожиданных моментов, но большинство из понятого и непонятного исчезает из памяти уже через несколько дней. Будет хорошо, если через неделю вспомнится хотя бы название архитектуры. А ведь на чтение статей и просмотр обзорных видео было потрачено несколько часов и даже дней рабочего времени!

神经网络。 这一切要去哪里?

图 2 – 神经网络动物园

在我个人看来,大多数科学文章的作者都会尽一切可能确保即使是这些零碎的知识也不会被读者理解。 但是,十行句子中的分词短语以及“凭空”得出的公式是另一篇文章的主题(问题 发表或消亡).

По этой причине появилась необходимость систематизировать информацию по нейросетям и, таким образом, увеличить качество понимания и запоминания. Поэтому основной темой разбора отдельных технологий и архитектур искусственных нейронных сетей стала следующая задача: 找出一切的去向, а не устройство какой-то конкретной нейросети в отдельности.

这一切要去哪里? 主要结果:

  • 近两年机器学习初创公司数量 резко упало. Возможная причина: «нейронные сети перестали быть чем-то новым».
  • Каждый сможет создать работающую нейросеть для решения простой задачи. Для этого возьмет готовую модель из «зоопарка моделей» (model zoo) и натренирует последний слой нейросети (转移学习) на готовых данных из 谷歌数据集搜索 或来自 25 个 Kaggle 数据集 в бесплатном облаке Jupyter Notebook.
  • Крупные производители нейросетей начали создавать «зоопарки моделей» (模型动物园)。 使用它们您可以快速创建商业应用程序: TF Hub для TensorFlow, MM检测 для PyTorch, 侦探 对于咖啡2, chainer-modelzoo 对于链纳和 他人.
  • Нейросети, работающие в 实时 (real-time) на мобильных устройствах. От 10 до 50 кадров в секунду.
  • Применение нейросетей в телефонах (TF Lite), в браузерах (TF.js) и в 家居用品 (物联网、 I网际网路 of Things). Особенно в телефонах, которые уже поддерживают нейросети на уровне «железа» (нейроакселераторы).
  • “每件设备、衣服,甚至食物都会有 IP-v6 адрес и сообщаться между собой» – Себастьян Трун.
  • 有关机器学习的出版物数量开始增长 превышать закон Мура (удвоение каждые два года) с 2015 года. Очевидно, нужны нейросети по анализу статей.
  • 以下技术越来越受欢迎:
    • PyTorch – 受欢迎程度正在迅速增长,似乎正在超越 TensorFlow。
    • Автоматический подбор гиперпараметров AutoML – 人气正在顺利增长。
    • Постепенное уменьшение точности и увеличение скорости вычислений: 模糊逻辑, алгоритмы бустинга, неточные (приближенные) вычисления, квантизация (когда веса нейросети переводятся в целые числа и квантуются), нейроакселераторы.
    • 笔译 изображения в текст и 文本到图像.
    • 创建 视频中的 XNUMXD 对象, теперь уже в реальном времени.
    • 深度学习的主要特点是数据很多,但收集和标记数据并不容易。 因此,标记自动化正在发展(自动注释) для нейросетей с помощью нейросетей.
  • 有了神经网络,计算机科学突然变得 экспериментальной наукой и возник кризис воспроизводимости.
  • ИТ-деньги и популярность нейросетей возникли одновременно, когда вычисления стали рыночной ценностью. Экономика из золотовалютной становится золото-валютно-вычислительной. Смотрите мою статью по эконофизике 以及IT钱出现的原因。

Постепенно появляется новая методология программирования ML/DL (Machine Learning & Deep Learning), которая основана на представлении программы, как совокупности обученных нейросетевых моделей.

神经网络。 这一切要去哪里?

图 3 – ML/DL 作为一种新的编程方法

Однако так и не появилось «теории нейросетей», в рамках которой можно думать и работать системно. Что сейчас называется «теорией» на самом деле экспериментальные, эвристические алгоритмы.

Ссылки на мои и не только ресурсы:

谢谢你!

来源: habr.com

添加评论