Введение
В этой статье я задался целью осветить некоторые фундаментальные результаты теории машинного обучения таким образом, чтобы концепции были понятны читателям, немного знакомыми с задачами классификации и регрессии. Идея написать такую статью все четче проявлялась в моем сознании с каждой прочитанной книгой, в которой идеи обучения машин распознаванию рассказывались как бы с середины и совершенно не понятно, на что авторы того или иного метода опирались при его разработке. С другой стороны существует ряд книг, посвященных основным концепциям в машинном обучении, но изложение материала в них может показаться слишком сложным для первого прочтения.
Мотивация
Рассмотрим такую задачу. У нас есть яблоки двух классов — вкусные и не вкусные, 1 и 0. Яблоки обладают признаками — цветом и размером. Цвет изменятся непрерывно от 0 до 1, т.е. 0 -полностью зеленое яблоко, 1 — полностью красное. Размер может меняться аналогично, 0 — яблоко маленькое, 1 — большое. Мы хотели бы разработать алгоритм, который бы получал на вход цвет и размер, а на выходе отдавал класс яблока — вкусное оно или нет. Весьма желательно, чтобы число ошибок при этом было чем меньше тем лучше. При этом мы обладаем конечным списком, в котором указаны исторические данные о цвете, размере и классе яблок. Как бы мы могли решать такую задачу?
Логический подход
Решая нашу задачу, первый метод, который возможно придет на ум, может быть такой: давайте вручную составим правила типа if-else и в зависимости от значений цвета и размера будем присваивать яблоку определенный класс. Т.е. у нас есть предпосылки — это цвет и размер, и есть следствие — вкус яблока. Вполне разумно, когда признаков немного и можно на глаз оценить пороги для сравнения. Но может случится так, что придумать четкие условия не получится, и из данных не очевидно какие пороги брать, да и число признаков может увеличиваться в перспективе. А что делать, если в нашем списке с историческими данными, мы обнаружили два яблока с одинаковыми цветом и размером, но одно помечено как вкусное, а другое нет? Таким образом наш первый метод не настолько гибкий и масштабируемый, как нам бы хотелось.
Обозначения
Введем следующую нотацию. Будем обозначать
Вероятностный подход
Развивая идею логического метода с предпосылками и следствиями, зададим себе вопрос — а какова вероятность того, что
В этом выражении можно интерпретировать
Рассмотрим правую часть этого выражения более подробно. Множитель
Это правило назовем Байесовским классификатором. Поскольку мы имеем дело с вероятностями, то даже большое значение вероятности
Нас интересует вероятность ошибки классификатора не только на данном конкретном примере, но и вообще для всех возможных яблок:
Это выражение является математическим ожидаем ошибки
Потери от ошибок классификатора
Предположим, что у нас уже есть какое-либо решающее правило
Условный и байесовский риск
Теперь, когда у нас есть функция потерь и мы знаем, сколько мы теряем от неправильной классификации объекта
В нашем случае бинарной классификации когда
Когда a(x) =0
Чтобы посчитать средние потери на всех возможных объектах, вводится понятие байесовского риска, который является математическим ожиданием условного риска:
Выше мы описывали решающее правило, которое относит объект к тому классу, который имеет наибольшее значение вероятности
Некоторые типовые функции потерь
Одной из наиболее частовстречающихся функций потерь является симметричная функция, когда потери от первого и второго типов ошибок равнозначны. Например, функция потерь 1-0 (zero-one loss) определяется так:
Тогда условный риск для a(x) = 1 будет просто значением вероятности получить класс 0 на объектке
Аналогично для a(x) = 0:
Функция потерь 1-0 принимает значение 1, если классификатор делает ошибку на объекте и 0 если не делает. Теперь сделаем так, чтобы значение на ошибке равнялось не 1, а другой функции Q, зависящей от решающего правила и реальной метки класса:
Тогда условный риск можно записать так:
Замечания по нотации
Предыдущий текст был написан согласно нотации, принятой в книге Дуды и Харта. В оригинальной книге В.Н. Вапника рассматривался такой процесс: природа выбирает объект согласно распределению $p(x)$, а затем ставит ему метку класса согласно условному распределению $p(y|x)$. Тогда риск(матожидание потерь) определяется как
Где
Эмпирический риск
На данном этапе мы уже выяснили, что логический метод нам не подходит, потому что он недостаточно гибкий, а байесовский классификатор мы не можем использовать, когда признаков много, а данных для обучения ограниченное число и мы не сможем восстановить вероятность
Пример: пусть
Все функции этого множества будут отличаться друг от друга только коэффициентами
После того как мы зафиксировали класс функций $Н$, возникает вопрос — как выбрать из него функцию с нужными коэффициентами? Ответ — давайте выберем ту функцию, которая доставляет минимум нашему байесовскому риску $R()$. Опять проблема — чтобы посчитать значения байесовского риска, нужно знать распределение $p(x,y)$, а оно нам не дано, и восстановиь его не всегда возможно. Другая идея — минимизировать риск не на всех возможных объектах, а только на выборке. Т.е. минимизировать функцию:
Эта функция и называется эмпирическим риском. Следующий вопрос — почему мы решили, что минимизируя эмпирический риск, мы при этом так же минимизируем байесовский риск? Напомню, что наша задача практическая — допустить как можно меньше ошибок классификации. Чем меньше ошибок, тем меньше байесовский риск. Обоснование о сходимости эмпирического риска к байесовскому с ростом объема данных было получено в 70-е годы двумя учеными — В. Н. Вапником и А. Я. Червоненкисом.
Гарантии сходимости. Простейший случай
Итак, мы пришли к тому, что байесовский классификатор дает наименьшую возможною ошибку, но обучить его в большинстве случаев мы не можем и ошибку(риск) посчитать мы тоже не в силах. Однако, мы можем посчитать приближение к байесовскокому риску, которое называется эмпирический риск, а зная эмпирический риск подобрать такую аппроксимирующую функцию, которая бы минимизировала эмпирический риск. Давайте рассмотрим простейшую ситуацию, когда минимизация эмпирического риска дает классификатор, так же минимизирующий байесовский риск. Для простейшего случая нам придется сделать предположение, которое редко выполняется на практике, но которое в дальнейшем можно будет ослабить. Зафиксируем конечный класс функций
Теорема
Выбирая функцию из класса
Что значит «небольшое значение» и «достаточный размер» см. в литературе ниже.
Идея доказательства
По условию теоремы мы получаем выборку
Практические результаты
Имея доказательства того, что функция, найденная при минимизации эмпирического риска не будет иметь большую ошибку на ранее не наблюдаемых данных при достаточном размере обучающей выборки мы можем использовать этот принцип на практике, например, следующим образом — берем выражение:
И подставляем разные функции потерь, в зависимости от решаемой задачи. Для линейной регрессии:
Для логистической регресии:
Несмотря на то, что за методом опорных векторов лежит в основном геометрическая мотивация, его так же можно представить как проблему минимизации эмпирического риска.
Заключение
Многие методы обучения с учителем можно рассматривать в том числе как частные случаи теории, разработанной В. Н. Вапником и А. Я. Червоненкисом. Эта теория дает гарантии относительно ошибки на тестовой выборке при условии достаточного размера обучающей выборки и некоторых требований к пространству гипотез, в котором мы ищем наш алгоритм.
Используемая литература
- The Nature of Statistical Learning Theory, Vladimir N. Vapnik
- Pattern Classification, 2nd Edition, Richard O. Duda, Peter E. Hart, David G. Stork
- Understanding Machine Learning: From Theory to Algorithms, Shai Shalev-Shwartz, Shai Ben-David
P.S. Просьба писать в личку обо всех неточностях и опечатках
P.P.S. Большое спасибо авторам этой статьи за TeX-редактор