HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop

НОВОСТИ Новые архитектуры нейросетей

Bonnie
Оффлайн
Регистрация
12.04.17
Сообщения
19.095
Реакции
107
Репутация
0
Новые архитектуры нейросетей



dniqznbdtqf4dnmhqyuaa19rhrm.jpeg



Предыдущая статья « »


В этой статье кратко рассматриваются некоторые архитектуры нейросетей, в основном по задаче обнаружения объектов, чтобы найти (или хотя бы попытаться найти) будущие направления в этой быстро развивающейся области.


Статья не претендует на полноту охвата и хорошее понимание прочитанных «по диагонали» статей. Автор уверен, что пока писал эту статью, появилось еще много новых архитектур. Например, смотрите здесь: .




— большой обзор на 400+ статей для обнаружения объектов за 20 лет.


— зоопарк нейросетей, содержимое которого постоянно меняется.


Интересное видео с рекомендациями, как спроектировать нейронную сеть: « ».


EfficientNet



k_alkxw1ztkaiv3ll6w26n2dwno.png



EfficientNet — класс новых моделей, который получился из изучения масштабирования (скейлинг, scaling) моделей и балансирования между собой глубины и ширины (количества каналов) сети, а также разрешения изображений в сети. Авторы предлагают новый метод составного масштабирования (compound scaling method), который равномерно масштабирует глубину/ширину/разрешение с фиксированными пропорциями между ними. Из существующего метода под названием «Neural Architecture Search» ( , , , ) для автоматического создания новых сетей и своего собственного метода масштабирования авторы получают новый класс моделей под названием EfficientNets.

  • «EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks»
  • обзор оригинальной статьи
  • для TensorFlow
  • , , ,


EfficientDet



g3i--thpw8hnbazkvc0z77qsv4w.png



EfficientDet применяется для обнаружения объектов. Архитектура показана на рисунке ниже. Состоит из в качестве основы, к которой приделан слой по работе с пирамидой признаков под названием BiFPN, за которым идет «стандартная» сеть вычисления класс/рамка объекта.


muzeio405gjtptbivi8y43hxz1w.png



Рисунок — Архитектура EfficientDet == EfficientNet + BiFPN + сеть вычисления класс/рамка

  • «EfficientDet: Scalable and Efficient Object Detection»
  • для TensorFlow
  • для PyTorch


SpineNet



ggmsq-np6bieh3ffqllqd3lwpd0.png



SpineNet применяется для обнаружения объектов на изображении. Исследователи из Google Research достигли хороших результатов, которые превышают имеющиеся state-of-the-art (SOTA) подходы.


Сверточные нейросети обычно кодируют входное изображение в последовательность промежуточных признаков меньшей размерности. Такой подход хорошо работает для задачи классификации изображений, но плохо работает для задачи распознавания объектов (распознавание и локализация). Для обхода ограничения сверточных сетей по локализации (сегментации) объектов применяются сверточные кодировщик-декодировщик с архитектурой типа « » (Convolutional Encoder-Decoder Neural Network). В архитектурах типа «песочные часы» декодировщик располагается поверх кодировщика. Таким образом кодировщик применяется для задач классификации, а декодировщик – для задач локализации (сегментации). При этом кодировщик является основной моделью (backbone model), как правило, содержит больше параметров и потребляет больше вычислительных мощностей, чем декодировщик. Исследователи заявляют, что архитектура типа «песочные часы» неэффективна для генерации признаков разных масштабов, потому что в такой модели масштаб изображения постоянно уменьшается при помощи основной модели (кодировщика).


Предложенная модель SpineNet позволяет выучивать разномасштабные признаки из-за сверточных слоев смешанных размеров (смотрите рисунок ниже). Размеры слоев подбирались с помощью нейронного поиска архитектур (Neural Architecture Search, NAS). Использование SpineNet в качестве базовой модели дает прирост в точности (Average Precision, AP). При этом на обучение модели требуется меньше вычислительных ресурсов.


q08vttva1cwtuhxkh_zyfkfbyfc.jpeg



Рисунок – Построение моделей со смешанным масштабом с помощью перестановок слоев архитектуры ResNet (ResNet-50-FPN крайняя слева)

  • «SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization»
  • «SpineNet: архитектура для распознавания и локализации объекта на изображении»


