Вы когда-нибудь пытались вспомнить, что означают Adam, ReLU или YOLO? Не смотрите дальше и ознакомьтесь с каждым термином, который вам нужен для овладения глубоким обучением.

Выживать в мире Coursera Deep Learning означает понимать и перемещаться по джунглям технических терминов. Вы не…% уверены, что означают AdaGrad, Dropout или Xavier Initialization? Используйте это руководство как справочник, чтобы освежить свою память, когда вы наткнетесь на термин, который вы благополучно припарковали в пыльном уголке на задворках своего сознания.

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

Давайте откроем энциклопедию глубокого обучения. 📚

Функция активации - используется для создания нелинейного преобразования ввода. Входные данные умножаются на веса и добавляются к члену смещения. Популярные функции активации включают ReLU, tanh или sigmoid.

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

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

Среднее объединение - усредняет результаты сверточной операции. Часто используется для уменьшения размера ввода. Средний пул в основном использовался в старых архитектурах сверточных нейронных сетей, в то время как последние архитектуры предпочитают максимальное объединение.

AlexNet - популярная архитектура CNN с восемью слоями. Это более обширная сетевая архитектура, чем LeNet, и ее обучение занимает больше времени. AlexNet выиграл конкурс ImageNet 2012 по классификации изображений. Прочтите статью здесь.

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

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

Пакетная нормализация - нормализует значения в слое нейронной сети до значений от 0 до 1. Это помогает быстрее обучать нейронную сеть.

Смещение - возникает, когда модель не достигает высокой точности на обучающем наборе. Это еще называют недооборудованием. Когда модель имеет большое смещение, она, как правило, не дает высокой точности на испытательном наборе.

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

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

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

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

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

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

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

Эпоха - включает один прямой и обратный проход через обучающий набор для каждого примера. Отдельная эпоха затрагивает каждый обучающий пример в итерации.

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

Полностью связанный слой - полносвязный слой преобразует входные данные со своими весами и передает результат следующему слою. Этот уровень имеет доступ ко всем входам или активациям предыдущего уровня.

Стробируемый рекуррентный блок - стробируемый рекуррентный блок (GRU) выполняет несколько преобразований на заданном входе. Он в основном используется в задачах обработки естественного языка. ГРУ предотвращают проблему исчезающих градиентов в RNN, как и LSTM. В отличие от LSTM, GRU не используют блок памяти и, таким образом, более эффективны с точки зрения вычислений при достижении аналогичной производительности. Прочтите статью здесь.

Производительность на человеческом уровне - наилучшая возможная работа группы экспертов-людей. Алгоритмы могут превосходить человеческий уровень производительности. Ценный показатель для сравнения и улучшения нейронной сети.

Гиперпараметры - Определите производительность вашей нейронной сети. Примеры гиперпараметров: скорость обучения, итерации градиентного спуска, количество скрытых слоев или функция активации. Не путать с параметрами или весами, которые DNN узнает сама.

ImageNet - Коллекция тысяч изображений и их аннотированные классы. Очень полезный ресурс для задач классификации изображений.

Итерация - общее количество прямых и обратных проходов нейронной сети. Каждая партия считается за один проход. Если ваш обучающий набор имеет 5 пакетов и обучает 2 эпохи, то он выполнит 10 итераций.

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

Слой - набор функций активации, преобразующих ввод. Нейронные сети используют несколько скрытых слоев для создания вывода. Обычно вы различаете входной, скрытый и выходной слои.

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

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

Долговременная кратковременная память - особая форма RNN, которая способна узнавать контекст ввода. В то время как обычные RNN страдают от исчезающих градиентов, когда соответствующие входы расположены далеко друг от друга, LSTM могут изучать эти долгосрочные зависимости. Прочтите статью здесь.

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

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

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

Non-Max Suppression - алгоритм, используемый в составе YOLO. Это помогает определить правильную ограничивающую рамку объекта, устраняя перекрывающиеся ограничивающие рамки с меньшей степенью уверенности в идентификации объекта. Прочтите статью здесь.

Рекуррентные нейронные сети - RNN позволяют нейронной сети понимать контекст речи, текста или музыки. RNN позволяет информации проходить через сеть, таким образом сохраняя важные особенности входных данных между более ранними и последующими уровнями.

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

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

Среднеквадратичное распространение - RMSProp является расширением метода оптимизации стохастического градиентного спуска. Алгоритм имеет скорость обучения для каждого параметра, но не скорость обучения для всего обучающего набора. RMSProp регулирует скорость обучения в зависимости от того, насколько быстро параметры менялись на предыдущих итерациях. Прочтите статью здесь.

Параметры - веса DNN, которые преобразуют ввод перед применением функции активации. Каждый слой имеет свой набор параметров. Параметры настраиваются с помощью обратного распространения, чтобы минимизировать функцию потерь.

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

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

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

Передача обучения - метод использования параметров из одной нейронной сети для решения другой задачи без переобучения всей сети. Используйте веса из ранее обученной сети и удалите выходной слой. Замените последний слой своим собственным softmax или логистическим слоем и снова обучите сеть. Работает, потому что нижние слои часто обнаруживают похожие вещи, например края, которые полезны для других задач классификации изображений.

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

Набор проверки - набор проверки используется для поиска оптимальных гиперпараметров глубокой нейронной сети. Как правило, DNN обучается с использованием различных комбинаций гиперпараметров, тестируемых на проверочном наборе. Затем применяется наиболее эффективный набор гиперпараметров, чтобы сделать окончательный прогноз на тестовом наборе. Обратите внимание на балансировку набора проверки. Если доступно много данных, используйте 99% для обучения, 0,5% для проверки и 0,5% для набора тестов.

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

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

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

VGG-16 - популярная сетевая архитектура для CNN. Он упрощает архитектуру AlexNet и имеет в общей сложности 16 уровней. Существует множество предварительно обученных моделей VGG, которые можно применить к новым сценариям использования с помощью трансферного обучения. Прочтите статью здесь.

Инициализация Ксавье - инициализация Ксавье назначает начальные веса в первом скрытом слое, так что входные сигналы проникают глубоко в нейронную сеть. Он масштабирует веса в зависимости от количества нейронов и выходов. Таким образом, он предотвращает то, что в дальнейшем сигнал в сети станет либо слишком маленьким, либо слишком большим.

YOLO - You Only Look Once - это алгоритм идентификации объектов на изображении. Свертки используются для определения вероятности присутствия объекта в части изображения. Затем используются блоки подавления без максимума и якоря для правильного определения местоположения объектов. Прочтите статью здесь.

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

Если вы считаете, что этот пост был полезен, не забудьте показать свои - 👏 👏 👏 и подписаться на меня в Medium и LinkedIn, чтобы узнать больше о глубоком обучении, онлайн-курсах, автономных автомобилях и жизни. Также проверьте эти сообщения о специализации Deep Learning. Прокомментируйте, чтобы поделиться своим мнением. Ваше здоровье! 🙇