Этот кураторский список тем основан на основных понятиях нейронных сетей, которые часто задают во время интервью MLE/MLS.

[Это часть III из трех частей Освежение интервью ML]

Градиентный спуск

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

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

Правило обновления для градиентного спуска можно выразить следующим образом:
θ_new = θ_old — learning_rate * ∇J(θ_old)
где:
— θ_old представляет текущие значения параметров.
- θ_new представляет обновленные значения параметров.
- learning_rate — это гиперпараметр, определяющий размер шага или скорость обучения алгоритма.
- ∇J(θ_old) — градиент функции стоимости J относительно параметров θ_old.
- Градиент (∇) представляет собой вектор частных производных функции стоимости по каждому параметру. Он указывает направление и величину наискорейшего подъема функции стоимости.

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

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

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

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

Пакетный и стохастический градиентный спуск

Основное различие между пакетным градиентным спуском и стохастическим градиентным спуском заключается в том, как они обновляют параметры модели в процессе обучения.

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

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

Выбор между пакетным градиентным спуском и стохастическим градиентным спуском зависит от характеристик набора данных и требований оптимизации.

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

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

Планирование скорости обучения в градиентном спуске

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

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

Существует несколько распространенных стратегий графика скорости обучения:

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

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

3. Экспоненциальное затухание: скорость обучения экспоненциально снижается с течением времени. Это соответствует функции вида:
скорость_обучения = начальная_скорость_обучения * скорость_затухания^(эпоха/шаги_затухания).
Скорость затухания и шаги затухания контролируют скорость, с которой скорость обучения уменьшается. По мере обучения скорость обучения снижается экспоненциально, что позволяет выполнять более точную настройку.

4. Кусочный распад: скорость обучения снижается на определенных этапах обучения. Например, скорость обучения может быть уменьшена в несколько раз после определенного количества эпох или когда метрика проверки выходит на плато. Такой подход позволяет лучше контролировать корректировку скорости обучения в зависимости от конкретных характеристик тренировочного процесса.

5. Адаптивные методы. Методы адаптивной скорости обучения, такие как AdaGrad, RMSProp и Adam, динамически регулируют скорость обучения на основе накопленных градиентов или производных второго порядка функции потерь. Эти методы эффективно адаптируют скорость обучения для каждого параметра на основе их индивидуальных характеристик, что приводит к более эффективной оптимизации.

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

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

Обратное распространение

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

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

Вот пошаговый обзор алгоритма обратного распространения:

1. Прямой проход: входные данные передаются по сети слой за слоем для вычисления прогнозируемого результата. Значения активации каждого нейрона в сети рассчитываются с использованием определенной функции активации (например, сигмоидальной, ReLU).

2. Расчет потерь: прогнозируемый результат сравнивается с истинным выходом с использованием функции потерь, такой как среднеквадратическая ошибка (MSE) или перекрестная энтропия. Функция потерь количественно определяет расхождение между предсказанными и истинными значениями.

3. Обратный проход. Градиент ошибки вычисляется путем распространения потерь в обратном направлении по сети. Градиент представляет собой чувствительность функции потерь по отношению к каждому параметру в сети. Цепное правило исчисления используется для вычисления градиента на каждом слое.

4. Обновление параметров. Градиенты используются для обновления параметров модели (весов и смещений) в направлении, которое минимизирует потери. Это обновление обычно выполняется с использованием алгоритма оптимизации, такого как стохастический градиентный спуск (SGD) или его варианты. Скорость обучения определяет размер шага в направлении градиента.

5. Итеративный процесс: шаги с 1 по 4 повторяются для нескольких итераций или эпох, пока сеть не сойдется или не достигнет критерия остановки (например, заранее определенное количество итераций, небольшое изменение потерь).

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

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

Функция активации

Назначение функции активации в нейронных сетях — внести нелинейность в выходные данные сети. Функции активации применяются к выходам отдельных нейронов или ко всему слою нейронов в нейронной сети.

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

Функции активации приносят нейронным сетям несколько преимуществ:

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

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

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

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

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

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

Смещение в NN

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

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

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

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

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

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

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

Подключение обратной связи

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

Математически обратные связи могут быть представлены рекуррентными связями в сетевой архитектуре. Одной из часто используемых архитектур рекуррентных нейронных сетей (RNN) является сеть Элмана, которая состоит из скрытого слоя с обратными связями. Давайте рассмотрим простую сеть Элмана с одним скрытым слоем и одним выходным слоем:

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

  1. Вход в скрытый слой на временном шаге t:

2. Выход сети на временном шаге t:

Ключевым отличием приведенных выше уравнений от нейронной сети с прямой связью является наличие члена обратной связи: W_h * H_(t-1). Этот термин позволяет сети включать информацию из предыдущих временных шагов, что позволяет ей моделировать последовательные данные и фиксировать временные зависимости.

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

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

Регуляризация отсева в NN

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

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

Во время обучения отсев применяется стохастически на каждой итерации. Для каждого нейрона создается бинарная маска с заданным коэффициентом отсева (обычно от 0,2 до 0,5). Маска указывает, какие нейроны выпадают (устанавливаются в ноль), а какие остаются активными (в масштабе 1/(1 — частота выпадения)). Этот процесс случайного исключения выполняется независимо для каждого обучающего примера и каждого слоя.

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

К преимуществам регуляризации отсева относятся:

1. Регуляризация. Отсев действует как форма регуляризации, предотвращая переоснащение. Это препятствует тому, чтобы сеть слишком сильно полагалась на определенные функции или нейроны, заставляя ее изучать более обобщенные представления.

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

3. Надежность. Dropout повышает надежность модели за счет избыточности. Поскольку во время обучения отбрасываются различные подмножества нейронов, сеть становится более устойчивой к отсутствующим или зашумленным входным данным во время тестирования.

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

Регуляризация снижения веса

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

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

Член распада веса добавляется к функции потерь следующим образом:

Здесь Loss представляет исходную функцию потерь (например, среднеквадратичную ошибку или кросс-энтропийную потерю), W представляет веса нейронной сети, ||W||² представляет собой квадрат нормы L2 матрицы весов, а λ представляет собой Параметр регуляризации, контролирующий силу регуляризации.

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

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

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

РНН

Архитектура:

Рекуррентная нейронная сеть (RNN) предназначена для обработки последовательных данных путем включения рекуррентных соединений. Он имеет скрытое состояние, которое позволяет передавать информацию от одного шага к другому. Давайте пройдемся по архитектуре и математическим объяснениям:

1. Рекуррентное соединение:

- В RNN каждый шаг в последовательности принимает входные данные и производит выходные данные вместе со скрытым состоянием.

- Скрытое состояние на временном шаге t вычисляется на основе ввода на временном шаге t и предыдущего скрытого состояния.

- Скрытое состояние на временном шаге t может быть представлено как:

2. Расчет выходных данных:

- Выход на каждом временном шаге может быть рассчитан на основе скрытого состояния на этом временном шаге.

- Выход на временном шаге t может быть представлен как:

Обучение и обновления веса:

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

1. Прямое распространение:

- При прямом распространении входная последовательность передается через RNN, а выходные данные и скрытые состояния вычисляются на каждом временном шаге.

2. Расчет потерь:

- Функция потерь, такая как среднеквадратическая ошибка (MSE) или кросс-энтропийная потеря, используется для количественной оценки разницы между прогнозируемыми выходными данными и истинными метками.

3. Обратное распространение во времени (BPTT):

- Обратное распространение во времени (BPTT) — это вариант обратного распространения, используемый для обучения RNN.

- BPTT вычисляет градиенты потерь по отношению к параметрам сети, разворачивая вычисления во времени.

- Градиенты вычисляются на каждом временном шаге и накапливаются по всей последовательности.

4. Обновление веса:

- Веса обновляются с использованием алгоритма оптимизации, обычно SGD.

- Математически обновление веса можно представить в виде:

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

5. Итеративное обучение:

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

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

Повторяющиеся соединения в RNN позволяют модели фиксировать зависимости и закономерности в последовательных данных. Алгоритм обратного распространения во времени помогает распространять градиенты по развернутым временным шагам, позволяя модели изучить оптимальные веса. Точные детали архитектуры RNN и процесса обучения могут различаться в зависимости от конкретного варианта RNN (например, LSTM, GRU) и поставленной задачи.

Исчезающий градиент

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

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

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

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

Рассмотрим традиционную RNN с одним скрытым слоем на временном шаге t:

Скрытое состояние на временном шаге t может быть вычислено как:

В процессе обратного распространения градиенты рассчитываются относительно весов W_h, W_x. В частности, градиенты функции потерь по отношению к скрытому состоянию на временном шаге t, обозначенные как δL/δh(t), распространяются назад во времени.

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

При вычислении градиента скрытого состояния на временном шаге t относительно весов W_h, W_x нам нужно умножить градиенты на следующее:

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

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

Для решения проблемы исчезающего градиента были разработаны различные методы, такие как использование функций активации, которые облегчают проблему насыщения (например, ReLU), использование различных стратегий инициализации веса, использование отсечения градиента для ограничения величины градиентов и использование специализированных архитектур, таких как LSTM (долгосрочная кратковременная память) и GRU (Gated Recurrent Unit), которые включают в себя механизмы стробирования для управления потоком информации и градиентами. Эти методы помогают смягчить проблему исчезающего градиента и обеспечивают более эффективное обучение глубоких RNN.