CenterNet



rxqqx5qi7xk9tvvd6xp93jdg67o.png



CenterNet и CornerNet-Lite считались на 2019 год мейнстримовыми легковесными системами обнаружения объектов в реальном времени (cтатья « »).


CenterNet моделирует объект, как одну точку, которая находится в центре ограничительной рамки. Размер объекта, его ориентация, 3D-форма, направление, поза и т.д. извлекаются в последствии через характеристики изображения (image features) около полученной точки. Авторы подают входное изображение в полносвязную сверточную сеть, которая генерирует тепловую карту (heatmap). Пики на этой тепловой карте соответствуют центрам объектов. Характеристики изображения в каждом пике тепловой карты предсказывают размеры ограничительной рамки вокруг объекта. С помощью CenterNet авторы статьи экспериментируют с определением 3D размеров объектов и оценкой позы человека по двумерному изображению.


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


iu1qzceryzraxuyf7juz2nhhs78.png



Рисунок – Диаграмма CenterNet


CornerNet является предшественником CenterNet. CornerNet обнаруживает объект, как пару точек: верхний левый и правый нижний углы ограничительной рамки (bounding box). Таким образом распознавание по набору фиксированных рамкок (anchor box), как у нейросетей SSD и YOLO, заменяется на определение пары точек верхнего левого и правого нижнего углов ограничительной рамки вокруг объекта. Также авторы предлагают архитектуру на основе последовательности нескольких нейросетей типа «песочные часы», которые до этого не использовались для определения объектов.


В CornerNet применяется механизм «corner pooling» для определения углов ограничительной рамки вокруг объектов. В CenterNet добавляется механизм «center pooling» для определения центра рамки.


0qhxrirsmkplh3zgpf6ccywbphy.jpeg



Рисунок – Механизм «corner pooling» для верхнего левого угла. Сканирование проходит справа налево для горизонтального «max-pooling» и снизу вверх для вертикального «max-pooling». Затем две карты характеристик (feature maps) слаживаются.

  • по CenterNet «CenterNet: Keypoint Triplets for Object Detection» + +
  • по CornerNet-Lite «CornerNet-Lite: Efficient Keypoint Based Object Detection» +
  • по CornerNet: «CornerNet: Detecting Objects as Paired Keypoints» + +


ThunderNet



j9-eiiuavs9tnkzjr5neoq46zbk.png



ThunderNet применяется для обнаружения объектов на изображении. Является легковесным двуступенчатым детектором. Как утверждают авторы, является первым детектором объектов в реальном времени, который был запущен на платформах (мобильные телефоны и одноплатные компьютеры) со скоростью 24.1 fps (frames per second, кадров в секунду) и точностью сравнимой с MobileNet-SSD.

  • «ThunderNet: Towards Real-time Generic Object Detection»
  • поиска примеров в GitHub


znjkfsb-mf6kqkds7l-fu-mtyio.png



Рисунок — Архитектура ThunderNet


CSPNet



hm-sdsxwhdphwotnjv_zlaarocs.png



CSPNet (Cross Stage Partial Network) работает на фреймворке , . Метод применяется не сам по себе, а как улучшение уже существующих остаточных нейросетей (residual neural networks, ResNet). Основная концепция в том, чтобы поток градиента распространялся по разным сетевым путям через разделения потока градиента. Таким образом распространяемая информация о градиенте может иметь большую корреляцию, если переключать этапы конкатенации и перехода. CSPNet может значительно сократить объем вычислений, повысить скорость вывода и точность. Как видно из картинки выше, суть CSPNet заключается в более сложной обработке (feature pyramid network, ).

  • «CSPNet: A New Backbone that can Enhance Learning Capability of CNN»
  • ,


xnqhz26rbgvoqqihj44bixu7ar0.png



Рисунок — Пример пирамиды признаков


DenseNet



yeacmll5jztgjy8h1nkfhrdoupy.jpeg



Рисунок — Один плотный блок DenseNet c 5 слоями и скоростью роста k = 4. Каждый слой принимает все предыдущие карты признаков в качестве входных данных.


fugqfz_56gkeyzco8alf6qxc1tu.jpeg



Рисунок — DenseNet с тремя плотными блоками


