Машинное обучение (курс лекций, К.В.Воронцов)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Программа ММРО, весна 2009, кафедра ММП ВМиК МГУ)
Строка 13: Строка 13:
* примеры прикладных задач.
* примеры прикладных задач.
-
Данный курс существенно расширяет и углубляет набор тем, рекомендованный международным стандартом '''ACM/IEEE Computing Curricula 2001''' по дисциплине «Машинное обучение и нейронные сети» (machine learning and neural networks) в разделе «Интеллектуальные системы» (intelligent systems).
+
Данный курс расширяет и углубляет набор тем, рекомендованный международным стандартом '''ACM/IEEE Computing Curricula 2001''' по дисциплине «Машинное обучение и нейронные сети» (machine learning and neural networks) в разделе «Интеллектуальные системы» (intelligent systems).
Курс читается
Курс читается
Строка 20: Строка 20:
студентам [[Школа анализа данных Яндекса|Школы анализа данных Яндекса]] с 2009 года.
студентам [[Школа анализа данных Яндекса|Школы анализа данных Яндекса]] с 2009 года.
-
На материал данного курса существенно опираются последующие кафедральные курсы.
+
На материал данного курса опираются последующие кафедральные курсы.
На кафедре ММП ВМиК МГУ параллельно с данным курсом и в дополнение к нему читается спецкурс [[Теория надёжности обучения по прецедентам (курс лекций, К.В.Воронцов)|Теория надёжности обучения по прецедентам]], посвящённый проблемам [[Переобучение|переобучения]] и оценивания [[Обобщающая способность|обобщающей способности]].
На кафедре ММП ВМиК МГУ параллельно с данным курсом и в дополнение к нему читается спецкурс [[Теория надёжности обучения по прецедентам (курс лекций, К.В.Воронцов)|Теория надёжности обучения по прецедентам]], посвящённый проблемам [[Переобучение|переобучения]] и оценивания [[Обобщающая способность|обобщающей способности]].
От студентов требуются знания курсов линейной алгебры, математического анализа, теории вероятностей. Знание [[Математическая статистика|математической статистики]], [[Методы оптимизации|методов оптимизации]] и какого-либо языка программирования желательно, но не обязательно.
От студентов требуются знания курсов линейной алгебры, математического анализа, теории вероятностей. Знание [[Математическая статистика|математической статистики]], [[Методы оптимизации|методов оптимизации]] и какого-либо языка программирования желательно, но не обязательно.
 +
 +
Ниже представлена расширенная программа — в полном объёме она занимает больше, чем могут вместить в себя два семестра.
 +
Каждый параграф приблизительно соответствует одной лекции.
 +
''Курсивом'' выделен дополнительный материал, который может разбираться на семинарах.
== Первый семестр ==
== Первый семестр ==
Строка 55: Строка 59:
* Типы задач: [[классификация]], [[регрессия]], [[прогнозирование]], [[кластеризация]]. Примеры прикладных задач.
* Типы задач: [[классификация]], [[регрессия]], [[прогнозирование]], [[кластеризация]]. Примеры прикладных задач.
* Основные понятия: [[модель алгоритмов]], [[метод обучения]], [[функция потерь]] и функционал качества, [[принцип минимизации эмпирического риска]], [[обобщающая способность]], [[скользящий контроль]].
* Основные понятия: [[модель алгоритмов]], [[метод обучения]], [[функция потерь]] и функционал качества, [[принцип минимизации эмпирического риска]], [[обобщающая способность]], [[скользящий контроль]].
-
* Вероятностная постановка задачи, [[принцип максимума правдоподобия]] и его связь с принципом минимизации эмпирического риска.
+
* Методика экспериментального исследования и сравнения алгоритмов на модельных и реальных данных. [[Полигон алгоритмов классификации]].
 +
* ''Вероятностная постановка задачи обучения по прецедентам, [[принцип максимума правдоподобия]] и его связь с принципом минимизации эмпирического риска. Разновидности функций потерь и их вероятностная интерпретация.''
=== Байесовские алгоритмы классификации ===
=== Байесовские алгоритмы классификации ===
* Оптимальный [[байесовский классификатор]].
* Оптимальный [[байесовский классификатор]].
* Функционал среднего риска. Ошибки I и II рода.
* Функционал среднего риска. Ошибки I и II рода.
-
* Теорема об оптимальности байесовского решающего правила.
+
* Теорема об оптимальности байесовского классификатора.
-
* [[Оценивание плотности распределения]]: три основных подхода.
+
* ''[[Оценивание плотности распределения]]: три основных подхода.''
* [[Наивный байесовский классификатор]].
* [[Наивный байесовский классификатор]].
* Непараметрическое оценивание плотности распределения по Парзену-Розенблатту. Выбор функции ядра. Выбор ширины окна, переменная ширина окна. Робастное оценивание плотности. [[Метод парзеновского окна]].
* Непараметрическое оценивание плотности распределения по Парзену-Розенблатту. Выбор функции ядра. Выбор ширины окна, переменная ширина окна. Робастное оценивание плотности. [[Метод парзеновского окна]].
 +
