Практический курс по ML: https://stepik.org/course/209247/
Здравствуйте,
дорогие друзья! Мы продолжаем курс по машинному
обучению. На предыдущем занятии мы ввели понятие обучающей выборки
и
признакового пространства в виде матрицы
.
Будем полагать, что набор этих признаков и подается на вход алгоритмов. Причем,
в частном случае, когда
имеем неизменные
исходные данные измерений
.
Получается, что
идеальный алгоритм должен уметь отображать входы
в
соответствующие выходы
.
На уровне математики это можно записать через функциональную зависимость между
входами и выходами:
Причем,
функциональная в широком смысле слова – это может быть любой алгоритм, связывающий
вход с выходом. Но мы эту взаимосвязь не знаем. Целью обучения, как раз и
является найти такую модель, решающую функцию (decision function), которая бы
приближала ответы
к требуемым
на
всем множестве возможных входных данных X (не только для
обучающей выборки, но для всех возможных наблюдений той же природы). Это и есть
общая постановка задачи машинного обучения.
Конечно, в таком
виде совершенно непонятно, как ее решать, как искать правило преобразования
? Необходима
конкретизация. По сути, весь курс машинного обучения – это и есть различные
вариации решения поставленной задачи.
Как можно ее
решить? Наверное, одним из самых простых подходов (и наиболее часто
используемых), представить функционал
в
виде некоторой выбранной нами параметрической функции:
с настраиваемым
набором параметров
.
То есть, мы сводим задачу обучения к поиску неизвестных параметров
и
делаем это (в самом простом, но распространенном случае) по обучающей выборке. Причем
вид самой функции
может
быть сколь угодно сложным (в математическом смысле) и в общем случае состоять
из композиции других, более простых функций. То есть, вид функции
должен
отражать характер (природу, модель) изменения данных между входом и выходом, а
параметры
подгоняют
ее под конкретный набор данных.
Чтобы все это
было понятнее, давайте рассмотрим классический пример такой задачи – линейную
регрессию, когда входы и выходы имеют ярко выраженную функциональную
зависимость вида:
(здесь
-
гауссовский (нормальный) шум с нулевым средним и некоторой небольшой дисперсией).
Так как мы не можем прогнозировать случайные отклонения, то самое разумное
описать модель данных в виде линейной функции с двумя неизвестными параметрами
:
В результате, мы
имеем вектор параметров
,
которые определяют конкретный наклон и сдвиг линейной функции. То есть,
исходная функция
описывает
весь класс прямых, а при конкретных
получаем
определенную прямую для данных обучающей выборки.
Вот принцип
параметрической оптимизации, который расширяется на произвольные функциональные
зависимости выходов от входов.
Этап обучения
Хорошо, решающая
функция
в
виде параметрической функции, определена. Как теперь нам найти значения
параметров
на
множестве входов и выходов
обучающей
выборки? Очевидно, они должны быть подобраны так, чтобы уменьшить ошибки между
заданными выходами
и
теми, которые получаются в нашей модели
:
Но сама по себе
ошибка в качестве оптимизируемой величины не очень удобна, т.к. в точке
минимума (нуля) она не образует точки экстремума. Математически было бы лучше использовать
функцию, которая бы возрастала с увеличением ошибки и убывала бы с ее
уменьшением. Например, можно выбрать, следующие:
-
- абсолютная ошибка;
-
- квадратичная
ошибка.
Подобные функции
получили название функций потерь
(loss function), которые,
фактически, вычисляет меру потерь (несоответствия) между нашей моделью и
обучающей выборкой. Конечно, таких функций огромное количество и с некоторыми
из них мы будем знакомиться по мере прохождения этого курса.
Однако, сама по
себе функция потерь – это случайная величина, которая зависит от алгоритма
и
текущего входного вектора
.
Поэтому оптимизировать одно какое-то конкретное значение функции потерь –
неправильно. Нужно сделать так, чтобы на всем обучающем множестве, в среднем, ошибка
была бы минимальна. В результате мы приходим к понятию среднего
эмпирического риска:
(Здесь
- обучающее
множество). Фактически, это и есть показатель качества, который нужно
минимизировать, подбирая значения вектора параметров
.
Например, если
вернуться к нашей задаче линейной регрессии и в качестве функции потерь выбрать
квадрат ошибки, то получим функционал качества в виде:
В данном случае
параметры
легко
вычисляются из решения следующей системы линейных уравнений:
Это известная задача
под названием метод наименьших квадратов (МНК) и я ее подробно
рассматривал в одном из видео:
https://youtu.be/8sVfWyQrMiM
Если вы с ним не
знакомы, то советую посмотреть этот материал.
Итак, резюмируя
материал этого занятия, можно отметить следующие четыре пункта:
- Общая задача
машинного обучения ставится как поиск модели
,
которая наилучшим образом описывает природу зависимости входных данных
и
целевых выходных значений
.
- Задачу поиска
наилучшей модели часто сводят к задаче параметрической оптимизации функции вида
.
- Для
нахождения подходящих параметров
вводится
функция потерь
и
определяется средний эмпирический риск
.
Минимизируя этот показатель качества, получаем набор параметров
по
обучающей выборке.
- На основе
найденной зависимости
в
дальнейшем вычисляются выходные значения
при
предъявлении нового входного вектора
той
же природы, что и при обучении.
Эти четыре этапа
представляют собой общий принцип, лежащий в основе всех алгоритмов машинного
обучения.
Практический курс по ML: https://stepik.org/course/209247/