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

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

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

Давайте погрузимся!

Функции

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

Дифференцирование одномерных функций

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

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

Собрав эти частные производные в вектор, мы получим Градиент (видите, к чему я клоню?)

Аналогично тому, как мы определили функцию f в R:

Совокупность всех частных производных первого порядка вектор-функции f : Rn → Rm называется якобианом. Градиент якобиана J представляет собой матрицу размера m × n:

Мы также можем столкнуться с ситуациями, когда нам нужно взять градиенты матриц относительно векторов (или других матриц), что дает многомерный тензор.

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

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

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

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

Шаг 1. Проход вперед

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

Шаг 2. Вычисление потерь

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

Шаг 3. Обратный проход

  1. Для каждого скрытого слоя l вычислите градиент потерь L относительно взвешенной суммы входных данных z(l) перед функцией активации.

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

Шаг 4. Обновите веса и смещения

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

Шаг 5. Повторите

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

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

Оптимизация

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

Где альфа называется размером шага, а ∇f(xt​) представляет собой градиент f, оцененный при точка xt​.

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

Стохастический градиентный спуск (SGD)

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

Ограниченная оптимизация

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

Ограничено

Множители Лагранжа — это метод, используемый для решения такого рода задач. Метод включает введение дополнительных переменных (множителей Лагранжа) для включения ограничений в целевую функцию. . Это создает новую функцию, называемую лагранжианом, путем введения множителей Лагранжа для каждого ограничения неравенства и для каждого ограничения равенства. Функция Лагранжа:

Задача ограниченной оптимизации, которую мы сформулировали ранее, называется основной задачей. С которой мы связываем двойственную проблему.Двойная функция определяется как:

И двойная задача состоит в том, чтобы найти

При условии

Почему это полезно

Машины опорных векторов (SVM) используют концепцию множителей Лагранжа для определения оптимальной гиперплоскости, которая максимизирует разницу между отдельными классами точек данных. Этот запас представляет собой расстояние между гиперплоскостью и ближайшими точками данных каждого класса. В сценариях, где наши данные не демонстрируют идеальной линейной разделимости, концепция SVM с мягким запасом вводит понятие слабых переменных и связанный с ними штрафной член для учета неправильно классифицированных точек. Эти слабые переменные, обозначаемые как ξ, вступают в игру, когда точки либо попадают в пределы поля, либо классифицируются неправильно. Они количественно определяют степень, в которой точка данных находится на «неправильной» стороне соответствующей гиперплоскости поля.

Задача оптимизации SVM с мягким запасом формулируется как:

Здесь C — это гиперпараметр, контролирующий компромисс между максимизацией поля и минимизацией ошибки классификации, а ξi — это слабая переменная, связанная с i-м обучающим примером, измеряющая нарушение поля.

Лагранжева формулировка, соответствующая этой проблеме, имеет вид:

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