* ''Непараметрический наивный байесовский классификатор.''
=== Параметрическое оценивание плотности ===
=== Параметрическое оценивание плотности ===
* [[Нормальный дискриминантный анализ]]. [[Многомерное нормальное распределение]], геометрическая интерпретация. Выборочные оценки параметров многомерного нормального распределения.
* [[Нормальный дискриминантный анализ]]. [[Многомерное нормальное распределение]], геометрическая интерпретация. Выборочные оценки параметров многомерного нормального распределения.
 +
* ''Матричное дифференцирование. Вывод оценок параметров многомерного нормального распределения.''
* [[Квадратичный дискриминант]]. Вид разделяющей поверхности. [[Подстановочный алгоритм]], его недостатки и способы их устранения.
* [[Квадратичный дискриминант]]. Вид разделяющей поверхности. [[Подстановочный алгоритм]], его недостатки и способы их устранения.
* [[Линейный дискриминант Фишера]].
* [[Линейный дискриминант Фишера]].
* Проблемы [[мультиколлинеарность|мультиколлинеарности]] и [[переобучение|переобучения]]. [[Регуляризация]] ковариационной матрицы.
* Проблемы [[мультиколлинеарность|мультиколлинеарности]] и [[переобучение|переобучения]]. [[Регуляризация]] ковариационной матрицы.
-
* Робастное оценивание. Цензурирование выборки (отсев объектов-выбросов).
+
* ''Робастное оценивание. Цензурирование выборки (отсев объектов-выбросов).''
-
<!--
+
* ''Параметрический наивный байесовский классификатор.''
-
* [[Метод редукции размерности]] Шурыгина.
+
* ''[[Метод редукции размерности]] Шурыгина.''
-
* '''Факультатив или семинар''': матричное дифференцирование.
+
-
-->
+
=== Разделение смеси распределений ===
=== Разделение смеси распределений ===
Строка 88: Строка 93:
* [[Метод потенциальных функций]], градиентный алгоритм.
* [[Метод потенциальных функций]], градиентный алгоритм.
* Отбор эталонных объектов. Псевдокод: [[алгоритм СТОЛП]].
* Отбор эталонных объектов. Псевдокод: [[алгоритм СТОЛП]].
-
<!--
+
* ''[[Функция конкурентного сходства]], [[алгоритм FRiS-СТОЛП]].''
-
* Настройка весов объектов.
+
* ''[[Функционал полного скользящего контроля]], формула быстрого вычисления для метода 1NN. [[Профиль компактности]]. Функция вклада объекта. Отбор эталонных объектов на основе минимизации функционала полного скользящего контроля. Эффективные структуры данных для быстрого поиска ближайших объектов в прямых и обратных окрестностях — [[метрические деревья]].''
-
* [[Проклятие размерности]]. Настройка весов признаков.
+
* ''[[Проклятие размерности]]. Задача настройки весов признаков.''
-
* Вывод на основе прецедентов ([[CBR]]).
+
* ''Концепция вывода на основе прецедентов ([[CBR]]).''
-
-->
+
=== Линейные алгоритмы классификации ===
=== Линейные алгоритмы классификации ===
Строка 99: Строка 103:
* Квадратичная функция потерь, [[метод наименьших квадратов]], связь с линейным дискриминантом Фишера.
* Квадратичная функция потерь, [[метод наименьших квадратов]], связь с линейным дискриминантом Фишера.
* [[Метод стохастического градиента]] и частные случаи: [[адаптивный линейный элемент]] ADALINE, [[перcептрон Розенблатта]], [[правило Хэбба]].
* [[Метод стохастического градиента]] и частные случаи: [[адаптивный линейный элемент]] ADALINE, [[перcептрон Розенблатта]], [[правило Хэбба]].
-
* [[Теорема Новикова]] о сходимости.
+
* [[Теорема Новикова]] о сходимости. ''Доказательство теоремы Новикова''
* Недостатки метода стохастического градиента и способы их устранения. Проблема [[паралич сети|«паралича» сети]]. Ускорение сходимости, «выбивание» из локальных минимумов. Проблема переобучения, [[редукция весов]] (weight decay).
* Недостатки метода стохастического градиента и способы их устранения. Проблема [[паралич сети|«паралича» сети]]. Ускорение сходимости, «выбивание» из локальных минимумов. Проблема переобучения, [[редукция весов]] (weight decay).
Строка 114: Строка 118:
* Способы конструктивного построения ядер. Примеры ядер.
* Способы конструктивного построения ядер. Примеры ядер.
* Сопоставление SVM с гауссовским ядром и RBF-сети.
* Сопоставление SVM с гауссовским ядром и RBF-сети.
-
* Обучение SVM методом активных ограничений. Псевдокод: [[алгоритм INCAS]].
+
* ''Обучение SVM методом активных ограничений. [[Алгоритм SMO]]. [[Алгоритм INCAS]].''
-
<!--
+
* ''ню-SVM.''
-
=== Методы оптимизации SVM ===
+
* ''SVM-регрессия.''
-
* Обучение SVM методом последовательной минимизации. Псевдокод: [[алгоритм SMO]].
+
-
* SVM-регрессия.
+
-
-->
+
=== Обобщённый линейный классификатор ===
=== Обобщённый линейный классификатор ===
* Задача максимизации совместного правдоподобия данных и модели.
* Задача максимизации совместного правдоподобия данных и модели.
* Возможные типы априорных предположений о вероятностном распределении в пространстве параметров и их связь с регуляризацией.
* Возможные типы априорных предположений о вероятностном распределении в пространстве параметров и их связь с регуляризацией.
-
* Некоторые разновидности регуляризаторов, применяемые на практике.
+
* Некоторые разновидности регуляризаторов, применяемые на практике. Квадратичный регуляризатор. Связь линейного регуляризатора с отбором признаков.
* Настройка порога решающего правила по критерию числа ошибок I и II рода. [[Кривая ошибок]] (ROC curve).
* Настройка порога решающего правила по критерию числа ошибок I и II рода. [[Кривая ошибок]] (ROC curve).
-
<!--
+
* ''Пример прикладной задачи: кредитный скоринг; скоринговые карты; оценивание вероятности дефолта; риск кредитного портфеля банка.''
-
* Пример прикладной задачи: кредитный скоринг и скоринговые карты.
+
-
-->
+
=== Непараметрическая регрессия ===
=== Непараметрическая регрессия ===
Строка 134: Строка 133:
* Выбор функции ядра. Выбор ширины окна сглаживания. Сглаживание с переменной шириной окна.
* Выбор функции ядра. Выбор ширины окна сглаживания. Сглаживание с переменной шириной окна.
* Проблема выбросов и робастная непараметрическая регрессия. Псевдокод: [[алгоритм LOWESS]].
* Проблема выбросов и робастная непараметрическая регрессия. Псевдокод: [[алгоритм LOWESS]].
-
<!--
+
* ''Доверительный интервал значения регрессии в точке.''
-
* Доверительный интервал значения регрессии в точке.
+
* ''Проблемы «проклятия размерности» и выбора метрики.''
-
* Проблема «проклятия размерности» и выбор метрики.
+
-
-->
+
=== Многомерная линейная регрессия ===
=== Многомерная линейная регрессия ===
Строка 143: Строка 140:
* [[Метод наименьших квадратов]]. [[Сингулярное разложение]].
* [[Метод наименьших квадратов]]. [[Сингулярное разложение]].
* Проблемы [[мультиколлинеарность|мультиколлинеарности]] и [[переобучение|переобучения]].
* Проблемы [[мультиколлинеарность|мультиколлинеарности]] и [[переобучение|переобучения]].
-
* [[Регуляризация]]. [[Гребневая регрессия]]. [[Лассо Тибширани]].
+
* [[Регуляризация]]. [[Гребневая регрессия]]. [[Лассо Тибширани]], сравнение с гребневой регрессией.
* Линейные преобразования признакового пространства, задача сокращения размерности. [[Метод главных компонент]] и [[декоррелирующее преобразование]] Карунена-Лоэва.
* Линейные преобразования признакового пространства, задача сокращения размерности. [[Метод главных компонент]] и [[декоррелирующее преобразование]] Карунена-Лоэва.
-
<!--
+
 
