Базовая теория, лежащая в основе области машинного обучения

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

Что такое машинное обучение?

В 1959 году Артур Сэмюэл, ученый-компьютерщик, пионер исследования искусственного интеллекта, описал машинное обучение как «исследование, которое дает компьютерам возможность учиться без явного программирования».

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

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

Более техническое определение, данное Томом М. Митчеллом (1997): «Считается, что компьютерная программа учится на опыте E в отношении некоторого класса задач T и показателя производительности P, если ее производительность в задачах в T, измеряемых P, улучшается с опытом E. " Пример:

A handwriting recognition learning problem:
Task T: recognizing and classifying handwritten words within images
Performance measure P: percent of words correctly classified, accuracy
Training experience E: a data-set of handwritten words with given classifications

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

Категории машинного обучения

Машинное обучение обычно делится на три типа: обучение с учителем, обучение без учителя, обучение с подкреплением.

Контролируемое обучение:

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

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

In classification problems the machine must learn to predict discrete values. That is, the machine must predict the most probable category, class, or label for new examples. Applications of classification include predicting whether a stock's price will rise or fall, or deciding if a news article belongs to the politics or leisure section. 
In regression problems the machine must predict the value of a continuous response variable. Examples of regression problems include predicting the sales for a new product, or the salary for a job based on its description.

Обучение без учителя:

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

Обучение с подкреплением:

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

Методы машинного обучения с учителем

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

Наиболее часто используемые методы регрессии: Линейная регрессия и Логистическая регрессия. Мы обсудим теорию, лежащую в основе этих двух известных методов, а также объясним многие другие ключевые концепции, такие как алгоритм Gradient-descent, методы Over-fit/Under-fit, Error analysis, Regularization, Hyper-parameters, Cross-validation, используемые в машинном обучении.

Линейная регрессия

В задачах линейной регрессии цель состоит в том, чтобы предсказать реальную переменную y по заданному шаблону X. В случае линейной регрессии выход является линейной функцией входа. Пусть будет результатом, предсказываемым нашей моделью: = WX+b

Здесь X - вектор (особенности примера), W - веса (вектор параметров), которые определяют, как каждая функция влияет на прогноз, а b - термин смещения. Итак, наша задача T - предсказать y от X, теперь нам нужно измерить производительность P, чтобы узнать, насколько хорошо работает модель.

Теперь, чтобы рассчитать производительность модели, мы сначала вычисляем ошибку каждого примера i как:

мы берем абсолютное значение ошибки, чтобы учесть как положительные, так и отрицательные значения ошибки.

Наконец, мы вычисляем среднее значение для всех записанных абсолютных ошибок (Средняя сумма всех абсолютных ошибок).

Средняя абсолютная ошибка (MAE) = среднее значение всех абсолютных ошибок.

Более популярный способ измерения производительности модели - использование

Среднеквадратичная ошибка (MSE): среднее значение квадратов разностей между прогнозом и фактическим наблюдением.

Среднее значение уменьшено вдвое (1/2) для удобства вычисления градиентного спуска [обсуждается позже], поскольку член производной функции квадрата сокращает член 1/2. Для более подробного обсуждения MAE и MSE см. [1] и [2].

Основная цель обучения алгоритма ML - настроить веса W, чтобы уменьшить MAE или MSE.

Чтобы свести к минимуму ошибку, модель во время работы с примерами обучающего набора обновляет параметры модели W. Эти расчеты ошибок при построении графика по отношению к W также называются функцией стоимости J(w), поскольку она определяет стоимость / штраф модели. Поэтому минимизация ошибки также называется минимизацией функции стоимости J.

Алгоритм градиентного спуска:

Когда мы строим график функции стоимости J(w) vs w. Он представлен ниже:

Как видно из кривой, существует значение параметра W, которое имеет минимальную стоимость Jmin. Теперь нам нужно найти способ достичь этой минимальной стоимости.

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

повторять до минимальной стоимости: {

}

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

Градиент функции стоимости вычисляется как частная производная функции стоимости J по каждому параметру модели wj, j принимает значение количества характеристик [1 to n]. α, alpha - скорость обучения или то, насколько быстро мы хотим приблизиться к минимуму. Если α слишком велик, мы можем перерегулировать. Если α слишком мало, это означает небольшие шаги обучения, следовательно, общее время, необходимое модели для наблюдения за всеми примерами, будет больше.

Есть три способа выполнить градиентный спуск:

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

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

