Машинное обучение Введение Владимир Вежневец, Антон Конушин Александр Вежневец Компьютерное зрение МГУ ВМК, Осень 2006 План Лекции Машинное обучение и его применение в машинном зрении; Формальное определение и основные понятия; Феномен переобучения; Состоятельность метода обучения; Элементы теории Вапника-Червоненкиса; Методы экспериментальной оценки и сравнения классификаторов; Зачем нужно обучение? Машинное обучение – настройка работы программы на данных-примерах или на предшествующем опыте. Обучение не требуется для того, чтобы отсортировать массив. Обучение требуется когда: Опыт отсутствует или трудно формулируется (распознавание речи) Решение меняется со временем или решение должно легко адаптироваться к частным случаем (биометрия, маршрутизация в сетях) Точная, строго вычислимая модель слишком сложна для построения (шахматы) Обучение подразумевает Построение общей модели на основе конкретных примеров; Нужно построить модель, которая является хорошим и практичным приближением данных. Применение Медицина: диагностика; Финансы: скоринг, обнаружение подделок; Сети: поисковые системы; Маркетинг: прогнозы продаж, связь с потребителем; Производство: дефектоскопия, оптимизация; Телекоммуникации: оптимизация качества сервиса; Машинное зрение. Машинное обучение С учителем Без учителя Есть объекты и «правильные ответы» на них – построить «связь» Например, есть гистограммы цветов ночных и дневных изображений, требуется построить правило по которым их можно отличать Есть данные, нужно сделать о них какие-то выводы Например, есть гистограмма цветов изображения, требуется выделить несколько основных цветов изображения «На лету» Обучение происходит во время работы Роль обучения в машинном зрение Низкоуровневое зрение Выделение краев Цветовая сегментация (кластеризация) … Зрение высокого уровня Поиск объектов на изображениях Сегментация на предопределенные области … *Вопрос: Как сработает поиск краев? Пример: Auto PopUp Система автоматической сегментации и реконструкции сцены по одному изображению Auto PopUp Пересегментированное Исходное изображение изображение *Материал предыдущих лекций Auto PopUp *Вопрос: какие могут быть дескрипторы областей? Высокая размерность! 0.1 0.3 72 66 {xi } j ... ... ... 13 2 Множество векторов дескрипторов областей Пересегментированное изображение *Материал предыдущих лекций Auto PopUp Маркеры областей 3х мерным поверхностям: •Небо •Земля •Вертикальные поверхности 0.1 0.3 72 66 3,..., 1 {xi{}yj i }j 0,1,... ... ... 13 2 Множество векторов Множество маркеров областей дескрипторов областей *Процесс разметки «выучивается» системой из составленной экспертом базы изображений с известной разметкой Auto PopUp { yi } j 0,1,3,...,1 Множество маркеров областей Перенос разметки на изображение и её анализ *Анализ разметки проводится алгоритмами о которых пойдёт речь в третьей части курса Auto PopUp Трехмерная модель! Auto PopUp Почему здесь потребовалось именно обучение и можно ли было обойтись без него? Данные: Высокая размерность – десятки признаков; Огромное количество – на каждом изображении порядка сотни регионов; Сложная, неочевидная для человека связь между описанием региона и его маркером; Подбор правила вручную (экспертом) занял бы очень много времени и не мог бы гарантировать желаемый результат! Auto PopUp Обучение дало: Автоматизированный рабочий процесс; Четкие количественные оценки качества; Гарантированный результат; Машинное обучение с учителем Определения и понятия Пусть существуют два множества: Множество объектов X Множество ответов Y Существует целевая функция y : X Y значения которой известны лишь на подмножестве * X l x1 ,..., xl X l - обучающая выборка xi , yi , i 1, l - прецедент Машинное обучение Постановка задачи Требуется построить отображение (гипотезу) a : X Y такое что: a – допускает эффективную программную реализацию; Отображение воспроизводит на обучающей выборке требуемые ответы (возможно, с некоторой вероятностью) Отображение способно к обобщению – совпадает с целевым не только на обучающей выборке. Возможны дополнительные ограничения – гладкость, монотонность и т.д. (определяется задачей) Машинное обучение Различные частные задачи Классификация: Y – конечное множество Бинарная -Y 0,1 Multiclass - Y 1,..., M Multilabel - Y 0,1 M Регрессия: Y , действительные числа Замечание В данной постановке задача является некорректно поставленной и сама по себе ставит множество вопросов: В каком виде искать гипотезу а? Ясно, что решений будет существовать бесконечное число, как выбрать из них одно единственное? Какой математический аппарат применять? … Модель алгоритма Пусть А – параметрическое семейство отображений A a( x, ) | a : X Y Г – пространство допустимых значений параметра (пространство поиска) Будем выбирать отображение для решение задачи из А Процесс выбора назовём обучением Метод обучения Отображение : X a, строящее отображение по обучающей выборке назовём методом обучения l Метод должен допускать эффективную программную реализацию; Обучение сводится к поиску точки в пространстве поиска Г Пример: Линейный классификатор Модель алгоритма: A sign , x c ,c Скалярное произведение Пространство поиска – значения вектора и смещения с Данные, с неизвестными ответами Гипотеза a – какая-то конкретная прямая Обучающая выборка Оценка качества результата Функция потерь Функция потерь L Y Y R характеризует отличие * правильного ответа y y ( x) от ответа данного построенным отображением y a(x) L( y, y) [ y y] L( y, y) y y 2 L( y , y ) y y L( y, y) y y отклонение - индикатор потери - отклонение - квадратичное отклонение - индикатор существенного Оценка качества результата Эмпирический риск l Пусть, X x1 ,..., xl - обучающая выборка Эмпирический риск (ошибка тренировки): Remp l 1 a, X l L(a( xi ), yi ) k i 1 Метод минимизации эмпирического риска*: X l arg min Remp a, X l aA *мы свели задачу машинного обучения к задаче оптимизации Замечание Гипотез, имеющих нулевой эмпирический риск может так же существовать неограниченное количество: Наиболее частная гипотеза Золотая середина? Вопрос: Какова здесь модель? Наиболее общая гипотеза Модельная задача Данные 2 1 Целевая функция – y ( x) 1 x i 1 Тренировочная выборка – X xi 2 1 l 1 i 0.5 Контрольная выборка – X xi 2 1 l 1 На ней проверим работу * l c *Вопрос: как будут выглядеть выборки? Модельная задача Модель алгоритма и метод обучения Модель алгоритма – Полиномы степени n Метод обучения – ax, 0 1 x ... n x n X l arg min Remp a, X l aA Минимизация эмпирического риска *Методы аппроксимации полиномами известны из курса численных методов Результат для n=40 Переобучение (overfitting) Феномен наличия высокой ошибки на контрольной выборке при малой ошибке на обучающей На практике очень частый эффект! Фактически, главная проблема машинного обучения Переобучение Причина – гипотеза хорошо описывает свойства не объектов в целом, но только лишь объектов из обучающей выборки: Слишком много степеней свободы параметров модели алгоритма (слишком сложная модель) Шум в данных Плохая обучающая выборка Как формализовать и оценить склонность алгоритма к переобучению? Состоятельность метода На пальцах Метод состоятелен, если он с большой вероятностью делает маленькую ошибку на данных не присутствовавших в обучающей выборке Мы говорим «с большой вероятностью» потому что точно мы не сможем сказать никогда Требуется вероятностная формулировка обучения Вероятностная формулировка Пусть X – вероятностное пространство Пусть мера пространства P Множество прецедентов X l выбрано случайно и независимо согласно распределению P (случайная выборка); для них известны ответы Требуется построить отображение a : X Y Вероятностная формулировка Бинарная классификация Эмпирический риск: l 1 REmp (a, X l ) P a( x) y | X l [a( xi ) yi ] l i 1 Общий риск: R(a, X ) Pa( x) y | X P( x)a( x) y dx X рассчитать невозможно требуется минимизировать Модель алгоритма и метод обучения определяются так же Состоятельность метода Метод обучения называется состоятельным, если Точность Надежность PX l , X R( ( X ), X ) l Общий риск Для достаточно малых значений точности и больших значений надёжности Вопросы Как оценить состоятельность метода? Как выбрать оптимальный, с точки зрения общего риска, алгоритм? Теория Вапника-Червоненкиса Теория, предложенная русским математиком Владимиром Вапником, для оценки способности к обучению различных моделей алгоритмов Основные результаты теории: Оценка сложности (емкости) модели алгоритма Оценка состоятельности через эмпирический риск и сложность модели Размерность Вапника-Червоненкиса Пусть: А – модель алгоритма (бинарной классификации) Пример – A – все прямые, a – конкретная прямая X – исходное пространство объектов Тогда, размерностью Вапника-Червоненкиса модели алгоритма А, назовем число равное максимальному числу точек из X, которые алгоритмы из А могут разбить на два класса всеми возможными способами Обозначение: VC dim ( A) Пример для прямой на плоскости VCdim ( Alin ) 3 ? Оценка состоятельности a A, a ( X ) l Пусть, Общий риск складывается из двух частей – эмпирический риск и штраф за сложность: Точность Надежность P R(a, X ) REmp (a, X ) (VCdim ( A), , l ) l Общий риск Эмпирический риск Штраф за сложность Штраф за сложность (VCdim ( A), , l ) ln VCdim ( A) 2l ln 1 l l VCdim ( A) Тем меньше, чем больше обучающая выборка Тем больше, чем больше требуемая надежность Тем больше, чем больше сложность модели Принцип структурной минимизации риска Основная идея - «Выбрать модель наиболее простую из достаточно точных» Пусть есть семейство моделей А с выделенной последовательностью подсемейств возрастающей сложности A1 A2 ... Ah A Выберем семейство с минимальной сложностью, но обеспечивающее нужную точность Иллюстрация Слишком простая? Слишком сложная? Оптимальная? Практический вывод из VC теории Требуется баланс между сложностью модели, обеспечивающей низкий эмпирический риск и простотой, обеспечивающей способность к обобщению Проблема теоретических оценок общего риска Нетривиально рассчитываются для конкретных алгоритмов Сильно завышены Как следствие, для практической задачи малоинформативны Методы экспериментальной оценки качества алгоритмов Для конкретной задачи, желательно получить точные количественные оценки качества работы Используются экспериментальные методы: Удерживание Скользящий контроль 5-2 контроль … Удерживание Вспомним, что такое общий риск: R(a, X ) PX l a( x) y P( x)a( x) y dx X Его минимизация для нас является основной целью Однако, напрямую его посчитать невозможно (требует вычислений на неограниченном множестве) Оценим общий риск ошибкой на некотором конечном подмножестве X не пересекающимся с обучающей выборкой: R ( a, X ) ~ P a ( x ) y | X c 1 c a( x j ) y j c j 1 Удерживание Пусть, имеется набор данных X k x1 ,..., xk с известными ответами Разобьем Будем использовать для обучения контроля X c То есть: X X X :X X 0 l c k l c X l , а для P( a ( x ) y ) P a ( x) y | X c Недостатки удерживания Быстро и просто рассчитывается Некоторые «сложные» прецеденты могут полностью попасть в только одну из выборок и тогда оценка ошибки будет смещенной Обучение Ошибка произойдет не по вине классификатора, а из-за разбиения! *возможна и обратная ситуация Контроль Повторное удерживание Если разбиение на контроль и обучение может быть не устойчивым, то почему бы не провести его много раз и не усреднить? Такой методикой мы частично избавимся от проблемы «сложных прецедентов»; НО, вероятность того, что какие-то прецеденты ни разу не попадут в контрольную выборку всё равно велика; Процесс становиться сильно рандомизированным; Скользящий контроль Разделим выборку на множество непересекающихся частей и будем поочередно использовать одно из них для контроля а остальные для тренировки Разбиваем: X i f 1 : X i X j 0, i j f i k X X i 1 Приближаем риск: 1 P( ( X ) y ) f k * f i * i P ( ( X ) y | X ) i 1 j i Иллюстрация X k x1 ,..., xk X1 X2 Контроль Обучение X3 X4 X5 Результат считается как средняя ошибка по всем итерациям Свойства В пределе равен общему риску Каждый прецедент будет один раз присутствовать в контрольной выборке Обучающие выборки будут сильно перекрываться (чем больше сегментов, тем больше перекрытие) Если один группа «сложных прецедентов» попала полностью в один сегмент, то оценка будет смещенной 5-2 контроль (5-2 cross validation) Некоторый компромисс: Проведем замер ошибки методом скользящего контроля с двумя сегментами Повторим этот эксперимент пять раз и усредним результат Свойства: Каждый из прецедентов будет учувствовать в контрольных выборках на каждом из 5 этапов; Из-за малого числа сегментов и множества испытаний вероятность того, что какая-то группа прецедентов всегда будет в одном сегменте становится очень мала Почему так? Мы привели лишь эвристическое обоснование данных методик, НО для этого всего есть строгое обоснование основанное на мат-статистике Виды ошибок Измерения ошибки как «вероятности выдать неверный ответ» может быть не всегда достаточно 15% ошибки при постановке диагноза может означать как и то что, 15 % больных будут признаны здоровыми (и возможно умрут от отсутствия лечения), так и то, что 15% здоровых больными (и деньги на лечение будут потрачены зря) При неравнозначности ошибок для разных классов вводят понятие ошибки первого и второго рода и замеряют их по отдельности Ошибки I и II рода Пусть, существует «основной класс» Ошибка первого рода равна вероятности принять основной класс за вторичный Обычно, это класс, при обнаружении которого, предпринимается какое-либо действие; Например, при постановке диагноза основным классом будет «болен», а вторичным классом «здоров». Вероятность «промаха», когда искомый объект будет пропущен Ошибка второго рода равна вероятности принять вторичный класс за основной Вероятность «ложной тревоги», когда за искомый объект будет принят «фон» Ошибки I и II рода Ошибка II рода Построенная гипотеза Истинная гипотеза Будем считать красные точки «основным классом» Ошибка I рода Ошибки I и II рода Что считать основным классом зависит полностью от прикладной специфики Особенно важно оценивать ошибки I и II рода раздельно при несбалансированности классов: Пусть P( y 1) 0.01; P( y 1) 0.99 Тогда при нулевой ошибке II рода и ошибке I рода 0.5 P(a( x) 1 | y 1) 0.5 Общая ошибка всего лишь P(a( x) y ) 0.005 Чувствительность vs Избирательность Чувствительность – вероятность дать правильный ответ на пример основного класса sensitivit y P(a( x) y | y 1) Избирательность – вероятность дать правильный ответ на пример вторичного класса specificit y P(a( x) y | y 1) *Вопрос – как связаны данные понятия и ошибки I и II рода? Регулировка баланса Почти все алгоритмы классификации допускают регулировку соотношения ошибки I и II рода за счет варьирования некоторого параметра ROC кривая ROC – Receiver Operating Characteristic curve Кривая, отражающая зависимость чувствительности и ошибки второго рода Лучший случай Худший случай ROC кривая Построение Для различных значений параметра строится таблица ошибок По таблице строиться набор точек в плоскости sensitivity/FP Сам параметр в таблице не участвует! Классификатор строиться и оценивается на разных выборках! Каждая строка таблицы - точка По точкам строиться кривая Sensitivity False Positive 0.0 0.0 0.25 0.5 0.5 0.8 … … 1.0 1.0 Анализ ROC кривой Площадь под графиком – AUC Дает некоторый объективный показатель качества классификатора Позволяет сравнивать разные кривые Соблюдение требуемого значения ошибок I и II рода Зачастую, для конкретной задачи существуют рамки на ошибку определенного рода. С помощью ROC можно анализировать возможность текущего решения соответствовать требованию Пример Данные – точки на плоскости Модель алгоритма – порог по оси X 1, x1 a( x , x ) 1, x1 1 2 Метод обучения – минимизация эмпирического риска полным перебором Удерживание Ошибка: 0.1133 Ошибка: 0.1433 Тренировочная выборка Контрольная выборка Повторное удерживание Тренировочная ошибка: {0.1097 0.1236 0.1208 0.1250 0.1250} Среднее = 0.1208 Ошибка на контроле {0.1833 0.1222 0.1333 0.1222 0.1167} Среднее = 0.1356 Скользящий контроль Разбиваем на множества Скользящий контроль Итеративно измеряем ошибку Скользящий контроль Тренировочная ошибка: {0.1236 0.1208 0.1250 0.1097 0.1306} Среднее = 0.1219 Ошибка на контроле {0.1500 0.1333 0.1222 0.1778 0.1000} Среднее = 0.1367 Построение ROC Построение таблицы Меняем порог и оцениваем ошибку Sensitivity False Positive 0.0 0.0 0.25 0.5 0.5 0.8 … … 1.0 1.0 Построение ROC Построение кривой По таблице строим точки Точки интерполируем кривой Итоги лекции Возможные вопросы на экзамене! Постановка задачи машинного обучения с учителем Основные определения: Принцип минимизации эмпирического риска и проблема переобучения Состоятельность метода обучения Размерность Вапника-Червоненкиса семейства моделей Оценка состоятельности семейства моделей Принцип структурной минимизации риска Экспериментальные методы оценки классификаторов Модель алгоритма, метод обучения, гипотеза, общий и эмпирический риск Удерживание, скользящий контроль Ошибка I и II рода ROC кривая Следующая лекция Обзор методов обучения Вероятно, будет выдано второе задание Сдайте e-mail! Использованы материалы Слайды доклада «Supervised Learning of Edges and Object Boundaries» Piotr Dollár Zhuowen Tu Serge Belongie Черновики лекций «Математические методы обучения по прецедентам» Константин Воронцов