=== Шаговая регрессия ===
=== Шаговая регрессия ===
* [[Модифицированная ортогонализация Грама-Шмидта]], достоинства и недостатки.
* [[Модифицированная ортогонализация Грама-Шмидта]], достоинства и недостатки.
* [[Отбор признаков]] в процессе ортогонализации, критерии выбора и останова.
* [[Отбор признаков]] в процессе ортогонализации, критерии выбора и останова.
* [[Метод наименьших углов]] (LARS), его связь с лассо и шаговой регрессией.
* [[Метод наименьших углов]] (LARS), его связь с лассо и шаговой регрессией.
-
-->
 
=== Нелинейная параметрическая регрессия ===
=== Нелинейная параметрическая регрессия ===
Строка 157: Строка 153:
* [[Обобщённая линейная модель]] (GLM).
* [[Обобщённая линейная модель]] (GLM).
* [[Логистическая регрессия]] как частный случай GLM, [[метод наименьших квадратов с итеративным пересчётом весов]] (IRLS).
* [[Логистическая регрессия]] как частный случай GLM, [[метод наименьших квадратов с итеративным пересчётом весов]] (IRLS).
-
<!--
 
-
=== Прогнозирование временных рядов ===
 
-
* Аддитивная модель временного ряда: тренд, сезонность, цикличность. Модель Бокса-Дженкинса. Модель ARIMA — авторегрессии и интегрированного скользящего среднего.
 
