Различные области и фреймворки, это сверхполная коллекция моделей глубокого обучения на GitHub.

TensorFlow глубокое обучение GitHub Архитектура

Выбрано из модельного зоопарка, организованного Heart of the Machine.

Исследователи и разработчики искали в репозиториях GitHub интересные проекты и реализации, но нам может понадобиться точная тема и провести некоторый анализ. Недавно разработчик выпустил платформу агрегации моделей, и мы можем искать самые популярные модели с открытым исходным кодом по полям. Автор классифицирует эти модели в соответствии с характеристиками коллекции проектов GitHub, областью проекта, инфраструктурой реализации и т. д., поэтому мы можем быстро найти подходящую модель.

адрес проекта:modelzoo.co/

Глубокое обучение — самая популярная область машинного обучения в наши дни, поскольку благодаря своим мощным возможностям моделирования многомерных данных оно расцвело во многих различных задачах и областях, таких как компьютерное зрение, обработка естественного языка и обучение агентов. Модель глубокого обучения — это метод обучения представлению, который изучает само представление из модели, а не просто сопоставляет представление с выходными данными, как в традиционном машинном обучении.

В настоящее время глубокое обучение в основном автоматически извлекает функции из необработанных данных через нейроны на разных уровнях, и представления, которые он изучает, часто имеют лучшую производительность, чем представления, созданные вручную с помощью традиционного машинного обучения. Большинство реализаций машинного обучения в настоящее время на GitHub представляют собой модели глубокого обучения, которые создают модели для решения конкретных проблем с различными иерархическими структурами и сетевыми архитектурами. Например, иерархическое наложение сверточных 2D-слоев позволяет извлекать признаки из простых двумерных данных (таких как изображения) в сложные, а наложение повторяющихся единиц подходит для решения задач маркировки последовательностей, таких как машинный перевод. Вместе с такими модулями, как остаточные соединения, механизмы шлюзования и механизмы внимания, можно изучать знания, специфичные для конкретной задачи.

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

Model Zoo — это недавно созданная платформа, поэтому содержащаяся в ней библиотека моделей будет продолжать развиваться. Если читатели обнаружат, что есть другие превосходные модели, которые не были включены, они могут разместить их на веб-сайте и уведомить об этом автора. Кроме того, разработчик этого веб-сайта в настоящее время является только студентом бакалавриата в Сингапуре и надеется использовать такую ​​платформу, чтобы помочь большему количеству учащихся.

Все модели, собранные Model Zoo, можно найти в GitHub. Автор Цзин Ю организовал модели в соответствии с характеристиками коллекций проектов GitHub, полей проекта, сред реализации и т. д. Кроме того, мы также можем использовать поиск по ключевым словам для определения моделей. найти. . Каждая модель отображает на странице документ README соответствующего проекта GitHub, поэтому читатели могут быстро оценить основную информацию и требования проекта. Кроме того, автор также построил модуль рассылки новостей, чтобы раз в месяц отсортировать самые популярные и важные модели месяца.

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

В настоящее время включены среды реализации: Tensorflow, Caffe, Caffe2, PyTorch, MXNet и Keras. Хотя есть еще много фреймворков, которые не включены, например, исходная реализация CycleGAN использует язык Lua и фреймворк Torch, Даже если коллекция проекта достигает 6453, эта платформа также не включена.

Вы можете войти в вышеупомянутый интерфейс классификации фреймворков и интерфейс классификации моделей из Browse Frameworks и Browse Categories соответственно и просматривать их по категориям. Окно поиска ниже поддерживает поиск названий моделей.

Модели в основном отсортированы по коллекциям GitHub (например, звезда Magenta 10164), а интерфейс предварительного просмотра также включает такую ​​информацию, как введение проекта, структура реализации и классификация. Нажмите, чтобы ввести сведения о проекте (то есть документ README, соответствующий проекту GitHub). Ниже мы кратко опишем самые популярные проекты в каждой сфере:


компьютерное зрение

  • Звезда GitHub: 10164
  • Каркас реализации: TensorFlow

Magenta — это исследовательский проект по изучению роли машинного обучения в искусстве и создании музыки, применяемый многими авторами в области компьютерного зрения и обучения с подкреплением. В основном это включает в себя разработку новых алгоритмов глубокого обучения и обучения с подкреплением для создания песен, изображений, скетчей и т. д. Но он также пытается создавать интеллектуальные инструменты и интерфейсы, чтобы помочь художникам и музыкантам расширить возможности использования этих моделей. Magenta была запущена несколькими исследователями и инженерами из команды Google Brain, но есть и много других, которые внесли важный вклад в проект.

В настоящее время в этом проекте существует множество реализаций приложений и демонстраций, читатели могут проверитьПодпишитесь на него.tensorflow.org/blog.

Mask-RCNN

  • Звезда GitHub: 6104
  • Каркас реализации: Керас

Mask R-CNN представляет собой двухэтапную структуру: на первом этапе изображение сканируется и создаются предложения (т. е. области, которые могут содержать объект), а на втором этапе предложения классифицируются и создаются ограничивающие рамки и маски. Mask R-CNN — это расширение Faster R-CNN, предложенное тем же автором в прошлом году. Faster R-CNN — это популярная структура обнаружения объектов, а Mask R-CNN расширяет ее как структуру сегментации экземпляров.

Этот проект представляет собой реализацию Mask R-CNN на Python3, Keras и TensorFlow. Модель может генерировать ограничивающие рамки и маски сегментации для экземпляров объектов на изображении. Его архитектура основана на сети Feature Pyramid Network (FPN) и магистральной сети ResNet101.

Этот репозиторий содержит: исходный код для Mask R-CNN, построенный на FPN и ResNet101; обучающий код для набора данных MS COCO; предварительно обученные веса для MS COCO; блокнот Jupyter для визуализации каждого шага процесса обнаружения; класс ParallelModel для обучения работе с несколькими GPU. ; Оценка по MS COCO Metrics (AP); Пример обучения пользовательского набора данных.


обработка естественного языка

WaveNet

  • Звезда GitHub: 3692
  • Каркас реализации: TensorFlow

На следующем рисунке показана основная структура WaveNet, которая является полностью сверточной нейронной сетью с различными коэффициентами расширения в сверточных слоях, что позволяет ее рецептивному полю экспоненциально расти в соответствии с глубиной иерархии и охватывать тысячи временных шагов. Кроме того, Wave Net также является первой моделью, предлагающей причинно-следственную свертку, Интуитивно она похожа на «разделение» операции свертки пополам, так что она может работать только на входе прошлых временных шагов. Фактически, многие модели, использующие сверточные сети для решения проблем маркировки последовательностей, заимствовали эти две структуры, предложенные WaveNet.

Архитектура нейронной сети WaveNet, предложенная DeepMind, может напрямую генерировать новые звуковые волны и обладает превосходной производительностью при преобразовании текста в речь и генерации звука. Во время обучения его входная последовательность представляет собой реальную форму волны, записанную говорящим человеком. После обучения мы можем сэмплировать эту сеть для создания синтетических высказываний. На каждом временном шаге выборки значение берется из распределения вероятностей, вычисляемого сетью. Затем это значение возвращается на вход и генерирует новый прогноз для следующего шага. Построение семплов, подобных этому, шаг за шагом требует значительных вычислительных ресурсов, но имеет решающее значение для создания сложного реалистично звучащего звука.


Sentence Classification with CNN

  • Звезды GitHub: 3416
  • Каркас реализации: TensorFlow

Упрощенная реализация TensorFlow статьи «Сверточные нейронные сети для классификации предложений».

генеративная модель

DCGAN-tensorflow

  • Звезда GitHub: 4263
  • Каркас реализации: TensorFlow

