Эндрю Нг показал в Твиттере инфографику специального курса по глубокому обучению, пройденного ТессФеррандес, в котором прекрасно зафиксированы знания и основные моменты курса по глубокому обучению. Таким образом, он подходит не только для начинающих, чтобы понять глубокое обучение, но также подходит для практиков и исследователей машинного обучения для обзора основных концепций. Heart of the Machine считает, что это не просто конспект курса, но и набор инфографики и памяток. Ниже мы представим примечание по трем аспектам основ глубокого обучения, сверточных сетей и рекуррентных сетей, а также предоставим адрес загрузки инфографики.
Адрес для скачивания инфографики:disk.baidu.com/yes/1DT YG3TY P…
Основы глубокого обучения
1 Основные концепции глубокого обучения
Контролируемое обучение: все входные данные имеют определенные соответствующие выходные данные.В различных сетевых архитектурах уровни узлов входных данных и выходных данных расположены на обоих концах сети, и процесс обучения заключается в постоянной корректировке весов сетевых соединений между ними.
Вверху слева: перечисляет контролируемое обучение различных сетевых архитектур, таких как стандартная нейронная сеть (NN), которая может использоваться для обучения функции между характеристиками дома и ценами на жилье, а сверточная нейронная сеть (CNN) может использоваться для обучения изображений и категорий. , рекуррентные нейронные сети (RNN) могут использоваться для обучения функций между речью и текстом.
Внизу слева: показаны упрощенные архитектуры NN, CNN и RNN соответственно. Прямой процесс этих трех архитектур отличается, NN использует матрицу весов (соединение), а значения узлов умножаются и последовательно распространяются на следующий уровень узлов; CNN использует прямоугольное ядро свертки для последовательного переноса входного изображения. операции продукта и скольжения, чтобы получить ввод следующего уровня; RNN запоминает или забывает информацию о предыдущем временном шаге, чтобы обеспечить долговременную память для текущего вычислительного процесса.
Вверху справа: NN могут обрабатывать структурированные данные (таблицы, базы данных и т. д.) и неструктурированные данные (изображения, аудио и т. д.).
Внизу справа: развитие глубокого обучения в основном связано с появлением больших данных, а для обучения нейронных сетей требуется большой объем данных, а сами большие данные, в свою очередь, способствовали появлению более крупных сетей. Основным прорывом в исследованиях глубокого обучения является появление нового типа функции активации.Замена сигмовидной функции функцией ReLU может поддерживать процесс быстрого градиентного спуска при обратном распространении.Сигмоидальная функция имеет производную, которая стремится к нулю на положительной бесконечности и отрицательная бесконечность. , что является основной причиной того, что исчезающий градиент приводит к замедлению или даже провалу обучения. Чтобы изучать глубокое обучение, вам нужно изучить благотворный круг «идея-код-эксперимент-идея».
2 логистическая регрессия
Вверху слева: логистическая регрессия в основном используется для задач бинарной классификации.Как показано на рисунке, логистическая регрессия может решить проблему того, является ли изображение кошкой, где изображение является входом (x) и кошкой (1) или нет -cat (0) это вывод. . Мы можем думать о логистической регрессии как о проблеме разделения двух наборов точек данных, если есть только линейная регрессия (функция активации линейна), то для точек данных с нелинейными границами (например, один набор точек данных окружен другим) не может быть эффективно разделена, поэтому здесь линейную функцию активации необходимо заменить нелинейной функцией активации. В этом случае мы используем сигмовидную функцию активации, которая представляет собой гладкую функцию с диапазоном значений (0, 1), которая может заставить вывод нейронной сети получать непрерывный, нормализованный (значение вероятности) результат, например, когда выходной узел (0.2, 0.8), изображение определено как некошачье (0).
Внизу слева: цель обучения нейронной сети — определить наиболее подходящий вес w и смещение b. На что похож этот процесс?
Эта классификация фактически представляет собой задачу оптимизации Цель процесса оптимизации состоит в минимизации разрыва между прогнозируемым значением y и истинным значением y, что может быть достигнуто формально путем нахождения минимального значения целевой функции. Поэтому мы сначала определяем форму целевой функции (функция потерь, функция стоимости), а затем используем градиентный спуск для постепенного обновления w и b, Когда функция потерь достигает минимального значения или достаточно мала, мы можем получить хорошие результаты прогнозирования.
Вверху справа: упрощенная диаграмма изменения значения функции потерь на параметрической поверхности Градиент можно использовать для поиска кратчайшего пути спуска, а размер скорости обучения может определять скорость сходимости и конечный результат. Когда скорость обучения велика, начальная сходимость очень быстрая, и нелегко оставаться на локальном минимальном значении, но трудно сходиться к стабильному значению на более позднем этапе; когда скорость обучения мала, ситуация как раз обратная. Вообще говоря, мы хотим иметь большую скорость обучения в начале обучения и меньшую скорость обучения на более позднем этапе.Позже мы представим метод обучения изменения скорости обучения.
Внизу справа: суммируйте весь процесс обучения, начиная с входного узла x, получите прогнозируемый результат y через прямое распространение, используйте y и y для получения значения функции потерь, начните выполнять обратное распространение, обновите w и b и повторять процесс до сходимости.
3 характеристики мелких сетей
Вверху слева: в мелководной сети меньше скрытых слоев, как показано на рисунке, есть только один скрытый слой.
Внизу слева: Вот характеристики различных функций активации:
- сигмоид: сигмовидная функция часто используется в задачах двоичной классификации или в последнем слое задач многоклассовой классификации, в основном из-за ее свойств нормализации. Градиент сигмовидной функции стремится к нулю с обеих сторон, что приводит к медленному обучению.
- tanh: по сравнению с сигмовидной, преимущество функции tanh заключается в том, что значение градиента больше, что может ускорить обучение.
- ReLU: Это можно понимать как пороговую активацию (частный случай модели спайков, аналогичную тому, как работают биологические нервы). Эта функция очень часто используется и в основном представляет собой функцию активации, выбранную по умолчанию. Преимущество в том, что она не будет вызвать проблемы с медленным обучением, и поскольку значение активации равно нулю, узлы не будут участвовать в обратном распространении, и эта функция также имеет эффект разреженной сети.
- Leaky ReLU: избегает результата нулевых активаций, так что процесс обратного распространения всегда выполняется, но редко используется на практике.
Вверху справа: зачем использовать функцию активации? Точнее, зачем использовать нелинейную функцию активации?
Как видно из примера на рисунке выше, нейронная сеть без функции активации распространяется через два слоя, и конечный результат такой же, как и при линейной работе одного слоя, то есть, если нет нелинейной функции активации. используется, независимо от того, сколько слоев Нейронные сети эквивалентны однослойной нейронной сети (без входного слоя).
Внизу справа: Как инициализировать значения параметров w, b?
Когда все параметры будут инициализированы нулем, все узлы станут одинаковыми, и в процессе обучения можно будет изучить только одни и те же признаки, а нельзя изучить многоуровневые и разноплановые признаки. Решение состоит в том, чтобы инициализировать все параметры случайным образом, но только с небольшой дисперсией, поэтому для инициализации используйте Rand(0,01), где 0,01 также является одним из гиперпараметров.
4 особенности глубоких нейронных сетей
Вверху слева: параметрическая мощность нейронных сетей увеличивается экспоненциально с увеличением количества слоев, то есть некоторые проблемы, которые могут решить глубокие нейронные сети, для решения мелких нейронных сетей требуют относительно экспоненциальных вычислений.
Внизу слева: глубокая сеть CNN может объединять базовые простые функции во все более и более сложные функции слой за слоем Чем больше глубина, тем больше сложность и разнообразие изображений, которые она может классифицировать. То же самое верно и для глубоких сетей RNN, которые могут разлагать речь на фонемы, а затем постепенно объединять их в буквы, слова и предложения для выполнения сложных задач преобразования речи в текст.
Справа: Глубокие сети требуют большого количества обучающих данных и вычислительных ресурсов, которые включают большое количество матричных операций, которые могут выполняться параллельно на графических процессорах, а также содержат большое количество гиперпараметров, таких как скорость обучения, количество итераций, количество скрытых слоев, выбор функции активации, схема настройки скорости обучения, размер партии, метод регуляризации и т. д.
5 Смещение и дисперсия
Итак, на что вам нужно обратить внимание при развертывании модели машинного обучения? На приведенной ниже диаграмме показаны проблемы разделения набора данных, смещения и дисперсии, необходимые для создания приложений машинного обучения.
Как показано выше, количество выборок, требуемых моделями классического машинного обучения и глубокого обучения, сильно различается, а количество выборок в глубоком обучении в тысячи раз больше, чем в классическом машинном обучении. Следовательно, распределение обучающего набора, набора для разработки и тестового набора также сильно различается, конечно, мы предполагаем, что эти разные наборы данных подчиняются одному и тому же распределению.
Проблемы смещения и дисперсии также являются распространенными проблемами в моделях машинного обучения.Приведенный выше рисунок, в свою очередь, показывает недостаточное соответствие, вызванное высоким смещением, и переоснащение, вызванное высокой дисперсией. В общем, решение задач с высоким смещением заключается в выборе более сложной сети или другой архитектуры нейронной сети, в то время как решение задач с высокой дисперсией может добавить регуляризацию, уменьшить избыточность модели или использовать больше данных для обучения.
Конечно, с моделями машинного обучения нужно знать гораздо больше проблем, но они являются наиболее фундаментальной и важной частью настройки наших приложений машинного обучения. Другие, такие как предварительная обработка данных, нормализация данных, выбор гиперпараметров и т. д., отражены в следующей инфографике.
6 Регуляризация
Регуляризация является основным методом решения проблемы высокой дисперсии или переобучения модели.За последние несколько лет исследователи предложили и разработали множество методов регуляризации, подходящих для алгоритмов машинного обучения, таких как увеличение данных, регуляризация L2 (распад веса), регуляризация L1. , Drop Connect, случайное объединение, досрочное прекращение и т. д.
Как показано в левом столбце рисунка выше, регуляризация L1 и L2 также являются наиболее широко используемыми методами регуляризации в машинном обучении. Регуляризация L1 добавляет член регуляризации к целевой функции, чтобы уменьшить сумму абсолютных значений параметров; в то время как в регуляризации L2 цель добавления члена регуляризации состоит в том, чтобы уменьшить сумму квадратов параметров. Согласно предыдущим исследованиям, многие векторы параметров в регуляризации L1 являются разреженными векторами, потому что во многих моделях параметры приближаются к 0, поэтому он часто используется в настройках выбора признаков. Кроме того, регуляризация L2 со штрафом за норму параметра позволяет алгоритму глубокого обучения «воспринимать» ввод x с более высокой дисперсией, поэтому веса признаков с меньшей ковариацией (относительно увеличивающейся дисперсией) с выходной целью будут уменьшаться.
В средней колонке на изображении выше показан метод Dropout, метод временного удаления части нейронов и их соединений. Случайное отбрасывание нейронов предотвращает переобучение, экспоненциально и эффективно соединяя различные сетевые архитектуры. Как правило, нейронная сеть, использующая технологию Dropout, устанавливает коэффициент удержания p, а затем каждый нейрон случайным образом выбирает, следует ли отбрасывать его с вероятностью 1-p в пакете обучения. Все нейроны должны быть сохранены в конце вывода, поэтому точность выше.
Бэггинг — это технология, которая уменьшает ошибку обобщения за счет объединения нескольких моделей.Основной метод — обучать несколько разных моделей по отдельности, а затем позволять всем моделям голосовать за выходные данные тестовых образцов. Dropout можно рассматривать как метод мешков, который объединяет большое количество глубоких нейронных сетей, поэтому он обеспечивает дешевое ансамблевое приближение мешков, способное обучать и оценивать нейронные сети с большим количеством данных.
Наконец, на приведенном выше рисунке также описаны методы регуляризации, такие как увеличение данных и досрочное прекращение. Расширение данных искусственно увеличивает набор обучающих данных, добавляя преобразования или возмущения к обучающим данным. Методы увеличения данных, такие как отражение изображений по горизонтали или вертикали, обрезка, преобразование цвета, масштабирование и вращение, обычно используются в визуальном представлении и классификации изображений. А досрочное прекращение часто используется для предотвращения плохой производительности обобщения гиперэкспрессированных моделей во время обучения. Если количество итераций слишком мало, алгоритм склонен к недообучению (малая дисперсия и большое отклонение), а если итераций слишком много, алгоритм склонен к переоснащению (большая дисперсия и малое отклонение). Поэтому досрочное прекращение решает эту проблему, определяя количество итераций.
7 Оптимизация
Оптимизация — очень важный модуль в моделях машинного обучения, который не только доминирует во всем процессе обучения, но и определяет конечную производительность модели и время, необходимое для сходимости. Следующие две инфографики показывают знания, на которые следует обращать внимание в методах оптимизации, включая подготовку к оптимизации и конкретные методы оптимизации.
Выше показаны общие проблемы и операции, необходимые для оптимизации. Во-первых, перед выполнением оптимизации нам нужно нормализовать входные данные, а константы (среднее значение и дисперсия) для нормализации наборов для разработки и тестирования такие же, как и в обучающем наборе. На приведенном выше рисунке также показана причина нормализации, потому что, если разница величин между функциями слишком велика, то поверхность функции потерь представляет собой длинный и узкий эллипс, и метод градиентного спуска или метод наискорейшего спуска будет связан с " явление «пилообразное». Схождение затруднено, поэтому нормализация к кругу помогает уменьшить колебания в нисходящем направлении.
Следующие проблемы с исчезновением градиента и взрывом градиента также являются очень распространенными явлениями. «Исчезновение градиента» относится к явлению, когда норма градиента параметра уменьшается экспоненциально по мере увеличения глубины сети. Градиент небольшой, а значит, параметры меняются медленно, что делает процесс обучения стагнирующим. Взрыв градиента относится к непрерывному накоплению больших градиентов ошибок в процессе обучения нейронной сети, что приводит к большому обновлению весов модели, В крайних случаях значение весов становится настолько большим, что появляются значения NaN.
Градиентное тестирование, вероятно, сейчас используется меньше, потому что нам нужно только вызвать оптимизатор для выполнения алгоритмов оптимизации на TensorFlow или других фреймворках. Тестирование градиента обычно использует численные методы для вычисления приблизительных производных и их распространения, поэтому оно может проверить правильность градиентов, которые мы вычислили аналитически.
Ниже приведены конкретные алгоритмы оптимизации, в том числе самый простой мини-пакетный стохастический градиентный спуск, стохастический градиентный спуск с импульсом и алгоритмы адаптивной скорости обучения, такие как RMSProp.
Мини-пакетный стохастический градиентный спуск (часто на который ссылается SGD) использует пакет данных для обновления параметров, что значительно снижает объем вычислений, необходимых для одной итерации. Этот подход уменьшает дисперсию обновленных параметров, делая процесс сходимости более стабильным; он также использует высокооптимизированные матричные операторы в популярных средах глубокого обучения для эффективного поиска градиентов для каждой мини-партии. Как правило, мини-партия содержит от 50 до 256 образцов, но может различаться для разных целей.
Политика импульса предназначена для ускорения процесса обучения SGD, особенно с высокой кривизной. Как правило, импульсные алгоритмы используют экспоненциально затухающее скользящее среднее предыдущих градиентов для коррекции в этом направлении, что позволяет лучше использовать информацию из исторических градиентов. Алгоритм вводит переменную v как параметр вектора скорости, который непрерывно перемещается в пространстве параметров, и скорость обычно может быть установлена как экспоненциально затухающая скользящая средняя отрицательных градиентов.
Алгоритмы адаптивной скорости обучения, такие как RMSProp и Adam, описанные ниже на рисунке выше, в настоящее время являются наиболее часто используемыми методами оптимизации. Алгоритм RMSProp (Hinton, 2012) модифицирует AdaGrad, чтобы он работал лучше в невыпуклом случае, изменяя накопление градиента на экспоненциально взвешенное скользящее среднее, которое отбрасывает историческую информацию о градиенте, которая находится дальше. RMSProp — это алгоритм оптимизации, предложенный Хинтоном в открытом классе, фактически его можно рассматривать как частный случай AdaDelta. Но практика показала, что у RMSProp очень хорошая производительность, и в настоящее время он широко используется в глубоком обучении.
Алгоритм Адама обладает преимуществами алгоритмов AdaGrad и RMSProp. Адам не только вычисляет скорость обучения адаптивного параметра на основе среднего значения момента первого порядка, как алгоритм RMSProp, но также в полной мере использует среднее значение момента второго порядка градиента (т. е. смещенную дисперсию/нецентрированную дисперсию).
8 гиперпараметров
Ниже представлена инфографика, представляющая гиперпараметры, которые играют важную роль в нейронных сетях, поскольку они могут напрямую улучшить производительность модели.
Хорошо известно, что гиперпараметры, такие как скорость обучения, количество скрытых единиц нейронной сети, размер партии, количество слоев и коэффициент регуляризации, могут напрямую влиять на производительность модели, и очень важно, как ее настроить. В настоящее время наиболее распространенным способом является ручная настройка параметров. Разработчики выбирают «разумные» гиперпараметры на основе собственного опыта моделирования, а затем вносят небольшие корректировки в зависимости от производительности модели. Однако автоматическая настройка параметров, такая как стохастический процесс или байесовская оптимизация, по-прежнему требует очень большого объема вычислений, а эффективность относительно низка. Однако в последнее время достигнуты большие успехи в поиске гиперпараметров с использованием таких методов, как обучение с подкреплением, генетические алгоритмы и нейронные сети, и исследователи ищут эффективный и точный метод.
Текущие методы поиска гиперпараметров:
- Положитесь на опыт: прислушивайтесь к своей интуиции, устанавливайте параметры, которые кажутся вам правильными, и смотрите, работает ли это, продолжайте пробовать, пока не устанете.
- Поиск по сетке: пусть компьютер попробует некоторые значения, равномерно распределенные в определенном диапазоне.
- Случайный поиск: дайте компьютеру попробовать несколько случайных значений и посмотреть, работают ли они.
- Байесовская оптимизация: используйте такой инструмент, как MATLAB bayesopt, для автоматического выбора наилучших параметров — оказывается, байесовская оптимизация имеет больше гиперпараметров, чем ваш собственный алгоритм машинного обучения, поэтому устал, вернувшись к опыту и сеткам Метод поиска вверх.
Из-за ограниченного места в следующих презентациях будет представлена только краткая инфографика, я считаю, что она очень полезна для всех читателей.
9 Структурированный процесс машинного обучения
Нам нужно настроить нашу систему машинного обучения с точки зрения процесса или структуры, сначала нам нужно установить цель модели, которую нужно достичь, например, какова ее ожидаемая производительность, каков метод измерения и т. д. Затем разделите наборы для обучения, разработки и тестирования и определите уровень оптимизации, который может быть достигнут. Затем модель создается и обучается, и ее можно использовать для вывода после проверки на наборах для разработки и тестирования.
10 Анализ ошибок
После обучения мы можем проанализировать источники ошибок для повышения производительности, в том числе найти неправильные метки, неверные функции потерь и т. д.
11 Набор для обучения, набор для разработки и набор для тестирования
На рисунке выше показаны три набора данных сегментации и то, на что нужно обратить внимание в их производительности, то есть, если они имеют разные показатели точности, как мы можем исправить эти «различия». Например, правильная скорость обучающего набора значительно выше, чем у проверочного набора и тестового набора, что указывает на переоснащение модели.
12 Другие методы обучения
Машинное обучение и глубокое обучение — это, конечно, не только методы обучения с учителем, но и трансферное обучение, многозадачное обучение и сквозное обучение.
Сверточная сеть
13 Основы сверточной нейронной сети
Объем данных, связанных с задачами компьютерного зрения, особенно велик: в изображении тысячи точек данных, не говоря уже об изображениях и видео с более высоким разрешением. В настоящее время, если используется полносвязная сеть, количество параметров слишком велико, поэтому вместо этого используется сверточная нейронная сеть (CNN), и количество параметров может быть значительно уменьшено. CNN работают как сканирование всего изображения с помощью фильтров, которые обнаруживают определенные функции, выполняют извлечение функций и комбинируют их слой за слоем во все более сложные функции. То, как работает эта «развертка», позволяет хорошо разделять параметры, чтобы можно было обнаруживать одну и ту же цель в разных положениях (трансляционная симметрия).
О признаке обнаружения, соответствующем ядру свертки, можно просто судить по его распределению параметров.Например, ядро свертки, вес которого уменьшается слева направо, может обнаруживать границу черных и белых вертикальных полос и отображать ее в виде карты признаков с яркими средняя и темная стороны. Конкретные относительные результаты света и тени зависят от относительной взаимосвязи между распределением пикселей изображения и ядром свертки. Веса ядра свертки можно жестко запрограммировать напрямую, но для адаптации одной и той же архитектуры к разным задачам лучше всего получить веса ядра свертки путем обучения.
Основные параметры операции свертки:
Заполнение: операция прямой свертки будет делать полученную карту объектов все меньше и меньше.Операция заполнения добавит край со значением 0 пикселей вокруг изображения, так что размер карты объектов, полученной после свертки, будет таким же, как исходное изображение ( длина и ширина, без швеллеров).количество) совпадают.
Двумя часто используемыми параметрами являются: «VALID», который не выполняет заполнение; «SAME», который делает длину и ширину выходной карты объектов такими же, как у исходного изображения.
шаг: размер шага между двумя операциями свертки.
На сверточном слое может быть несколько ядер свертки.Результатом каждой операции ядра свертки является канал.Длина и ширина карты признаков каждого канала одинаковы, что может быть сложено для формирования многоканальной карты признаков. в качестве следующего тома Вход в слой.
Архитектура глубоких сверточных нейронных сетей:
Архитектура глубокой сверточной нейронной сети в основном состоит из многоуровневого наложения сверточных слоев, объединенных слоев и, наконец, полностью связанного слоя для выполнения классификации. Основная функция слоя пула состоит в том, чтобы уменьшить размер карты объектов, тем самым уменьшив количество параметров, ускорив работу и сделав эффективность обнаружения цели более надежной.
14 классических сверточных нейронных сетей
- LeNet 5: Сеть классификации распознавания рукописного ввода, первая сверточная нейронная сеть, предложенная Яном ЛеКуном.
- AlexNet: сеть классификации изображений, впервые представившая функцию активации ReLU в CNN.
- VGG-16: Сеть классификации изображений с большей глубиной.
15 специальных сверточных нейронных сетей
- ResNet: вводятся остаточные соединения, чтобы облегчить проблему исчезновения градиента и взрыва градиента, и могут обучать очень глубокие сети.
- Сеть в сети: с помощью ядра свертки 1x1 операцию свертки можно превратить в форму, аналогичную полностью подключенной сети, а количество каналов в карте признаков можно уменьшить, тем самым уменьшив количество параметров.
- Начальная сеть: использует параллельные операции ядер свертки разного размера, а затем складывает их в несколько каналов, которые могут захватывать функции разного масштаба, но недостатком является то, что объем вычислений слишком велик, а количество каналов может быть уменьшено на 1x1 свертка.
16 Практические советы
- Используйте реализации с открытым исходным кодом: очень сложно реализовать с нуля, а использование чужих реализаций позволяет быстро исследовать более сложные и интересные задачи.
- Расширение данных: увеличьте количество и разнообразие обучающих данных за счет зеркального отображения, произвольной обрезки, поворота и изменения цвета исходного изображения.
- Передача обучения: когда обучающих данных для текущей задачи слишком мало, полностью обученная модель может быть настроена с небольшим объемом данных для получения достаточно хорошей производительности.
- Советы для хорошей производительности в тестах и соревнованиях: используйте ансамбль моделей, используйте средний результат нескольких выходных данных модели; на этапе тестирования разрежьте изображение на несколько копий для отдельного тестирования и усредните результаты тестирования.
17 Алгоритм обнаружения объектов
Обнаружение цели заключается в использовании ограничительной рамки для определения положения объекта на изображении.Быстрее R-CNN, R-FCN и SSD являются тремя наиболее оптимальными и наиболее широко используемыми моделями обнаружения целей.На приведенном выше рисунке также показан основной процесс ЙОЛО.
18 Распознавание лиц
Существует две основные категории приложений для распознавания лиц: проверка лиц (бинарная классификация) и распознавание лиц (классификация нескольких лиц).
Когда размер выборки недостаточен или постоянно добавляются новые выборки, необходимо использовать однократное обучение Решение состоит в том, чтобы обучить функцию подобия, то есть определить сходство двух изображений. Например, при обучении распознаванию лиц в сиамской сети выходные данные двух сетей используются для уменьшения разницы между двумя выходными данными одного и того же человека и увеличения разницы между двумя выходными данными разных людей.
19 Перенос стиля
Передача стиля — горячая тема, и она может визуально освежить. Например, у вас есть картина, а затем вы применяете к этой картине характеристики стиля другой картины, например модифицируете свое изображение в стиле известного художника или определенной известной картины, чтобы мы могли получить уникальный стиль работы.
рекуррентная сеть
20 Основ рекуррентных нейронных сетей
Как показано выше, проблемы последовательности, такие как распознавание именованных объектов, составляют большую часть в реальной жизни, в то время как традиционные алгоритмы машинного обучения, такие как скрытые цепи Маркова, могут делать только сильные предположения и решать проблемы частичной последовательности. Но в последнее время рекуррентная нейронная сеть сделала большой прорыв в этих задачах.Структура скрытого состояния РНС запоминается в виде цикла.Состояние скрытого слоя в каждый момент времени зависит от его прошлого состояния.Эта структура позволяет RNN для сохранения, запоминания и обработки сложных сигналов из прошлого в течение длительных периодов времени.
Рекуррентные нейронные сети (RNN) способны изучать функции и долгосрочные зависимости от данных последовательностей и временных рядов. RNN имеют стеки нелинейных блоков, где по крайней мере одно соединение между блоками образует направленный цикл. Обученная RNN может моделировать любую динамическую систему, однако на обученные RNN в первую очередь влияет проблема изучения долгосрочных зависимостей.
Ниже показаны приложения, проблемы и варианты RNN:
Рекуррентная нейронная сеть имеет очень мощную силу в задачах последовательности, таких как языковое моделирование, но в то же время она также имеет очень серьезную проблему исчезновения градиента. Следовательно, RNN на основе стробирования, такие как LSTM и GRU, имеют большой потенциал, они используют механизм стробирования для сохранения или забвения информации о предыдущих временных шагах и формируют память для обеспечения текущего вычислительного процесса.
21 Представление слов в НЛП
Вложения слов очень важны при обработке естественного языка, потому что представление слов является обязательным для любой выполняемой задачи. На приведенном выше рисунке показан метод встраивания слов, мы можем сопоставить словарный запас с 200- или 300-мерным вектором, тем самым значительно уменьшив пространство для представления слов. Кроме того, этот метод представления слов может также представлять семантику слов, потому что слова со схожими значениями имеют одинаковые расстояния в пространстве вложения.
В дополнение к Skip Grams, описанным выше, следующие также показывают распространенные способы изучения встраивания слов:
Вектор слова GloVe — это очень распространенный метод обучения вектору слов, и представление слова, которое он изучает, может в дальнейшем использоваться для таких задач, как классификация предложений.
22 последовательность за последовательностью
Наиболее часто используемым методом последовательного преобразования является структура кодер-декодер, и вводятся другие модули, такие как поиск луча.
Архитектура кодер-декодер плюс механизм внимания могут решить многие проблемы обработки естественного языка Ниже представлен механизм оценки и внимания BLEU. Они являются неотъемлемой частью архитектуры и оценки машинного перевода.
Выше приведена вся инфографика о спецкурсах Эндрю Нг по глубокому обучению, поскольку они содержат много информации, мы представляем лишь часть из них, а многие содержания лишь кратко упомянуты. Поэтому читателям лучше загрузить инфографику, а затем постепенно понять и оптимизировать в процессе обучения.