-
* Адаптивные модели. Примеры экономических приложений.
 
-
* Неквадратичные функции потерь, примеры прикладных задач.
 
-
-->
 
=== Нейронные сети ===
=== Нейронные сети ===
-
* Проблема полноты. [[Задача исключающего или]]. Полнота двухслойных сетей в пространстве булевских функций. Теоремы Колмогорова, Стоуна, Горбаня (без доказательства).
+
* Проблема полноты. [[Задача исключающего или]]. Полнота двухслойных сетей в пространстве булевых функций. Теоремы Колмогорова, Стоуна, Горбаня (без доказательства).
-
* Алгоритм послойной настройки сети.
+
* Метод послойной настройки сети.
* [[Алгоритм обратного распространения ошибок]]. Способы формирования начального приближения. Недостатки алгоритма, способы их устранения.
* [[Алгоритм обратного распространения ошибок]]. Способы формирования начального приближения. Недостатки алгоритма, способы их устранения.
* Подбор структуры сети: методы постепенного усложнения сети, [[оптимальное прореживание нейронных сетей]] (optimal brain damage).
* Подбор структуры сети: методы постепенного усложнения сети, [[оптимальное прореживание нейронных сетей]] (optimal brain damage).
Строка 174: Строка 164:
=== Алгоритмические композиции ===
=== Алгоритмические композиции ===
* Основные понятия: [[базовый алгоритм]] ([[алгоритмический оператор]]), [[корректирующая операция]].
* Основные понятия: [[базовый алгоритм]] ([[алгоритмический оператор]]), [[корректирующая операция]].
-
* [[Простое голосование]] (комитет большинства). Эвристический алгоритм. Идентификация нетипичных объектов (выбросов). Обобщение на большое число классов.
 
-
* [[Решающий список]] (комитет старшинства). Эвристический алгоритм. Стратегия выбора классов для базовых алгоритмов.
 
=== Бустинг, бэггинг и аналоги ===
=== Бустинг, бэггинг и аналоги ===
Строка 185: Строка 173:
<!---* Варианты бустинга: GentleBoost, LogitBoost, BrownBoost, и другие.--->
<!---* Варианты бустинга: GentleBoost, LogitBoost, BrownBoost, и другие.--->
* Стохастические методы: [[бэггинг]] и [[метод случайных подпространств]].
* Стохастические методы: [[бэггинг]] и [[метод случайных подпространств]].
-
 
<!---
<!---
 +
 +
* [[Простое голосование]] (комитет большинства). Эвристический алгоритм. Идентификация нетипичных объектов (выбросов). Обобщение на большое число классов.
 +
* [[Решающий список]] (комитет старшинства). Эвристический алгоритм. Стратегия выбора классов для базовых алгоритмов.
 +
=== Метод комитетов ===
=== Метод комитетов ===
* Общее понятие: [[комитет]] системы ограничений. Комитеты большинства, простое и взвешенное голосование (''z,p''-комитеты).
* Общее понятие: [[комитет]] системы ограничений. Комитеты большинства, простое и взвешенное голосование (''z,p''-комитеты).
Строка 262: Строка 253:
* Свойства сжатия/растяжения, монотонности и редуктивности. Псевдокод редуктивной версии алгоритма.
* Свойства сжатия/растяжения, монотонности и редуктивности. Псевдокод редуктивной версии алгоритма.
<!---* Потоковые (субквадратичные) алгоритмы кластеризации.--->
<!---* Потоковые (субквадратичные) алгоритмы кластеризации.--->
-
 
<!---
<!---
=== Многомерное шкалирование ===
=== Многомерное шкалирование ===

Версия 20:18, 27 августа 2009