DenseNet (Densely Connected Convolutional Network) была предложена в 2017 году. Успех ResNet (Deep Residual Network) позволил предположить, что укороченное соединение в CNN позволяет обучать более глубокие и точные модели. Авторы проанализировали это наблюдение и представили компактно соединенный (dense) блок, который соединяет каждый слой с каждым другим слоем. Важно отметить, что, в отличие от ResNet, признаки («фичи») прежде чем они будут переданы в следующий слой не суммируются, а конкатенируются (объединяются, channel-wise concatenation) в единый тензор. При этом количество параметров сети DenseNet намного меньше, чем у сетей с такой же точностью работы. Авторы , что DenseNet работает особенно хорошо на малых наборах данных.

  • «Densely Connected Convolutional Networks»
  • на Keras + этой и многих других моделей в CoLab
  • на Torch от автора, обученные модели и на других фреймворках


SAUNet



SAUNet (Shape Attentive U-Net) показывает наилучшие на начало 2020 года результаты по сегментации изображений МРТ сердца и предлагается автомами, как сеть по сегментации медицинских изображений.


aerte6nxnj0qhkjhtfu7pujjf8q.jpeg



Рисунок — SAUNet состоит из двух частей: одна часть обрабатывает текстуры (texture stream); вторая часть обрабатывает формы (gated shape stream). В кодировщике текстур сети U-Net используются блоки DenseNet-121 (смотрите выше ), а в декодере в качестве слоев сети U-Net применяются «блоки внимания» (dual attention decoder block).


Архитектура SAUNet является модульной и состоит из многих различных блоков: , , и механизма внимания на основе .

  • «SAUNet: Shape Attentive U-Net for Interpretable Medical Image Segmentation»
  • на PyTorch


DetNASNet



bv8gocnmykfvolrhqze5uzqgkmy.jpeg



Рисунок — Архитектура DetNASNet


Многие детекторы объектов работают на сетях, которые спроектированы для классификации изображений, что не оптимально, потому что определение объектов (object detection) и классификация изображений (image classification) являются различными задачами. DetNASNet использует подход под названием Neural Architecture Search ( ) для разработки архитектур, которые определяют объекты. Авторы утверждают, что они впервые применили процесс NAS, т.е. автоматический поиск оптимальных гиперпараметров нейросети, для оптимизации задачи определения объектов. Количесто вычислений составило 44 GPU-дня на наборе данных COCO. Достигнутая точность лучше, чем у ResNet-101, с гораздо меньшим количеством FLOP-пов.

  • «DetNAS: Backbone Search for Object Detection»
  • на PyTorch


SM-NAS



qhqc5ysdwrao9icbxg3pur7pcfu.jpeg



Рисунок — Сравнение времени вывода (мс) и точности обнаружения (mAP) на наборе данных COCO.


В SM-NAS предлагается двухэтапная стратегия грубого поиска под названием Structural-to-Modular NAS (SM-NAS): первый этап поиска на структурном уровне направлен на поиск эффективной комбинации различных модулей; второй этап поиска на модульном уровне развивает каждый конкретный модуль и продвигает вперед к более быстрой сети для конкретных задач.

  • Исходный код не найден.
  • «SM-NAS: Structural-to-Modular Neural Architecture Search for Object Detection»


AmoebaNet



b6bwfygmsvhs_bzqldakql0p8em.jpeg



Рисунок — Архитектура сети AmoebaNet-A. Слева общая модель. В центре блок «Normal Cell». Справа блок «Reduction Cell».


AmoebaNet также относится к алгоритмам по автоматическому созданию нейросетей. AmoebaNet использует вместо алгоритмов обучения с подкреплением для автоматического поиска оптимальных архитектур нейросетей. AmoebaNet использует то же простарство поиска (search space), что и . Является очень затратной по вычислениям и использует сотни TPU (Tensor Processing Units) для вычислений.

  • «Regularized Evolution for Image Classifier Architecture Search»


Graph Neural Network



ag2jdxr0s9sh4vcarxiyooyhaze.png