GAN, предложенная Гудфеллоу и др., представляет собой новую основу для оценки генеративных моделей посредством состязательного процесса. В этой структуре нам необходимо одновременно обучать две модели, а именно генеративную модель G, которая фиксирует распределение данных, и дискриминативную модель D, которая оценивает вероятность того, что данные получены из реальных выборок. Процесс обучения генератора G заключается в том, чтобы максимизировать вероятность ошибок дискриминатора, то есть дискриминатор ошибочно думает, что данные представляют собой реальную выборку, а не фальшивую выборку, сгенерированную генератором. Таким образом, эта схема соответствует минимаксной игре с двумя игроками. DCGAN в основном использует сверточную нейронную сеть в качестве архитектуры генератора G и дискриминатора D, поэтому она может генерировать относительно четкие и отличные изображения.

Реализация TensorFlow статьи «Глубокие сверточные генеративно-состязательные сети», стабильная генеративно-состязательная сеть.

На рисунке выше показана архитектура генератора G, который использует четыре транспонированные свертки для повышения дискретизации, т.е. восстановления 100-мерной случайной величины в изображение. В этом проекте, чтобы предотвратить слишком быструю сходимость сети дискриминатора, когда дискриминатор выполняет одну итерацию, сеть генератора будет выполнять итерацию дважды подряд, что отличается от исходной статьи.


Image-to-Image Translation with Conditional Adversarial Networks

  • Звезда GitHub: 4242
  • Каркас реализации: PyTorch

Поскольку исходная реализация CycleGAN была написана на Lua, многие исследователи используют этот проект для воспроизведения преобразования изображения в изображение. Основная идея CycleGAN — обучить две пары моделей генератор-дискриминатор переводить изображения из одного домена в другой. В этом процессе мы требуем согласованности цикла, т.е. после применения генератора к изображению мы должны получить изображение, похожее на исходную потерю L1. Поэтому нам нужна циклическая потеря, которая гарантирует, что генератор не преобразует изображения из одного домена в другой домен, который совершенно не связан с исходным изображением.

Этот проект представляет собой реализацию PyTorch парного и непарного преобразования изображения в изображение.


обучение с подкреплением

Deep Reinforcement Learning for Keras

  • Звезда GitHub: 2639
  • Каркас реализации: Керас

keras-rl позволяет легко использовать современные алгоритмы глубокого обучения с подкреплением, реализованные в Keras, в сочетании с OpenAI Gym для создания проектов.

На данный момент в проекте реализованы следующие алгоритмы:

  • Deep Q Learning (DQN)
  • Double DQN
  • Deep Deterministic Policy Gradient (DDPG)
  • Continuous DQN (CDQN or NAF)
  • Cross-Entropy Method (CEM)
  • Dueling network DQN (Dueling DQN)
  • Deep SARSA


DQN-tensorflow

  • Звезды GitHub: 1610
  • Каркас реализации: TensorFlow

Реализация TensorFlow статьи «Управление на уровне человека с помощью глубокого обучения с подкреплением».

Реализация включает в себя: Глубокую Q-сеть и Q-обучение

  • воспроизвести воспоминание
  • Уменьшите актуальность непрерывных обновлений
  • Сеть, используемая для цели Q-обучения, изменена из-за проблемы интервала.
  • Уменьшите связь между целевыми и прогнозируемыми значениями Q


неконтролируемое обучение

MUSE: Multilingual Unsupervised and Supervised Embeddings

  • Звезды GitHub: 1298
  • Каркас реализации: PyTorch

MUSE — это библиотека Python для встраивания многоязычных слов, цель которой — предоставить сообществу самые современные многоязычные вложения слов на основе fastText, а также крупномасштабные высококачественные двуязычные словари для обучения и оценки.

В проекте используются два метода: контролируемый метод с использованием двуязычных словарей или идентичных строк и неконтролируемый метод без использования каких-либо параллельных данных.


Domain Transfer Network (DTN)

  • Звезды GitHub: 654
  • Каркас реализации: TensorFlow

Реализация TensorFlow из статьи «Создание междоменных изображений без присмотра». На следующем рисунке представлен обзор архитектуры модели.

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