«Введение в компьютерное зрение» Владимир Вежневец, Антон Конушин Александр Вежневец МГУ ВМК, Graphics & Media Lab, Осень 2006 План лекции Деревья классификации Байесовский подход к классификации «Наивный» Байесовский классификатор (Idiot Bayes) Нормальный дискриминантный анализ Нейронные сети Метод опорных векторов Комитетные методы Bagging Boosting Вопросы с предыдущей лекции Почему не рассказываем про обучение «на лету»? Почему же скользящий контроль лучше повторного удерживания? Обучение на лету Модель: Множество состояний S Множество действий A Скалярный «выигрыш» r В каждый момент времени t : Агент получает свое состояние st S и набор возможных действий A( st ) Агент выбирает действие a A( st ) и получает «выигрыш» rt Требуется максимизировать выигрыш Ясно, что выигрыш можно оптимизировать «жадно» и «дальнесрочно» - определяется задачей Особенности Нет готовых ответов, есть «запоздалый выигрыш» Применение Требует от системы возможности постоянно получать отклик о качестве работы (выигрыш); Зачастую, невозможное требование для коммерческих систем компьютерного зрения; Игры; Робот в лабиринте; Частичная видимость среды; Для задач допускающих формулировку в виде задач обучения с учителем применение обучения «на лету» дает заведомо худший результат! Почему же скользящий контроль лучше повторного удерживания? Основной довод скользящего контроля: Каждый элемент гарантированно попадет в контрольную выборку хотя бы один раз Довод 5-2 контроля: Тренировочные выборки абсолютно декоррелированы (не пересекаются) Каждый прецедент учувствует в тренировке и контроля ровно по 5 раз Почему же скользящий контроль лучше повторного удерживания? Вероятность пропустить хотя бы один прецедент при повторном удерживании: P (1 ) n k - доля прецедентов в контрольной выборке k - количество прецедентов всего n - количество итераций n log P k log( 1 ) 10 При 0.5; k 1000; n 10 0.5 1000 0.9766 Вероятность, что прецеденты будут выбраны в равных долях еще меньше!!! Деревья классификации Classification trees Деревья классификации Модель алгоритма Двоичное дерево Узлы: Помечены некоторым предикатом : X bool true 1 x true Связи: 0 x true Помечены false y 1 false y 1 false y 1 Листья: Помечены ответами из Y *Вопрос: кто помнит, что такое предикат? Деревья классификации Модель алгоритма Выходом классификатора ax является значение y листа, полученного при обходе: 0 x true Начинаем от корня Переходим в тот узел, в который ведет связь помеченная значением предиката в текущем узле Заканчиваем, попав в лист 1 x true y 1 false y 1 false y 1 Пример ВАЖНО: каждый лист определяет собой область пространства Х Деревья классификации Пример работы x5 x 6? false true y 1 x 3? true y 1 false y 1 a( x) 1 Деревья классификации Модель алгоритма: пространство поиска Количество ветвлений - сильно влияет на сложность алгоритма и соответственно на размерность Вапника-Червоненкиса и склонность к переобучению Предикаты – обычно, используются пороги по проекциям на оси координат (на элементы вектора признаков) j true , x 0 m x ( x ,...x ) j false , x Деревья классификации Метод обучения Введем меру «неоднородности» для листа дерева Пусть, при обходе дерева до вершины m из тренировочной выборке «доходят» Nm прецедентов; Из них Nmy прецедентов принадлежат классу y N my Пусть, P y | x, m p Nm Тогда «неоднородность» листа m - y m I m pmy log 2 pmy y Деревья классификации Метод обучения Пусть, дана обучающая выборка T ( xi , yi )i 1 Строим от корня: N Если текущая вершина однородная, то она лист; алгоритм останавливается Если же нет, делаем разбиение, минимизирующие «неоднородность» Для каждой из получившихся вершин повторяем процедуру Особенности Плюсы Просто и наглядно Легко анализируемо Быстро работает Легко применяется для задач со множеством классов и к регрессии Минусы Плохо аппроксимирует сложные поверхности В общем случае, требует сложных алгоритмов «обрезания» для контроля сложности Иллюстрация Верный источник как Недо- так пере-обучения! Байесовская стратегия классификации Bayesian classification Статистическая формулировка Пусть X – вероятностное пространство Пусть мера пространства P Множество прецедентов X l выбрано случайно и независимо согласно распределению P (случайная выборка); для них известны ответы Требуется построить отображение a : X Y Статистическая формулировка Бинарная классификация Эмпирический риск: l 1 REmp (a, X l ) P a( x) y | X l [a( x) y ] l i 1 Общий риск: R(a, X ) Pa( x) y | X P( x)a( x) y dx X рассчитать невозможно требуется минимизировать Байесовский классификатор Предположения: Известна функция правдоподобия: Px | y Известны априорные вероятности: P( y ), P( x) Принцип максимума апостериорной вероятности: Правдоподобие – условная вероятность наблюдения Вероятность класса P( x | y ) P( y ) a( x) arg max P y | x yY P( x) Формула Байеса Вероятность наблюдения Пример: Какова вероятность увидеть на улице динозавра? Идя по улице вы видите такую сцену: (это и есть наблюдение х) Вычислим вероятность того, что наблюдая такую сцены мы действительно видим динозавра Правдоподобие – вероятность того, что будь это действительно динозавр наблюдение было бы таким Априорная вероятность встретить динозавра P( x | y ) P( y ) P y | x P( x) Априорная вероятность увидеть такую сцену Пример: Какова вероятность увидеть на улице динозавра? Априорная вероятность встретить динозавра x(x| y0).1 PP( yy) 0.000001 Px | y 0.7 PP P y | x P( x) Правдоподобие – 7 вероятность того, что будь 0.7 0.0000001 Априорная P y | x 0 . 000007 % вероятность это действительно 0.1 10000 увидеть такую сцену динозавр наблюдение Пусть : было бы таким Свойства классификатора Модель алгоритма и метод обучение строго не определены (не нужны даже обучающая выборка) – классификатор строится непосредственно по функциям априорных вероятностей и правдоподобия данным «свыше» Дает наименьший общий риск (состоятелен) при выполнении предположений Практическое применение На практике, функция правдоподобия и априорные вероятности обычно не известны; Для применения Байесвокого подхода на практике требуется каким либо образом их оценить Зачастую, предполагается что объекты принадлежат какомуто статистическому распределению, параметры которого оцениваются на обучающей выборке; Априорные оценки так же вычисляются на обучающей выборке «Наивный» Байесовский классификатор Пусть, множество X является конечным Множество цветов в системе RGB Набор логических атрибутов (наличие в письме того или иного слова) Для каждого значения из X по обучающей выборке оценим функцию правдоподобия Px | y Так же, оценим априорную вероятности P( y ) P( x | 1) P(1) 1, P( x | 1) P(1) 1 a ( x) P( x | 1) P(1) 1, 1 P( x | 1) P(1) «Наивный» Байесовский классификатор Сегментация кожи Для всех возможных цветов по обучающей выборке строится таблица правдоподобия и рассчитывается априорная вероятность Нормальный дискриминантный анализ Normal discriminant analyzes Нормальный дискриминантный анализ Предположения: Функции правдоподобия имеют нормальное распределение: P( x | y ) N ( y , y ) 1 2 n 2 y 1 2 1 T 1 exp x y y x y 2 Дана обучающая выборка прецедентов (случайных и независимых) X l Нормальное распределение Поверхность, на которой точки имеют равную вероятность представляет собой эллипсоид Мат. ожидание – центр эллипса, ковариационная матрица – матрица поворота и растяжения (задает оси эллипса) Расчет разделяющей поверхности Обозначим: Py P( y); p y ( x) Px | y Запишем уравнение разделяющей поверхности (на этой поверхности вероятности равны): P1 p1 ( x) P1 p1 ( x); ln p1 ( x) ln p1 ( x) ln( P1 / P1 ) 0 С=const(x) Распишем: n 1 T ln p y ( x) ln 2 ln y x y 1 y x y 2 2 Расчет разделяющей поверхности 1 1 1 1 ( x ˆ )T y1 ( 1 1 ) Cn, 1 T ln p y ( x) ln 2 ln y x y 1 y x y 2 2 1 P1 P1 ˆ ( 1 1 ) 2 Расчет разделяющей поверхности n 1 T ln p y ( x) ln 2 ln y x y 1 y x y 2 2 1 1 Поверхность становится квадратичной! Модель алгоритма Классификатор строится в виде некоторой поверхности, отвечающей принципу максимума апостериорной вероятности P( x | y ) P( y ) a( x) arg max P y | x yY P( x) arg max N ( y , y )x y{1, 1} Поверхность зависит только от параметров распределений – пространство поиска 1 , 1 , 1 , 1 Метод обучения Для построения классификатора требуется по обучающей выборке оценить параметры распределений С учётом их случайности и независимости, можно применять стандартный механизм оценки параметров из математической статистики Например, метод максимального правдоподобия Свойства классификатора В случае точной оценки параметров распределений и априорных вероятностей является Байесовским (дает минимум общего риска); Строит простую для вычисления поверхность (линейную или квадратичную); Делает сильное предположение о нормальности распределений В случае невыполнения предположений даёт непредсказуемый результат Советы по практическому применению Проверить классы на нормальность! В случае наличия выбросов использовать робастные оценки Хи-квадрат статистика MLESAC Аккуратно оценить априорные вероятности Развитие метода Обобщение на множество классов Введение риска Нейронные сети Neural Networks Нейоронные сети Предпосылка: Известно, что биологические системы (люди, животные) прекрасно справляются со сложными задачами распознавания образов; Основная идея: Применить знания о работе мозга (людей, животных) для решения задач распознавания образов; Биологические нейронные сети 1872-1895 гг. Понятие нейрона и нейронной сети; Первые предположения о принципе работы; Биологический нейрон Биологический нейрон Биологический нейрон Передача импульса Дендриты Например, могут быть присоединены к рецепторам Аксон Может быть присоединен к мышцам Нейронная сеть Совокупность соединенных между собой нейронов; Сеть осуществляет преобразование входного сигнала с рецепторов в выходной, являющейся реакцией организма на внешнюю среду Модель кибернетического нейрона Блок преобразования Входной сигнал Синаптические веса x1 x2 w1 w2 ... ... xd wd Выходной сигнал Блок суммирования McCulloch, W. and Pitts, W. (1943) f y d i y f wi x i 1 Персептрон Розенблата Модель алгоритма Слой нейронов Входной сигнал Кибернетический нейрон x0 1 x1 Порог y1 y2 y3 Выходной сигнал ... y4 xd Функция преобразования - линейная Rosenblatt (1962) *Вопрос: зачем x0 ? Персептрон Розенблата Модель алгоритма Свойства Линейная классификация d y w0 wi x i i 1 Легко обобщается на множество классов ? Персептрон Розенблата Метод обучения Пусть дана обучающая выборка T ( xi , yi ) Пусть, матрица W есть матрица весов, где элемент есть вес Wij связи нейрона j и входа i Проинициализируем, W (t 0) случайными малыми значениями N i 1 Для t 1,2,... ~ Пусть, на входной образ xi T сеть дает ответ y yi ~ Вычисляем ошибку y y i Правим веса W (t 1) W (t ) x i Повторяем, пока ошибка не будет меньше некоторого малого числа Персептрон Розенблата Метод обучения Особенности обучения Прецеденты выучиваются по очереди Оптимизируется эмпирический риск Процесс сходится к некоторому локальному минимуму Зависит от начальной точки Многослойный персептрон yi H yi v z vih z h vi 0 T i vih z z h sigmoid w Th x h z0 1 whj x0 1 xj h 1 xd 1 exp 1 d j w x wh 0 j 1 hj Rumelhart et al. (1986) Настройка методом обратного распространения ошибки Основная идея Ошибку на последнем слое можно рассчитать явно Ошибку на промежуточном слое, распространим с последнего с текущими весами Фактически, сеть запускается «наоборот» и вместо сигнала распространяется ошибка Для её минимизации применяется градиентный спуск Подробнее http://cgm.graphicon.ru/content/view/57/66/ Многослойный персептрон yi H yi v Ti z vih z h vi 0 h 1 vih z h sigmoid w Th x z h z 1 0 1 exp 1 d j w x wh 0 j 1 hj E E y i z h i h whj y z whj whj Производная ошибки по весу x0 1 xj xd Rumelhart et al. (1986) Проблема локальных минимумов Локально оптимальны классификатор (локальный минимум) Идеальный классификатор (глобальный минимум) Особенности Плюсы Минусы Универсальность Грубая минимизация эмпирического риска Возможность решать задачи со множеством классов, регрессии и т.д. Проблема локальных минимумов Очень большая склонность к переобучению Высокая степень параллельности Почти неограниченный простор для модификаций Где почитать подробней: Вежневец А. «Популярные нейросетевые архитектуры» сетевой журнал «Графика и Мультимедиа» Вежневец А. «Нестандартные нейросетевые архитектуры» сетевой журнал «Графика и Мультимедиа» http://cgm.graphicon.ru/content/view/57/66/ http://cgm.graphicon.ru/content/view/62/66/ Ресурс Сергея Терехова посвященный нейронным сетям http://alife.narod.ru/lectures/index.html Нейронные сети Практическое применение В свое время, пользовались большой популярностью за счет универсальности и простоты применения (фактически, первое семейство универсальных методов) Фактически, нейронной сети можно было скормить все что угодно и она что-то выдавала Однако, нейронные сети во многом являются «дилетантским» подходом к машинному обучению и с точки зрения теории (и экспериментальных замеров) представляют собой очень ненадежный и неточный механизм Метод опорных векторов Support Vector Machine SVM 1. Максимизация отступа А почему бы не брать ту, которая равно и максимально удалена от обоих классов? Прямых, разделяющих точки, может быть множество SVM 2. Опорные вектора Измениться ли разделяющая поверхность? Прецеденты, которые нельзя убрать без изменения поверхности SVM Случай линейной разделимости Задача формулируется как поиск гиперплоскости максимально от выпуклой оболочки классов Как выяснилось, такую гиперплоскость всегда можно записать в виде линейной комбинации «опорных векторов» - прецедентов, принадлежащих выпуклой оболочке SVM Случай линейной разделимости Задачу поиска такой гиперплоскости можно записать как задачу оптимизации: 2 1 w arg min w 2 yi w xi b 1 Глобальный минимум находится методом квадратичного программирования Чисто геометрическая задача SVM Случай линейной разделимости Плюсы Глобальный минимум Теоретически доказана минимальность оценки общего риска (Вапник) Требует знания только скалярных произведений Минусы Работает только для линейно разделимых классов SVM Случай шума Просто переформулируем оптимизационную задачу, допустив ошибку, но штрафуя за неё: 1 2 w arg min w C i 2 i yi w xi b 1 i Регулирует баланс точности и толерантности SVM Случай нелинейной разделимости x1 x1 x 0 x 0 2 SVM Случай нелинейной разделимости Идея «ядровых» преобразований: Отобразить данные в пространство, в котором разделяющая поверхность будет линейной (или близкой к линейной) Ядровые преобразования можно быстро вычислять для скалярных произведений, даже при бесконечной размерности целевого пространства K ( x, x ' ) ( x x ' ) d K ( x, x' ) exp( x x' ), 0 2 SVM Плюсы Минусы Теоретически доказана минимальность оценки общего риска (Вапник) Требует подбора множества параметров (ядро, параметры ядра, штраф за ошибки) При помощи ядровых преобразований обобщается на случай сложных поверхностей Теор. оценки верны только для случая разделимости (схема со штрафами эвристика) Очень чувствителен к нормализации данных! Однозначность решения (глобальный минимум) SVM Практическое применение Метод являлся наилучшим методом классификации до, примерно, 2000 года наголову обгоняя нейронные сети и т.п. Фактически, метод опорных векторов – практический выход теории Вапника-Червоненкиса Однако, необходимость подбора большого числа не интуитивных параметров сильно снижала его применение в простых разработках (требовала наличия эксперта) Коммитетные методы Classifier ensembles