Graph Neural Network или нейронная сеть на графе, где искусственные нейроны — это узлы графа, а соединения между нейронами — это ребра графа. Полезны для решения задач машинного обучения на графах, т.е. если задачу можно представить в виде какого-нибудь графа. А на графах можно сделать очень многое и даже прововодить обработку изображений. Наиболее популярные библиотеки для машинного обучения на графах: для PyTorch, для TensorFlow, самая удобная для начала ознакомления.

  • в CoLab
  • by Siraj Raval
  • библиотеки DGL (Deep Graph Library)


Growing Neural Cellular Automata



fc976xo9zngc8rm6as3-fstc5b4.jpeg



Рисунок — Один шаг обновления модели


Growing Neural Cellular Automata являются скрещением идей клеточных автоматов и искусственных нейронных сетей, результатом которого являются «живые» самовоспроизводящиеся и взаимодействующие друг с другом изображения. Ничто не мешает вместо изображений взять любые другие объекты (текст, музыку и т.д.). Растущие нейронные клеточные автоматы выглядят привлекательно и эффектно. Изображения «выращиваются» из вектора в 16 чисел с плавающей запятой. Таким образом данные могут быть «упаковываны» в компактную цепочку чисел, как код ДНК, что в будущем может составить конкуренцию форматам сжатия данных типа JPEG (изображения), MP3 (звук), MPEG (видео) и ZIP (текст).


В исследователи объясняют принцип устройства растущих нейронных клеточных автоматов, а также пути достижения устойчивости картинки с течением времени, способность восстанавливаться (регенерировать) при повреждениях и устойчивость к вращению.

  • на сайте Distill
  • в Colab notebook
  • by Yannic Kilcher
  • игра


Импульсная нейронная сеть



Импульсная нейронная сеть или Spiking neural network является самой реалистичной с точки зрения физиологии. В ней нейроны обмениваются короткими импульсами одинаковой амплитуды. Первая научная модель импульсной нейросети была предложена еще в 1952 году Аланом Ходжкином и Эндрю Хаксли, однако данный вид искусственных нейронных сетей известен немногим специалистам в этой области. Основная идея состоит в том, чтобы скопировать поведение биологическкого нейрона. Такие модели могут быть полезны при изучении функций мозга. Для того, чтобы быстро летать, необязательно махать крыльями, однако при решении прикладных задач некоторые свойства можно позаимствовать у биологических организмов.

  • Википедия ( , )
  • на сайте PapersWithCode.com


DPM



DPM, Deformable Part Model detector, не нейросеть. Использует (смотрите ) и гистограммы направленных градиентов ( ). Была популярна при обнаружении пешеходов где-то в 2009 году, а затем, как пишут в «Object Detection in 20 Years: A Survey», уступила первенство алгоритму Integral Channel Features ( ), который затем уступил первенство нейросетям.


Сотни готовых «классических» алгоритмов могут использоваться для предварительной обработки и постобработки данных, как дополнение к нейросетям, которое обеспечивает новый синтез идей, и даже вместо нейросетей. Например, в «Deformable Part Models are Convolutional Neural Networks» алгоритм DPM заменяется на эквивалентную ему сверточную нейронную сеть.

  • «Deformable Part Models are Convolutional Neural Networks» + довольно устаревшая на MatLab и Caffe


Выводы



  1. Усилия исследователей направлены на:
    • автоматический поиск оптимальных параметров нейросети, развитие идей AutoML, «нейросеть генерирует нейросеть», Neural Architecture Search ( и );
    • механизм внимания (attention mechanism), карты внимания;
    • развитие сверточных сетей типа «песочные часы» для задач обнаружения объектов, которые часто используются как основные (backbone) модели в модульных архитектурах;
    • модульность, многие современные state-of-the-art (SOTA) архитектуры сотоят из многих частей.


  2. Чтение статей без последующей работы с исходным кодом дает мало пользы. Даже если понятна задумка исследователей, но без понятного исходного кода и умения использовать исходный код на практике такое знание не имеет смысла. Кроме осведомленности, что такой метод уже есть, чтобы не изобретать велосипед заново. После чтения «по диагонали» нескольких десятков статей в очередной раз убедился, что ИТ — это практическая дисциплина, нацеленная на результат.


P.S. Рекомендую видео блог , в котором автор объясняет и делает нейросети на Keras. Его — это как раз то, что нужно начинающему «нейрокодеру» вроде меня.


Спасибо за внимание!
 
Сверху Снизу