Содержание

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

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

Все методы излагаются по единой схеме:

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

Данный курс расширяет и углубляет набор тем, рекомендованный международным стандартом ACM/IEEE Computing Curricula 2001 по дисциплине «Машинное обучение и нейронные сети» (machine learning and neural networks) в разделе «Интеллектуальные системы» (intelligent systems).

Курс читается студентам 3 курса кафедры «Интеллектуальные системы / интеллектуальный анализ данных» ФУПМ МФТИ с 2004 года; студентам 3 курса кафедры «Математические методы прогнозирования» ВМиК МГУ с 2007 года; студентам Школы анализа данных Яндекса с 2009 года.

На материал данного курса опираются последующие кафедральные курсы. На кафедре ММП ВМиК МГУ параллельно с данным курсом и в дополнение к нему читается спецкурс Теория надёжности обучения по прецедентам, посвящённый проблемам переобучения и оценивания обобщающей способности.

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

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

Первый семестр

Скачать:

1.1. Основные понятия и примеры прикладных задач (PDF, 929 КБ).

1.2–1.4. Статистические (байесовские) методы классификации (PDF, 776 КБ).

1.5. Метрические методы классификации (PDF, 382 КБ).

1.6–1.9. Линейные методы классификации (PDF, 1,56 МБ).

1.10–1.12. Регрессия (PDF, 421 КБ).

1.13. Нейронные сети (PDF, 346 КБ).

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

Замечание 2. О найденных ошибках и опечатках сообщайте мне. — К.В.Воронцов 18:24, 19 января 2009 (MSK)

Вопросы к устному экзамену


Основные понятия и примеры прикладных задач

Байесовские алгоритмы классификации

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

Разделение смеси распределений

  • Смесь распределений.
  • EM-алгоритм: основная идея, понятие скрытых переменных. «Вывод» алгоритма без обоснования сходимости. Псевдокод EM-алгоритма. Критерий останова. Выбор начального приближения. Выбор числа компонентов смеси.
  • Стохастический EM-алгоритм.
  • Смесь многомерных нормальных распределений. Сеть радиальных базисных функций (RBF) и применение EM-алгоритма для её настройки.

Метрические алгоритмы классификации

Линейные алгоритмы классификации

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

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

Метод опорных векторов

  • Оптимальная разделяющая гиперплоскость. Понятие зазора между классами (margin).
  • Случаи линейной разделимости и отсутствия линейной разделимости. Связь с минимизацией регуляризованного эмпирического риска. Кусочно-линейная функция потерь.
  • Задача квадратичного программирования и двойственная задача. Понятие опорных векторов.
  • Рекомендации по выбору константы C.
  • Функция ядра (kernel functions), спрямляющее пространство, теорема Мерсера.
  • Способы конструктивного построения ядер. Примеры ядер.
  • Сопоставление SVM с гауссовским ядром и RBF-сети.
  • Обучение SVM методом активных ограничений. Алгоритм SMO. Алгоритм INCAS.
  • ню-SVM.
  • SVM-регрессия.

Обобщённый линейный классификатор

  • Задача максимизации совместного правдоподобия данных и модели.
  • Возможные типы априорных предположений о вероятностном распределении в пространстве параметров и их связь с регуляризацией.
  • Некоторые разновидности регуляризаторов, применяемые на практике. Квадратичный регуляризатор. Связь линейного регуляризатора с отбором признаков.
  • Настройка порога решающего правила по критерию числа ошибок I и II рода. Кривая ошибок (ROC curve).
  • Пример прикладной задачи: кредитный скоринг; скоринговые карты; оценивание вероятности дефолта; риск кредитного портфеля банка.

Непараметрическая регрессия

Многомерная линейная регрессия

Шаговая регрессия

Нелинейная параметрическая регрессия

Нейронные сети

Второй семестр

Алгоритмические композиции

Бустинг, бэггинг и аналоги

Нелинейные алгоритмические композиции

Оценивание и выбор моделей

Методы отбора признаков

Логические алгоритмы классификации

Решающие списки и деревья

Взвешенное голосование закономерностей

  • Принцип голосования. Проблема различности (диверсификации) закономерностей.
  • Методы синтеза конъюнктивных закономерностей. Псевдокод: алгоритм КОРА, алгоритм ТЭМП.
  • Алгоритм бустинга. Теорема сходимости. Критерий информативности в бустинге.
  • Примеры прикладных задач: кредитный скоринг, прогнозирование ухода клиентов.

Алгоритмы вычисления оценок

Поиск ассоциативных правил

Кластеризация

Таксономия

Сети Кохонена

Личные инструменты