Машинное обучение и классификация http://courses.graphicon.ru На прошлой лекции • Детектор краёв • Сanny С • Гистерезис • Кластеризация • К-средних • Сдвиг д среднего р д • Сегментация Се е ац • Разрезы графов • Normalized cuts План лекции • Понятие машинного обучения «на пальцах» р р задач д классификации, ф ц ,р регрессии, р , • Примеры кластеризации • Вероятностная постановка задачи • Классификация • Немного теории • Метод ближайшего соседа • Решающее дерево • Решающий щ лес • Экспериментальные методы оценки классификаторов •Удерживание, У скользящий й контроль •Ошибка I и II рода •ROC кривая Машинное обучение • Machine learning • Обучение распознаванию образов Что такое машинное обучение? • Обучение = приспособление • обучаясь, б мы становимся более б приспособленными б к окружающей среде • Обучение ≠ «заучивание наизусть» • заучить наизусть – для машины не проблема • мы хотим научить машину делать выводы! Что такое машинное обучение? Алгоритм обучения Обученная машина Данные Ответ Вопрос р Примеры задач: классификация • • Требуется разработать систему автоматического распознавания рукописных почтовых индексов: Можно придумать закономерности самим – например: если символ круглый – то это 0, если вытянутый, й то это 1, 1 если есть дырки – либо 6, либо 8, либо 9, а иногда 2 – придумать набор хороших правил почти невозможно • Задача классификации: – примеры для обучения = {картинка, {картинка цифра} – находим формулу – для новой картинки (не известно, какая цифра на ней изображена) вычисляем соответствующее у щ ей значение цифры по найденной формуле Примеры задач: регрессия • • • • Требуется определить возраст моллюска: Можно посмотреть р в микроскоп р и посчитать число колец раковины – Проблема! Это сложно, долго, дорого И Идея! ! Можно М посчитать простые признаки: пол, диаметр, высоту, вес раковины,… и предсказать по ним возраст Задача регрессии: – примеры для обучения = {простые измерения возраст} измерения, – находим, как зависит возраст от измерений (получаем формулу) – для нового примера (возраст не известен) вычисляем значение возраста по формуле Примеры задач: кластеризация • Проанализировать, как влияют друг на друга время между двумя извержениями гейзера и продолжительность предыдущего извержения: • Задача кластеризации р : – примеры для обучения = {признаки} – разделяем данные на кластеры, то есть ставим каждому вектору в соответствие некоторую метку Машинное обучение в зрении • Низкоуровневое зрение – Выделение специфических краев Машинное обучение в зрении • Низкоуровневое зрение • Цветовая сегментация Ц ц • Высокоуровневое зрение • Семантическая сегментация Машинное обучение в зрении • Классификация изображений Griffin, Holub, Perona, 2007 Fei-Fei, Fergus, Perona, 2004 Машинное обучение в зрении • Зрение высокого уровня – Обнаружение объектов на изображениях Машинное обучение в зрении • Зрение высокого уровня – Распознавание лиц/подписи/отпечатков пальцев/сетчатки глаза → Иван Иванов Машинное обучение в зрении • Зрение р высокого уровня ур – Распознавание печатных/рукописных символов → 7210414959 … Некоторые понятия из теории вероятностей Теория вероятностей • Frequentist interpretation of probabilities: • Вероятность еро ос = частота ас о а повторяемого ов ор е ого соб события и • Bayesian interpretation of probabilities: • Вероятность р = мера р неопределенности р исхода эксперимента Теория вероятностей • Эксперимент: р • выбираем коробку • вынимаем оттуда фрукт • кладем его обратно б • Две случайные Д у величины: • X: отвечает за цвет коробки • Y: отвечает за то, какой фрукт нам попался (апельсин или яблоко) Теория вероятностей • • Будем уд проводить р д такие эксперименты р и заносить число исходов в таблицу Вероятность пересечения событий • Условная вероятность Формула Байеса Идя по улице вы видите такую сцену: (это и есть наблюдение х) Вычислим вероятность того, что наблюдая такую сцены мы действительно видим динозавра: Формула Байеса Формула Байеса Идя по улице вы видите такую сцену: (это и есть наблюдение х) Вычислим вероятность того, что наблюдая такую сцены мы действительно й видим динозавра: Какой процент динозавров выглядит так? вероятность встретить динозавра P( x | y ) ⋅ P( y ) P( y | x ) = P( x) вероятность увидеть такую сцену Полезные соотношения • Полезные соотношения: • правило суммы • правило произведения • правило Байеса • если две случайные величины независимы, то Идея машинного обучения Задача машинного обучения • В нашем распоряжении есть конечное число данных – обучающая выборка Задача машинного обучения • Требуется сконструировать функцию f(x) от вектора признаков x, которое выдает ответ для любого возможного наблюдения x Задача машинного обучения • Построенное правило должно хорошо работать на новых данных Статистические основы маш.обучения • Нас интересует качество работы алгоритма на новых данных • надо связать имеющиеся данные с теми, которые придется обрабатывать в б будущем • Данные, с неизвестными ответами Выход: использование теории вероятностей и мат. мат статистики • Значения признаков, внутренние состояния системы считаем случайными у величинами • Будем считать, что имеющиеся данные и данные, которые придется обрабатывать в будущем одинаково распределены Обучающая выборка Формальные постановки задач регрессии, классификации и кластеризации Представление данных • Представление информации • каждое наблюдение будем представлять в виде вектора признаков • Это могут быть признаки регионов, линий, и.т.п • Об Обучающая выборка б Tm : • В случае задач классификации и регрессии обучающая выборка Tm состоит из векторов признаков X={xi} и известных выходов y={yj} • В случае задачи кластеризации обучающая выборка Tm состоит только из векторов признаков X={xi} Бинарная классификация • Дана обучающая выборка • Объекты независимы и взяты из некоторого неизвестного распределения (xi , yi ) Ρ(x, y ) • Цель: для всех новых значений x X m = {( x1 , y1 ) , ..., ( x m , ym )} (xi , yi ) ∈ R m × Y , Y = {−1, 1 +1} оценить значения Ρ ( y | x ) X2 ? X1 Многоклассовая классификация • Дана обучающая выборка • Объекты независимы и взяты из некоторого неизвестного распределения m {1 K } X m = {( x1 , y1 ) , ..., ( x m , ym )} (xi , yi ) ∈ R × Y , Y = {1,..., (xi , yi ) • Ρ(x, y ) цель: для всех новых значений X оценить значения Ρ ( y | x ) X2 ? X1 Регрессия • • Дана обучающая выборка X m = {( x1 , y1 ) , ..., ( x m , ym )} Объекты независимы и взяты из некоторого неизвестного распределения (xi , yi ) • (xi , yi ) ∈ R m × Y , Y = R Ρ(x, y ) Цель: для всех новых значений X оценить значение: Ε ( y | x ) Y X Кластеризация • Дана обучающая выборка • Объекты независимы и взяты из некоторого неизвестного распределения xi Ρ(x) • цель: для всех новых значений x оценить значения X m = {x1 , ..., x m } xi ∈ R m Ρ (x) X2 X1 Кластеризация • Дана обучающая выборка • Объекты независимы и взяты из некоторого неизвестного распределения xi Ρ(x) • цель: для всех новых значений x оценить значения X m = {x1 , ..., x m } xi ∈ R m Ρ (x) X2 X1 Классификация Парадигмы машинного обучения • Воспроизводящий подход (generative approach) • Используем формулу Байеса P ( y | x) = P( x | y ) ⋅ P( y) P( x) • моделируем каждый класс отдельно, для этого оцениваем P ( x | y ) , P( y ) д д основан на идее д вероятностного р моделирования д р • подход • постановка задачи напоминает кластеризацию • Дискриминантный подход (discriminative approach) • нас интересует P ( y | x ) , ее и будем оценивать • постановка задачи напоминает регрессию Дискриминантный подход • Дискриминантный подход • забудем про P ( x | y ) и P ( y ) • нас интересует P ( y | x ) , ее и будем оценивать • Алгоритмы: • Ближайший сосед • Решающие деревья • Решающий лес • Есть и другие! Общая схема подхода • Результат обучения – функция от вектора признаков f(x) • Будем выбирать функции f из параметрического семейства F (т.е. будем выбирать подходящий набор параметров) • введем некоторую функцию потерь L(f(x), y), • в случае у классификации ф используют у где f (x) - предсказанный класс. • L( f (x), y ) = I [ y ≠ f (x)] цель состоит в том, чтобы найти набор параметров классификатора, при котором потери для новых данных будут минимальны , Решающее правило • Функция f(x) – решающее правило • Любое решающее правило делит пространство на решающие регионы разделенные решающими границами Decision Общий риск • Общий риск – математическое ожидание потерь: R ( f ) = Ε ( L ( f (x), ) y )) = ∫ L( f (x)), y)dP x, y • рассчитать невозможно, поскольку распределение P неизвестно Эмпирический риск • Пусть X m = {x , ..., x }- обучающая выборка 1 m • Эмпирический риск (ошибка тренировки): m 1 Remp ( f , X m ) = ∑ L( f ( xi ), ) yi ) m i =1 • Метод минимизации эмпирического риска: f = arg min Remp ( f , X m ) f ∈F Замечание • Гипотез, имеющих нулевой эмпирический риск может также существовать неограниченное количество: Наиболее частная гипотеза Золотая середина? Наиболее общая гипотеза Явление переобучения • Искусственный пример: задача регрессии • На самом деле , - нормально распределенный шум • Но мы этого не знаем • Есть обучающая выборка, требуется восстановить зависимость Явление переобучения • Будем выбирать целевую зависимость среди параметризованного множества - полиномов порядка M • Введем функция потерь • Среди множества полиномов будем выбирать тот, который приносит наименьшие суммарные потери на обучающей выборке Явление переобучения Явление переобучения Явление переобучения Явление переобучения Явление переобучения Явление переобучения Явление переобучения • Причина – гипотеза хорошо описывает свойства не объектов в целом, но только лишь объектов из обучающей выборки: • Слишком много степеней свободы параметров модели алгоритма (слишком сложная модель) • Шум в данных • Плохая обучающая у щ выборка р Теория Вапника-Червоненкиса • Теория, предложенная русским математиком Владимиром Вапником, Вапником для оценки обобщающей способности алгоритмов • Основные результаты теории: • Оценка сложности (емкости) параметрического семейства функций • Оценка качества алгоритма через эмпирический риск и сложность модели Принцип структурной минимизации риска • Основная идея - «Выбрать модель наиболее простую из достаточно точных» • Пусть есть последовательность вложенных параметрических семейств возрастающей сложности F1 ⊂ F2 ⊂ ... ⊂ Fh = F • Выберем р семейство с минимальной сложностью, но обеспечивающее нужную точность Иллюстрация Слишком простая? Слишком сложная Оптимальная? Практический вывод из VC теории • Требуется баланс между сложностью модели, обеспечивающей низкий эмпирический риск и простотой, обеспечивающей способность к обобщению б б Методы классификации Классификатор – ближайший сосед • NN – Nearest Neighbour • Назначаем Н объекту б метку б ближайшего й прецедента из обучающей выборки from Duda et al. Диаграмма вороного для разбиения пространства признаков на 2 класса Source: D. Lowe К ближайших соседей • Для каждой точки найти k ближайших точек из обучающей выборки • Метки k точек голосуют за метку • Работает неплохо при наличии большой обучающей выборки б и хорошей й функции ф б близости k=5 Source: D. Lowe Свойства метода ближайшего соседа • Плюсы + Просто и наглядно + Легко анализируемо + Единственный метод для работы с огромным количеством классов (тысячи) • Минусы – Требуется много примеров для аппроксимации сложных поверхностей – Низкая обобщающая способность Решающие деревья • Classification trees • Двоичное Д дерево • Узлы: π 0 (x ) • П Помечены некоторым предикатом π : X → bool • Связи: ⎧ true ⎫ • Помечены ⎨ ⎬ false ⎩ ⎭ • Листья: • Помечены ответами из Y f l false true π 1 (x ) true y = +1 y = +1 f l false y = −1 Пример решающего дерева 3 4 5 2 4 1 2 3 5 6 1 7 6 7 Slide by Victor Lempitsky Качество разбиений: энтропия E(S) = 0 Энтропия Шэннона E(S) : pj = E(S) = 1 Mj M Slide by Victor Lempitsky Обучение дерева решений function Node = Обучение_Вершины( {(x,y)} ) { if {y} одинаковые return Создать_Лист(y); test = Выбрать_лучшее_разбиение( {(x,y)} ); {(x0 y0)} = {(x,y) {(x0,y0)} {(x y) | test(x) = 0}; {(x1,y1)} = {(x,y) | test(x) = 1}; LeftChild = Обучение_Вершины( {(x0,y0)} ); Ri htChild = Обучение_Вершины( RightChild Об В ( {(x1,y1)} {( 1 1)} ); ) return Создать_Вершину(test, LeftChild, RightChild); } //Обучение дерева function main() () { {(X,Y)} = Прочитать_Обучающие_Данные(); TreeRoot = Обучение_Вершины( {(X,Y)} ); } Slide by Victor Lempitsky Переобучение и обрезка дерева B A C D Slide by Victor Lempitsky Свойства решающих деревьев • Плюсы + Просто и наглядно • Минусы – Плохо аппроксимирует сложные поверхности + Легко анализируемо + Быстро работает + Легко применяется для задач со множеством классов и к регрессии р р – В общем случае, требует сложных алгоритмов «обрезания» для контроля сложности Комитетные методы • Если взять множество правил (экспертов), с некоррелированной ошибкой (ошибаются в разных местах) местах), то их комбинация может быть работать во много раз лучше • Такие методы называются комитетными От дерева к лесу 1 Y 1. Yalili A Amit, it D Donald ld G Geman: Shape Sh quantization ti ti and d recognition iti with ith randomized d i d ttrees. Neural Computation, 1997. 2. Leo Breiman: Random forests. Machine Learning, 2001. Slide by Victor Lempitsky Решающий лес - применение Slide by Victor Lempitsky Решающий лес - обучение function Node = Обучение_Вершины( Обучение Вершины( {(x,y)}, {(x y)} Level) { if {y} одинаковые или Level == maxLevel return Создать_Лист(Распределение y); {tests} = Создать_N_Случайных_Разбиений({(x,y)},N); test = Выбрать_лучшее_разбиение_из({tests}); Выбрать лучшее разбиение из({tests}); {(x0,y0)} = {(x,y) | test(x) = 0}; {(x1,y1)} = {(x,y) | test(x) = 1}; LeftChild = Обучение_Вершины( {(x0,y0)}, Level+1); RightChild = Обучение_Вершины( Обучение Вершины( {(x1,y1)}, {(x1 y1)} Level+1); return Создать_Вершину(test, LeftChild, RightChild); } //Обучение леса function main() { {X,Y} = Прочитать_Обучающие_Данные(); for i = 1 to N {Xi Yi} = Случайное_Подмнжество({X,Y})); {Xi,Yi} Случайное Подмнжество({X Y})); TreeRoot_i = Обучение_Вершины({Xi,Yi}); end } Slide by Victor Lempitsky Бэггинг Vs Рандомизированный лес • Если только случайные подмножества данных (с повторениями) • Бэггинг (Bagging) • Если и рандомизированные правила при построении р решения р • Рандомизированный решающий лес (Random Forest) Решающий лес – свойства 1. Один из самых эффективных алгоритмов классификации 1 2. Вероятностное распределение на выходе 3. Применим для высоких размерностей пространства признаков 4. Высокая скорость обучения и тестирования 5. Относительная простота реализации Caruana, R C R., Ni Niculescu-Mizil, l Mi il A A.: A An empirical i i l comparison i off supervised learning algorithms, 2006 Slide by Victor Lempitsky Методы экспериментальной оценки качества алгоритмов Как оценить, насколько хорошо обучился алгоритм? • П Предположим, что обучать б машину мы уже умеем Алгоритм обучения Об Обученная машина Данные Ответ Вопрос р Экспериментальная оценка качества • Для конкретной задачи, важно получить точные количественные оценки качества работы • полезно для того, чтобы выбрать параметры алгоритма обучения • нужно для отчетности • Используются экспериментальные методы: • • • • Удерживание Скользящий контроль 5-2 5 2 контроль … Общий риск • Общий Об й риск: R ( f , X ) = PX m ( f ( x) ≠ y ) = ∫ P ( x) [ f ( x) ≠ y ] dx X • Его минимизация для нас является основной целью • Однако, напрямую его посчитать невозможно (требует вычислений на неограниченном множестве) Удерживание • Оценим общий риск ошибкой на некотором конечном подмножестве X не пересекающимся с обучающей выборкой: c 1 R ( f , X ) ~ P ( f ( x) ≠ y | X c ) = ∑ ⎡⎣ f ( x j ) ≠ y j ⎤⎦ c j =1 Удерживание • Пусть, имеется набор данных X k = {x1 ,..., xk } с известными ответами • Разобьем X l U X c = X k : X l I X c = 0 • Будем у использовать для обучения у X l , а для контроля X c • То есть: P( f ( x) ≠ y ) ≈ P ( f ( x) ≠ y | X c ) Характеристики «удерживания» • Быстро и просто Б рассчитывается • Некоторые «сложные» прецеденты могут полностью попасть в только одну из выборок и тогда оценка ошибки будет смещенной Обучение Ошибка произойдет р не по вине классификатора, а из-за разбиения! Контроль Повторное удерживание • Если р разбиение на контроль р и обучение у может быть не устойчивым, то почему бы не провести его много раз и не усреднить? • Такой методикой мы частично избавимся от проблемы «сложных прецедентов»; • НО, НО вероятность того того, что какие-то какие то прецеденты ни разу не попадут в контрольную выборку всё равно велика; • Процесс становиться сильно рандомизированным; Скользящий контроль • Разделим выборку на d непересекающихся частей и будем поочередно использовать одно из них для контроля а остальные для тренировки {X } : X • Разбиваем: Р б i d 1 i ∩ X j = 0, i ≠ j d i k X = X U i =1 • Приближаем риск: 1 d P( f ( X ) = y*)) ≈ ∑ P( f ( X i ) ≠ y * | U X i ) d i =1 i≠ j k Иллюстрация X k = {x1 ,..., xk } X1 X2 X3 Контроль Обучение X4 X5 Результат считается как средняя ошибка по всем итерациям Свойства • В пределе равен общему риску • Каждый прецедент будет один раз присутствовать в контрольной выборке • Обучающие выборки будут сильно перекрываться (чем больше сегментов, сегментов тем больше перекрытие) • Если одна группа «сложных прецедентов» попала полностью в один сегмент, то оценка будет смещенной Обучение параметров алгоритма • У самого алгоритма обучения есть параметры, которые приходится как-то подбирать • Число деревьев в лесу • Глубина дерева • Простая схема подбора параметров: • N раз повторяем схему обучения со скользящим контролем • Выбираем параметры, при которых обучение оказалось наилучшим 5-2 контроль • 5-2 сross 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 рода 0 и ошибке I рода 0.5 P( f ( x) = −1| y = +1) = 0.5 • Общая ошибка всего лишь P(a ( x) ≠ y ) = 0.005 Чувствительность vs Избирательность • Чувствительность – вероятность дать правильный ответ на пример основного класса sensitivity = P( f ( x) = y | y = +1) • Также уровень обнаружения (detection rate) • Избирательность – вероятность дать правильный й ответ на пример вторичного класса specificity = P( f ( x) = y | y = −1) Регулировка баланса • Почти все алгоритмы р классификации допускают регулировку соотношения ошибки I и II рода за счет варьирования некоторого параметра ROC кривая • ROC – Receiver Operating Characteristic curve • Кривая, отражающая зависимость чувствительности и ошибки второго рода Лучший случай монетка ROC кривая - Построение • Для различных значений параметра строится таблица ошибок • • • Сам параметр в таблице не участвует! Классификатор строится и оценивается на разных выборках! По таблице строиться набор точек в плоскости sensitivity/FP – Каждая строка таблицы - точка • По точкам строиться кривая Sensitivity False Positive 00 0.0 00 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 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 0 1367 Построение ROC: таблица • Меняем порог и оцениваем ошибку Sensitivity False Positive 0.0 0.0 0.25 0.5 05 0.5 08 0.8 … … 1.0 1.0 p(+1| x) Построение ROC-кривой • По таблице строим точки • Точки интерполируем р ру кривой р Итоги • Понятие машинного обучения «на пальцах» • Примеры задач классификации классификации, регрессии, регрессии кластеризации • Классификация ф ц • Явление переобучения • Немного теории (Вапник-Червоненкис) • Метод ближайшего соседа • Решающее дерево • Решающий лес • Экспериментальные методы оценки классификаторов ф р •Удерживание, скользящий контроль •Ошибка I и II рода •ROC OC кривая На следующей лекции… • Поиск объектов (лиц) • Бустинг • Детектор Violo-Jones • К Классификация ф изображений • «Мешок слов»