Стохастический градиентный спуск (SGD): обновляет параметры, используя только один обучающий экземпляр на каждой итерации. Учебный экземпляр обычно выбирается случайным образом. Стохастический градиентный спуск часто предпочтительнее для оптимизации функций затрат, когда существуют сотни тысяч обучающих примеров или больше, поскольку он сходится быстрее, чем пакетный градиентный спуск [3].

Логистическая регрессия

В некоторых задачах переменная ответа не распределяется нормально. Например, подбрасывание монеты может привести к двум результатам: орел или решка. Распределение Бернулли описывает распределение вероятностей случайной величины, которая может принимать положительный случай с вероятностью P или отрицательный случай с вероятностью 1-P. Если переменная ответа представляет вероятность, она должна быть ограничена диапазоном {0,1}.

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

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

Поскольку наша гипотеза должна удовлетворять 0 ≤ ≤ 1, это можно сделать, подключив логистическую функцию или «сигмовидную функцию».

Функция g(z) сопоставляет любое действительное число с интервалом (0, 1), что делает его полезным для преобразования функции с произвольным значением в функцию, лучше подходящую для классификации. Ниже приведен график значения сигмоидной функции для диапазона {-6,6}:

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

А логистическую функцию теперь можно записать как:

Обратите внимание, что g(x) интерпретируется как вероятность зависимой переменной.
g(x) = 0.7, дает нам вероятность 70%, что наш результат равен 1. Наша вероятность того, что наш прогноз равен 0, является просто дополнением нашей вероятности, что это 1 (например, если вероятность, что это 1, составляет 70%, тогда вероятность, что это 0, составляет 30%).

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

Функция стоимости

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

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

Что можно записать так:

Таким образом, функция затрат для логистической регрессии:

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

Недостаточная и чрезмерная посадка

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

Рассмотрим проблему прогнозирования y от x ∈ R. На крайнем левом рисунке ниже показан результат подгонки линии к набору данных. Поскольку данные не лежат на прямой линии, соответствие не очень хорошее (рисунок слева).

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

Недостаточная посадка:

Когда модель имеет меньше функций и, следовательно, не может хорошо извлекать уроки из данных. Эта модель имеет высокий уклон.

Перетяжка:

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

Есть три основных варианта решения проблемы переоборудования:

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

Регуляризация

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

Линейная регрессия с регуляризацией

Простейший такой штрафной член принимает форму суммы квадратов всех коэффициентов, что приводит к модифицированной функции ошибок линейной регрессии:

где лямбда - наш параметр регуляризации.

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

повторять до сходимости (с регуляризацией): {

}

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

Первый член в приведенном выше уравнении,

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

Логистическая регрессия с регуляризацией

Функция затрат логистической регрессии с регуляризацией:

повторять до сходимости (с регуляризацией): {

}

Регуляризация L1 и L2

Термин регуляризации, использованный в предыдущих уравнениях, называется L2 или регуляризацией Риджа.

Штраф L2 направлен на минимизацию квадрата величины весов.

Есть еще одна регуляризация, называемая L1 или Lasso:

Штраф L1 направлен на минимизацию абсолютного значения весов

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

Гиперпараметры

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

Перекрестная проверка

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

Общий набор данных делится на:

  1. набор обучающих данных
  2. набор данных проверки
  3. набор тестовых данных.

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

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

Ниже шаги перекрестной проверки взяты отсюда, добавив сюда для полноты.

Пошаговая инструкция по перекрестной проверке

Это шаги для выбора гиперпараметров с помощью перекрестной проверки в K-кратном порядке:

  1. Разделите данные тренировки на K = 4 равные части или «складки».
  2. Выберите набор гиперпараметров, который вы хотите оптимизировать.
  3. Обучите свою модель этим набором гиперпараметров на первых трех сгибах.
  4. Оцените это в 4-м сгибе или сгибе «удержания».
  5. Повторите шаги (3) и (4) K (4) раз с тем же набором гиперпараметров, каждый раз удерживая разные складки.
  6. Сложите показатели по всем 4-м кратным значениям. Это ваша метрика производительности для набора гиперпараметров.
  7. Повторите шаги с (2) по (6) для всех наборов гиперпараметров, которые вы хотите учесть.

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

Заключение

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

Спасибо за внимание.

использованная литература

[1] https://medium.com/human-in-a-machine-world/mae-and-rmse-which-metric-is-better-e60ac3bde13d

[2] https://towardsdatascience.com/ml-notes-why-the-least-square-error-bf27fdd9a721

[3] https://towardsdatascience.com/gradient-descent-algorithm-and-its-variants-10f652806a3

[4] https://elitedatascience.com/machine-learning-iteration#micro