оригинал:любовь лето.com/deep-learn я…
Автор: Сергиос Карагианнакос.
Поскольку статья немного длинная, она будет разделена на верхнюю и нижнюю статьи и будет развиваться отдельно.
Ссылка на предыдущую статью:
Краткий обзор алгоритмов глубокого обучения (часть 1)
Каталог этой статьи выглядит следующим образом:
- Что такое глубокое обучение?
- Нейронные сети
- Нейронные сети с прямой связью (FNN)
- Сверточные нейронные сети (CNN)
- Рекуррентные нейронные сети (RNN)
- Рекурсивная нейронная сеть
- Автоэнкодеры
- Сети глубокого доверия и ограниченные машины Больцмана
- Генеративно-состязательные сети
- Transformers
- Граф нейронных сетей
- Обработка естественного языка на основе глубокого обучения
- Вложение слов
- Моделирование последовательности
- компьютерное зрение на основе глубокого обучения
- Локализация и обнаружение объектов
- Детекторы одиночного выстрела (SSD)
- Семантическая сегментация
- Оценка позы
В предыдущей статье были представлены первые шесть разделов, от определения глубокого обучения до введения нейронных сетей, прямых нейронных сетей, сверточных нейронных сетей, рекуррентных нейронных сетей и рекуррентных нейронных сетей, Далее я представлю оставшиеся алгоритмы и два. Отличное прикладное направление.
7. Автоэнкодеры
Автоэнкодеры [11] обычно используются как неконтролируемый алгоритм и в основном используются для уменьшения размерности и сжатия. Их трюк состоит в том, чтобы попытаться сделать вывод равным входу, а в другой работе попытаться восстановить данные.
Автоэнкодер состоит из энкодера и декодера. Кодер принимает ввод и кодирует его в вектор в низкоразмерном скрытом пространстве, а декодер отвечает за декодирование вектора для получения исходного ввода. Структура показана на следующем рисунке:
Из приведенного выше рисунка мы можем узнать, что представление признаков менее размерного ввода может быть получено из вывода в середине сети (часть кода на рисунке), что является работой уменьшения размерности и сжатия.
Кроме того, в соответствии с этой идеей также можно извлекать немного другие входные данные или даже более качественные данные, которые можно использовать для улучшения обучающих данных, шумоподавления данных и т. д.
8. Сети глубокого доверия и ограниченные машины Больцмана
Ограниченные машины Больцмана [12] — это стохастические нейронные сети с генеративными возможностями., то есть он может узнать распределение вероятностей через ввод. По сравнению с другими сетями,Его самая большая особенность заключается в том, что он имеет только входные и скрытые слои, не включая выходные..
В прямой части обучения входные данные передаются и создается соответствующее представление признаков, а затем при обратном распространении исходные входные данные восстанавливаются из этого представления признаков (этот процесс очень похож на автоэнкодер, но выполняется в единая сеть реализована в). Конкретная структура сети показана на следующем рисунке:
Несколько ограниченных машин Больцмана (RBM) могут быть сложены вместе, чтобы сформировать глубокую сеть убеждений.[13]. Они очень похожи на полносвязные слои, но отличаются способом обучения. Обучение сети глубокого убеждения заключается в попарном обучении ее сетевых слоев в соответствии с процессом обучения RBM.
Однако в последнее время сети глубокого доверия и ограниченные машины Больцмана стали менее популярными из-за появления генеративно-состязательных сетей (GAN) и мутировавших автоэнкодеров.
9. Генеративно-состязательные сети
Генеративно-состязательные сети [14] — это алгоритм, предложенный Яном Гудфеллоу в 2016 году и основанный на простой, но элегантной идее: если бы вы захотели сгенерировать данные изображения, что бы вы сделали?
Подход может состоять в том, чтобы сначала создать две модели,Сначала обучите первую модель генерировать поддельные данные (генератор), затем обучите вторую модель различать настоящие и поддельные данные (дискриминатор)., а затем тренировать их вместе, чтобы соревноваться друг с другом.
По мере обучения генератор все лучше и лучше генерирует данные изображения, и его конечная цель — успешно обмануть дискриминатор. Дискриминатор имеет все более сильную способность различать истинные и ложные данные, и его конечная цель - не быть обманутым. В результате дискриминатор получит очень настоящие поддельные данные, а структура сети показана на следующем рисунке:
Приложения генеративно-состязательных сетей включают видеоигры, астрономические изображения, моду и т. д. По сути, пока это данные изображения, могут использоваться генеративно-состязательные сети, такие как очень известные Deep Fakes, которые имеют только генеративно-состязательные сети.
10. Transformers
Transformers
[15] также является очень новым алгоритмом, в основном используемым в языковых приложениях и постепенно заменившим рекуррентную нейронную сеть. В основном он основан на механизме внимания, который заставляет сеть фокусироваться на определенной точке данных.
Вместо сложных единиц LSTM механизм внимания присваивает веса в зависимости от важности различных частей входных данных.механизм внимания[16] также является слоем весов, целью которого является приоритизация определенных частей ввода путем корректировки весов при временном игнорировании других частей, которые не важны.
Transformers
На самом деле, он содержит несколько сложенных кодировщиков (состоящих из уровней кодирования), несколько сложенных декодеров (слоев декодирования) и множество сетевых уровней внимания (собственное внимание и внимание кодер-декодер), как показано на следующем рисунке:
Transformers
Он в основном используется для решения данных упорядоченной последовательности, таких как некоторые задачи обработки естественного языка, включая машинный перевод и суммирование текста. В настоящее времяBERT
иGPT-2
— это две наиболее эффективные предварительно обученные системы естественного языка, используемые во многих задачах обработки естественного языка, и они также основаны наTransformers
из.
11. Граф нейронных сетей
В целом неструктурированные данные не очень подходят для алгоритмов глубокого обучения. На самом деле в реальной жизни существует множество приложений, в которых данные неструктурированы, а затем организованы в графическом формате. Такие как социальные сети, химические смеси, графы знаний, пространственные данные и т. д.
Целью нейронной сети графа [17] является моделирование данных графа, то есть она может идентифицировать взаимосвязь между узлами в графе и генерировать числовое представление данных, аналогичное вектору встраивания (встраивание). Следовательно, их можно применять к другим моделям машинного обучения для всех типов задач, таких как кластеризация, классификация и т. д.
12. Обработка естественного языка на основе глубокого обучения
Вложение слов
Встраивание слов заключается в получении семантического и грамматического сходства между словами путем преобразования их в числовые векторные представления. Это необходимо, потому что нейронные сети могут принимать только числовые данные, поэтому слова и текст должны быть закодированы как числовые значения.
-
Word2Vec[18] является наиболее часто используемым методом, который пытается изучить вектор встраивания (встраивание) и может предсказать текущее слово из контекста (CBOW) или предсказать слово на основе контекста (Skip-Gram). Фактически
Word2Vec
Это также двухслойная нейронная сеть, и вход и выход — это слова. Слова подаются в нейронную сеть посредством одноразового кодирования. существуетCBOW
В примере на входе соседнее слово, на выходе нужное слово, а вSkip-Gram
В примере вход и выход поменялись местами, вход — это слово, а выход — контекстное слово. -
Glove[19] — еще одна модель, которая
Word2Vec
Он сочетает в себе методы матричной факторизации, такие как латентный семантический анализ, который, как доказано, хорошо работает при глобальном анализе текста, но не может собирать локальную контекстную информацию. комбинируяWord2Vec
и матричная факторизация, которая может эффективно использовать их сильные стороны. - FastText[20] — это алгоритм, предложенный Facebook, который принимает представления на уровне символов, а не слов.
-
контекстуальные вложения слов(Contextual Word Embeddings) заменен рекуррентной нейронной сетью
Word2Vec
, используемый для предсказания следующего слова слова в последовательности. Этот метод фиксирует долгосрочную независимость между словами, и каждый вектор содержит информацию о текущих и исторических словах. Самая известная версия –ELMo[21], которая представляет собой двухуровневую двунаправленную сеть LSTM. -
механизм внимания[22] и
Transformers
Как было представлено ранееTransformers
сказал, постепенно заменилRNN
, они могут добиться взвешивания наиболее релевантных слов и забыть неважные слова.
Моделирование последовательности
Модели последовательности являются неотъемлемой частью обработки естественного языка, поскольку они используются в большом количестве распространенных приложений, таких как машинный перевод [23], распознавание речи, автозавершение и классификация настроений. Модели последовательности могут обрабатывать последовательные входные данные, например, все слова документа.
В качестве примера предположим, что вы хотите перевести предложение с английского на французский.
Для реализации этого перевода вам потребуетсяМодель последовательности (seq2seq)[24].Seq2seq
Модель состоит из кодировщика и декодера.Кодер принимает последовательность (в данном примере английское предложение) в качестве входных данных, а затем принимает в качестве выходных данных представление входных данных в скрытом пространстве, которое подается в декодер и выводит новые последовательности (также известные как французские предложения).
Наиболее распространенными структурами кодировщика и декодера являются рекуррентные нейронные сети (в основномLSTMs
), потому что они очень хороши в захвате долгосрочной независимости, в то время какTransformers
Модели быстрее и проще распараллелить. Иногда сверточные нейронные сети комбинируются для повышения точности.
BERT
[25] иGPT-2
[26] считаются двумя лучшими языковыми моделями в настоящее время, они на самом деле основаны на моделях последовательностей.Transformers
13. Компьютерное зрение на основе глубокого обучения
Локализация и обнаружение объектов
позиционирование изображения[27] относится к задаче обнаружения объекта на изображении и маркировки его ограничительной рамкой, а обнаружение объекта также включает в себя классификацию объектов.
Эти связанные задачи решаются с помощью базовой модели (и ее обновленной версии), котораяRCNN
.R-CNN
и его обновленная версияFast RCNN
,Faster RCNN
УсыновленныйПредложения регионов и сверточные нейронные сети.
отFaster RCNN
Например, внешняя система сети выдаст несколько областей-кандидатов в виде ограничивающих рамок фиксированного размера, которые могут содержать целевой объект. Эти ограничивающие прямоугольники проходят черезCNN
(НапримерAlexNet
) для классификации и исправления, чтобы определить, содержит ли область объекты, к какой категории относятся объекты, и скорректировать размер ограничивающей рамки.
Детекторы одиночного выстрела (SSD)
Single-shot detectors
и его самые известные представители --YOLO(You Only Look Once)
[28] не принял идею области-кандидата,Они принимают набор предопределенных ограничивающих рамок.
Эти ограничивающие рамки передаютсяCNN
И прогнозировать оценку достоверности отдельно, обнаруживать объект, центрированный в каждом прямоугольнике, и классифицировать его, и, наконец, будет сохранен только ограничивающий прямоугольник с наивысшим баллом.
эти годы,YOLO
Есть также несколько обновленных версий--YOLOv2
,YOLOv3
,YOLO900
И скорость, и точность были улучшены.
Семантическая сегментация
Фундаментальной работой в области компьютерного зрения является классификация каждого пикселя изображения на основе его контекста.это семантическая сегментация[29]. В этой области наиболее часто используются две модели: полностью сверточные сети (FCN) иU-Nets
.
- **Полностью сверточные сети (FCN)** — это структура сети кодер-декодер, то есть сеть, включающая свертки и деконволюции. Кодер сначала понижает дискретизацию входного изображения для захвата семантической и контекстуальной информации, а декодер выполняет операцию повышения дискретизации для восстановления пространственной информации. Таким образом, контекст восстановленного изображения может быть достигнут с меньшими затратами времени и пространства.
-
U-Netsоснована на уникальной идее --Межуровневые соединения (скип-соединения). Его кодер и декодер имеют одинаковый размер,
skip-connections
Информация может передаваться с первого уровня на последний, увеличивая размер конечного вывода.
Оценка позы
Оценка позы [30] заключается в указании точек сочленения человека на картинке или видео, которые могут быть 2D или 3D. В 2D мы оцениваем координаты (x, y) каждой точки соединения, а в 3D координаты равны (x, y, z).
PoseNet
[31] является наиболее часто используемой моделью в этой области [31], в которой также используется сверточная нейронная сеть. ввести изображение вCNN
Затем для определения позы используется алгоритм с одной или несколькими позами.Каждая поза получит оценку достоверности и некоторые координаты ключевых точек, и, наконец, будет сохранена только та, которая имеет наивысший балл.
Суммировать
Вышеизложенное - все содержание этой статьи, Это очень простое введение в несколько часто используемых моделей алгоритмов в глубоком обучении, включая сверточные нейронные сети, рекуррентные нейронные сети, автокодировщики и генеративно-состязательные сети, которые были предложены только в последние годы.Tranformers
, а также представил два основных приложения глубокого обучения, обработку естественного языка и общие направления в компьютерном зрении.
Конечно, эта статья представляет собой лишь очень простую популяризацию этих алгоритмов и направлений их применения.Если вы хотите узнать о них больше позже, вы можете проверить справочную ссылку, которая более подробно познакомит с каждой конкретной моделью алгоритма.
Ссылаться на
- Хорошо. Wikipedia.org/wiki/deep_come…
- karpathy.github.io/neuralnets/
- блестящий.org/wiki/обратный пиар…
- Как и во втором.IO/оптимизация-…
- любовь summer.com/neural_net для…
- любовь summer.com/neural_net для…
- любовь summer.com/self_Vin дня…
- любовь summer.com/sign-LAN висит…
- woohoo.course RA.org/lecture/NLP…
- Лето любви.com/bit con_pre’s…
- любовь summer.com/auto encoder…
- в сторону data science.com/restricted-…
- глубокое обучение.net/tutorial/dB…
- любовь лето.com/generative_…
- Любовь. Google blog.com/2017/08/Внезапно…
- Лилиан Онг.GitHub.io/theory-log/201…
- the love summer.com/graph_n Eur A…
- путь mind.com/wiki/word2V…
- medium.com/@Jonathan_ также…
- research.convenient.com/blog/2016/0…
- allennlp.org/elmo
- blog.Floyd hub.com/attention - нет...
- woohoo.tensorflow.org/tutorials/he…
- блог Can RAS.IO / Ah-Turner-Minut…
- GitHub.com/Google – Горячие цвета…
- openlove.com/blog/better…
- the love summer.com/local я разное, о…
- theaisummer.com/YOLO/
- the love summer.com/semantic_SRussian…
- любовь лето.com/human-pose-…
- GitHub.com/tensorflow/…
- Woohoo. Fritz. Love/поза- лоб...