ЛСТМ

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

1. Структура ячейки LSTM:

- LSTM состоит из ячеек памяти, которые хранят и обновляют информацию с течением времени.

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

2. Входные ворота:

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

- Входные ворота можно представить в виде:

3. Забудьте о воротах:

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

- Ворота забывания можно представить как:

4. Обновление состояния ячейки:

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

- Обновленное состояние ячейки может быть представлено как:

5. Выходные ворота:

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

- Выходной вентиль можно представить в виде:

6. Скрытое состояние:

- Скрытое состояние вычисляется на основе обновленного состояния ячейки и выходного вентиля.

- Скрытое состояние можно представить как:

ГРУ

GRU — это еще один вариант RNN, который упрощает архитектуру LSTM за счет объединения шлюзов «забыть» и «вход» в один шлюз обновления. Он имеет более компактную структуру, но при этом эффективно фиксирует долгосрочные зависимости. Вот обзор архитектуры GRU и задействованных математических уравнений:

1. Обновите ворота:

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

- Ворота обновления можно представить как:

2. Сбросить ворота:

- Ворота сброса определяют, какая часть предыдущего скрытого состояния должна игнорироваться при вычислении текущего скрытого состояния.

- Ворота сброса могут быть представлены как:

3. Скрытое состояние кандидата:

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

- Кандидат скрытого состояния может быть представлен как:

Си-Эн-Эн

Архитектура:

Типичная CNN состоит из нескольких слоев, включая сверточные слои, объединяющие слои и полносвязные слои. Ниже приведено описание каждого слоя:

1. Сверточный слой:

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

- Операция свертки для одного фильтра может быть представлена ​​как:

- Здесь,

  • (i, j) представляет положение на выходной карте объектов,
  • (x, y) представляет позицию во входных данных,
  • Filter(i-x, j-y) обозначает веса фильтра.
  • Член смещения добавляется, чтобы ввести сдвиг в активации.
  • Функция активации вводит нелинейность, позволяя модели фиксировать сложные закономерности.

2. Слой объединения:

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

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

- Максимальное объединение может быть представлено как:

для (x, y) в окне объединения с центром в (i, j)

3. Полностью подключенный слой:

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

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

- Выход полносвязного слоя может быть представлен как:

Обучение и обновления веса:

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

1. Прямое распространение:

- При прямом распространении входные данные передаются через слои, а выходные прогнозы вычисляются.

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

2. Расчет потерь:

- Функция потерь, такая как среднеквадратическая ошибка (MSE) или кросс-энтропийная потеря, используется для количественной оценки разницы между прогнозируемыми выходными данными и истинными метками.

3. Обратное распространение:

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

- Градиенты рассчитываются послойно, начиная с последнего слоя и двигаясь назад.

- Цепное правило исчисления используется для эффективного расчета градиентов.

4. Обновление веса:

- Веса обновляются с использованием алгоритма оптимизации, обычно SGD.

- Обновление веса может быть представлено как:

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

5. Итеративное обучение:

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

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

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

Пакетная нормализация против нормализации слоя

Основное различие между нормализацией партии и нормализацией слоя заключается в области нормализации.

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

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

Основные отличия:

1. Область нормализации. Пакетная нормализация нормализует активации по мини-пакету, а нормализация по слоям нормализует активации по измерению уровня или объекта.

2. Обучение и вывод: нормализация партии вычисляет среднее значение и стандартное отклонение мини-пакета во время обучения и использует эти значения для нормализации активаций. Во время вывода он использует оценочную статистику населения (среднее значение и стандартное отклонение), вычисленную во время обучения. Нормализация слоя, с другой стороны, вычисляет среднее значение и стандартное отклонение для каждого обучающего примера как во время обучения, так и во время вывода.

3. Зависимость: нормализация пакета вводит зависимость от размера пакета, поскольку она нормализует активации в мини-пакете. Нормализация слоев, не зависящая от размера пакета, может быть более подходящей для сценариев, в которых размер пакета невелик или варьируется.

4. Применение. Пакетная нормализация обычно используется в сверточных нейронных сетях (CNN) и глубоких нейронных сетях (DNN), где преобладает мини-пакетная обработка. Нормализация слоев часто применяется в рекуррентных нейронных сетях (RNN) или последовательных моделях, где длина последовательностей может варьироваться.

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

Часть I. Основы
Часть II. Традиционные алгоритмы машинного обучения