Ml_presweka.pdf

  • Uploaded by: Az Rex
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ml_presweka.pdf as PDF for free.

More details

  • Words: 55,349
  • Pages: 833
МАШИННОЕ ОБУЧЕНИЕ И АНАЛИЗ ДАННЫХ (Machine Learning and Data Mining)

Н. Ю. Золотых http://www.uic.unn.ru/~zny/ml Редакция: 12 декабря 2018 г.

Глава 1 Постановки и примеры задач

1.1. Что такое машинное обучение? Идея обучающихся машин (learning machines) принадлежит А. Тьюрингу (A. Turing Computing Machinery and Intelligence // Mind. 1950. V. 59. P. 433–460; перепечатно: Can the Machine Think? // World of Mathematics. Simon and Schuster, New York. 1956. V. 4. P. 2099–2123; рус. перев.: А. М. Тьюринг Может ли машина мыслить? // М.: Физматлит, 1960)

Машинное обучение — процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано). A.L. Samuel Some Studies in Machine Learning Using the Game of Checkers // IBM Journal. July 1959. P. 210–229. Говорят, что компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P , если качество решения задач из T , измеренное на основе P , улучшается с приобретением опыта E. T.M. Mitchell Machine Learning. McGraw-Hill, 1997.

• На практике фаза обучения может предшествовать фазе работы алгоритма (например, детектирование лиц на снимке) — batch learning • или обучение может проходить в процессе функционирования алгоритма (например, определение почтового спама) — online learning. Например, • Программа распознавания рукописных символов, после предъявления ей серии таких символов с правильными ответами, начинает распознавать точнее. • Программа игры в шахматы после серии проведенных игр начинает играть лучше. • Распознавание спама после обучения на примерах происходит точнее.

Alan Mathison Turing (1912–1954)

Arthur Lee Samuel (1901–1990) Исследования по машинному обучению — примерно с 1949 г.

Frank Rosenblatt (1928–1971) Программная реализация персептрона — 1957 г. Первый нейронный компьютерер — MARK 1 — 1958 г.

Н. Н. Носов «Незнайка в Солнечном городе», 1958 Быстро приблизившись, автомобиль остановился у тротуара, и дверцы его открылись. – Где же водитель? – с недоумением спросил Незнайка, заметив, что водителя за рулем не было. – А водителя и не нужно, – ответил Кубик. – Это автоматическая кнопочная машина. Вместо водителя здесь, как видите, расположены кнопки с названиями улиц и остановок. Вы нажимаете нужную кнопку, и машина сама везет вас куда надо. Все сели в машину. Кубик сказал: – Вот смотрите, я нажимаю кнопку, где написано: «Архитектурная улица», и. . . Он нажал одну из кнопок на щитке приборов, и. . . машина тронулась с места. – Стойте, что вы делаете? – закричал Пестренький, хватая Кубика за руку. – А вдруг машина наедет на кого-нибудь? – Машина не может ни на кого наехать, потому что в ней имеется ультразвуковое локаторное устройство, при помощи которого предотвращается возможность какого бы то ни было наезда или столкновения, – сказал Кубик. – Обратите внимание на два больших рупора, которые установлены впереди. Один рупор все время посылает вперед ультразвуковые сигналы. Как только впереди появляется какое-нибудь препятствие, ультразвуковые сигналы начинают отражаться, то есть как бы отскакивать от него обратно, и попадают во второй рупор. Здесь ультразвуковая энергия преобразуется в электрическую. Электрическая же энергия включает тормоз или механизм поворота. Если препятствие небольшое, машина его объедет, так как включится механизм поворота; если большое – остановится, потому что включится тормоз. Такие же рупоры имеются у машины сзади и по бокам, для того чтобы ультразвуковые сигналы могли посылаться во все стороны. . .

– А какие это ультразвуковые сигналы? – спросил Незнайка. – Это. . . как бы вам сказать. . . такие очень тоненькие звуки, что мы с вами их даже слышать не можем, но они все-таки обладают энергией, как и те звуки, которые мы слышим. В это время машина подъехала к перекрестку и остановилась у светофора. – В машине также имеется оптическое устройство, которое включает тормоз при красном светофоре, – сказал Кубик. Автомобиль действительно неподвижно стоял перед светофором до тех пор, пока не погас красный свет и не включился зеленый. – Что ж, в этом ничего удивительного нет, – сказал Пестренький. – Удивительно только, откуда машина знает, куда надо ехать. – Машина, безусловно, ничего знать не может, – ответил Кубик. – Но все же она отвезет вас куда надо, после того как вы нажмете кнопку, потому что в механизме имеется так называемое электронное запоминающее устройство. Запоминающим это устройство называется потому, что машина как бы запоминает маршруты, по которым ездит. Каждый новый автомобиль, оборудованный этим устройством, первое время ездит с водителем и проходит как бы курс обучения. Начиная такие учебные поездки, водитель обычно нажимает кнопку с названием какой-нибудь улицы, после чего ведет машину на эту улицу, потом нажимает кнопку с названием другой улицы и ведет машину на другую улицу. Рулевое управление автомобиля связано с электронным запоминающим устройством, поэтому когда в следующий раз нажимают кнопку, то электронное устройство само направляет автомобиль по заданному маршруту, и машина может ехать совсем без водителя. – Ну, если так, то действительно ничего удивительного нет, – сказал Пестренький. – Вот если бы никакого устройства не было, а машина сама везла нас куда надо – это было бы удивительно.

1.2. Что такое (интеллектуальный) анализ данных (data mining)? Data Mining (добыча данных, интеллектуальный анализ данных, глубинный анализ данных) — совокупность методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности. [Г. Пятецкий-Шапиро, 1989]

Тихо Браге (1546–1601) и Иоганн Кеплер (1571–1630)

1.2.1. Анализ данных (data mining) vs машинное обучение (machine learning) Data Mining (добыча данных, интеллектуальный анализ данных, глубинный анализ данных) — совокупность методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности. [Г. Пятецкий-Шапиро, 1989] Итак, и ML, и DM извлекают закономерности («знания») из данных, но (немного) с разными целями: • ML — чтобы обучить машину; • DM — чтобы обучить человека. Поэтому • в ML минимизируют ошибку; • в DM важна интерпретируемость результата.

Machine Learning vs Data Mining

Содержательные постановки задач

ML

DM

Machine Learning vs Data Mining

Математические постановки задач

Содержательные постановки задач

ML

DM

ML

DM

Machine Learning vs Data Mining

Методы

Математические постановки задач

Содержательные постановки задач

ML

DM

ML

DM

ML

DM

Есть немного другая точка зрения на вопрос, чем ML отличается от DM: Data Mining имеет дело с содержательными задачами, а Machine Learning — с математической теорией, отсюда немного странные термины, например, «алгоритмы машинного обучения в анализе данных»

1.2.2. Смежные и близкие области • Pattern Recognition (распознавание образов) Pattern Recognition ⊂ Machine Learning Хотя иногда считают, что Pattern Recognition ≈ Machine Learning • Data Mining (интеллектуальный анализ данных) Две точки зрения: – Data Mining и Machine Learning имеют дело с различными содержательными постановками задач, но методы у них в целом совпадают. Data Mining ∩ Machine Learning 6= 0/ – Data Mining имеет дело с содержательными задачами, а Machine Learning — с математической теорией, отсюда немного странные термины, например, «алгоритмы машинного обучения в анализе данных» • Artificial Intelligence (искусственный интеллект) Machine Learning ⊂ Artificial Intelligence

1.2.3. Аппарат Теория вероятностей и математическая статистика Линейная алгебра Методы оптимизации Численные методы Математический анализ Дискретная математика и др.

1.2.4. Дедуктивное и индуктивное обучения У людей обучение происходит в результате ознакомления с правилами, теориями, инструкциями и т. п. и/или на основе опыта (собственного или чужого). По аналогичному принципу можно выделить различные способы обучения и в искусственных системах: • Дедуктивное, или аналитическое, обучение (экспертные системы).

Имеются знания, сформулированные экспертом и как-то формализованные. Программа выводит из этих правил конкретные факты и новые правила.

• Индуктивное обучение (≈ статистическое обучение).

На основе эмпирических данных программа строит общее правило. Эмпирические данные могут быть получены самой программой в предыдущие сеансы ее работы или просто предъявлены ей. (Определение Митчелла относится только к такому обучению)

• Комбинированное обучение. В курсе рассматривается только индуктивное обучение (обучение «на опыте»).

1.2.5. Классификация задач индуктивного обучения • Обучение с учителем (supervised learning): – классификация – восстановление регрессии – ... • Обучение без учителя (unsupervised learning): – кластеризация – понижение размерности – ... • Обучение с подкреплением (reinforcement learning) • ... В курсе рассматривается обучение с учителем и обучение без учителя.

1.3. Обучение с учителем Множество X — объекты, примеры, входы (samples) Множество Y — ответы, отклики, «метки», выходы (responses) Имеется некоторая зависимость (детерминированная или вероятностная), позволяющая по x ∈ X предсказать (или оценить вероятность появления) y ∈ Y . (в частности, если зависимость детерминированная, то существует f ∗ : X → Y ) Зависимость известна только на объектах из обучающей выборки:  (1) (1) (2) (2) (N ) (N ) (x , y ), (x , y ), . . . , (x , y ) Пара (x(i), y (i)) ∈ X × Y — размеченный объект, или прецедент. Задача обучения с учителем: восстановить зависимость, т. е. найти функцию f : X → Y , предсказывающую по x ∈ X ответы y ∈ Y . т. е. для детерминированной зависимости найти f (x) ≈ f ∗ (x), x ∈ X . Иными словами, задача обучения с учителем — это задача аппроксимации. Можем требовать не нахождения функции f , а оценки вероятности Pr (y | x) Функция f называется решающей функцией, решающим правилом или моделю.

• Медицинская диагностика Симптомы → заболевание • Фильтрация спама Письмо → спам/не спам

• Рекомендательные системы Прошлые покупки → рекомендация • Компьютерное зрение Изображение → что изображено

• Распознавание текста Рукописный текст → текст в машинном коде

• Компьютерная лингвистика Предложение на русском языке → Дерево синтаксического разбора • Машинный перевод Текст на русском языке → перевод на английский • Распознавание речи Аудиозапись речи → текст • ...

1.3.1. Схема обучения с учителем

Гиперпараметры алгоритма

Обучающая выборка (x(1), y (1)), . . . , (x(N ), y (N ))

Алгоритм обучения

Решающая функция f (x)

Алгоритм обучения подстраивает некоторые (внутренние) параметры решающей функции по обучающей выборке. В отличие от внутренних параметров гиперпараметры (это параметры алгоритма обучения или параметры рассматриваемого класса решающих функций) не настраиваются алгоритмом обучения, а задаются исследователем.

1.3.2. Признаковые описания Вход: x = (x1, x2, . . . , xd) ∈ X = Q1 × Q2 × · · · × Qd, xj — j-й признак (свойство, атрибут, предикативная переменная, feature) объекта x. • Если Qj конечно, то j-й признак — номинальный (категориальный или фактор). Например, Qj = {Alfa Romeo, Audi, BMW, . . . , Volkswagen}

Конечно, в этом случае можно считать, что Qj = {1, 2, . . . , Mj }, но арифметические операции и сравнения с этими значениями не имеют смысла. Если |Qj | = 2, то признак бинарный и можно считать, например, Qj = {0, 1}. • Если Qj конечно и упорядочено, то признак порядковый.

Например, Qj = {Beginner, Elementary, Intermediate, Advanced, Proficiency}

• Если Qj = R (или Qj ⊆ R), то признак количественный, или числовой. • В частности, Qj = Z (или Qj ⊆ Z) — признак дискретный • Бывают более сложные типы признаков (напр., признак — это текст, граф, . . . )

Выход: y ∈ Y • Y = {1, 2, . . . , K} — задача классификации. Номер класса k ∈ Y X разбивается на K классов

Xk = {x ∈ X : f ∗(x) = k}

(k = 1, 2, . . . , K).

По x требуется предсказать, какому классу он принадлежит. В этом случае построенная решающая функция f называется классификатором. • Y = R — задача восстановления регрессии (или просто задача регрессии, регрессионная задача). Требуется найти функцию f из определенного класса, которая аппроксимирует неизвестную зависимость. В этом случае построенная решающая функция f называется регрессией∗ . Ситуация, когда y — вектор, сводится к несколькими задачам со скалярным (атомарным) выходом. y может быть чем-то более хитрым, например, графом, деревом, цепочкой символов (нефиксированной длины) — структурное машинное обучение (structured learning)

В мат. статистике xj называют «независимыми» или предикативными (объянаяющими) переменными, а y — «зависимой».

Значения признаков объектов из обучающей выборке и соответствующие ответы обычно записывают в матрицы: 

(1)

x1

(1)

x2

(1)

. . . xd



   x(2) x(2) . . . x(2)   2 d  X= 1 ,  ..................    (N ) (N ) (N ) x1 x2 . . . xd 

(1)

x1

(1)

x2



   y=  

(1)

. . . xd

y (1)

y (1)



 y   ..    y (N ) (2)



   x(2) x(2) . . . x(2) y (2)    2 d (X | y) =  1   .................. ...    (N ) (N ) (N ) (N ) x1 x2 . . . xd y

1.3.3. Примеры практических задач Медицинская диагностика По набору определенных характеристик пациента (симптомов), таких как температура тела, артериальное давление, содержание гемоглобина в крови и т. п., требуется определить, какое у больного заболевание (и болен ли он вообще). Объектами являются пациенты, их признаковым описанием — набор характеристик, а выходом — номер класса. Могут встречаться признаки разных типов: • бинарные (пол, наличие головной боли), • номинальные (боль может быть тупой, режущей, колющей и т. п.), • порядковые (состояние больного может быть удовлетворительным, средней тяжести, тяжелым, крайне тяжелым), • количественные (температура тела, пульс, давление).

Имеются данные о 114 лицах с заболеванием щитовидной железы. У 61 — повышенный уровень свободного гормона T4, у 53 — уровень гормона в норме. Признаки: • heart — частота сердечных сокращений (пульс), • SDNN — стандартное отклонение длительности RR-интервалов. Можно ли научиться предсказывать (допуская небольшие ошибки) уровень свободного Т4 по heart и SDNN у новых пациентов?

120 90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

120 90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

120 90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

Пример pima Имеется информация о 768 пациентках Все признаки количественные: 1. количество беременностей, 2. содержание глюкозы в крови, 3. кровяное давление, 4. толщина складки кожи на трицепсе, 5. 2-х часовой сывороточный инсулин, 6. индекс массы тела (масса/рост2), 7. диабетическая родословная функция, 8. возраст. Y = {есть диабет, нет диабета} Имеем 768 точек в 8-мерном пространстве.

1

0

1

1

0

1

0

1

0

1

0

1

60 BMI

0

60 40 20

0.0

1.0

Age

2.0

80

0

20

400

Insulin

80 40

80 0

0

40

0

40

Diastolic

150 0

1 800

0

0

Triceps Diabetes

50

Glucose

10 5 0

Pregnant

15

120

О расположении точек можно судить по 8 бокс-диаграммам («ящикам с усами»)

Границы ящика — первый и третий квартили (Q1, Q3), линия в середине соответствует медиане (Q2). Усы: Q1 − k(Q3 − Q1); Q3 + k(Q3 − Q1); k = 1.5. Наблюдения, выходящие за «усы», изображаются точками (выбросы).

50

100

glucose

150

200

Проекции точек на двумерную координатную плоскость переменных bmi (масса/рост2), glucose (содержание глюкозы).

20

30

40

50 bmi

60

Автоматическое определение заболевания по ЭКГ

В задачах медицинской диагностики может ставиться другая цель: определить оптимальный курс лечения (это может быть как задача классификации, так и задача восстановления регрессии), оценить оптимальную дозу лекарства (задача восстановления регрессии), спрогнозировать время протекания болезни (задача восстановления регрессии) и т. п.

Распознавание изображений Например, распознавание рукописного символа (цифры) по его изображению. Данные optdigit http://www.ics.uci.edu/~mlearn/MLRepository.html содержат 1934 размеченных черно-белых изображений цифр 32 × 32. 1 — пиксел черный, 0 — пиксел белый. Признаковое описание — бинарный вектор x длины 322 = 1024. X = {0, 1}1024. Y = {0, 1, 2, . . . , 9}

Некоторые объекты из обучающей выборки

ImageNet ILSVRC-2012 (около 1 млн. изображений, 1000 классов)

Детектирование объектов

Замечание. В настоящее время в компьютерном зрении используются сложные признаковые описания и изобретательные методы по их детектированию и описанию (SIFT, SURF, GLOH, HOG и др.), правда метод глубокого обучения позволил синтез признаков сделать во многих задачах автоматическим.

• Отбор признаков (features selection) — выбор значимых (информативных) признаков • Синтез признаков (features extraction) — генерация новых признаков как функций от исходных («сырых») признаков Обе задачи решают • вручную (специалисты в своих предметных областях), • существуют автоматические методы отбора/синтеза признаков.

Распознавание спама «Bag of words» — модель представления текста как набора (мультимножества, bag — сумки) слов, входящих в него. При этом, как правило, не делают различий между разными формами одного и того же слова. Для этого слова приводят к начальной (канонической) форме (лемме) или находят основу слова (stem). Процесс нахождения основы слова называется стеммингом (stemming).

Данные из SMS Spam Corpus http://www.esi.uem.es/jmgomez/smsspamcorpus Almeida, T.A., Gomez Hidalgo, J.M., Yamakami, A. Contributions to the study of SMS Spam Filtering: New Collection and Results. Proceedings of the 2011 ACM Symposium on Document Engineering (ACM DOCENG’11), Mountain View, CA, USA, 2011.

like pleas will

callsendneed

still make good

txt getwait week now ill new think phone

day say

work

back repli

dont

home ask today one lor know later

meet sorri

come free

stop take

cant

well

just see tell time textmobil got

wantlove

can

hope

mobil

min

award urgent rington custom text ppmtri cost phone tone nokia stop will won messag

callclaim

pleas

new

chat

txt

chanc

line

contact

collect

well

miss later

feel

take illmeet wat

today

get

work

come

per

cash

box

offer

prize week

free

repli get

show send latest receiv everi servic todaywin draw day

dear know say night

hope

will hey

just

now

wait

got

voucher

think

guarante

can sorrigood thing

time still lor

love one back now day justmuch see like home ask

dont call happi send cant make way tell

need

want

Цена на недвижимость Price

цена квартиры (тыс. руб.)

Date

№ дня, в который квартира выставлена на продажу

Lat

географическая широта объекта недвижимости

Lng

географическая долгота объекта недвижимости

Housing тип недвижимости (0 — вторичное жилье, 1 — новостройка) Floors

количество этажей в доме

House

тип дома (Block — блочный, Brick — кирпичный, Monolithic — монолитный, Panel — панельный, Wooden — деревянный)

Rooms

количество комнат (0 — квартира-студия)

Floor

№ этажа

Area

площадь квартиры (м2)

Выборка содержит 72379 записей.

100

300

43.75

44.05

5

15

5

15

2000

Price

100

Date

56.20

Lat

0.0 0.8

43.75

Lng

20

Housing

3

5

Floors

15

0

Rooms

120

5

Floor

20

Area 2000

56.20 56.35

0.0

0.6

0

2

4

20

80

50 100

Area 150

0

2000

4000

Price 6000

8000

10000

0 1 2 3

Rooms 4 5 6

0

2000

4000

Price 6000

8000

10000

56.40 56.35 Lat

56.30 56.25 56.20 43.75

43.80

43.85

43.90 Lng

43.95

44.00

44.05

44.10

Синтаксический разбор предложений (синтаксический анализ) На вход подается предложение. Необходимо провести его синтаксический анализ, т. е. определить члены предложения и построить дерево синтаксической зависимости. Ровно в пять часов мы перешагнули порог комнаты заседаний (А. и Б. Стругацкие)

Ровно

в пять часов

мы

перешагнули

порог

комнаты

заседаний

Ровно

в пять часов

мы

перешагнули

порог

комнаты

заседаний

Существуют алгоритмы, основанные на правилах, и алгоритмы, использующие методы машинного обучения (структурное обучение)

Дерево синтаксического разбора обычно проективное. Исключения встречаются в разговорной и поэтической речи.

Я

памятник

себе

воздвиг

нерукотворный

1. Сегментация предложений 2. Лексический анализ (токенизация) — определение слов 3. Морфологический анализ — определение грамматической категории для каждого слова 4. Синтаксический анализ Задачу синтаксического разбора можно поставить как задачу построения проективного дерева минимального веса, где веса подбираются на основе обучения по большой базе разобранных (вручную) предложений. Для русского языка — «Национальный корпус русского языка» (http://www.ruscorpora.ru).

1.4. Обучение без учителя Обучение с учителем можно рассматривать как игру двух лиц: ученика, который должен восстановить зависимость, и учителя, который для объектов из обучающей выборки указывает ученику соответствующий им выход. Иногда можно считать, что объекты из обучающей выборки предъявляются средой, а иногда — их выбирает сам учитель, в некоторых случаях их выбирает ученик (активное обучение). В случае обучения без учителя нет учителя и «обучающая выборка» состоит только из объектов. Ученик, имея только список объектов x(1), x(2), . . . , x(N ), должен определить, как объекты связаны друг с другом. Например, разбить объекты на группы (кластеры), так, чтобы в одном кластере оказались «похожие» друг на друга объекты, а в разных кластерах — «мало похожие».

Цели обучения без учителя • в Data Mining: выявлять структуру в данных для лучшего их понимания; • в Machine Leanring: как предварительный этап при решении задачи обучения с учителем (например, сокращение размерности (PCA и др.) или решаем задачу кластеризации, а потом в каждом кластере — свою задачу классификации и т. п.).

1.4.1. Примеры практических задач Пример 1. Старый служака Рассмотрим данные о времени между извержениями и длительностью извержения гейзера «Старый служака», Йеллоустонский национальный парк, Вайоминг, США (А. Azzalini, A.W. Bowman A look at some data on the Old Faithful geyser // Applied Statistics. 1990, 39. P. 357–365.)

70 60 50

waiting

80

90

Диаграмма, представляющая данные о времени извержения и промежутках между извержениями гейзера (время в минутах).

1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

Мы видим, что точки группируются в два кластера. В одном кластере находятся точки, соответствующие извержениям с малой длительностью и малым временем ожидания. В другом — с большой длительностью и большим временем ожидания.

90 80 waiting

70 60 50 1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

Пример 2. Анализ данных, полученных с биочипов Биочип, или микроэррэй, (biochip, microarray) — это миниатюрный прибор, измеряющий уровень экспрессии генов в имеющемся материале. Экспрессия — это процесс перезаписи информации с гена на РНК, а затем на белок. Количество и даже свойства получаемого белка зависят не только от гена, но также и от различных внешних факторов (например, от введенного лекарства, или от того, болеет клетка или нет). Таким образом, уровень экспрессии — это мера количества генерируемого белка. На биочип кроме исследуемого материала помещается также «контрольный» генетический материал. Положительные значения (красный цвет) — увеличение уровня экспрессии по сравнению с контрольным. Отрицательные значения (зеленый цвет) — уменьшение.

Условное изображение биочипа. Каждая точка на рисунке соответствует определенному гену. Всего анализируется 132 × 72 = 9504 гена. Brown, V.M., Ossadtchi, A., Khan, A.H., Yee, S., Lacan, G., Melega, W.P., Cherry, S.R., Leahy, R.M., and Smith, D.J.; Multiplex three dimensional brain gene expression mapping in a mouse model of Parkinson’s disease; Genome Research 12(6): 868-884 (2002).

Пусть было проведено несколько экспериментов, в которых на биочип размещался контрольный и другие генетические материалы (например, с больными клетками). Информацию, полученную в результате проведения такой серии экспериментов можно представить в виде числовой матрицы, в которой строки соответствуют разным генам, а столбцы — разным экспериментам (разным клеткам). Данные для 60 экспериментов с биочипом. «Genomics Bioinformatics Group» http://discover.nci.nih.gov/datasetsNature2000.jsp Строки — гены, столбцы — эксперименты (различный материал с больными клетками). Приведены только первые 100 строк (из общего числа 1375). Строки, содержащие отсутствующие значения, исключены.

ME.LOXIMVI ME.MALME.3M ME.SK.MEL.2 ME.SK.MEL.5 ME.SK.MEL.28 LC.NCI.H23 ME.M14 ME.UACC.62 LC.NCI.H522 LC.A549.ATCC LC.EKVX LC.NCI.H322M LC.NCI.H460 LC.HOP.62 LC.HOP.92 CNS.SNB.19 CNS.SNB.75 CNS.U251 CNS.SF.268 CNS.SF.295 CNS.SF.539 CO.HT29 CO.HCC.2998 CO.HCT.116 CO.SW.620 CO.HCT.15 CO.KM12 OV.OVCAR.3 OV.OVCAR.4 OV.OVCAR.8 OV.IGROV1 OV.SK.OV.3 LE.CCRF.CEM LE.K.562 LE.MOLT.4 LE.SR RE.UO.31 RE.SN12C RE.A498 RE.CAKI.1 RE.RXF.393 RE.786.0 RE.ACHN RE.TK.10 ME.UACC.257 LC.NCI.H226 CO.COLO205 OV.OVCAR.5 LE.HL.60 LE.RPMI.8226 BR.MCF7 UN.ADR.RES PR.PC.3 PR.DU.145 BR.MDA.MB.231.ATCC BR.HS578T BR.MDA.MB.435 BR.MDA.N BR.BT.549 BR.T.47D 21822 22264 23933 25718 25831 26599 26677 26811 29194 31861 31905 35271 36380 37054 37060 37153 37330 37627 38915 41232 43555 44449 45720 46173 46694 46818 49729 50243 50250 50914 51104 51904 52128 52218 52519 61539 67939 68068 72199 72214 73185 74070 74275 76539 79319 79617 86102 108837 108840 112383 114116 116819 122347 124918 125308 126471 128329 130476 130482 130531 130532 135118 136798 143985 144758 145292 145965 146311 152241 158260 158337 159512 162077 166966 175269 189963 197549 200696 203527 208950 209731 211086 211515 211995 220376 221263 222341 232896 233795 239001 240566 241037 241935 242678 244736 245450 245868 245939 248257 248589

Поставим следующие задачи: (а) Найти гены, показавшие высокую экспрессию, в заданных экспериментах. т.е. найти наиболее красные клетки в заданных столбцах. (б) Разбить гены на группы в зависимости от влияния на них экспериментов. Гены, реагирующие «почти одинаковым» образом в «большом» числе эспериментов, должны попасть в одну группу. Гены, реагирующие по-разному, должны находиться в разных группах. т.е. разбить строки на группы (кластеры) «похожих» между собой строк (в) Разбить эксперименты на группы в зависимости от их влияния на гены. Эксперименты, в которых одинаковые гены реагировали «сходным» образом должны оказаться в одной группе. Эксперименты, в которых гены реагировали «различно», должны находиться в разных группах. т.е. разбить столбцы на группы (кластеры) «похожих» между собой строк Задачи (б) и (в) — это задачи кластерного анализа.

Пример 3. Генезис языков Список Сводеша (Morris Swadesh, 1909–1967) — список из слов базового словаря — ядра языка (термины родства, части тела, частые природные явления, животные и т.д.): мать, отец, человек, рука, нога, дождь, ветер, солнце, луна, . . . Это самая старая лексика, она менее всего подвержена изменениям и заимствованиям. Эти слова тоже могут заменяться другими, но с меньшей вероятностью. Примеры: око → глаз, уста → рот, гад → змея, дитя → ребёнок, пёс → собака, плод → овощ, чьрвленый → красный Есть редакции из 100, 200, 207 понятий.



Русский

Английский Немецкий Итальянский Французский Чешский

1

я

I

ich

io

je

j´a

2

ты

you

du

tu

tu

ty

3

он

he

er

lui

il

on

4

мы

we

wir

noi

nous

my

5

вы

you

ihr

voi

vous

vy

6

они

they

sie

loro

ils

oni

7

этот

this

dieses

questo

ceci

tento

8

тот

that

jenes

quello

cela

tamten

9

здесь

here

hier

qui

ici

zde

10

там

there

dort

l´a

l´a

tam

11

кто

who

wer

chi

qui

kdo

12

что

what

was

che

quoi

co

13

где

where

wo

dove

o`u

kde

14

когда

when

wann

quando

quand

kdy

15

как

how

wie

come

comment

jak

16

не

not

nicht

non

ne. . . pas

ne

................................................................................. 205 если

if

wenn

se

si

jestlize

206 потому что because

weil

perch´e

parce que

protoze

207 имя

Name

nome

nom

jm´eno

name

Близость двух языков можно измерять по количеству родственных слов (когнат) — однокоренных слов, имеющих общее происхождение и близкое звучание. Являются ли два слова родственными — определяют лингвисты (а не фоменки с задорновыми): родственны ли слова год и рiк,

цветок и квiтка,

видеть и бачити

или колесо и wheel и

hkr

?

Можно разбивать языки на группы близких друг другу языков — задача кластерного анализа. Более того, на основе анализа списка Сводеша для двух родственных языков можно приблизительно установить время их появления из единого пра-языка. Считается, что в 100-словном списке сохраняется за тысячелетие около 86% слов, а в 200-словном в среднем 81% слов, соответственно. Отсюда «период полураспада» языкового «ядра» — для 100- и 200-словного списка равен соответственно 4.6 и 3.3 тыс. лет. (это один из методов глоттохронологии)

Матрица сходства между некоторыми языками, построенная на основе списков Сводеша.

English German Dutch Swedish Danish Italian French Spanish Portuguese Latin Esperanto Slovene Czech Polish Slovio Lithuanian Latvian Hungarian Finnish Estonian Euskara Quenya Sindarin

English German Dutch Swedish Danish Italian French Spanish Portuguese Latin Esperanto Slovene Czech Polish Slovio Lithuanian Latvian Hungarian Finnish Estonian Euskara Quenya Sindarin

Finnish Estonian Quenya Sindarin

Italian French Spanish Portuguese Latin Esperanto Slovene Slovio Czech Polish Lithuanian Latvian

Swedish Danish

German Dutch

English

Euskara

Hungarian

Дерево иерархической кластеризации для 23 языков, построенное на основе списков Сводеша.

1.5. Machine Learning сегодня • Нейронные сети — второе (или третье) рождение. Глубокое обучение (deep learning) • Big Data Некоторые последние достижения: • Компьютерное зрение Прорыв 2012: ImageNet ILSVRC-2012 (около 1 млн. изображений, 1000 классов). Ошибку удалось понизить с 26% до 15% (сейчас еще меньше) – A. Krizhevsky, I. Sutskever, G. E. Hinton • Беспилотные автомобили (Google и др.) • AlphaGo • Prisma и т.п. • Автоматический перевод текстов • Умные помощники (Google, Amazon, Яндекс Алиса и др.) • Автономомные роботы (Boston Dynamics и др.) •

1.6. О курсе • Различные алгоритмы и подходы к решению задач машинного обучения: – Линейная регрессия – Метод ближайших соседей – Машина опорных векторов – Нейронные сети – Деревья решений – Бустинг (AdaBoost, GBT, Random Forest) и баггинг – Обучение без учителя, кластеризация • Подготовка данных, работа с пропущенными значениями, нестандартными типами и т.п. • Элементы теории (Вапника–Червоненкиса) о качестве обучения

1.6.1. Ресурсы • Wiki-портал http://www.machinelearning.ru • Мой курс: http://www.uic.unn.ru/~zny/ml

(презентации лекций, лабораторные работы, R и Python, полезные ссылки, ML для «чайников» и др.)

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

см. http://www.machinelearning.ru, видео-лекции http://shad.yandex.ru/lectures/machine_learning.xml

• Ng A. Machine Learning Course (video, lecture notes, presentations, labs) http://ml-class.org • Hastie T., Tibshirani R., Friedman J. The elements of statistical learning: Data Mining, Inference, and Prediction. 2nd Edition. Springer, 2009 http://www-stat.stanford.edu/~tibs/ElemStatLearn/ • James G., Witten D., Hastie T., Tibshirani R. An Introduction to Statistical Learning with Applica-tions in R. Springer, 2013. Рус. пер.: Джеймс Г., Уиттон Д., Хасти Т., Тибширани Р. Введение в статистическое обучение с примерами на языке R. ДМК Пресс, 2016. • Flach P. Machine Learning: The Art and Science of Algorithms That Make Sense of Data. Campbridge University Press, 2012. Рус. пер.: Флах П. Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных. ДМК Пресс, 2016.

1.6.2. Software • Библиотека Scikit-learn (Python) http://scikit-learn.org/

• Система для статистических вычислений R http://www.r-project.org/ • Statistics and Machine Learning + Neural Network Toolbox (Matlab) https://www.mathworks.com/

• Библиотека машинного зрения OpenCV (C, C++, интерфейс для Python) (раздел ML) http://opencv.org/ • Intel DAAL: Intel Data Analytics Acceleration Library http://software.intel.com/en-us/daal/ • Библиотека алгоритмов для анализа данных Weka (Java) http://www.cs.waikato.ac.nz/~ml/weka/ • Пакет для решения задач машинного обучения и анализа данных Orange http://orange.biolab.si/ • ... • Данные для экспериментов: UCI Machine Learning Repository http://archive.ics.uci.edu/ml/

Software. Глубокое обучение № Пакет/библиотека

Интерфейс

ОС

FCNN CNN RNN AE RBM

1 TensorFlow

Python, Java, Go

Linux, Windows, Mac OS, Android

+

+

+

+

+

2 Theano

Python

Linux, Windows, Mac OS

+

+

+

+

+

3 Keras

Python, R

Linux, Vagrant

+

+

+

+

+

4 Torch

Lua, C

Linux, iOS, Android

+

+

+

+

+

5 Caffe

C++, Python, Matlab

Linux, Windows, OS X

+

+

+

+



6 MXNet

C++, Python, R, Linux, Windows, Scala, Julia, Perl, Mac OS MATLAB, JavaScript

+

+

+

+

+

7 Matlab Neural Networks Toolbox

Matlab

Linux, Windows, OS X

+

+

+

+



8 Wolfram Mathematica

Java, C++

Linux, Windows, OS X

+

+



+

+

Еще данные и идеи задач: • https://www.kaggle.com Данные, использованные в соревнованиях по машинному обучению. Много задач по разной тематике. • https://mlbootcamp.ru Соревнования по анализу данных от Mail.ru.

• http://cs229.stanford.edu/projects2013.html Отчеты студентов Стэнфорда (можно искать идеи задач, ссылки на данные). • http://archive.ics.uci.edu/ml Опять же много наборов данных для различных прикладных задач. Имеет смысл смотреть данные, которые были добавлены недавно (задачи интересней, данных больше). • http://www.image-net.org, http://pascallin.ecs.soton.ac.uk/challenges/VOC Данные соревнований по классификации изображений и детектированию объектов на них.

• http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians Данные для детектирования пешеходов на изображениях/видео. В разделе “Related Datasets” есть ссылки на другие подобные базы. • https://pslcdatashop.web.cmu.edu Данные для анализа образовательных программ. • http://www.edutainme.ru/post/bolshie-dannye-v-obrazovanii

• http://nlp.stanford.edu/sentiment Данные для анализа тональности текста (sentiment analysis). • http://www.kdnuggets.com/datasets

Сайт курса (еще раз): http://www.uic.unn.ru/~zny/ml (презентации лекций, лабораторные работы, R и Python, полезные ссылки, ML для «чайников» и др.)

Домашнее задание (к следующей лекции) 1. Вспомнить теорию вероятностей (зависимые и независимые события, формулы сложения и умножения вероятностей, формулу Байеса, формулу полной вероятности, случайные величины, интегральная функция распределения, плотность вероятности, математическое ожидание, дисперсия, нормальная случайная величина). 2. Установить нужный софт На следующей лекции будет туториал: использование Scikit-learn. Желающие могут принести ноутбуки с установленными пакетами. Я использую Anaconda 4.4.0 (http://continuum.io/downloads), которая содержит следующие версии библиотек (помимо всего прочего): • python 3.5.3 • numpy 1.11.3 • scipy 0.18.1 • matplotlib 2.0.0 • scikit-learn 0.18.1 • pandas 0.19.2

Глава 2 Вероятностная постановка задачи и некоторые методы

Некоторые обозначения d число входных признаков N длина обучающей выборки X множество объектов Y множество ответов (выходов) x(1), x(2), . . . , x(N ) объекты обучающей выборки, x(i) ∈ X (i = 1, 2, . . . , N ) y (1), y (2), . . . , y (N ) выходы для объектов из обучающей выборки, y (i) ∈ Y K количество классов (в задачах классификации)

Pr A вероятность события A Pr (A| B) вероятность события A при условии, что наступило событие B PX (x) интегральная функция распределения: PX (x) = Pr {X ≤ x}

pX (x) плотность вероятности непрерывной случайной величины X

P (y | x) условная интегральная функция распределения p(y | x) условная плотность вероятности

E X математическое ожидание случайной величины X

D X или Var X дисперсия случайной величины X

√ σX среднее квадратическое отклонение: σX = D X

2.1. Вероятностная постановка задачи X = Rd — множество объектов (входов) (точнее: множество их описаний) Y = R — множество ответов (выходов) Будем рассматривать пары (x, y) как реализации (d + 1)-мерной случайной величины (X, Y ), заданной на вероятностном пространстве (X × Y , A, Pr ),

X ∈ Rd, Y ∈ R.

j-й признак — бинарный, номинальный, порядковый или количественный дискретный ⇔ Xj — дискретная с. в. j-й признак — количественный непрерывный ⇔ Xj — непрерывная с. в.

Интегральный закон распределения PX,Y (x, y) не известен, однако известна обучающая выборка n o (1) (1) (2) (2) (N ) (N ) (x , y ), (x , y ), . . . , (x , y ) ,

где (x(i), y (i)) являются независимыми реализациями случайной величины (X, Y ). Требуется найти функцию f : X → Y , которая по x предсказывает y, f ∈ F

Пример Имеются данные о 114 лицах с заболеванием щитовидной железы. У 61 — повышенный уровень свободного гормона T4, у 53 — уровень гормона в норме. Для каждого пациента известны следующие показатели: • heart — частота сердечных сокращений (пульс), • SDNN — стандартное отклонение длительности интервалов между синусовыми сокращениями RR. Можно ли научиться предсказывать (допуская небольшие ошибки) уровень свободного Т4 по heart и SDNN?

120 90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

120

Многомерный тест Шапиро-Уилка проверки нормальности распределения Гипотеза H0: «X распределено нормально». Пусть α = 0.05 Для синих точек (низкий уровень) W = 0.9809, p-value = 0.5527 ⇒ принимаем Для красных точек (высокий уровень) W = 0.9542, p-value = 0.02306 ⇒ отвергаем Для всей совокупности: W = 0.9784, p-value = 0.06239 ⇒ принимаем

90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

Пусть дана функция потерь (штраф) L(y ′, y) = L(f (x), y). x — вход, y — соответствующий выход, y ′ = f (x) — предсказанное значение Например, в задачах восстановления регрессии: • квадратичная ошибка (квадратичная функция потерь): L(y ′, y) = (y ′ − y)2; • абсолютная ошибка: L(y ′, y) = |y ′ − y|; ′ |y − y| ′ . • относительная ошибка: L(y , y) = |y|

В задачах классификации: • симметричная 0–1 функция штрафа (индикатор ошибки): ( ′ 0, если y = y, ′ ′ L(y , y) = I(y 6= y) ≡ 1, если y ′ 6= y; • В общем случае функция потерь полностью описывается K × K матрицей L = (ℓy′y ), где ℓy′y = L(y ′, y).

Пусть, например, в задаче медицинской диагностики Y = {0, 1}, где y = 0 — пациент здоров, y = 1 — пациент болен. L(1, 1) = L(0, 0) = 0 • ошибка 1-го рода — ложная тревога — false positive error L(1, 0) = 1 — болезнь определена у здорового пациента

• ошибка 2-го рода — ложный пропуск — false negative error

L(0, 1) = 10 — болезнь не определена у больного пациента (!)

Аналогично: автоматическое определение почтового спама, техническая диагностика, обнаружение комп. вирусов и т. д.

Мат. ожидание функции потерь 

R(f ) = E L f (X), Y =

Z

X×Y



L f (x), y p(x, y) dx dy

— cредний риск, средняя ошибка или ожидаемая ошибка предсказания. (Если L(y ′, y) = I(y ′ 6= y), то R(f ) — вероятность ошибки) R(f ) характеризует качество, или обобщающую способность, функции f . Чем меньше R(f ), тем качество лучше. Разумный подход: в качестве f взять функцию из заданного класса F , минимизирующую средний риск R(f ) (принцип минимизации среднего риска) НО: Закон P (x, y) не известен и поэтому мы не можем точно вычислить R(f ). • Можем восстановить P (x, y) по выборке («классический» подход) • Можем аппроксимировать R(f ), а затем минимизировать • ... (Кроме того, даже если P (x, y) знаем (аппроксимировали), то возникает задача поиска минимума на множестве функций F — задача вариационного исчисления.)

2.1.1. Восстановление функции распределения вероятности P (X, Y ) Будем минимизировать средний риск при f ∈ F R(f ) =

Z



L f (x), y p(x, y) dx dy.

X×Y



(∗)



1) по имеющейся выборке (x , y ), . . . , (x , y ) решается задача восстановления функции распределения P (x, y). (1)

(1)

(N )

(N )

b (x, y) подставляется в (*) вместо P (x, y) и решается 2) восстановленная функция P задача минимизации (точнее: вариационного исчисления, так как надо минимизировать на множестве функций F ). b (x, y) можно взять выборочную функцию распределения. • В качестве P

Согласно теореме Гливенко с ростом N эмпирическая функция распределения равномерно приближается к истинной. Нужна очень большая выборка!

• Параметрические методы (например, дискриминантный анализ).

Должны много знать о распределении. Выборка должна быть большой.

• Непараметрические методы (например, парзеновские окна).

120

Многомерный тест Шапиро-Уилка проверки нормальности распределения Для синих точек (низкий уровень) W = 0.9809, p-value = 0.5527 Для красных точек (высокий уровень) W = 0.9542, p-value = 0.02306 Для всей совокупности: W = 0.9784, p-value = 0.06239

90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

У метода восстановления функции распределения имеются большие недостатки Известно, что задача восстановления функции распределения является некорректно поставленной, поэтому гарантировать успех в описанном подходе можно, только если об этой функции известно достаточно много и выборка большая. Более того, задача восстановления функции распределения является центральной задачей в математической статистике и нецелесообразно сводить рассматриваемую частную задачу (минимизации среднего риска) к более общей. Тем не менее, есть популярные методы, реализующие данный принцип (например, дискриминантный анализ)

2.1.2. Аппроксимация среднего риска R(f )  (1) (1) (N ) (N ) Элементы обучающей выборки (x , y ), . . . , (x , y ) распределены случайно и независимо, каждый согласно закону распределения P (X, Y ), поэтому b ) = R(f, b R(f ) ≈ R(f x , y , ..., x (1)

(1)

(N )

,y

(N )

1 )= N

N

∑L

i=1

(i)

f (x ), y

(i)



,

b ) — эмпирический риск (эмпирическая ошибка). R(f b ) — доля ошибок на обучающей выборке) (Если L(y ′, y) = I(y ′ 6= y), то R(f b ) на множестве F . Принцип минимизации эмпирического риска: минимизируем R(f В курсе будет рассмотрено много практических методов, реализующих этот принцип. Недостатки: занижение величины риска и возможность переобучения. b test(f )) Переобучение: ошибка на обучающей выборке много меньше R(f ) (и R 1 b b R(f ) ≡ Rtrain(f ) ≡ N

N

∑L

i=1

f (x(i)), y

 (i)

Ntest 1 (i)  (i) b ≪ R(f ) ≈ Rtest(f ) ≡ L f (xtest), ytest ∑ Ntest i=1

«Причина» переобучения при реализации метода минимизации эмпирического риска: F = {f (·, β) : β ∈ B}

b R(β) R(β ∗) b b β) R(

R(β)

b b

b

b R(β) b

b b

b b

β∗ b ≪ R(β) b b β) R(

и

b β

b R(β ∗ ) ≪ R(β)

β

2.2. Регрессионная функция Рассматриваем задачу восстановления регрессии. R(f ) =

Z

X×Y

т. е.



L f (x), y p(x, y) dx dy =

R(f ) =

Z Z

X Y

Z

X







L f (x), y p(y | x) dy p(x) dx, 

E L f (x), Y | x p(x) dx

Пусть функция потерь — квадратичная: Z  Z Z  2 2  R(f ) = f (x) − y p(y | x) dy p(x) dx = E f (x) − Y | x p(x) dx. X

X Y

Очевидно, минимизировать R(f ) можно поточечно: 2





f (x) = argmin E (c − Y ) | x ,

(1)

f ∗(x) = E (Y | x).

(2)

c

откуда

Это так называемая регрессионная функция. Итак, в случае квадратичной функции потерь наилучшим предсказанием y в ответ на вход x является условное среднее (регрессионная функция). R(f ∗ ) назовем байесовой ошибкой, или байесовым риском, или неустранимой ошибкой. Упражнение 2.1 Доказать, что из (1) следует (2), при этом R(f ∗ ) = E X D Y (Y | X). Упражнение 2.2 Доказать, что если L(y ′, y) = |y ′ − y|, то минимум среднему риску доставляет условная медиана f ∗ (x) = median(Y | x). Чему равна при этом R(f ∗ )?

2.2.1. Метод ближайшего соседа Возникает задача аппроксимации условного среднего E (Y | x) по имеющейся выборке. 1) Заменим f ∗(x) выборочным средним: 1 f (x) = y (i), ∑ |I(x)| i∈I(x)

где

n

I(x) = i : x

(i)

o

=x ,

Как правило, такое решение к успеху не приводит, так как обычно x встречается в обучающей выборке не более одного раза. 2) В методе k ближайших соседей (kNN — k nearest neighbours) вместо выборочного среднего берут f (x) =

1 y (i), ∑ k x(i)∈N (x) k

где через Nk (x) обозначено множество из k точек обучающей выборки, ближайших (например, по евклидову расстоянию) к x. Частным случаем является метод (одного) ближайшего соседа, в котором f (x) = y (i), где x(i) — ближайшая к x точка из обучающей выборки.

1.0 1.5 2.0 2.5 3.0 3.5 4.0

1.0 1.5 2.0 2.5 3.0 3.5 4.0

1.0 1.5 2.0 2.5 3.0 3.5 4.0

1.0 1.5 2.0 2.5 3.0 3.5 4.0

y = 8x2 − 6.4x + 2.5 + N (0, 0.4)

0.2

0.2 0.4

0.4

0.6

0.6

k=5

0.8

0.8

0.2

0.2

0.4

k=1

0.4

0.6

0.6

k = 14

0.8

k=2

0.8

0.8 0.4 0.0

0.2

RSS/N

0.6

Train error Test error Bayes error

2

4

6

8 k

R(f ∗ ) = E X D Y (Y | X) = σ 2 = 0.16

10

12

14

0.8

С увеличением k «емкость» («сложность») модели падает, поэтому развернем горизонтальную ось в обратном направлении (движение по ней вправо соответствует росту «емкости» модели)

0.4 0.2 0.0

RSS/N

0.6

Train error Test error Bayes error

14

12

10

8 k

6

4

2

Ошибка

Test

Bayes Error

Train

Емкость модели

Итак, метод ближайших соседей похож на метод восстановления функции распределения вероятности, только теперь аппроксимируется не плотность вероятности, а условное среднее.

2.3. Байесов классификатор Рассмотрим задачу классификации. Y = {1, 2, . . . , K}. Минимизируем средний риск R(f ) =

Z

K

∑L

y=1

X

!



f (x), y · Pr (y | x) p(x) dx.

(∗∗)

Пусть функция — индикатор ошибки (симметричный 0–1 штраф): L(y ′, y) = I(y ′ 6= y). Подынтегральная функция в (**) есть вероятность ошибки (при заданном x), Z   R(f ) = 1 − Pr Y = f (x)| x p(x) dx, X

откуда находим f ∗(x) = argmin R(f ): ∗



f (x) = argmin 1 − Pr (y | x) = argmax Pr (y | x). y∈Y

y∈Y

p(x | y) Pr (y) = argmax p(x | y) Pr (y). (+) p(x) y∈Y y∈Y y∈Y Функция f ∗(x) называется байесовым классификатором. Средний риск R(f ∗ ) байесова классификатора называется байесовой ошибкой, или байесовым риском, или неустранимой ошибкой. Байесов классификатор играет в задаче классификации роль, аналогичную той, которую играет регрессионная функция в задаче восстановления регрессии. Pr (y) — априорная вероятность появления объекта из класса y. Pr (y | x) — апостериорная вероятность появления объекта из класса y. Правило (+) называется принципом максимума апостериорной вероятности. Если классы равновероятны, т. е. Pr (y) = 1/K, то f ∗(x) = argmax Pr (y | x) = argmax

p(x |y) Pr (y) p(x | y) = Pr (y | x) = p(x) Kp(x) f ∗ (x) = argmax p(x |y).

(++)

y

Плотность p(x | y) — правдоподобие (likelihood). Правило (++) — метод максимального правдоподобия (maximum-likelihood method).

Принцип максимума апостериорной вероятности. При x < x′ полагаем f (x) = 0, иначе f (x) = 1. p(x |Y = 1) Pr {Y = 1}

p(x |Y = 0) Pr {Y = 0}

b

x′

x

Принцип максимального правдоподобия. При x < x′ имеем f (x) = 0, иначе f (x) = 1. p(x |Y = 1)

p(x |Y = 0)

b

x′

x

Чтобы построить байесов классификатор, мы должны знать (или оценить) Pr (y | x) Упражнение 2.3 Пусть в задаче классификации с двумя классами {0, 1} используется функция потерь L(y ′, y), такая, что L(0, 0) = L(1, 1) = 0, L(1, 0) = ℓ1, L(0, 1) = ℓ0. Докажите, что в этом случае байесов классификатор f ∗(x) удовлетворяет условию f (x) = argmax ℓy Pr (y | x). y∈{0,1}

Упражнение 2.4 Выразить байесов классификатор f ∗(x) для задачи классификации с K классами, если функция потерь равна L(y ′, y) = ℓy′y (y ′, y = 1, 2, . . . , K).

Пример Рассмотрим обучающую выборку для задачи классификации на два класса. Каждый класс — 100 прецедентов. Распределение в каждом классе — смесь (взвешенная сумма) 2-х нормальных распределений (гауссианов). µ1 = (0.4, 0.8), µ2 = (0.8, 0.6), µ3 = (1.0, 0.3), µ4 = (0.1, 0.2). Матрица ковариации σ 2I, где σ = 0.3.

1.5 1.0 0.0

0.5

x2

0.0

0.5

1.0 x1

1.5

1.5

Распределение известно, поэтому байесову ошибку можем найти точно.

0.0

0.5

x2

1.0

Train error = 0.18 Test error = 0.209 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

Таким образом, байесов классификатор — это оптимальный классификатор. Предполагается, что условные вероятности Pr (y | x) известны. Как это можно использовать на практике? Будем аппроксимировать Pr (y | x) 1) Метод ближайших соседей (для задачи классификации) 2) Восстановление условной плотности вероятности

2.3.1. Метод ближайших соседей для задачи классификации Будем, как и в задаче восстановления регрессии, для аппроксимации Pr (y | x) использовать k ближайших (по некоторому, например, евклидову расстоянию) объектов из обучающей выборки. Получаем метод k ближайших соседей для задачи классификации. Пусть Nk (x) — множество из k ближайших к x (по евклидову расстоянию) точек из обучающей выборки, Ik (x, y) — множество тех точек x(i) из Nk (x), для которых y (i) = y. Согласно методу k ближайших соседей (kNN — k nearest neighbours) в качестве f (x) берем результат голосования по всем точка из Ik (x, y): f (x) = argmax |Ik (x, y)|, y

Частным случаем является метод (одного) ближайшего соседа, в котором f (x) = y (i), где x(i) — ближайший к x объект из обучающей выборки. В этом случае Dy представляют собой области Вороного

Диаграмма Вороного для набора из 50 точек. Штриховыми линиями отмечены неограниченные участки границы

Все сильно зависит от масштаба!

1.5

Метод одного ближайшего соседа

0.0

0.5

x2

1.0

Train error = 0 Test error = 0.282 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

Метод 5 ближайших соседей

0.0

0.5

x2

1.0

Train error = 0.15 Test error = 0.233 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

Метод 31 ближайшего соседа

0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.21 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

101 ближайший соседа

0.0

0.5

x2

1.0

Train error = 0.235 Test error = 0.245 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

151 ближайший соседа

0.0

0.5

x2

1.0

Train error = 0.315 Test error = 0.304 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

0.6 0.3 0.2 0.1 0.0

Error

0.4

0.5

Train Test Bayes

0

50

100 k

150

200

0.6

С увеличением k «емкость» («сложность») модели падает, поэтому развернем горизонтальную ось в обратном направлении (движение по ней вправо соответствует росту «емкости» модели)

0.3 0.2 0.1 0.0

Error

0.4

0.5

Train Test Bayes

200

150

100 k

50

0

Ошибка

Test

Bayes Error

Train

Емкость модели

120

Задача медицинской диагностики. Метод 1 ближайшего соседа. 10-CV ошибка 0.30

90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 3 ближайших соседей 10-CV ошибка 0.26

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 5 ближайших соседей 10-CV ошибка 0.27

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 15 ближайших соседей 10-CV ошибка 0.25

1.0

1.5 lg SDNN

2.0

2.3.2. Теорема об оценке риска Пусть L(y ′, y) = I(y ′ 6= y). При достаточно большом объеме обучающей выборки средний риск классификатора одного ближайшего соседа не более чем в 2 раза превосходит байесов риск, а именно, справделива теорема: Теорема 2.5 (Cover, Hart, 1967) Пусть R∗ — оптимальное (байесовское) значение среднего риска для некоторой задачи классификации на K классов. Тогда с ростом размера выборки N ожидаемый риск R для метода одного ближайшего соседа сходится к Ro, такому, что   K ∗ o ∗ R∗ ≤ 2R∗ . R ≤R ≤R · 2− K −1

ДОКАЗАТЕЛЬСТВО. (набросок) X ′ — объект из обучающей выборки, ближайший к X, а Y ′ — соответствующий выход k ∗ = argmax Pr (k |x) — байесово решение (самый популярный класс) в точке x r∗(x) = 1 − Pr (k ∗ | x) — предельный условный байесовский риск r(x) — предельный условный средний риск классификатора ближайшего соседа: r(x) = lim Pr (Y 6= Y ′ | x) = lim N →∞

Z

= lim

Z

N →∞ K X

K

1−

Z

N →∞ X

Pr (Y 6= Y ′ | x, x′) p(x′ | x) dx′ = !

∑ Pr (k!| x) Pr (k | x′)

k=1

p(x′ | x) dx′ = K

Pr (k | x) Pr (k | x ) δ(x − x) dx = 1 − ∑ Pr 2(k | x) =!2 ∑ X k=1 1 k=1 2 ∗ 2 2 ∗ = 1 − Pr (k | x) − ∑ Pr (k |x) ≤ 1 − Pr (k | x) − Pr (k | x) = ∑ K −1 ∗ ∗ =

1−







k6=k  2  k6=k 2 1 K ∗ 2 1 2 ∗ ∗ ∗ ∗ ∗ 1−Pr (k | x) = 1− 1−r (x) − r (x) = 2r (x)− r (x) . = 1−Pr (k | x)− K −1 K −1 K −1 Умножая обе части неравенства на p(x) и интегрируя по x, получаем требуемое.

Замечание 2.6 Верхние и нижние оценки в теореме являются точными. В частности, верхняя оценка   K o ∗ R∗ R ≤R · 2− K −1 достигается в случае, когда плотности вероятности p(x | y) не зависят от y. В этом случае Pr {y | x} = Pr {y} и r∗(x) не зависят от x.

Замечание 2.7 К сожалению, сходимость R к Ro может быть очень медленной и сложно определить, насколько R близка к Ro. Замечание 2.8 Результаты аналогичны для метода k ближайших соседей.

Задача распознавания рукописных цифр Выборка размера 1934 была случайным образом разбита на две группы: обучающую и тестовую — по 967 объектов в каждой.

k

Ошибка на обучающей выборке на тестовой выборке

1

0

0.031

2

0.017

0.046

3

0.014

0.031

5

0.026

0.033

10

0.034

0.038

15

0.042

0.046

20

0.051

0.050

Все случаи неправильной классификации цифр из тестовой выборки в случае k = 1. Красная цифра — ответ классификатора, синяя — верный ответ. 8 3

5 9

9 7

8 9

3 9

8 1

8 2

5 9

0 4

4 6

3 9

5 9

3 5

1 8

3 9

5 9

9 3

9 8

6 1

9 3

4 9

4 7

4 9

8 1

4 1

8 2

7 1

1 8

3 8

4 9

Как правило, метод ближайшего соседа имеет проблемы при большой размерности (если признаки количественные). Упражнение 2.9 Пусть N точек распределены случайно равномерно в единичной d-мерной гиперсфере. Доказать, что медианное расстояние от центра сферы до ближайшей точки равно q p d ρ(d, N ) = 1 − N 1/2. Доказать, что предел ρ(d, N ) при d → ∞, N = O(d) равен 1.

Например, ρ(100, 1000) = 0.93, т. е. в половине всех случае все точки лежат на расстоянии ≤ 0.07 от границы.

2.4. Плюсы и минусы метода kNN Плюсы • Простой метод • Для ряда задач показывает неплохие результаты • Достаточно устойчив к выбросам (при подходящем выборе k) • Работает как с числовыми, так и номинальными признаками • Быстрый (если использовать специальные структуры данных: kd-деревья и т.д.) Минусы • Сколько соседей брать? • Какую метрику использовать? • Необходимо хранить всю выборку • Подвержен «проклятию размерности»

2.5. Экспериментальная оценка качества обучения и выбор модели 2.5.1. Оценка качества обучения model assessment (model evaluation) Алгоритм обучения по обучающей выборке D ∈ D строит решающую функцию f ∈ F b ), но нужно уметь оценивать R(f ) Мы можем вычислить эмпирический риск R(f b ) < R(f ) Как правило, R(f

Как оценить R(f )?

Случайно разделим все имеющиеся данные (2)

(1)

(1)

(N

(2)

)

(N

)

train train ), , ytrain • на обучающую (train) выборку (xtrain, ytrain), (xtrain, ytrain), . . . , (xtrain

(1)

(1)

(2)

(2)

(N

)

(N

)

• на тестовую (test) выборку (xtest, ytest), (xtest, ytest), . . . , (xtesttrain , ytesttest ). Test

Train

Обучающая выборка используется для построения моделей f ∈ F . Тестовая — для оценки среднего риска R(f ) решающей функции f . b )=R b train(f ) = R(f

1

Ntrain

Ntrain

i=1



L

(i) f (xtrain),

Ntest 1 (i)  (i) b Rtest(f ) = ∑ L f (xtest), ytest Ntest i=1

b train(f ) < R(f ) ≈ R b test(f ) R

(i)  ytrain

Метод перекрестного контроля. 1-й вариант Разбиение на обучающую и тестовую выборки можно проделать L раз (каждый раз случайно). В результате получим L решающих функций: f1, f2, . . . , fL b 1test(f1), R b 2test(f2), . . . , R b test(fL) и L значений эмпирического риска: R L Окончательную модель f построим на основе всех данных. Оцениваем риск: 1 L b test R(f ) ≈ R = ∑ Rℓ (fℓ). L ℓ=1

Очевидно, что оценка несмещенная. Построение интервальных оценок для оценки риска в этом методе — пока нерешенная задача.

Метод перекрестного контроля по M блокам (M -fold CV)

Случайным образом разобьем исходную выборку на M непересекающихся примерно равных по размеру частей:

Последовательно каждую из этих частей рассмотрим в качестве тестовой выборки, а объединение остальных частей — в качестве обучающей выборки: Test

Train

Train

Train

Train

Случайным образом разобьем исходную выборку на M непересекающихся примерно равных по размеру частей:

Последовательно каждую из этих частей рассмотрим в качестве тестовой выборки, а объединение остальных частей — в качестве обучающей выборки: Train

Test

Train

Train

Train

Случайным образом разобьем исходную выборку на M непересекающихся примерно равных по размеру частей:

Последовательно каждую из этих частей рассмотрим в качестве тестовой выборки, а объединение остальных частей — в качестве обучающей выборки: Train

Train

Test

Train

Train

Случайным образом разобьем исходную выборку на M непересекающихся примерно равных по размеру частей:

Последовательно каждую из этих частей рассмотрим в качестве тестовой выборки, а объединение остальных частей — в качестве обучающей выборки: Train

Train

Train

Test

Train

Случайным образом разобьем исходную выборку на M непересекающихся примерно равных по размеру частей:

Последовательно каждую из этих частей рассмотрим в качестве тестовой выборки, а объединение остальных частей — в качестве обучающей выборки: Train

Train

Train

Train

Test

В результате получим M решающих функций: f1, f2, . . . , fM b 1cv (f1), R b 2cv (f2), . . . , R b cv (fM ) и M значений эмпирического риска: R M Окончательную решающую функцию f построим на основе всех данных. 1 cv b R(f ) ≈ R = M

M

∑ Rb mcv(fm)

m=1

Всю процедуру перекрестного контроля можно повторить L раз, каждый раз разбивая случайно выборку на M частей. Тогда оценка риска будут вычисляться на основе M · L оценок эмпирического риска Какое M выбирать? Часто используемые значения M : M = 5 или M = 10. M = N — метод перекрестного контроля с одним отделяемым элементом (leave-one-out cross-validation, LOO). LOO — самый точный, но требует много времени.

0.6

Перекрестный контроль для задачи классификации методом k ближайших соседей.

0.3 0.2 0.1 0.0

Error

0.4

0.5

Train Test 10−CV 5−CV LOO Bayes

200

150

100 k

50

0

0.35

Медицинская диагностика 0.5 · se

0.25 0.20

CV Error

0.30

10−fold CV 5−fold CV LOO CV

50

40

30

20 k

10

0

0.26 0.24 0.22 0.20

10−CV Error

0.28

0.30

Правило одного se kk[i.min] = 19 err[i.min] = 0.2105263 se[i.min] = 0.03835154 kk[i.opt] = 37 err[i.opt] = 0.245614 se[i.opt] = 0.04049339

50

40

30

20 k

10

0

120

Задача медицинской диагностики. Метод 1 ближайшего соседа. 10-CV ошибка 0.30

90 80 70 60 50

heart

100

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 3 ближайших соседей 10-CV ошибка 0.26

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 5 ближайших соседей 10-CV ошибка 0.27

1.0

1.5 lg SDNN

2.0

90 80 70 60 50

heart

100

110

120

Метод 15 ближайших соседей 10-CV ошибка 0.25

1.0

1.5 lg SDNN

2.0

Какое значение M использовать? Метод скользящего контроля характеризует не конкретную решающую функцию f , а весь метод обучения. При M = N (LOO) обучающие выборки похожи друг на друга, следовательно, решающие функции fm, по-видимому, будут похожи на функцию f , построенную по всей выборке, поэтому LOO обычно дает лучшие оценки среднего риска. Однако LOO требует много времени. b cv (fi) может При небольших значениях M (M = 5, 10) оценка скользящего контроля R сильнее отличаться от среднего риска R(f ) функции, построенной по всей обучающей выборке, так как 1) обучающие выборки сильнее отличаются друг от друга; 2) обучающие выборки могут оказаться слишком маленькими, чтобы построить хорошую решающую функцию.

2.5.2. Выбор модели (model selection) Алгоритм обучения по обучающей выборке D ∈ D строит решающую функцию f ∈ F Пусть α — гиперпараметр (м.б. вектором) алгоритма (метода) обучения. Для одной и той же обучающей выборки D, но разных α будем получать разные решающие функции f (x, α). Какую из них выбрать? Хотелось бы, конечно, найти f ∗ = f (·, α∗), где  ∗ α = argmin R f (·, α) α

Но приходится довольствоваться fo = f (·, αo), где   cv test b b f (·, α) или αo = argmin R f (·, α) . αo = argmin R α

α

Теперь тестовая выборка стала обучающей! Поэтому, как правило,  test b R f (·, αo) < R(fo)

Если данных достаточно, то их делят • на обучающую (train) выборку, • на проверочную (validation) выборку, • на тестовую (test) выборку. Train

Validation

Test

Обучающая выборка используется для построения моделей f (·, α) ∈ F для разных α. Проверочная — для оценки оценки среднего риска каждой из построенной модели и выбора наилучшей модели в F . Тестовая — для оценки ошибки предсказания выбранной модели.

Для выбора наилучшей модели можно использовать перекрестную проверку. Validation

Train

Train

Train

Train

Test

Для выбора наилучшей модели можно использовать перекрестную проверку. Train

Validation

Train

Train

Train

Test

Для выбора наилучшей модели можно использовать перекрестную проверку. Train

Train

Validation

Train

Train

Test

Для выбора наилучшей модели можно использовать перекрестную проверку. Train

Train

Train

Validation

Train

Test

Для выбора наилучшей модели можно использовать перекрестную проверку. Train

Train

Train

Train

Validation

Test

Для выбора наилучшей модели можно использовать перекрестную проверку. Cross-validation

Test

Для каждого α запускаем процедуру обучения — перекрестного контроля. Выбираем fo = f (·, αo), где  cv b αo = argmin R f (·, α) . α

Оцениваем риск на тестовой выборке. Для построения окончательной модели используем найденный гиперпараметр αo и всю выборку Train for final model

2.6. Метод главных компонент Метод главных компонент (Principal Component Analysis, PCA) — один из основных, «классических», методов понижения размерности. Sylvester J.J. On the reduction of a bilinear quantic of the nth order to the form of a sum of n products by a double orthogonal substitution. Messenger of Mathematics, 19, 42–46 (1889) Pearson C. On lines and planes of closest fit to systems of points in space. Phil. Mag., Series B., 2 (11), 559–572 (1901) Джеймс Джозеф Сильвестр (1814–1897) — английский математик. Несколько лет работал в США. Основал «American Journal of Mathematics». Карл Пирсон (1857–1936) — английский математик, статистик и биолог. Основатель математической статистики.

x(1), x(2), . . . , x(N ) ∈ Rd . Рассмотрим следующие задачи: 1) Аппроксимировать данные линейными многообразиями меньшей размерности: найти линейное многообразие заданной размерности k < d, сумма квадратов расстояний до которого минимальна. 2) Найти подпространство заданной размерности, в ортогональной проекции на которое разброс (рассеивание) (выборочная дисперсия для k = 1) максимален. 3) Найти подпространство заданной размерности, в ортогональной проекции на которое среднеквадратичное расстояние между каждой парой точек максимально. Все эти задачи имеют одно и то же решение — PCA. Многочисленные обобщения (в том числе нелинейные): хорошо приспособленный базис (Ю. И. Неймарк), метод главных кривых и многообразий, поиск наилучшей проекции (Projection Pursuit), самоорганизующиеся карты Кохонена и т. д.

Рисунок из оригинальной статьи Пирсона

0.0

0.2

0.4

y

0.6

0.8

1.0

PCA и метод наименьших квадратов — это разные вещи!

−0.2

0.0

0.2

0.4

0.6 x

0.8

1.0

1.2

0.5 0.0

y

1.0

PCA и метод наименьших квадратов — это разные вещи!

0.0

0.2

0.4

0.6 x

0.8

1.0

0.5 0.0

y

1.0

PCA и метод наименьших квадратов — это разные вещи!

0.0

0.2

0.4

0.6 x

0.8

1.0

PCA и метод наименьших квадратов — это разные вещи!

0.5 0.0

y

1.0

data y~x x~y prin. comp.

0.0

0.2

0.4

0.6 x

0.8

1.0

b

b

b b

b

b b b b b b b b b

b b b

b

b b

b b b b b

b

b

b

b b

b b b b b

b

b b

b

b

b

b

b

b

b

b

W2 b

b b

b b

b b b b b b b b

b

b b b

b b b b

b b b b b

b

x

v2 b

b b

(i)

b b

v1

b b

b

b

b

x b

b

pr x(i)

b

b b

b b b

b b b

b

b b

b

b b

b b

b b

b b b

b b b b b b b

b b b

b b

b

b

b

b

b b

b

b

b b

b

b b

b b

b

b

b b

b

1-я задача. Ищем k-мерное линейное многообразие Wk = v0 + L(v1, . . . , vk ),

vj ∈ Rd,

kvj k = 1,

vj ⊥ vj ′

(j 6= j ′)

такое, что

2

E N N N k D

∑ dist2(x(i), Wk ) = ∑ k ortWk x(i)k2 = ∑

x(i) − v0 − ∑ x(i) − v0, vj vj

→ min i=1 i=1 i=1 j=1

1 N (i) Оказывается, что W0 ⊂ W1 ⊂ · · · ⊂ Wk , v0 = x = ∑x N i=1 и векторы vj (векторы главных компонент) можно находить итерационно!

Упражнение 2.10 Доказать, что можно положить v0 = x. Описать множество всех возможных v0, доставляющих минимум сумме квадратов расстояний до искомого многообразия. Таким образом, в этой задаче можно считать, что данные центрированы: x(i) ← x(i) − x (i = 1, 2, . . . , N ).

2-я задача (максимизировать разброс в ортогональной проекции). Пусть данные уже центрированы: x(i) ← x(i) − x (i = 1, 2, . . . , N ) (очевидно, что дисперсия в ортогональной проекции от этого не изменится) Ищем подпространство Wk = L(v1, v2, . . . , vk ),

vj ∈ Rd,

kvj k = 1,

vj ⊥ vj ′

(j 6= j ′),

такое, что

2 1 N 1

(i) pr x = ∑ Wk N N i=1

2

E2 E N k D k D N

(i) (i) ∑

∑ x , vj vj

= ∑ ∑ x , vj → max i=1 j=1 i=1 j=1

Эта задача эквивалентна предыдущей, так как (по теореме Пифагора)

k D E 2 2 D E 2



k prWk x(i)k2 = kx(i)k2−k ortWk x(i)k2 ⇔ ∑ x(i), vj vj = x(i) − x(i) − x(i), vj vj

j=1

и первое слагаемое не зависит от vj .

3-я задача (максимизировать в ортогональной проекции среднеквадратичное расстояние между каждой парой точек). Пусть данные уже центрированы: x(i) ← x(i) − x (i = 1, 2, . . . , N ). Ищем подпространство Wk = L(v1, v2, . . . , vk ), такое, что

vj ∈ Rd,

kvj k = 1,

vj ⊥ vj ′

2 1 ′

(i) (i ) pr x − pr x

→ max ∑ Wj Wj N (N − 1) i6=i′

(j 6= j ′),

Эта задача эквивалентна 2-й задаче (а, следовательно, и 1-й), так как для любых векторов x(1), x(2), . . . , x(N ) в Rd 

2



2

1 N N 2 1 2N 1 ′

(i)

(i) 2 (i)  (i )  kx k − x x − x =



∑ ∑

N (N − 1) i6∑ N (N − 1) N N i=1 i=1 =i ′ (справа в больших скобках стоит выборочная дисперсия).

D E2 (i) ∑ x , v1 = kXv1k2 = v1⊤X⊤Xv1 → max N

k = 1:

kv1 k=1

i=1

Функция Лагранжа:

L = v1⊤X⊤Xv1 − λ1(kv1k2 − 1)

∂L = 2X⊤Xv1 − 2λ1v1 = 0 ∂v1



X⊤Xv1 = λ1v1,

т. е. v1 — собственный вектор матрицы X⊤X, относящийся к максимальному с. ч. λ1. E2 N D k = 2: ∑ x(i), v2 = kXv2k2 = v2⊤X⊤Xv2 → max kv2 k=1 v1⊥v2

i=1

Функция Лагранжа: L =

v2⊤X⊤Xv2

2

− λ2(kv2k − 1) −

µ12v1⊤v2



∂L = 2X⊤Xv2 − 2λ2v2 − µ12v1 = 0, ∂v2

умножая на v1⊤ слева: 2v1⊤X⊤Xv2−2λ2v1⊤v2−µ12v1⊤v1 = 0



2λ1v1⊤v2−2λ2v1⊤v2−µ12v1⊤v1 = 0

откуда X⊤Xv2 = λ2v2 т. е. v2 — с. в. матрицы X⊤X для следующего с. ч. λ2.



µ12 = 0,

v1 = argmax kXvk2

(1)

kvk=1

v2 = argmax kXvk2

(2)

...

kvk=1 v⊥v1

vk =

argmax kvk=1 v⊥v1 ,...,v⊥vk−1

kXvk2

(k)

Докажем, что жадный алгоритм работает, т. е. 2

2

2

2

kXv1k + · · · + kXvk k = max kXw1k + · · · + kXwk k kwi k=1 wi ⊥wj

k = 1: из (1) k = 2: Пусть

w2 ⊥ v1 ,

kXv1k2 ≥ kXw1k2 из (1)

kXv2k2 ≥ kXw2k2 из (2) и (∗) k − 1 → k: Пусть



W2 = L(w1, w2) ⇒

wk ⊥ v1, v2, . . . , vk−1,

kXv1k2 + kXv2k2 ≥ kXw1k2 + kXw2k2

Wk = L(w1, . . . , wk )

kXv1k2 + · · · + kXvk−1k2 ≥ kXw1k2 + · · · + kXwk−1k2 по инд. предположению 2

2

kXvk k ≥ kXwk k

(∗)

из (k) и (∗∗)

kXv1k2 + · · · + kXvk k2 ≥ kXw1k2 + · · · + kXwk k2

(∗∗) ⇒

V1 = W1 v1 v2

b

w1

w2 W2

4-я задача. Пусть X — d-мерная случайная величина. Требуется найти такой ортонормированный базис v1, v2, . . . , vd, в котором ковариация между различными координатами равна нулю. После преобразования к этому базису Cov(Xj , Xj ′ ) = 0



(j 6= j ′),

где Cov(Xj , Xj ′ ) = E (Xj − E Xj )(Xj ′ − E Xj ′ ) — коэффициент ковариации. Т. е. матрица Cov X должна стать диагональной. Искомый базис — это базис из собственных векторов матрицы Cov X. Первые три задачи являются аппроксимацией к 4-й задаче. Дисперсия по направлению w, kwk = 1, равна w ⊤ Cov Xw Ее максимизаци тоже приводит к той же задаче.

Ковариационная матрица (X — столбец): Cov X = E (X − E X) · (X − E X)





.

Эмпирическая (или выборочная) ковариационная матрица (x(i) — столбец): N 1 (i) (i) ⊤ dX = (x − x)(x − x) . Cov ∑ N − 1 i=1

Если данные центрированы, то

dX = Cov

1 X⊤X. N −1

Векторы главных компонент v1, v2, . . . , vd — это ортонормированный набор d X, расположенных в порядке убывания собственных векторов матрицы Cov собственных значений λ1 ≥ λ2 ≥ · · · ≥ λd ≥ 0.

5

Рукописные цифры. d = 1024, k = 2

0 −5

z2

7

7 3 7 7 3 777 7 7 7 97 7 3 7 7 77 7 777 77 777 77 7 9 7 7 77 7 7 77777 3 7 77 7 7 777 77799 773 77 7 77 73 7 7 777 7 7 7 7 73 3 3 97 77 3 737 7 7377 7 73 7 33 3 7 7 7 2 7 7 7 7 7 33 377 7 7833 337377 477373727232 3 7 3 7 2 977 7 77 74 339 773 97 3 277723 37 8 8 733 3 2 3 1 7 3 3 3 3 7 7 3 3 7 3 3 7 7 3 2 7 9 3 3 3 3 383332 9 3 8331 33 7 7 7 7 7 72 97 733328335333738273 3 3 272337 4 31 822 3 77 3 9933323 22837 75 77 27377232 77274 233 328333 3 1 2 7 7 2 7 3 3 3 7 3 2 3 7 7 3 9 5 3 1 3 1 7 3938 777227 7 92 27 325323 5739 23 313 338 25717 93 33 333 3 328 73 23733 7 2 27 5 92 3 8983 98 8 32 32 22393972239333 79 3 45 2 35 9 7 8232228593 35 252522 9 3 3 22 9 7 3 7 8 3 8 2 3 9 2 8 3 1 2 9 5 5 4 9 3 5 7 3 3 2 2 2 2 3 9 8 2 1 9 7 3 1 5 5 7 2 2 2 8 3 38 9 3 3 9 13 898 98 1 1188 8 8 81 95 2725 2 38 23 33 522193229 23323 2 1 9 9 7 51 2 8 1 5 7 5 2 3 3 3 4912242172 17232 3 2 2 2 288 8829959981982 8918 1 998 9 1 8 1 1 3225535 99 9819 72 57 21755 92 2512929 55233 221723 5381 529998 79 3 9 11 91 89185 89189 8189 1 8 1 95 82 1 2 5 5 7 5 2 3 8 5 9 5 9 97 2 359158 8 9 3 2 5 5 5 1 5 1 9 2 8 15121219219 3 25982919 8 22545 9 8 15 955 55259 37858 572 8 1 298 955 999215 99 9 2 8 8 5 3 8 3 1 5 8 8 9 5 9 1 8 4 2 1 2 5 5998881 9 8582 1 4 9 2 1 5 8 8 1 9 8 8 9 2 1 9 2 1 1 548 8 188915 8 11 5959 32158 2959 9 5 99299 5 91559 19 8 58919 11 195 29 9 5 198169 2 8 4 5 2 1 5 9 8 78 9 2 1 8 5 18888881 2 9 2 1 8 5 4 5 9 2 9 1 9 5 5 8 5 8 4 9 3 9 91555185 25 5 52 891 8525 8951 85 832198549 12 599 5 51955119 181 9 88898891818811 11 3991 8 12 2525 94215 2259 982 58358 2919599 15 122251 9 5 2 5 5 2 5 8 1 5 1 9 5 5 1 9 1 2 5 8 5 9 9 1 5 5 1 1 2 5 8 9 5 2 1 1 5 9 5 9 1 9 9 2 9 9 5 9 5 4 1 5 1 5 8 4 4 1 8 1 1 9 9 9 8 8 2 1 1 5 9 4 8 9 8 1 9 1 4 2 2 9 89 11 51 111 84 94 1 29 59 41 9 5 11 48 58 9948829 881 5 1 5 91 129 491 8 12419 254 58152448 1 18 8 2 8581955 58 95 188 8 181 599 9 119 1 0 1 5 5 8 5 4 1 2 9 81 1 4 1 5 8 2 2 5 4 1 1 8 5 2 9 4 1 8 9 5 1 1 5 1 1 5 8 5 1 1 5 8 1 4 5 1 5 4 1 8 4 5 8 21988 1 55245 15515 1 5 8 88 55 449 59 10 819 3 8 8 2 4 114 4024 1 1 4 4 4 4 5 4 6 494 1 2 4 0 2 1 4 00 4 1 4 4 54 0 1 2904 514 4 4 8 8 4 1 4 0 4 0 0 4 00 4 4 04044 4060004010006010 440 0 4 4 8 006 0 0 040 001 00 66 00 0404 004000 444 400 44000 0 600 44466 000 04 04 0 0 4 4044 40 4 6 4 0 0 0 0 4 14 604 0006 04 6060 0 4000 0 00 0 0 0 000 6 6 0 4 4 4 0 0 4 4 4 6 0 0 0 6 4 6 0 0 40 6 6000004 006 4 60006 60 6606 4 4 6 404 46 4 46 6066 6064 46 06 66 0 0600006 060 00 0 600 646 660 0064 64406 64 06 0 6 4 04 0 0 00 006 0 6 6 4640 4 6 6 4 6 046 660 66 6 0 4 4 4 6 0 4 4 4 6 6 6 6 0 6 6 6 6 6 6 6 0 6 4 6 6 6466 666 6 0666606 6 44 4 6 4666 6006 06066 66 00 0 6 0 0 4 0 0 6 6 6 4 0 4 0 0 0 060 6646 4 46 46 066 4 4 46 44 6 66 6 6 6 666 6 66 46 06 46 0446 66644 60660 6 6 64 6 4060 6646 6 66 66664 4 0 6 6 4 66 66 60664 646466666 66 6 646 4 46 4 4 4 6 66 4 64

10

12

14 z1

16

18

Рукописные цифры. LDA

−5

LD2

0

5

2 2222 2 2 2 22 22 2 2 22 2 22222222 22 2 2 22 2 0 2 22 2 2 2 00 0 0 0 0 2 2 2 2 2 2 22 22 22 22 22 22 2 00 00 0 0 22222 22222222222222 0 0 000000 00 0 0 0 2222222222 2 22 22222 222 2 2 0 0 2 2 0 2 0 2 2 0 2 0 0 0 000 0 2 2 2 22 2 2 2 0 2 0 0 2 0 2 0 0 0 2 22 22 2 0 000 00000000 00 0 2 3 2 2 2 2 2 0 0 2 0 2 0 0 0 6 0 0 0 0 2 2 222 22 32 2 0 00 0000 0 22 600000 60 00 8 88 000 00 0600000 0 2 255522222 2 22 2 32 33 60 0 0 5 5 6 0 0 0 0 0 8 5 0 0 0 0 8 0 000000600006 0 23 55 3 3 3 2 00 000 00 6 88 18 8888 58 55 5 2 535552355352253335 22 233 33 006006006606666 0600 060660 9 0 5 6 8 8 5 25 5335 3333 3 3 0 60666660006 6066606006806660 8 589 8559355555 8888885 888 8 3333333333 3 3533325353 595 5535 88 818 0 6 066 06 06666 5952 95 0060 5 6006 888 95 5555 9915515 8888 9 9 8 8 8 8 5 3 5 9 5 06606666666666 3 5 1 8 5 5 9 3 3 9 6 333333 6 3 1 8 8 5 8 1 6 0 6 3 3 3 8 5 5 6 6 5 9 3 6 3 3 3 6 66 9 60 5 8 9 5 8 3 8 5 5 3 3 8 8 3 8 5 3 6 8 9 8 3 3 3 3 5 1 3 8 1 9 3 3 8 5 3 6 5 6 6 8 6 8 9 8 8 8 5 5 888888888 85 18 33 333 66 66 6 159 2 5 55253 35 6 33533333 811595 818181888 355 3 5 1 33 3 8 6 666660666666666 6 1 1 8 3 9 8 8 9 9 5 8 5 8 5 9 3 5 9 8 9 5 9 0 8 5 9 3 3 3 5 5 5 3 3 3 6 8 3 9 5 6 66666 6 66 1 3 3 333 3 51 3555 55333335335 89 59 888888 6 188 881 33 66666 5 91 8 988 6660 95855955 9 66 6666 9 66 989 533 8 1588985988 3 5353333 666 6 5 58999 6666 899 6 1 1 88 18 8 1 1 151819 55 333 33333 33 98188 6 0 6 606 998 3 5 59955 91 81 8 66666 8 1 5 3 6 6 8 9 6 9 5 9 1 8 9 9 6 1 3 6 5 9 1 5 3 8 9 3 8 3 33 3 3 1 3 1 9 3 1 6 8991 666 8 995955595155 355 3333 3333 66 6666 9199999918998899911 1 8 88 18 88891 8911991919981 55 533 35 3 335 3 11181918 1 1 1 8111 181819 666 6 66 5 9 5 9 1 5 6 9 9 1911991 95 5 3 3 6 91189119 11118 99181 91919 8 1 81 11 111111851 11 9195 6 6 6 6 6 66666 6 1 11911999 911 3 1991191 1191991 1 919 1 19999 6 1 3 8 1 1 811 891111811 11 1 1 8 1 1 8 9 1 1 1 9 9111 9899 1 9 11 1 919 991119191 9995 8 1 19 991 3 1 9 9 9 1999 191 3 1 1 1 91199 19 9 4 1 9 1 9 1 1 9 9 9 9 9 119 9 19 1 9 19 1 191919 9 1 7 19 9 4 9 4 9 95 7 4 7 4 4 7 7 4 4 4 4 4 4 7 77 4 44 7 7 7 4 4 4 7 4 7 7 4 4 4 444444 4 4 4 7 777 7 4 44 4 7 444 4444 444 4 7 4 4 7 7 4 444 4444 7 4 77 4 44 44 444 4 4 7 77 777 77777 7 7 7 4 444 44 44444 77777 7 44 4 44 444444444 7 4 7 7 7 7 4 44 4 4 4 444444 44 44444 4 4 4 4 7 7 7 77 7777777777 7 7 7 77 4444 4444 4 4 7 7 7 777777 77 77 7 7 7 7 7777 4 4444444444444 44 777777 7 7 77 777777 7 4 7 7 4 4 4 7 4 4 4 77 4 4 44 44 4 7 77777 777 777 7777 7 77777 7 7 7 7 4 44 7 7 7 7 7777777 77 4 777777 7 77 77 7 77 7 777 4 7 7 77 7 4 7

−10

−5

0 LD1

5

Phoneme — распознавание голоса. (Andreas Buja, Werner Stuetzle and Martin Maechler) 4509 log-периодограмм длины d = 256 (все признаки количественные). [a:]

695

[C] 1022 [i:] 1163 [d]

757

[s]

873

1000 500 0

Variances

1500

phoneme.pca

Comp.1

Comp.3

Comp.5

Comp.7

Comp.9

Какое количество главных компонент выбрать? Существует много (эвристических) подходов. Например: Выбираем нужное количество s главных компонент так, чтобы объясненная дисперсия не меньше некоторого заданного уровня α (например, α = 0.95): σ12 + σ22 + · · · + σs2 ≥α σ12 + σ22 + · · · + σs2 + · · · + σd2 dX Заметим, что σ12 + σ22 + · · · + σs2 + · · · + σd2 = tr Cov

20 0 −20 −40 −60

2nd principal component

40

aa ao dcl iy sh

−100

−50

0

1st principal component

50

100

Все данные были случайно поделены на обучающую (4/5) и тестовую (1/5) выборки Тестовая ошибка: Метод

Все признаки 15 главных компонент

SVM

0.076

0.074

Random Forest

0.081

0.083

AdaBoost

0.083

0.088

Bagging

0.099

0.124

2.6.1. Eigen Faces Sirovich, Kirby (1987) — для задачи реконструкции лица Matthew Turk and Alex Pentland (1991) — для задачи распознавания Пример. Ariel Sharon

77

Colin Powell

236

Donald Rumsfeld

121

George W. Bush

530

Gerhard Schroeder 109 Hugo Chavez Tony Blair

71 144

N = 1288, h = 50, w = 37, d = 50 × 37 = 1850 При использовании s = 100 главных компонент + машина опорных векторов с ядром RBF получаем ошибку 14%. При s > 300 ошибка только возрастает.

2.7. Сингулярное разложение — это самый «правильный» способ вычислить главные компоненты (нужно еще для многих других вещей) Сингулярное разложение матрицы X — это X = |{z} U · |{z} Σ · |{z} VT |{z} N ×d

N ×N

N ×d

d×d

Матрицы U и V — ортогональные (U−1 = UT, V−1 = VT) Матрица Σ — диагональная с неотрицательными диагональными элементами (сингулярными числами), записанными в порядке убывания В матрице U по столбцам — левые сингулярные векторы В матрице V по столбцам — правые сингулярные векторы (это и есть главные компоненты!)

Пусть d < N , тогда лучше использовать неполное сингулярное разложение: X = |{z} U · |{z} Σ · |{z} VT |{z} N ×d

Если d > N , то наоборот:

N ×d

d×d

d×d

X = |{z} U · |{z} Σ · |{z} VT |{z} N ×d

N ×N

N ×N

N ×d

Пусть данные в X центрированы, тогда C=





1 1 1 1 XTX = (UΣVT)T(UΣVT) = VΣ2VT = V Σ2 V T N −1 N −1 N −1 N −1

Итак, V составлена из главных компонент (правых сингулярных векторов). С точностью до перестановки столбцов V = Q. 1 2 Σ составлена из дисперсий по главным компонентам. N −1

С точностью до перестановки диагональных элементов

1 2 Σ N −1

= D.

Пусть используется k ≤ d главных компонент. Uk — первые k столбцов матрицы U Σk — первые k столбцов и k строк матрицы Σ Vk — первые k столбцов матрицы V ⊤ · V · Σ ≈ U X k k k |{z} |{z} |{z} |{z} N ×d

N ×k

k×k

k×d

Vk — векторы главных компонент (по столбцам), или «матрица нагрузок» (loadings) XVk = Uk Σk — проекции векторов на г.к., или «матрица счетов» (scores) Упражнение 2.11 Доказать, что XVk = Uk Σk √



X(Σk ) N = Uk N — нормировка на единичную дисперсию, или «матрица z-счетов» (z-scores) — whitening −1

X − Uk Σk Vk⊤ — матрица ошибок

2.8. Напоминание: Проверка статистических гипотез Пусть функция распределения P ∗(x) случайной величины X не известна. Гипотеза H0: P ∗(x) = P (x). Альтернативная гипотеза H1. Ошибка 1-го рода: Гипотеза H0 отвергается (и принимается H1), хотя H0 верна. Ошибка 2-го рода: Гипотеза H0 принимается, хотя она не верна. Аналогично для параметрических гипотез.

Вначале выбирается α — вероятностный уровень значимости критерия, равный вероятности того, что произойдет ошибка 1-го рода (например, 0.1, 0.05, 0.01) Вычисляется реализация t∗ статистики t(X), характеризующей отклонение эмпирических данных от теоретических (соответствующих гипотезе H0). Пусть Tкритич = Tкритич(H0, α) — критическая область — подмножество значений статистики t(X), такое, что Pr (t ∈ Tкритич |H0) = α. Если t∗ ∈ Tкритич, то гипотеза H0 отвергается. Если t∗ ∈ / Tкритич, то можно считать, что эмпирические данные согласуются с гипотезой H0, и гипотеза H0 принимается. p(t)

p(t)

t∗ b

Tкритич

b

t∗

Tкритич

Часто в качестве Tкритич(H0, α) выбираются области вида p(t)

t

{t : t ≥ tα}

tα Tкритич p(t)

{t : t ≤ tα}

t Tкритич tα p(t)

{t : |t| ≥ tα}

t Tкритич −tα

tα Tкритич

Площадь желтой области на каждом графике равна вероятностному уровню значимости α.

2.8.1. p-value p-valueпринадлежит интервалу [0, 1] и вычисляется по выборочному значению t∗ статистики t(X) (и зависит также от критерия и гипотезы H0, но не зависит от α). p-value— это минимальное значение уровня значимости α, при котором данное значение t∗ статистики t(X) принадлежит критической области Tкритич(H0, α): p-value(t∗, H0) = inf {α : t∗ ∈ Tкритич(H0, α)} Из этого определение вытекает следующее основное свойство p-value. Если p-valueменьше α, то гипотеза H0 отвергается. Иначе гипотезу H0 отвергнуть нельзя.

Если Tкритич = {t : t ≥ tα }, то p-value = Pr {t(X) ≥ t∗} p(t)

t b

t∗ tα Если Tкритич = {t : t ≤ tα }, то p-value = Pr {t(X) ≤ t∗} p(t)

t

b

tα t∗

Если Tкритич = {t : |t| ≥ tα}, то p-value = Pr {|t(X)| ≥ |t∗|} p(t)

b

−tα −t∗

b

t

t∗ tα

p-value= площади заштрихованной фигуры, α = площади желтой фигуры

Глава 3 Метод наименьших квадратов

Agenda • Регрессионная функция – Метод наименьших квадратов – Метод максимального правдоподобия • Линейная регрессия • Оценка коэффициентов по выборке • Переобучение • Сокращение числа параметров и «усадка» коэффициентов – Выбор подмножества параметров – Гребневая регрессия – Лассо – Метод главных компонент – Частичные наименьшие квадраты

3.1. Регрессия Гаусс (1794–1795), Лежандр (1805–1806) — метод наименьших квадратов (Исследование траектории астероида Церера) Фрэнсис Гальтона (1822–1911) «Регрессия к середине в наследовании роста» (1885 г.) «Где это возможно, считайте». Ф.Гальтон Зависимость роста ребенка от роста родителей в исследовании Ф. Гальтона

74 72 70 68 64

66

Child height

62

data x=y regression means

64

66

68

70

72

Parents height

928 наблюдений ch = 0.65par + 24 = 68.2 + 0.65 × (par − 68.2)

74

4.0 3.5 2.5

3.0

2nd semester

4.5

5.0

x = средняя оценка по мат. анализу и алгебре в 1-м семестре y = средняя оценка по мат. анализу, алгебре и программированию во 2-м семестре

3.0

3.5

4.0

4.5

1st semester

79 студентов

5.0

5.5

5.0 4.5 4.0 3.5 3.0

2nd semester

2.5

data x=y regression means

3.0

3.5

4.0

4.5

5.0

1st semester

sem2 = 0.93 + 0.77 × sem1 ≈ 3.86 + 0.77 × (sem1 − 3.82) 3.82 — средняя оценка по всем студентам в 1-м семестре 3.86 — средняя оценка по всем студентам во 2-м семестре

5.5

5e+03

Зависимость между массой тела и массой мозга животного Asian elephant

5e+02

Human Giraffe Horse Donkey Chimpanzee

Cow Gorilla

Rhesus monkey

Sheep

Potar monkey

Pig Jaguar Grey wolf

5e+01

Goat

Brachiosaurus Triceratops Dipliodocus

Kangaroo Cat Rabbit Mountain beaver Guinea pig

5e+00

brain

African elephant

Mole

5e−01

Rat Golden hamster Mouse

1e−01

1e+01

1e+03 body

lg brain = β0 + β1 lg body β0 = 0.94, β1 = 0.75, brain = 8.6 × (body)3/4 Найдите на картинке выбросы (outlayers).

1e+05

Обучающая выборка (x(1), y (1)), (x(2), y (2)), . . . , (x(N ), y (N )) x(i) ∈ X ,

y (i) ∈ Y = R

f ∗ (x(i)) ≈ y (i)

(i = 1, 2, . . . , N )

(i = 1, 2, . . . , N )

Будем искать функцию f ∗(x) в виде (линейная регрессионная модель): d

f (x) = f (x, β) = β0 +

∑ βj xj

j=1

Метод наименьших квадратов — один из методов нахождения неизвестных параметров β0, β1, . . . , βd. b доставляющих минимум сумме квадратов невязок, или Ищем набор параметров β, остаточной сумме квадратов (residual sum of squares) N

RSS(β) =





i=1

Заметим, что

2

y (i) − f (x(i), β) .

1 RSS(β) есть эмпирический риск для квадратичной функции потерь. N

(x(N ), y (N ))

y

b

y = f (x) ≡ β0 + βx b

b

(x(N ), f (x(N ))) b

b b

(x(i), f (x(i))) b

b

b

(x(1), f (x(1)))

b b

b

(x(i), y (i))

b

b

O

(x(1), y (1)) x

y b

b

b

b

N −1

y = β0 + ∑ βj xj j=1

b

b

b

O

x

b

(i)

b

(i)

(x , y ) b

b b b b b b b b b b b

y

b b

b

(x(i), f (x(i)))

b b

b b b b b

b b b

b b

b b

b b b

b

b

b

b

b b b

b

b b

b b

b

b

b b b

b b

b

b

b

b

y = β0 + β1x1 + β2x2 b

b b

x2

b

b b

b b

b

b b b

b b

b b b b b

b

b

b

b

b

O

b b

b b

b

x1

Функция f ∗(x) может быть функцией более общего вида: q

f (x) = f (x, β) =

∑ βj hj (x),

j=1

где βj — неизвестные параметры, а hj (x) — заданные функции Заметим, что параметры βj входят линейным образом. Но неизвестные параметры могут входить и нелинейным образом: Например, y = β1eλ1 x + β2eλ2x. β1, β2 — линейно, λ1, λ2 — нелинейно. Если λ1, λ2 известны, то получаем линейную задачу (наименьших квадратов) Если λ1, λ2 не известны — нелинейную задачу (наименьших квадратов) Задача аппроксимации сплайнами тоже сводится к линейной задаче наименьших квадратов.

Почему метод наименьших квадратов? Выведем (при некоторых дополнительных предположениях) метод наименьших квадратов из принципа макcимального правдоподобия. Y — с. в. с плотностью вероятности p(y, θ), где θ — вектор параметров. N копий непрерывной случайной величины Y : Y (1), Y (2), . . . , Y (N ) (N независимых одинаково распределенных с.в. — испытания Бернулли) N реализаций этих величин: y (1), y (2), . . . , y (N ) Плотность вероятности N -мерной с.в. (Y (1), Y (2), . . . , Y (N )): L(θ) = p(y (1), y (2), . . . , y (N ), θ) = p(y (1), θ) · p(y (2), θ) · · · · · p(y (i), θ) L(θ) — функция правдоподобия Логарифмическая функция правдоподобия: N

ℓ(θ) = ln L(θ) =

∑ ln p(y(i), θ).

i=1

Принцип максимального правдоподобия предполагает, что наиболее разумные значения неизвестных параметров θ доставляют максимум функции L(θ) (и ℓ(θ)).  (i) (i) (Если Y — дискретная, то вместо p(y , θ) нужно рассмотреть Pr Y = y )

Модель с аддитивной случайной ошибкой: y = f ∗ (x) + E, где E — случайная величина (ошибка), не зависящая от x, и E E = 0. f ∗(x) = E (Y | X = x) — регрессионная функция. Дополнительно предположим, что E ∼ N (0, σ 2) ⇔ 2 1 y − f (x, β) − · 2 1 2 σ ·e p(y | x, β) = √ 2πσ Тогда

2 1 N (i) N (i) ℓ(β) = ∑ ln p(y | x, β) = − ln 2π − N ln σ − 2 ∑ y − f (x , β) 2 2σ i=1 i=1 N

(i)

В ней только последний член содержит вектор параметров β. С точностью до множителя этот член равен RSS(β) Итак, при сделанных предположениях метод наименьших квадратов эквивалентен принципу максимального правдоподобия

Как найти минимум функции RSS(β)? Пусть   (1) (1) (1) 1 x1 x2 . . . xd    1 x(2) x(2) . . . x(2)   1 2 d  X= ,  ....................    (N ) (N ) (N ) 1 x1 x2 . . . xd Тогда



   y=  

y (1)



 (2)  y  , ..    y (N )





β  0 β   1 β= .   .    βd

RSS(β) = ky − Xβk2 = (y − Xβ)⊤(y − Xβ) → min

Можно рассмотреть систему уравнений (относительно β) Xβ = y b называется псевдорешением этой системы (оно минимизирует норму невязки). β RSS(β) — квадратичная функция от d + 1 неизвестных (параметров) β0, β1, . . . , βd. Дифференцируя, находим: ∂ RSS = −2X⊤(y − Xβ), ∂β

∂ 2RSS ⊤ = 2X X. ⊤ ∂β ∂β

Обозначим x0, x1, . . . , xd столбцы матрицы X. Если x0, x1, . . . , xd линейно независимы, то матрица X⊤X невырождена и положительно определена, поэтому минимум функции RSS(β) достигается, когда первая производная по β обращается в ноль: X⊤(y − Xβ) = 0



X⊤Xβ = X⊤y.

Это нормальная система уравнений, или система нормальных уравнений. Единственным решением является вектор b = (X⊤X)−1X⊤y β

Итак, псевдорешением системы Xβ = y является решение системы X⊤Xβ = X⊤y. Матрица X+ = (X⊤X)−1X⊤ называется псевдообратной (Мура–Пенроуза) к X. Входным значениям x1, x2, . . . , xN будет соответствовать вектор выходных переменных b = X(X⊤X)−1X⊤y. b = (b y y1, b y2, . . . , b yd)⊤ = Xβ

b = Hy Пусть H = X(X⊤X)−1X⊤, тогда получаем y b есть ортогональная проекция y на п/п-во, натянутое на x0, x1, . . . , xd y H называется матрицей проектирования

y

x2

b

b y

x1

b на котором достигается минимум Если столбцы матрицы X линейно зависимы, то β, b является ортогональной функции RSS(β), не единственен, однако, по-прежнему, y проекцией вектора y на линейную оболочку векторов x0, x1, . . . , xd.

3.2. Проверка значимости и доверительные интервалы для коэффициентов (регрессионный анализ) b случайны; y, E, β

X, β детерминированы;

y = Xβ + E,

Несмещенность:

E E = 0, Cov E = σ 2I.

b = (X⊤X)−1X⊤y = (X⊤X)−1X⊤(Xβ + E). β

b − β = (X⊤X)−1X⊤(Xβ + E) − β = (X⊤X)−1X⊤E β

b − β) = (X⊤X)−1X⊤E E = 0 E (β

Матрица ковариации:

b = E (β b − β)(β b − β) Cov β

 ⊤

=E







b = β. Eβ

(X⊤X)−1X⊤E (X⊤X)−1X⊤E

⊤ 

= (X⊤X)−1X⊤ · E (EE ⊤) · X(X⊤X)−1 = (X⊤X)−1X⊤ · σ 2I · X(X⊤X)−1 = σ 2(X⊤X)−1X⊤X(X⊤X)−1 = σ 2(X⊤X)−1 Несмещенной оценкой для σ 2 является остаточная дисперсия σ b2 = RSS /(N − d − 1):   2 ⊤ Eσ b = E RSS /(N − d − 1) = E y (I − H)y/(N − d − 1) = σ 2.

Дополнительные предположения: Пусть ошибки E (i) распределены по нормальному закону: E ∼ N (0, σI). В этом случае из некоррелированности случайных величин E (i) следует их независимость. Теперь можно показать (faciat, qui potest), что  ⊤ −1 2 b β ∼ N β, (X X) σ и (N − d − 1) σ b2 ∼ σ 2χ2N −d−1.

Эти свойства будем использовать для построения статистических тестов и доверительных интервалов для βj .

Проверка значимости модели. Гипотеза H0: β1 = · · · = βd = 0 Альтернативная гипотеза H1: найдется j, для которого βj 6= 0 Если гипотеза H0 верна, то решением задачи наименьших квадратов будет 1 β0 = y = N

N

(i) y ∑ .

i=1

В этом случае остаточная сумма квадратов (называемая в даном случае полной суммой квадратов относительно среднего) равна N

TSS =

∑(y

i=1

(i)

2

− β0) =

d

∑(y(i) − y)2

i=1

Если принимается гипотеза H1, то говорят, что модель статистически значима.

Можно показать, что d

∑(y

i=1

(i)

2

− y) =

d

∑(y

i=1

(i)

d

y − y)2 −b y ) + ∑ (b (i) 2

i=1

RSS

TSS N

ESS

TSS = ∑ (y (i) − y)2 — полная сумма квадратов (total sum of squares) i=1 N

ESS = ∑ (b y (i) − y)2 — сумма квадратов, обусловленная регрессией (explained s. of sq.) i=1

Если гипотеза H0 верна, то ESS b F = dσ 2



RSS ∼ F (d, n − d − 1) (n − d − 1)σ 2

Если модель значима, то ESS большая и критическая область справа:

Tкритич O

b

F1−α(d, n − d − 1)

Коэффициент детерминации (взгляд с другой стороны) Коэффициент детерминации, или коэффициент регрессии Пирсона RSS ESS R =1− = . TSS TSS — доля объясняемого регрессией разброса относительно среднего. 2

(⋆)

0 ≤ R2 ≤ 1. Если R2 близок к 1, то RSS намного больше TSS. √ Очевидно, что R = R2 по модулю равно выборочной корреляции между y (i) и b y (i). Если d = 1, то R равен выборочной корреляции между x(i) и y (i). Если гипотеза H0 верна, то 2 R /d b ∼ F (d, n − d − 1). F = 2 (1 − R )/(N − d − 1)

Недостаток R2 : при добавлении в модель новых признаков R2 не изменяется. (Если d велико и близко к N , то может быть, что RSS ≈ 0 и R2 ≈ 1.) В этом случае используется скорректированный («подправленный») коэффициент Ra2

1 − R2 =R − . N −d−1 2

Упражнение 3.1 Доказать, что TSS = RSS + ESS. Это можно доказать b⊥y b − y, где y — непосредственное, а можно предварительно доказать, что y − y вектор, составленный из y, и воспользоваться этим. Упражнение 3.2 Разности

e(i) = y (i) − b y (i) = y (i) −

d

(i) b β x ∑ j j

j=1

называются остатками. Доказать, что

N

∑ e(i) = 0.

i=1

Упражнение 3.3 Доказать, что d

y = β0 +

∑ βbj xj .

j=1

Упражнение 3.4 Доказать, что N

∑y

i=1

(i)

N

=

(i) b y ∑ .

i=1

Проверка значимости одного коэффициента. Гипотеза H0: βj = 0 (j фиксировано): использование переменной xj не улучшает предсказание по сравнению с предсказанием, полученным на основе только остальных d − 1 переменных. Для проверки этой гипотезы (против гипотезы βj 6= 0) рассмотрим стандартный коэффициент (z-score) bj β tj = , se βj где √ se βj = σ b vj

(⋆)

— стандартная ошибка коэффициента βj , а vj — j-й диаг. элемент матрицы (X⊤X)−1. В предположении βj = 0 коэффициент tj имеет t-распределение Стьюдента tN −d−1. Если |tj | «велико», то гипотезу H0 следует отбросить. bj статистически Если гипотеза H0 отбрасывается, то говорят, что коэффициент β значим.

Можно проверить гипотезу βj = βj′ (относительно односторонней или двусторонней альтернативы), где βj′ — некоторое заданное значение. Статистика критерия имеет в этом случае вид bj − β ′ β j . t′j = se βj Коэффициент t′j имеет распределение tN −d−1. Проверка гипотезы зависит от вида альтернативной гипотезы и происходит обычным образом.

Проверка значимости группы коэффициентов. Гипотеза о равенстве нулю группы коэффициентов (против гипотезы, что по крайней мере один из коэффициентов не равен нулю): переменные этой группы не улучшают предсказание по отношению к предсказанию, полученному без этих переменных. Будем использовать статистику (RSS2 − RSS1)/(d1 − d2) F = , RSS1 /(N − d1 − 1)

где RSS1 — остаточная сумма квадратов «б´ольшей» модели с d1 + 1 параметрами, а RSS2 — остаточная сумма квадратов «вложенной» модели c d2 + 1 параметрами, («вложенная» модель получается из «б´ольшей» обнулением d1 − d2 параметров). В предположении, что E имеет нормальное распределение, статистика F имеет F (d1 − d2, N − d1 − 1) распределение Фишера. Если отбрасывается один коэффициент, то F равен квадрату стандартного коэффициента tj из (⋆).

Доверительные интервалы. Для βj доверительным интервалом является  (1−α) √ (1−α) √ b b σ b vj , βj − z σ b vj , βj + z

где z (1−α) есть (1 − α)-процентиль для нормального распределения: z (1−0.1) = 1.645, z (1−0.05) = 1.96, z (1−0.01) = 2.58,

и т. д.

√ bj ). bj = σ (vj — j-й диаг. элемент в (X⊤X)−1, se β b vj — стандартная ошибка для β b ± 2 · se β b соответствует мере доверия около 95%. Таким образом, интервал β

3.2.1. Пример Зависимость длина тормозного пути (dist) от начальной скорости автомобиля (speed) [Ezekiel M. Methods of Correlation Analysis. Wiley. 1930], N = 50. В качестве модели рассмотрим

60 0

20

40

dist

80

100

120

dist = β0 + β1 × speed.

5

10

15 speed

b0 = −17.579, β b1 = 3.932. Найдены значения β

20

25

120 60 0

20

40

dist

80

100

data 1st order poly 2nd order poly

5

10

15

20

25

speed

Синий график: регрессия в виде dist = β0 + β1 × speed. Красный график: регрессия в виде dist = β0 + β1 × speed + β2 × speed2.

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -17.5791 6.7584 -2.601 0.0123 * speed 3.9324 0.4155 9.464 1.49e-12 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 15.38 on 48 degrees of freedom Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438 F-statistic: 89.57 on 1 and 48 DF, \pvalue: 1.49e-12 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2.47014 14.81716 0.167 0.868 speed 0.91329 2.03422 0.449 0.656 I(speed^2) 0.09996 0.06597 1.515 0.136 Residual standard error: 15.18 on 47 degrees of freedom Multiple R-squared: 0.6673, Adjusted R-squared: 0.6532 F-statistic: 47.14 on 2 and 47 DF, \pvalue: 5.852e-12

Для dist = β0 + β1 × speed Коэффициент детерминации и подправленный коэфициент детерминации: r2 = 0.6511,

ra2 = 0.6438.

Таким образом, регрессия объясняет около 65% изменчивости данных. Стандартные ошибки и стандартные коэффициенты: se β0 = 6.7584,

se β1 = 0.4155,

t0 = −2.601,

t1 = 9.464.

Задача имеет N − d − 1 = 48 степеней свободы. Сравнивая значения t0 и t1 с квантилями t-распределения Стьюдента с 48 степенями свободы, получаем, что для гипотезы β0 = 0 значение p-valueменьше 0.0123, а для гипотезы β1 = 0 оно равно 1.49 × 10−12. Если считать, что уровень надежности равен, например, α = 0.01, то гипотезу β0 = 0 принимаем, гипотезу β1 = 0 отвергаем. Остаточная стандартная ошибка равна σ b = 15.38. Значение F -статистики F = 89.57 сравниваем с квантилями F -распределения F1,48. Получаем p-value, равное 1.490 × 10−12 — для указанного уровня надежности модель статистически значима.

Для dist = β0 + β1 × speed + β2 × speed2: b0 = 2.47014, β b1 = 0.91329, β b1 = 0.09996. Найдены значения β Имеем r2 = 0.6673, ra2 = 0.6532, se β0 = 14.81716, t0 = 0.167,

se β1 = 2.03422, t1 = 0.449,

se β2 = 0.06597,

t2 = 1.515.

Задача имеет N − d − 1 = 47 степеней свободы. Значение p-valueдля гипотезы β0 = 0 меньше 0.868. Для гипотезы β1 = 0 оно равно 0.656, а для гипотезы β2 = 0 равно 0.136. Таким образом, при уровне надежности α = 0.01 гипотезу β2 = 0 принимаем. Коэффициент β2 не является статистически значимым. Остаточная стандартная ошибка равна σ b = 15.18. Значение F -статистики F = 47.14 нужно сравнить с квантилями F -распределения Фишера F2,47. Это сравнение приводит к p-value, равному 5.852 × 10−12. Таким образом, для указанного уровня надежности модель статистически значима.

Сравниваем обе модели (1-я квадратичная; 2-я линейная) (RSS2 − RSS1)/(d1 − d2) (11353.52 − 10824.72)/(2 − 1) = = 2.296027 F = RSS1 /(N − d1 − 1) 10824.72/(50 − 2 − 1) √ Заметим, что F = 1.515265 совпадает с t-статистикой для β2 Вычисляем p-value= 0.13640241 — β2 незначим.

3.2.2. Пример. Boston Все данные: N = 506, d = 13 RSS = 11078.78 RSS /N = 21.90 Residuals: Min 1Q -15.595 -2.730

Median -0.518

3Q 1.777

Max 26.199

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.646e+01 5.103e+00 7.144 3.28e-12 *** CRIM -1.080e-01 3.286e-02 -3.287 0.001087 ** ZN 4.642e-02 1.373e-02 3.382 0.000778 *** INDUS 2.056e-02 6.150e-02 0.334 0.738288 CHAS 2.687e+00 8.616e-01 3.118 0.001925 ** NOX -1.777e+01 3.820e+00 -4.651 4.25e-06 *** RM 3.810e+00 4.179e-01 9.116 < 2e-16 *** AGE 6.922e-04 1.321e-02 0.052 0.958229 DIS -1.476e+00 1.995e-01 -7.398 6.01e-13 *** RAD 3.060e-01 6.635e-02 4.613 5.07e-06 *** TAX -1.233e-02 3.760e-03 -3.280 0.001112 ** PTRAT -9.527e-01 1.308e-01 -7.283 1.31e-12 *** B 9.312e-03 2.686e-03 3.467 0.000573 ***

LSTAT -5.248e-01 5.072e-02 -10.347 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.745 on 492 degrees of freedom Multiple R-squared: 0.7406, Adjusted R-squared: 0.7338 F-statistic: 108.1 on 13 and 492 DF, \pvalue: < 2.2e-16

Выделим обучающую (N = 405) и тестовую (Ntest = 101) выборки на обучающей RSS = 8655.383, RSS /N = 21.37132 на тестовой RSStest = 2522.615, R ≈ RSStest /Ntest = 24.97638, se R = 0.4997638. ! Ntest 1 1 1 2 b Var(Y − Y ) = (y (i) − b y (i))2 (se R) = ∑ Ntest Ntest Ntest − 1 i=1

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 32.353120 5.775840 5.601 4.01e-08 *** CRIM -0.116261 0.034297 -3.390 0.00077 *** ZN 0.049895 0.015084 3.308 0.00103 ** INDUS 0.032491 0.073167 0.444 0.65724 CHAS 2.054215 1.059339 1.939 0.05320 . NOX -17.501306 4.194206 -4.173 3.71e-05 *** RM 4.261255 0.500527 8.514 3.67e-16 *** AGE -0.003699 0.015249 -0.243 0.80845 DIS -1.389752 0.216254 -6.426 3.80e-10 *** RAD 0.310786 0.072337 4.296 2.19e-05 *** TAX -0.013453 0.004167 -3.229 0.00135 ** PTRATIO -0.913321 0.148451 -6.152 1.89e-09 *** B 0.008908 0.002929 3.042 0.00251 ** LSTAT -0.475633 0.061656 -7.714 1.02e-13 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.705 on 391 degrees of freedom Multiple R-squared: 0.7432, Adjusted R-squared: 0.7346 F-statistic: 87.03 on 13 and 391 DF, \pvalue: < 2.2e-16

Возьмем только значимые (***) переменные: CRIM + NOX + RM + DIS + RAD + PTRATIO + LSTAT На обучающей выборке RSS = 9437.129, RSS /N = 23.30155 На тестовой выборке RSS = 2798.908, RSS /N = 27.71196 se = 0.5264215 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 35.55914 5.71594 6.221 1.25e-09 *** CRIM -0.11438 0.03527 -3.243 0.00128 ** NOX -20.55633 3.86533 -5.318 1.75e-07 *** RM 4.59477 0.48776 9.420 < 2e-16 *** DIS -1.06844 0.17807 -6.000 4.44e-09 *** RAD 0.11284 0.04673 2.415 0.01619 * PTRATIO -1.13134 0.14049 -8.053 9.54e-15 *** LSTAT -0.51548 0.05926 -8.699 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.876 on 397 degrees of freedom Multiple R-squared: 0.72, Adjusted R-squared: 0.715 F-statistic: 145.8 on 7 and 397 DF, \pvalue: < 2.2e-16

F =

(RSS2 − RSS1)/(d1 − d2) (9437.129 − 8655.383)/(13 − 7) = = 5.885792 RSS1 /(N − d1 − 1) 8655.383/(405 − 13 − 1)

Распределение F (d1 − d2, N − d1 − 1) = F (6, 391). Находим p-value: 6.783518e − 06, т. е. гипотеза о незначимости 6 переменных не принимается (для разумного уровня значимости α)

3.2.3. Анализ остатков Ранее мы сделали предположение, что остатки должны быть независимы (некоррелированы) и иметь нормальное распределение. Многие рассмотренные выше тесты достаточно устойчивы по отношению к отклонениям от таких предположений. Однако перед тем, как исследовать статистичекую значимость модели и строить доверительные интервалы, рекомендуется провести анализ остатков. «Визуальные» способы: • Гистограмма остатков — должна быть близка к нормальному распределению; • график остатков — без зависимостей и нелинейностей; • QQ-график (график «квантиль–квантиль»)

40 20 0 −20

Residuals

5

10

15

20

25

speed

График остатков в задаче восстановления зависимости длины тормозного пути от начальной скорости.

0 10 20 30

Index 40 50

−20

0

Residuals 20

40

15 10 0

5

Frequency

−20

0

20

40

Residuals

Гистограмма остатков в задаче восстановления зависимости вида dist = β0 + β1 × speed длины тормозного пути от начальной скорости.

40 20 0 −20

Sample Quantiles

−2

−1

0

1

2

Theoretical Quantiles

QQ-график в задаче восстановления зависимости длины тормозного пути от начальной скорости.

Теоретическая проверка нормальности остатков: • общие критерии согласия: χ2, критерий Колмогорова–Смирнова и т. п. • специализированные, например, критерий Шапиро–Уилка Нуль-гипотеза в критерии Шапиро–Уилка заключается в том, что статистически наблюдаемая случайная величина имеет нормальное распределение. В задаче с определением длины тормозного пути автомобиля статистика Шапиро–Уилка оказалось равной W = 0.9451. Соответствующее p-valueравно 0.02153. При уровне значимости α = 0.01 гипотезу о нормальности распределения остатков принимаем.

Критерий Уайта Проверка на гомоскедастичность (постоянство дисперсии) остатков. Гипотеза H0: σ1 = σ2 = · · · = σN Гипотеза H1: H0 не выполнено К исходной модели применяется метод наименьших квадратов и находятся остатки e1, e2, . . . , eN . Затем строится модель, описывающая квадраты этих остатков через исходные переменные, их квадраты и попарные произведения: e2 = γ0 +

d

∑ γj xj + ∑′ γjj′ xj xj′ .

j=1

j≤j

При гипотезе H0 величина nr2 асимптотически имеет распределение χ2(d′ − 1), где d(d + 1) ′ — число переменных новой модели, d =1+d+ 2 r2 — коэффициент детерминации новой модели.

Анализ остатков для линейной модели dist = β0 + β1 × speed: bptest(dist ~ speed, data=cars) # BP = 3.2149, df = 1, \pvalue = 0.07297 White = 3.2157, df = 2, \pvalue = 0.2003

10 0 −10

Residuals

20

Boston

0

100

200 Index

300

400

200 150 Frequency

100 50 0 −20

−10

0

10 Residuals

20

30

20 10 0 −10

Sample Quantiles

−3

−2

−1

0

1

2

Theoretical Quantiles

Критерий Шапиро-Уилка W = 0.8739, p-value< 2.2e-16 Отвергаем

3

10 0 −10

Residuals

20

Тест на гомоскедастичность Тест Бройша–Пагана = 51.0623, df = 13, p-value= 1.958e-06 Критерий Уайта: White-test = 285.8917, df = 103, p-value< 2.2e-16

2

4

6

8 DIS

10

12

В оригинальной статье [Harrison and Rubinfeld, 1978] рассматривается модель ln MEDV = β0 + β1CRIM + β2ZN + β3INDUS + β4CHAS + β5NOX2 + β6RM2 + β7AGE + β8 ln DIS+ +β9 ln RAD + β10TAX + β11PTRAT + β12B + β13 ln LSTAT + E. RSS /N test = 14.77086

0.0 −0.5

Residuals

0.5

RSS /N train = 16.05832,

0

100

200 Index

300

400

80 60 40 20 0

Frequency

100

120

Но также не проходит тест на нормальность. Shapiro-Wilk normality test W = 0.9439, p-value= 2.989e-11

−0.5

0.0 Residuals

0.5

0.5 Sample Quantiles

0.0 −0.5 −3

−2

−1

0

1

Theoretical Quantiles

2

3

0.0 −0.5

Residuals

0.5

Тест на гомоскедастичность Тест Бройша–Пагана = 76.1122, df = 13, p-value= 5.905e-11 Критерий Уайта =

2

4

6

8 DIS

10

12

Для выявления корреляции между остатками (точнее: сериальной корреляции) часто используется критерий Дарбина–Уотсона. Статистика Дарбина–Уотсона вычисляется по формуле N −1

D=

∑ (e(i+1) − e(i))2

i=1

N

∑ e(i)

.

2

i=1

Упражнение 3.5 Доказать, что 0 ≤ D ≤ 4. Если D < D L(α) или D > 4 − D L(α), то с достоверностью α принимается гипотеза о наличии отрицательной или соответственно положительной корреляции остатков. Если D L(α) < D < D U(α) или 4 − D U(α) < D < 4 − D L(α), то критерий не позволяет принять решение о наличии или отсутствии корреляции остатков. Если D U(α) < D < 4 − D U(α), то гипотеза о наличии корреляции остатков отклоняется. Таблицы критических значений D L(α) и D U(α) для различных α, N , d приведены, например, в [Дрейпер, Смит Т. 1, С. 211].

3.3. Подготовка данных В линейной регрессионной модели в качестве признаков xj могут выступать: • исходные количественные признаки • функции от исходных количественных признаков, например, x21, ln x2 • функции от нескольких исходных признаков, например, x3 = x1 · x2 • бинарные признаки • бинаризованные категориальные признаки s

y = f (x) ≡ Например,

∑ βj hj (x)

j=1

y = f (x) ≡ β1eλ1x + β2eλ2x.

Если λ1, λ2 известны, то получаем линейную регрессию Если λ1, λ2 не известны, то получаем нелинейную регрессию

3.3.1. Бинаризация категориальных признаков (one hot encoding) Категориальный признак House, принимающий значения Block,

Brick,

Monolithic,

Panel,

Wooden,

xMonolithic,

xPanel,

xWooden

заменяем на 5 бинарных признаков: xBlock,

xBrick,

House = Block



xBlock = 1, xBrick = 0, xMonolithic = 0, xPanel = 0, xWooden = 0

House = Brick



xBlock = 0, xBrick = 1, xMonolithic = 0, xPanel = 0, xWooden = 0 и т. д.

Нужны только 4 бинарных признака!

Price

цена квартиры (тыс. руб.)

Date

№ дня, в который квартира выставлена на продажу

Lat

географическая широта объекта недвижимости

Lng

географическая долгота объекта недвижимости

Housing тип недвижимости (0 — вторичное жилье, 1 — новостройка) Floors

количество этажей в доме

House

тип дома

Rooms

количество комнат

Floor

№ этажа

Area

площадь квартиры (м2) 12

y = β0 +

∑ βj xj

j=1

β0 = −1.398 × 105, β1 = βDate = 3.634 × 10−1, β2 = βLat = 7.540 × 102, . . . b train = R

1 Ntrain

RSStrain = 495194.6,

b test = R

1 RSStest = 547395.1 Ntest

3.3.2. Центрирование и нормализация данных Центрирование: • Центрирование x(i): (i) (i) каждое xj заменяем на xj − xj (i = 1, 2, . . . , N ; j = 1, 2, . . . , d), где 1 xj = N

N

∑ xj

(i)

i=1

Приведение к единичному стандартному отклонению: • Приведение к нулевому среднему и единичному стандартному отклонению: (i) − xj x (i) каждое xj заменяем на j (i = 1, 2, . . . , N ; j = 1, 2, . . . , d), где sj s N N 1 1 (i) (i) 2 sj = xj = ∑ xj , (x ∑ j − xj ) N i=1 N − 1 i=1

Приведение к отрезку [0, 1]: (i)

• каждое xj заменяем на (i)

xj − mini xj maxi xj − mini xj

где

(i = 1, 2, . . . , N ; j = 1, 2, . . . , d),

o n (N ) (1) (2) , min xj = min xj , xj , . . . , xj i

max xj = max i

n

(N ) (1) (2) xj , xj , . . . , xj

o

• Центрирование y: каждое y (i) заменяем на y (i) − y (i = 1, 2, . . . , N ) 1 y= N

N

∑ y(i)

i=1

Если центрирование y проведено, то далее используем МНК без β0: y = f (x) ≡ β1x1 + β2x2 + . . . βd xd, а потом кладем β0 = y

3.4. Переобучение Переобучение — это явление, при котором обучающий алгоритм выдает хорошие результаты на обучающей выборке, но имеет очень плохие обобщающие свойства. Типичное поведение ошибки на обучающей и тестовой выборках с ростом «сложности» модели: • Обычно на обучающей выборке с ростом сложности модели ошибка уменьшается. • На тестовой выборке сперва с ростом сложности модели ошибка уменьшается, но с некоторого момента ошибка начинает расти: сказывается синдром переобучения. Когда модель слишком сложна, она, как правило, хорошо приспосабливается к конкретным обучающим данным, улавливая какие-то специфичные для них особенности, но не присущие всей генеральной совокупности, поэтому на тестовых данных ошибка может быть большой.

4.0 3.0 2.0 1.0

1.0

2.0

3.0

4.0

y = 8x2 − 6.4x + 2.5 + N (0, 0.4)

0.2

0.4

0.6

0.8

0.2

0.4

0.8

0.6

0.8

3.0 2.0 1.0

1.0

2.0

3.0

4.0

d=2

4.0

d=1

0.6

0.2

0.4

0.6 d=8

0.8

0.2

0.4 d = 13

1e+03

RSStrain/Ntrain = 0.1196395 RSStest(3)/Ntest = 0.1876475 σ 2 = 0.16

1e+01 1e+00 1e−01

RSS/N

1e+02

Train error Test error Bayes error

0

2

4

6

8 d

10

12

14

Риск

средний риск R

b эмпирический риск R

Емкость модели

3.4.1. Причины переобучения (в задаче восстановления регрессии) • Мультиколлинеарность: X плохо обусловлена (т. е. столбцы матрицы X образуют систему, близкую к линейно зависимой). kXβk2 cond2X = max β6=0 kβk2

,

p kXβk2 max λj (X⊤X) max σj σ1 p = = min = ⊤ β6=0 kβk2 min σj σd min λj (X X)

(отношение максимального сингулярного числа матрицы X к минимальному) • Наличие неинформативных признаков • Слишком мало данных.

Даже если все признаки информативны, данных может оказаться слишком мало.

3.4.2. Замечание о числе обусловленности Необходимо смотреть на число обусловленности не для с.л.у., а для задачи L.S. Xβ ≈ y



(X + ∆X)β ≈ y + ∆y

Можно доказать, что при малых возмущениях ∆X и ∆y   k∆βk2 2 cond2 X + tg θ · cond22 X + O(ε2), ≤ε· cos θ kβk2 | {z } condLS (X,y)

где

ε = max

(

k∆Xk2 k∆yk , kXk2 kyk

θ — угол между y и L(x1, x2, . . . , xd ). Если θ мал, то condLS(X, y) ≈ cond2 X Если θ → π/2 мал, то condLS(X, y) → ∞

)

,

cond2 X =

σ1 , σd

3.5. Сокращение числа параметров и «усадка» коэффициентов Рассмотрим некоторые методы по уменьшению числа признаков (уменьшения размерности пространства признаков) и «усадке» коэффициентов. Зачем? • Борьба с переобучением: чем меньше параметров (и входных переменных) или чем меньше по величине параметры, тем проще модель и снижается возможность переобучения • Интерпретация: чем меньше параметров (и входных переменных), тем проще интерпретировать модель

3.5.1. Выбор подмножества признаков Для каждого k ∈ {0, 1, . . . , d} найдем подмножество входных параметров мощности k, для которого RSS(β) минимально. Большой перебор! Оптимальное подмножество признаков мощности k не обязательно содержится в оптимальном подмножестве мощности k + 1

Задача предсказания цены квартиры Price

цена квартиры (тыс. руб.)

Date

№ дня, в который квартира выставлена на продажу

Lat

географическая широта объекта недвижимости

Lng

географическая долгота объекта недвижимости

Housing тип недвижимости (0 — вторичное жилье, 1 — новостройка) Floors

количество этажей в доме

House

тип дома (Block — блочный, Brick — кирпичный, Monolithic — монолитный, Panel — панельный, Wooden — деревянный)

Rooms

количество комнат (0 — квартира-студия)

Floor

№ этажа

Area

площадь квартиры (м2)

8 входных признаков, 28 = 256 подмножеств

На обучающей выборке:

1500000 1000000 500000

RSS/N

2000000

All subsets train Min all subsets train

0

1

2

3

4 Subset Size

5

6

7

8

1000000

1500000

All subsets test Test error for min train Min all subsets test

500000

RSS/N

2000000

На тестовой выборке:

0

1

2

3

4 Subset Size

5

6

7

8

1500000 500000

1000000

RSS/N

2000000

Min all subsets train Test error for min train Min all subsets test

0

1

2

3

4

5

6

7

8

Subset Size

d=5:

b train = R

1 Ntrain

RSStrain = 499710.7,

b test = R

1 RSStest = 545722.3 Ntest

y = −101009 + 2294.1 Lng − 152.54 Housing + 32.016 Floors − 370.43 Rooms + 74.944 Area

Forward stepwise находим константную регрессию и ошибку на тестовой выборке R0 J ← 0/ for k = 1, . . . , d R∗ ← ∞ for j ∈ {1, . . . , d} \ J строим линейную регрессию, используя признаки из J ∪ {j} b test — ошибку этой регрессии на тестовой выборке вычисляем R b test < R∗ if R j∗ ← j b test R∗ ← R

jk ← j ∗ Rk ← R∗ J ← J ∪ {j ∗}

На выходе получаем последовательность номеров признаков j1, j2, . . . , jd и значения ошибок на тестовой выборке R0, R1, . . . , Rd , где Rk — ошибка на тестовой выборке регрессии, построенной по признакам j1, j2, . . . , jk

Другая стратегия — начав с рассмотрения всего набора входных переменных, последовательно исключать их из этого набора (backward stepwise).

500000 1000000 1500000 2000000

RSS/N

Train Test

Area

0

1

Rooms

Lng

Floors

Housing

Lat

Date

Floor

2

3

4

5

6

7

8

Subset Size

y = −141660 + 772.88 Lat + 2229.3 Lng − 158.11 Housing +31.941 Floors − 371.24 Rooms + 74.812 Area

k=5:

b train = R

1 Ntrain

RSStrain = 545813.4,

b test = R

1 RSStest = 497700.3 Ntest

1500 1000 500 0

Lng Floors Date Lat Floor Housing Rooms

−500

Normalized Coef

Area

0

1

2

3

4

5

Subset Size

6

7

8

3.5.2. «Ридж» (гребневая) регрессия (регуляризация) (ridge regression) Добавим к RSS штрафную функцию, чувствительную к абсолютной величине коэффициентов βj :   !2 N  d d (i) bridge = argmin ∑ y (i) − β0 − ∑ x βj + λ ∑ β 2 , β j j i=1  β j=1 j=1

где λ — неотрицательный параметр: чем больше λ, тем больше чувствительность штрафа к величине коэффициентов Понятно, что задача эквивалентна следующей задаче условной минимизации:  !2  N  p d (i) b ridge = argmin ∑ y (i) − β0 − ∑ x βj β , при условии ∑ βj2 ≤ s. j i=1  β j=1 j=1 Параметр s определяется по λ, и наоборот.

β2

b

O

b

bridge β

b β β1

Если в линейной регрессионной модели много коррелированных переменных, то параметры модели определяются с трудом и имеют большую дисперсию. Например, Xj и Xj ′ сильно зависимы. Тогда возможна ситуация: βj велик и положителен, а βj ′ велик по абсолютному значению и отрицателен: так как Xj и Xj ′ сильно коррелируют, то вклад βj xj компенсируется βj ′ xj ′ . Таким образом, добавляемое ограничение на величину коэффициентов βj должно предотвратить подобую ситуацию.

1. Коэффициент β0 не участвует в сумме ∑dj=1 βj2: !2 N

d



β0 +

i=1



(i) xj βj

j=1

−y

(i)

→ min, β

d

∑ βj2 ≤ s

при ограничениях

j=1

2. Как правило, y центрируют, что позволяет исключить из модели коэффициент β0: y = β1x1 + β2x2 + · · · + βdxd Ридж-регрессия: N

d

∑ ∑

i=1

j=1

(i) xj βj

−y

(i)

!2

d

→ min, β

при ограничениях

∑ βj2 ≤ s

j=1

3. Как правило, X центрируют и нормируют на среднеквадратическое отклонение, чтобы вклад в сумму ∑dj=1 βj2 каждого признака по возможности был бы одинаковым

Коэффициент β0 может быть устранен из штрафной функции, так как он не соответствует ни одной переменной xj . Слагаемое β0 можно выкинуть и из целевой функции. Действительно, решение задачи наименьших квадратов можно разбить на два этапа: 1. Центрирование данных: (i)

(i)

• каждое xj заменяется на xj − xj (i = 1, 2, . . . , N ; j = 1, 2, . . . , d)

• в качестве β0 выбирается y, где 1 xj = N

N



(i) xj ,

i=1

1 y= N

N

(i) y ∑ .

i=1

2. Гребневая регрессия (без коэффициента β0) Пусть центрирование произведено, следовательно, X имеет d (а не d + 1) столбцов

RSSridge(β, λ) = (y − Xβ)⊤(y − Xβ) + λβ ⊤β, RSSridge(β, λ) → min β

Дифференцируя, находим: ∂ RSSridge = −2X⊤(y − Xβ) + 2λβ, ∂β откуда

∂ 2RSSridge ⊤ = 2X X + 2λI. ∂β ∂β ⊤

b ridge = (X⊤X + λI)−1X⊤y β

(⋆)

bridge задачи гребневой линейной регрессии также является функцией, Итак, решение β линейно зависящей от y. Если λ > 0, то матрица X⊤X + λI невырождена (положительно определена), даже если столбцы в X линейно зависимы (⋆) представляет собой стандартную регуляризацию Итак, от системы Xβ = y мы перешли к (X⊤X + λI)β = X⊤y

3.5.3. Отступление. Регуляризация (А.Н. Тихонов) Система (X⊤X + λI)β = X⊤y называется регуляризованной к Xβ = y. λ — параметр регуляризации, λ > 0. b Обозначим β(λ) — (единственное) решение системы (X⊤X + λI)β = X⊤y.

Теорема 3.6 (А.Н. Тихонов) Пусть λn — некоторая последовательность, λn > 0 и λn → 0. b n) стремится к нормальному псевдорешению системы Xβ = y Тогда β(λ (из всех псевдорешений нормальное псевдорешение имеет минимальную норму). Если λ близко к нулю, то регуляризованная система близка к вырожденной, поэтому b на практике решение β(λ) будет найдено с большой ошибкой. Метод регуляризации заключается в решении регуляризованных систем для конечного числа значений λn и дальнейшем выборе того решения, для которого норма невязки минимальна.

3.5.4. Гребневая регрессия и сингулярное разложение

b ls и y b ls (без регуляризации), используя SVD: Выразим β

b ls = (X⊤X)−1X⊤y = (UΣV⊤)⊤UΣV⊤ β ⊤

= VΣU UΣV

 ⊤ −1

−1

(UΣV⊤)⊤y =

VΣU⊤y = (V⊤)−1Σ−2V−1VΣU⊤y = VΣ−1U⊤y

bls = UΣV⊤VΣ−1U⊤y = UU⊤y = bls = Xβ y

d

∑ uj u⊤j y

j=1

Заметим, что uj (u⊤ j y) есть проекция вектора y на вектор uj , а вся сумма (как мы уже видели) есть проекция вектора y на подпространство, натянутое на u1, u2, . . . , ud. Аналогично, если проводится регуляризация: bridge = X(X⊤X + λI)−1X⊤y = UΣ(Σ + λI)−1ΣU⊤y = bridge = Xβ y

σj2

d

∑ uj σ2 + λ u⊤j y

j=1

j

b y

ridge

−1



= UΣ(Σ + λI) ΣU y =

d

σj2

j=1

σj2 + λ

∑ uj

u⊤ j y

Итак, как и для линейной регрессии, линейная гребневая регрессия вычисляет проекцию u(u⊤ j y) вектора y на вектор uj , но затем домножает эту проекцию на σj2 σj2



≤ 1.

Чем больше σj , тем ближе этот множитель к 1. Чем меньше σj , тем ближе этот множитель к 0. Таким образом, наибольшему уменьшению подвергаются компоненты, соответствующие меньшим сингулярным числам σj .

3.5.5. Лассо (R. Tibshirani) LASSO — «least absolute shrinkage and selection operator» blasso

β

= argmin β

 N

∑ i=1

y

(i)

d

− β0 −



j=1

(i) xj βj

!2   

d

, при условии

∑ |βj | ≤ s.

j=1

blasso равна в Если s достаточно мало, то в типичной ситуации часть коэффициентов β j точности 0. Почему? (При гребневой регрессии такого, как правило, не происходит)

β2

β2

b

O

b

bridge β

b β b

β1

O b

b lasso β

b β β1

0

3

4

5

6

7

8

9

10

11

12

500000

1000000

RSS/N

1500000

2000000

Train Test

100000

10000

1000

100

10

1

λ

λ = 177.8279 = 102.25 y = 3226.1 + 0.30465 Date + 940.46 Lat + 2314.9 Lng − 53.574 Housing + 41.265 Floors − 48.654 Rooms + 13.105 Floor + 56.764 Area b train = R

1 Ntrain

RSStrain = 533652.8,

b test = R

1 RSStest = 525341.3 Ntest

1500 500

Lng Floors Floor Lat Date Housing

0

Scaled Coef

1000

Area

Rooms

1000000 100000

10000

1000

100 λ

10

1

Лассо. Введем параметр t=

s d

bj | ∑ |β

j=1

b lasso равны нулю. При t = 0 все β j bj (j = 1, 2, . . . , d). b lasso = β При t = 1 имеем β j

1500000 500000

1000000

RSS/N

2000000

Train Test

0.0

0.2

0.4

0.6

0.8

1.0

t

t = 0.7523712 y = 3226.1 + 2083.4 Lng + 34.318 Floors − 118.41 Rooms + 2.3186 Floor + 63.356 Area b train = R

1

Ntrain

RSStrain = 520436.5,

b test = R

1 RSStest = 531102.9 Ntest

1500 1000 500

Lng Floors Lat Floor Date Housing

0

Normalized Coef

Area

Rooms

0.0

0.2

0.4

0.6 t

0.8

1.0

Глава 4 Задача классификации

4.1. Наивный байесовский классификатор Пусть все компоненты случайной величины X = (X1, . . . , Xd) дискретны. Pr {Y = y | X = x} =

Pr {Y = y} · Pr {X = x | Y = y}

K

∑ Pr {Y = k} · Pr {X = x | Y = k}

k=1

Основное предположение наивного байесовского классификатора: переменные X1, . . . , Xd условно независимы при любом заданном Y = y: Pr {X1 = x1, . . . , Xd = xd | Y = y} = Pr {X1 = x1 | Y = y} · · · · · Pr {Xd = xd | Y = y} , или, короче, d

Pr {X = x | Y = y} = ∏ Pr {Xj = xj | Y = y} . j=1

По принципу максимума апостериорной вероятности d

!

f (x) = argmax Pr {Y = y | X = x} = argmax Pr {Y = y} · ∏ Pr {Xj = xj | Y = y} . y

y

j=1

Вероятности заменяем частотой: o 1 n (i) Pr {Y = y} ≈ | i : y = y | N o n (i) | i : xj = xj | Pr {Xj = xj | Y = y} ≈  (i) | i: y =y |

Задача: предсказать исход матча команды A с командой B по имеющимся данным о предыдущих матчах. № Поле Ключевые игроки Ключевые игроки противника X1 1 свое

X2 присутствуют

X3

Погода

Исход

X4

Y

присутствуют

дождь

поражение

2 чужое отсутствуют

отсутствуют

нет дождя победа

3 свое

присутствуют

отсутствуют

нет дождя победа

4 свое

присутствуют

отсутствуют

дождь

ничья

5 чужое отсутствуют

присутствуют

дождь

поражение

6 чужое присутствуют

присутствуют

нет дождя поражение

7 чужое отсутствуют

присутствуют

нет дождя поражение

8 свое

отсутствуют

отсутствуют

нет дождя ничья

9 свое

присутствуют

отсутствуют

дождь

10 чужое присутствуют

отсутствуют

нет дождя победа

победа

Априорные вероятности: Y победа ничья поражение 0.4

0.2

0.4

Условные вероятности: Поле

Ключевые игроки

свое чужое

Y

Y

отсутствуют присутствуют

победа

0.50

0.50

победа

0.25

0.75

ничья

1.00

0.00

ничья

0.50

0.50

поражение 0.25

0.75

поражение

0.50

0.50

Ключевые игроки противника

Погода

Y

отсутствуют

присутствуют

Y

дождь нет дождя

победа

1

0

победа

0.25

0.75

ничья

1

0

ничья

0.50

0.50

поражение

0

1

поражение

0.50

0.50

Нужно предсказать Y , если X1 = свое, X2 = присутствуют, X3 = отсутствуют, X4 = дождь. Pr {победа|свое, присутствуют, отсутствуют, дождь} = Pr {победа} · Pr {свое|победа} · Pr {присутствуют|победа} · Pr {отсутствуют|победа} · Pr {дождь|победа} = = Pr {свое, присутствуют, отсутствуют, дождь}

0.4 · 0.5 · 0.75 · 1 · 0.25 0.0375 = = 0.4286 = 0.0375 + 0.05 + 0 0.0875 Pr {ничья|свое, присутствуют, отсутствуют, дождь} = Pr {ничья} · Pr {свое|ничья} · Pr {присутствуют|ничья} · Pr {отсутствуют|ничья} · Pr {дождь|ничья} = = Pr {свое, присутствуют, отсутствуют, дождь}

=

0.05 0.2 · 1 · 0.5 · 1 · 0.5 = = 0.5714 0.0375 + 0.05 + 0 0.0875

Pr {Y = поражение|свое, присутствуют, отсутствуют, дождь} = Pr {пораж.} · Pr {свое|пораж.} · Pr {присутствуют|пораж.} · Pr {отсутствуют|пораж.} · Pr {дождь|пораж.} = = Pr {свое, присутствуют, отсутствуют, дождь}

0.4 · 0.25 · 0.5 · 0 · 0.5 =0 0.0375 + 0.05 + 0 На обучающей выборке ошибка 0.1 (неправильно 9-й → ничья) =

4.1.1. Сглаживание Лапласа Пусть нужно предсказать Y , если X1 = нейтральное, X2 = присутствуют, X3 = отсутствуют, X4 = нет дождя. o n (i) | i : x1 = нейтральное |  =0 Pr {X1 = нейтральное|Y = y} ≈ (i) | i: y =y |

Pr {X1 = нейтральное, X2 = присутствуют, X3 = отсутствуют, X4 = нет дождя} = = Pr {нейтральное, присутствуют, отсутствуют, нет дождя| победа} · Pr {победа} + + Pr {нейтральное, присутствуют, отсутствуют, нет дождя| ничья} · Pr {ничья} +

+ Pr {нейтральное, присутствуют, отсутствуют, нет дождя| поражение}·Pr {поражение} = 0 0 Pr {победа| нейтральное, присутствуют, отсутствуют, нет дождя} = 0 0 Pr {ничья| нейтральное, присутствуют, отсутствуют, нет дождя} = 0 Pr {поражение| нейтральное, присутствуют, отсутствуют, нет дождя} =

0 0

Сглаживание Лапласа: n

(i) xj

o

= xj | + 1 | i: , Pr {Xj = xj | Y = y} ≈  (i) | i : y = y | + sj

где sj — количество значений, которые принимает признак xj . (т.е. притворяемся, что видели каждый признак 1 раз больше, чем на самом деле) Легко видеть, что тогда o n (i) | i : xj = xj | + 1 ∑ | i : y(i) = y | + sj = 1, xj Сглаживание Лидстоуна:

n

(i) xj

o

= xj | + α | i: Pr {Xj = xj | Y = y} ≈  , (i) | i : y = y | + αsj

где sj — количество значений, которые принимает признак xj , α ≥ 0.

Априорные вероятности Y (не изменятся): победа ничья поражение 0.4

0.2

0.4

Поле Y

Ключевые игроки

свое чужое нейтральное

отсутствуют присутствуют

Y

победа

3/7

3/7

1/7

победа

0.25

0.75

ничья

3/5

1/5

1/5

ничья

0.50

0.50

поражение 2/7

4/5

1/7

поражение

0.50

0.50

Ключевые игроки противника

Погода

Y

отсутствуют

присутствуют

Y

дождь нет дождя

победа

5/6

1/6

победа

2/3

1/3

ничья

3/4

1/4

ничья

1/2

1/2

поражение

1/6

5/6

поражение

1/2

1/2

Предсказать Y , если X1 = нейтральное, X2 = присутствуют, X3 = отсутствуют, X4 = нет дождя. Pr {победа|нейтральное, присутствуют, отсутствуют, нет дождя} =

=

Pr {победа} · Pr {нейтральное|победа} · Pr {присутствуют|победа} · Pr {отсутствуют|победа} · Pr {нет дождя|победа} Pr {нейтральное, присутствуют, отсутствуют, нет дождя} 2/5 · 1/7 · 2/3 · 5/6 · 2/3 0.0212 = = 0.6817 0.0212 + 0.0075 + 0.0024 0.0311

Pr {ничья|нейтральное, присутствуют, отсутствуют, нет дождя} =

=

Pr {ничья} · Pr {нейтральное|ничья} · Pr {присутствуют|ничья} · Pr {отсутствуют|ничья} · Pr {нет дождя|ничья} = Pr {нейтральное, присутствуют, отсутствуют, нет дождя} =

0.0075 1/5 · 1/5 · 1/2 · 3/4 · 1/2 = = 0.2416 0.0212 + 0.0075 + 0.0024 0.0311

Pr {поражение|нейтральное, присутствуют, отсутствуют, нет дождя}

=

Pr {пораж.} · Pr {нейтральное|пораж.} · Pr {присутствуют|пораж.} · Pr {отсутствуют|пораж.} · Pr {нет дождя|пораж.} = Pr {нейтральное, присутствуют, отсутствуют, нет дождя} =

2/5 · 1/7 · 1/2 · 1/6 · 1/2 0.0024 = = 0.0767 0.0212 + 0.0075 + 0.0024 0.0311

sms-spam

0.022 0.020 0.018

Error

0.024

0.026

Train Test

3.0

2.5

2.0

1.5 Laplace

1.0

0.5

0.0

TN FN FP TP TN – true negative FP – false positive FN – false negative TP – true positive FP – ложные тревоги (ошибки 1-го рода или α-ошибки) FN – промахи (ошибки 2-го рода или β-ошибки) FP = FP α = FPR = TN+FP N – вероятность ошибки первого рода (уровень значимости) FN FN = FN+TP P TN TN = TN+FP N =1

β = FNR =

– вероятность ошибки второго рода

− FPR – специфичность (вероятность предсказать отсутствие TNR = болезни, при условии, что ее нет) TP TPR = FN+TP = TP = 1 − FNR – чувствительность, или полнота (recall) (вероятность P предсказать болезнь, при условии, что она есть) TP – precision (positive predictive value) PPV = FP+TP TP+TN – accuracy P+N FP+FN P+N = 1 − accuracy – error (мы раньше F1 = 2·PPV·TPR PPV+TPR (среднее гармоническое)

мерили только ее)

ROC-кривая (receiver operating characteristic) — график зависимости TPR от FPR при изменении порога в дискриминантной функции бинарного классификатора   f (x) = I Pr (y = 1| x) > α = I(g(x) ≥ α) g(x) — дискриминантная функция (в Scikit-learn — decision function) Пусть x(1), x(2), . . . , x(N ) упорядочены: g(x(1)) ≤ g(x(2)) ≤ . . . ≤ g(x(N )) hFPR ← 1/N, hTPR ← 1/P, FPR ← 1, TPR ← 1 Рисуем точку (1, 1) for i = 1, 2, . . . , N if y (i) = 0 FPR ← FPR − hFPR else TPR ← TPR − hTPR Рисуем точку (FPR, TPR) AUC (area under curve) — площадь под ROC-кривой — доля правильно упорядоченных пар

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

120 50

0.0

60

0.2

70

0.4

80

TPR

heart

90

0.6

100

0.8

110

Low level T4 High level T4

1.0

1.5 lg SDNN

2.0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

1.0

ROC-кривая. SMS Laplace = 1 test.FPR[threshold.seq == 0.99] = 0.04290429 1 test.TPR[threshold.seq == 0.99] = 0.01648352 test.Err[threshold.seq == 0.99] = 0.03945481 AUC = 0.994646 1

0.0

0.2

0.4

TPR

0.6

0.8

0.99

0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

3615:565call call yes 200:244claim claim

200:244

3615:565 no 3415:321txttxt

3415:321

spam spam 200:183ill ill 200:183 3409:214free free 3409:214 0:61 6:107 ham 157:183min min 157:183 30:44now now 30:44 3379:170repli repli 3379:170 43:0 spam spam 157:147servic servic 157:147 30:29text text 30:29 28:31stop stop 28:31 3351:139text text 3351:139 0:36 0:15 spam spam spam ham 157:118urgent urgent 157:118 27:15week week 27:15 54:30mobil mobil 54:30 3297:109pmsg pmsg 3297:109 0:29 3:14 0:13 28:18 spam spam spam spam 157:93free free 157:93 27:10servic servic 27:10 54:24unsubscrib unsubscrib 54:24 3297:98claim claim 3297:98 0:25 0:5 0:6 0:11 spam ham spam spam 8:28sirsir 8:28 149:65award award 149:65 54:19win win 54:19 3297:90tone tone 3297:90 0:4 27:6 0:5 0:8 ham spam spam spam ham spam 149:56privat privat 149:56 3297:84mobil mobil 3297:84 3:0 5:28 0:9 0:4 54:15 0:6 spam spam 149:48pmin pmin 149:48 3292:77secret secret 3292:77 0:8 5:7 spam 149:41new new 149:41 0:7 spam 149:34collect collect 149:34 0:7 spam 149:27now now 149:27 0:7 ham 135:15repli repli 135:15 14:12 spam 134:11contact contact 134:11 1:4 spam 134:9match match 134:9 0:2 spam 134:7credit credit 134:7 0:2 spam ham 0:2 134:5

3:6contact contact spam 0:6

3:6 ham 3:0

3289:71unsubscrib unsubscrib

3289:71

spam 3289:68voucher voucher 0:3

3289:68

spam 3289:65collect collect 3289:65 0:3 ham 3281:61real real 3281:61 8:4 ham 3263:56video video 3263:56 18:5 spam 3263:54ltdltd 3263:54 0:2 spam 3263:52sms sms 3263:52 0:2 ham 3257:49import import 3257:49 6:3 ham 3250:46chat chat 3250:46 7:3 ham 3241:43picpic 3241:43 9:3 ham 3229:40play play 3229:40 12:3 ham 3215:37select select 3215:37 14:3 ham 3212:35appli appli 3212:35 3:2 ham ham 3:2 3209:33

3615:565call call 3615:565 yes

no

200:244claim claim 200:244

3415:321txt txt 3415:321

spam 200:183illill 200:183 0:61

spam 3409:214free free 3409:214 6:107

ham 157:183min min 157:183 43:0 spam 157:147servic servic 157:147 0:36 spam 157:118urgent urgent 157:118 0:29 spam ham 0:25 157:93

spam 3379:170repli repli 3379:170 30:44 spam 3351:139text text 3351:139 28:31 ham 3297:109pmsg pmsg 3297:109 54:30 spam 3297:98claim claim 3297:98 0:11 spam 3297:90tone tone 3297:90 0:8 spam 3297:84mobil mobil 3297:84 0:6 spam 3292:77secret secret 3292:77 5:7 spam ham 3:6 3289:71

1.0

Дерево решений ROC-кривая. tree.test.FPR[tree.threshold.seq == 0.9] = 0.07920792 1 tree.test.TPR[tree.threshold.seq == 0.9] = 0.1428571 tree.test.Err[tree.threshold.seq == 0.9] = 0.08751793 AUC = 0.916712 1

0.985

0.0

0.2

0.4

TPR

0.6

0.8

0.9

Naive Bayes Tree

0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

GBT

0.08 0.06 0.04 0.02

Error

0.10

0.12

Train Test

0

5000

10000 Trees

15000

20000

0.7 0.4 0.3 0.2

Deviance

0.5

0.6

Train 10−fold CV

0

5000

10000 Trees

15000

20000

0.0

0.2

0.4

TPR

0.6

0.8

1.0

Hos13 ROC-кривая. AUC = 0.8415

0.0

0.2

0.4

0.6 FPR

0.8

1.0

4.1.2. Наивный Байес для количественных признаков Два подхода: • дискретизация; • оценка параметров распределения. Рассмотрим второй подход. Pr {Y = y | X = x} =

p(x |y) · Pr y p(x) · Pr y = p(x) ∑y′ p(x |y ′) · Pr y ′

Основное предположение наивного байесова классификатора: p(x | y) = p(x1 | y) p(x2 | y) . . . p(xd | y) Предположим, что p(xj | y) нормальное: p(xj | y) = √ Оцениваем µj , σj по выборке.

1 e 2πσj

(x−µj )2 − 2σj2

Методы решения задачи классификации: • Дискриминантные (разделительные) (discriminant): – напрямую строим f (x); – моделируем (оцениваем) апостериорную вероятность Pr (y | x) и используем метод максимума апостериорной вероятности; • Генеративные (generative) — моделируем (оцениваем) правдоподобие p(x |y)

и априорную вероятность Pr (y) и используем метод максимума апостериорной вероятности.

Внимание: так называемые методы дискриминантного анализа являются генеративными, а не дискриминантными! К какому методу относится метод k ближайших соседей?

4.2. Дискриминантный анализ 4.2.1. Линейный дискриминантный анализ (LDA) Нужно сравнить две апостериорные вероятности: ′ ′ p(x | y) Pr y p(x | y ) Pr y Pr (y | x) = > Pr (y ′ | x) = p(x) p(x)

Линейный дискриминантный анализ (LDA) делает два предположения: • объекты каждого класса распределены по нормальному закону: 1 − 21 (x−µy )⊤ Σ−1 y (x−µy ) e p(x | y) = p (2π)d det Σy

• матрицы ковариации Σ = Σy одинаковы для всех классов

(∗)

Подставляя выражения для p(x | y) и p(x | y ′) в (*) и логарифмируя: 1 1 ⊤ −1 e− 2 (x−µy ) Σy (x−µy ) p(x | y) = p (2π)d det Σy

′ ′ p(x | y) Pr y p(x | y ) Pr y Pr (y | x) = > Pr (y ′ | x) = p(x) p(x)

(∗)

1 1 ⊤ −1 − (x − µy ) Σ (x − µy ) + ln Pr y > − (x − µy′ )⊤Σ−1(x − µy′ ) + ln Pr y ′ 2 2 1 1 ⊤ −1 ′ −1 Откуда ′ (µy − µy′ )⊤Σ−1x > µ⊤ Σ µ − ln Pr y + ln Pr y µ Σ µ − ′ y y 2 y 2 y т. е. классы разделяет гиперплоскость w ⊤x = c: w ⊤x > c, где w = (µy − µy′ )⊤Σ−1, а c – некоторая константа. Введем линейную дискриминантную функцию: 1 1 1 ⊤ −1 −1 δy (x) = − (x − µy )⊤Σ−1(x − µy ) + x⊤Σ−1x + ln Pr y = µ⊤ µy Σ µy + ln Pr y Σ x − y 2 2 2 Классификатор: f (x) = argmax δy (x). y p где ρ(x, x′) = (x − x′)⊤Σ−1(x − x′) – это расстояние Махаланобиса.

На практике мы не знаем параметров нормального распределения, но можем оценить их по обучающей выборке: Ny c , Pr (y) = N

x(i) µ by = ∑ , N y y (i) =k

K 1 b = Σ (x(i) − µk )(x(i) − µk )⊤. ∑ ∑ N − K k=1 y(i)=k

3 2 x2

1 0 −1 −1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1.5 0.0

0.5

x2

1.0

Train error = 0.2 Test error = 0.231 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

0.0 −0.5 −1.0 −1.5

x2

0.5

1.0

1.5

LDA

−1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1.5

b0, β b — параметры, полученные с помощью линейной Замечание 4.1 Пусть также β регрессии с критерием N

∑(y(i) − β0 − β ⊤x(i))2 → min .

i=1

b коллинеарен вектору Σ b −1(b Можно показать, что вектор β µ2 − µ b1). Таким образом, разделяющие гиперплоскости, полученные с помощью линейной регрессии и методом LDA, параллельны (но при N1 6= N2 не совпадают друг с другом). Это уже не так при числе классов, большем 2. Если имеется более 2-х классов, то, напомним, линейная регрессия при классификации может «не замечать» некоторых из них. LDA-метод свободен от этого недостатка.

4.2.2. Квадратичный дискриминантный анализ Рассмотрим теперь 1 − 21 (x−µy )⊤ Σ−1 y (x−µy ) , p p(x |y) = e (2π)d/2 det Σy

не предполагая, что Σy равны между собой. Проводя аналогичные рассуждения, придем к понятию квадратичной дискриминантной функции 1 1 δy (x) = − ln det Σy − (x − µy )⊤Σ−1 y (x − µy ) + ln Pr (y) 2 2 Поверхность, разделяющая два класса y и k описывается уравнением 2-го порядка δy (x) = δk (x). Квадратичным дискриминантным анализом (quadratic discriminant analysis, QDA) назывется построение решающего правила с помощью квадратичной дискриминантной функции.

1 0 −1

x2

2

3

LDA

−1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1 0 −1

x2

2

3

QDA

−1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1 0 −1

x2

2

3

LDA y = β0 + β1x1 + β2x2 + β12x1x2 + β11x21 + β22x22

−1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1.5

LDA

0.0

0.5

x2

1.0

Train error = 0.2 Test error = 0.231 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

QDA

0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.208 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

LDA y = β0 + β1x1 + β2x2 + β12x1x2 + β11x21 + β22x22

0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.21 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

4.2.3. Другой взгляд на LDA Максимизация отношения межклассовой дисперсии к внутриклассовой эквивалентна LDA. Максимизация соотношения Релея: a⊤Ba max ⊤ a a Wa или max a⊤B a

при ограничении a⊤Wa = 1

— это обобщенная задача на собственные значения

4.3. МНК для задачи классификации (дискриминантный метод) Нельзя ли использовать линейную регрессию (МНК) для решения задачи классификации? K=2 y 1 b

b

b

b

b

b

b

b

b

b

1 2

O

b

b

b

b

b

b

b bbb

x

1.0 0.0

0.2

0.4

x2

0.6

0.8

Train error = 0.095 Test error = 0.115

0.0

0.2

0.4

0.6 x1

0.8

1.0

K>2 Сопоставим каждому классу k характеристический, или индикаторный, вектор (y1, y2, . . . , yK ), в котором yk = 1, а yi = 0 при i 6= k. Собрав вместе индикаторные векторы объектов обучающей выборки, получим матрицу Y размера N × K, называемую индикаторной. Таким образом, Y состоит только из нулей и единиц и каждая строка имеет ровно одну единицу. Как обычно, X — матрица размера N × (d + 1), первый столбец которой состоит из единиц, а последующие представляют собой векторы из обучающей выборки. Применяя метод наименьших квадратов одновременно к каждому столбцу матрицы Y, получаем значения b = X(X⊤X)−1X⊤Y. Y

bk . Для каждого столбца yk матрицы Y получим свой столбец коэффициентов β b размера (d + 1) × K. Соберем их в матрицу B

Имеем

b = (X⊤X)−1X⊤Y. B

Объект x будем классифицировать согласно следующему правилу: Вычислим вектор-строку длины K

Отнесем x к классу

b g(x) = (1, x) B. f (x) = argmax gk (x). k

0.0 −0.5 −1.0 −1.5

x2

0.5

1.0

1.5

При K ≥ 3 линейная регрессия может «не замечать» некоторых хорошо отделимых классов.

−1.5

−1.0

−0.5

0.0 x1

0.5

1.0

1.5

МНК: y 1 b

b

b

b

b

b

b

b

b

b

1 2

b

O

b

b

b

b

b

x

b bbb

Хочется: y 1 b

b

b

b

b

b

b

b

b

b

1 2

O

b

b

b

b

b

b

b bbb

x

4.4. Логистическая регрессия (Дискриминантный метод) Рассмотрим задачу классификации на 2 класса: Y = {0, 1} Пусть 1 ⊤ = σ(β + β x), Pr (Y = 1| X = x) = 0 −(β +β x +···+β x ) 0 1 1 d d 1+e где 1 σ(z) = 1 + e−z — логистическая функция (элементарный сигмоид или логит-функция)

1 σ(z) O

z

Pr (Y = 1| x) = тогда

1 1 + e−(β0+β1x1+···+βdxd)

Pr (Y = 0| x) = 1 − Pr (Y = 1| x) =

= σ(β0 + β ⊤x),

1 1 + eβ0+β1x1+···+βdxd

= σ(−β0 − β ⊤x),

Разделяющая поверхность — линейная (гиперплоскость): Pr (Y = 0| x) = Pr (Y = 1| x) =

1 2



β0 + β1x1 + · · · + βdxd = 0 

d

g = σ β0 + ∑ βj xj j=1



σ β0 1

β1 x1

β2

βd x2

...

xd

≈ Pr (Y = 1| X = x)

Случай K классов: Y = {1, 2, . . . , K}. Функция softmax: y1

y2

...



d



exp βk0 + ∑ βkj xj j=1 yk = K   ≈ Pr (k | x) d ∑ exp βℓ0 + ∑ βℓj xj

yK

j=1

ℓ=1

(k = 1, 2, . . . , K)

1

x1

x2

.........

xd

Разделяющие поверхности (между каждой парой классов) снова линейные: Pr (Y = k | X = x) = Pr (Y = k ′ | X = x) ⇔ βk0 + βkTx = βk′0 + βkT′ x Замечание 4.2 Можно преобразовать и переобозначить: T

Pr (Y = k | X = x) =

eβk0+βk x 1+

βℓ0 +βℓTx e ∑K−1 ℓ=1

Pr (Y = K | X = x) =

(k = 1, 2, . . . , K − 1), 1 T

βℓ0 +βℓ x e 1 + ∑K−1 ℓ=1

4.4.1. Расчет параметров Как найти β10, β1, β20, β2, . . . , βK0, βK ? В логистической регрессии параметры обычно подбираются с помощью метода максимального правдоподобия. Максимизации подвергается логарифмическая функция правдоподобия N

ℓ(β) =

∑ ln Pr

i=1

где

n

o

Y = y (i) | X = x(i), β → max,

β = (β10, β1, β20, β2, . . . , βK−1,0, βK−1),

Pr (Y = k |X = x, β) = Pr (Y = k |X = x).

Возможна регуляризация: N

∑ ln Pr

i=1

n

o

Y = y (i) |X = x(i), β − λkβk2 → max

где вместо квадрата евклидовой нормы можно рассматривать 1-норму kβk1

Вначале рассмотрим случай K = 2: Y = {0, 1}. g(x, β) = Pr {Y = 1| X = x, β} =

1 1+

e−β0−β ⊤x

.

Требуется максимизировать логарифмическую функцию правдоподобия N

ℓ(β) =



i=1



 y ln g(x , β) + (1 − y ) ln 1 − g(x , β) . (i)

(i)

(i)

(i)

Упражнение 4.3 Докажите, что  N  ∂ℓ(β) = ∑ y (i) − g(x(i), β) , ∂β0 i=1

 N  ∂ℓ(β) (i) = ∑ y (i) − g(x(i), β) xj . ∂βj i=1

Теперь можем воспользоваться методом градиентного спуска или более продвинутым методом оптимизации (сопряженных градиентов, BFGS, L-BFGS и др.).

Теперь рассмотрим случай Y = {1, 2, . . . , K}. g(x, β) = Pr {Y = k | X = x, β} =



eβk0+βk x βℓ0 +βℓ⊤ x e ∑K ℓ=1

.

Требуется максимизировать логарифмическую функцию правдоподобия N

ℓ(β) =

K

∑ ∑ I(y

(i)

(i)

= k) ln g(x , β) =

i=1 k=1

N

K

∑ ∑ I(y

i=1 k=1

(i)

= k) βk0 +

βk⊤x(i)

K

− ln ∑ e ℓ=1

βℓ0 +βℓ⊤ x(i)

!

Упражнение 4.4 Докажите, что  N  ∂ℓ(β) = ∑ I(y (i) = k) − g(x(i), β) , ∂βk0 i=1

  N ∂ℓ(β) = ∑ x(i) I(y (i) = k) − g(x(i), β) . ∂βk i=1

.

Замечание 4.5 Легко видеть, что максимизация логарифмической функции правдоподобия эквивалентна минимизации эмпирического риска 1 1 b R(β) = − ℓ(β) = − N N

N





i=1

  y (i) ln g(x(i), β) + (1 − y (i)) ln 1 − g x(i), β) ,

если в качестве штрафной функции рассмотреть кросс-энтропию (или logloss-функцию):   L g(x, β), y = −y ln g(x, β) − (1 − y) ln 1 − g(x, β) .

Аналогично для случая K классов:

1 1 b R(β) = − ℓ(β) = − N N

N

K

∑ ∑ I(y(i) = k) ln g(x(i), β),

i=1 k=1

если в качестве штрафной функции рассмотреть кросс-энтропию (или logloss-функцию): K  L g(x, β), y = ∑ I(y = k) ln g(x, β). k=1

4.4.2. Регуляризация В L2 норме: 1 − N

N



(i) (i) I(y = k) ln g(x , β) + λkβk2 → min, ∑

i=1 k=1

В L1 норме: 1 − N

K

N

K

∑ ∑ I(y(i) = k) ln g(x(i), β) + λkβk1 → min,

i=1 k=1

Без регуляризации, если классы линейно отделимы: β → −∞ y 1 b

b

b

b

b

b

b

b

b

b

1 2

O

b

b

b

b

b

b

b bbb

x

1.5

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

0.0

0.5

x2

1.0

Train error = 0.235 Test error = 0.236 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

Логистическая регрессия с признаками x1, x2, x21, x1x2, x22

0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.218 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

Глава 5 Нейронные сети

5.1. Персептрон Розенблатта Модель нейрона и нейронной сети [W. S. McCulloch, W. Pitts, 1943] Идеи обучения нейронной сети [D. O. Hebb, 1949] Алгоритм обучения, программа [1958], нейрокомпьютер MARK 1 [F. Rosenblatt, 1960] 

d

y = I β0 + ∑ βj xj ≥ 0 σ β0 1

β1 x1

j=1

β2



βd x2

...

xd d

K = 2. Разделяющая поверхность — гиперплоскость β0 + ∑ βj xj = β0 + β ⊤x = 0. Решающее правило — f (x) =

(

j=1

1, β0 + β ⊤x ≥ 0, 0, β0 + β ⊤x < 0

5.2. Нейронные сети В мозге человека порядка 1011 нейронов и 1015 нейронных связей. Нейронная сеть — (очень простая) модель мозга, т. е. множества взаимодействующих между собой нейронов. Нейронная сеть (или искусственная нейронная сеть — ориентированный граф, вершинам которого соответствуют функции (функции активации), а каждой входящей в вершину дуге (синапсу) — ее аргумент. Вход нейрона — дендрит. Выход — аксон Пример «трехслойной» нейронной сети: y1

z1

x1

x2

y2

z2

...

.........

выходы

yK

«скрытый» слой

zM

........................

xd

входы

С математической точки зрения нейронная сеть графически задает суперпозицию функций активации. Небольшая классификация нейронных сетей: • сети прямого распространения (feed-forward NN) — отсутствуют орциклы; • рекуррентные нейронные сети, или сети с обратной связью (recurrent NN) — присутствуют орциклы. Рекуррентные нейронные сети используют, например, для предсказания временных рядов. Если узлы сети можно разбить на группы (слои), которые удается пронумеровать так, что дуги будут вести только от вершин из i-го слоя в вершины (i + 1)-го слоя, то нейронная сеть называется многоуровневой (или многослойным персептроном)).

Пример рекуррентной сети y1

z1

y2

z2

x1

x2

z3

x3

t−1

t

t+1

В качестве функций активации обычно берут пороговые и близкие к ним функции: Пороговая функция (в чистом виде обычно не используется, так как разрывна): ( 1, если β0 + β1x1 + · · · + βq xq ≥ 0, g(x1, x2, . . . , xq ) = 0, если β0 + β1x1 + · · · + βq xq < 0, Сигмоидальная (логит или логистическая) функция (наиболее популярная): g(x1, x2, . . . , xq ) =

1 1 + e−(β0+β1x1+···+βq xq )

Арктангенс: 1 1 g(x1, x2, . . . , xq ) = + arctg(β0 + β1x1 + · · · + βq xq ) 2 π В специальном виде нейронных сетей — радиальных нейронных сетях (radial basis function network — RBF network) — используют радиальную функцию (Гауссиан) g(x) = e−βkx−ck.

Элементарная пороговая функция y = I(x ≥ 0) =

(

1, если x ≥ 0,

0, если x < 0,

Элементарный сигмоид (логит или логистическая функция) y = σ(x) = Арктангенс: y =

1 1 + e−x

1 1 + arctg x 2 π

1

O

x

Используют и другие функции, например, положительную срезку линейной функции (linear rectifier): g(x1, x2, . . . , xq ) = (β0 + β1x1 + · · · + βq xq )+

где (x)+ = max {0, x}, или ее сглаженный вариант softplus:

g = ln 1 + exp(β0 + β1x1 + · · · + βq xq )



— эти функции успешно применяются для решения проблемы исчезающего градиента (см. ниже).

x O

Нейронные сети часто изображают с дополнительными «единичными» нейронами. Веса указываются рядом с соответствующими дугами. y1

y2

...

выходы

yK

1

σ

σ

.........

σ

2-й «скрытый» слой

1

σ

σ

.........

σ

1-й «скрытый» слой

1

x1

x2

...............

xd

входы

Таким образом, выходы из каждого узла (нейрона) умножаются на соответствующие веса и складываются. Далее к полученному результату s применяется функция σ(s).

Иногда отдельно изображают суммирующие элементы и элементы, вычисляющие σ:

1

1

1

x1

y1

y2

...

yK

Σ

Σ

...

Σ

Softmax

σ

σ

.........

σ

Σ

Σ

.........

Σ

σ

σ

.........

σ

Σ

Σ

.........

Σ

x2

..................

xd

входы

«Двуслойная» нейронная сеть (с логистической функцией активации σ) — это логистическая регрессия.   d g = σ β0 + ∑ βj xj ≈ Pr (Y = 1| X = x) j=1

σ β0

β2

x1

1

y1

β1

y2

...

βd ...

x2



x1

x2

.........

d



exp βk0 + ∑ βkj xj j=1 yk =   ≈ Pr (k | x) d ∑ exp βℓ0 + ∑ βℓj xj

yK



1

xd

xd

j=1

Трехслойная («ванилла») нейронная сеть для задачи классификации y1

y2

...

etk ≈ Pr (k |x) yk = ∑ etℓ

yK



t1

z1

1

1

t2

x1

z2

x2

...

m

tk = γk0 + ∑ γkizi

tK

.........

...............

i=1

  d zi = σ βi0 + ∑ βij xj

zm

j=1

xd

Трехслойная («ванилла») нейронная сеть для задачи восстановления регрессии m

y = γ0 + ∑ γizi

y

i=1

z1

1

1

x1

z2

x2

.........

...............

  d zi = σ βi0 + ∑ βij xj

zm

j=1

xd

«Четырехслойная» нейронная сеть для задачи классификации g1

g2

...

gK

gk =

etk K

∑ etℓ

≈ Pr (k | x)

ℓ=1

t1

z21

1

z11

1

1

x1

t2

z22

z12

x2

z1 = σ(B1x),

...

......

.........

m2

tk = γk0 + ∑ γkiz2i

tK

i=1



j=1

d

z1i = σ β1i0 + ∑ β1ij xj

z1m1

t = B3z2,

m1

z2i = σ β2i0 + ∑ β2ij z1j

z2m2

.....................

z2 = σ(B2z1),



xd

g = softmax(t)

j=1





Почему нейронные сети? • &, ∨ — пороговые функции. На самом деле из 16 булевых функций двух переменных не являются пороговыми только xor ⊕ (сложение по модулю 2) и его отрицание. • 3-слойных нейронных сетей с пороговыми функциями активации достаточно для представления всех булевых функций, зависящих от d-переменных (а сколько всего элементов требуется?) • 3-слойных нейронных сетей с пороговыми функциями активации достаточно, чтобы выделять выпуклые многогранные области (конъюнкция полупространств), а 4-слойных — чтобы выделять невыпуклые, в т.ч. многосвязные области (дизъюнкция многогранных областей). • 4-слойные нейронные сети с сигмоидальными функциями активации выделяют «сглаженные» многогранные области.

Отступление. История вопроса • Теорема Вейерштрасса: любую непрерывную функцию можно аппроксимировать полиномами (но сколько их достаточно?). Есть обобщения этой теоремы Стоуна и Горбаня. Есть еще ряды Фурье. • Колмогоров, Арнольд: любая непрерывная функция f (x1, x2, . . . , xd) от d аргументов представима в виде ! 2d+1

f (x1, x2, . . . , xd) =

d

∑ hk ∑ ϕjk (xj )

k=1

,

j=1

где hk , ϕjk — непрерывные функции, причем ϕjk не зависят от f (13-я проблема Гильберта). Таким образом, 3 слоев достаточно (но функции активации не пороговые и не близкие к ним.)

«Универсальная теорема об аппроксимации» Теорема 5.1 Пусть σ — ограниченная, монотонно возрастающая, непрерывная функция. Тогда для любой непрерывной функции f ∗ : [0, 1]d → R, для любого ε > 0 существуют M , αm (m = 1, 2, . . . , M ), wmj (m = 1, 2, . . . , M ; j = 0, 1, . . . , d), такие, что функция ! d

M

f (x1, . . . , xd) =

∑ αmσ

m=1

wm0 +

∑ wmj xj

j=1

является ε-аппроксимацией функции f , т. е. |f (x) − f ∗(x)| ≤ ε. Таким образом, 3 слоев достаточно. Но чему равно M — число узлов скрытого слоя? (есть результаты, например, в терминах первых моментов преобразования Фурье)

5.3. Обучение нейронной сети (backpropagation) [H. J. Kelley, 1960; A. E. Bryson, 1961; S. Dreyfus, 1962; S. Linnainmaa, 1970; А. И. Галушкин, 1974; P. Werbos, 1974; С. И. Барцев, В. А. Охонин, 1986; D. E. Rumelhart et. al., 1986]

Обучение нейронной сети — это подбор параметров (весов нейронной сети) для подгона сети под обучающую выборку. Минимизируем эмпирический риск. В задачах восстановления регрессии, например, минимизируют сумму квадратов 2 1 N  (i) R(w) = y − f (x(i)) ∑ 2N i=1

(a)

В задачах классификации обычно минимизируют кросс-энтропию (это логарифмическая функция правдоподобия!) 1 R(w) = − N

N



K

∑ yk log fk (x(i)),

i=1 k=1

(i)

(i)

yk = 1 ⇔ y (i) = k

Задача минимизации R(w) решается численными методами: например, методом градиентного спуска, квазиньютоновскими методами и т. п. Нужно уметь вычислять производную. Алгоритм обратного распространения ошибки (back propagation) — это метод вычисления градиента ∂R/∂w. Главное — цепное правило!

(b)

. . . zk . . . . . . . . . . . . zk′ . . . . . . zk′′ . . . Children(j) wjk

wjk′

wjk′′

. . . . . . zj . . . . . . wℓj

wℓ′j

zj = σ(sj ) = σ wℓ′′j



. . . zℓ . . . . . . zℓ′ . . . . . . . . . . . . zℓ′′ . . . Parents(j)



wℓj zℓ

ℓ∈Parents(j)

{z

|

sj



}

∂R(i) δj = — «ошибка» в j-м узле, ∂sj (a)

(b)

1 R(w) = N 1 R(w) = N

N

N

∑ R(i)(w),

i=1

∑ R(i)(w),

i=1

2  1 (i) R(i)(w) = yj − fj (x(i)) ∑ 2 j∈Outputs

R(i)(w) = −



j∈Outputs

(i) yj ln zj

=−



j∈Outputs

(i) yj ln

esj ∑ esm m

. . . zk . . . . . . . . . . . . zk′ . . . . . . zk′′ . . . Children(j) wjk

wjk′

wjk′′

. . . . . . zj . . . . . . wℓj

wℓ′j

zj = σ(sj ) = σ wℓ′′j

. . . zℓ . . . . . . zℓ′ . . . . . . . . . . . . zℓ′′ . . . Parents(j) Если j ∈ Outputs : (a, b)





wℓj zℓ

ℓ∈Parents(j)

|

{z sj



}

∂R(i) (i) = zj − yj , δj = ∂sj

Если j ∈ / Outputs: ∂R(i) ∂sk ∂zj ∂R(i) = · · = δk wjk σ ′(sj ) = σ ′(sj ) ∑ δk wjk δj = ∑ ∑ ∂sj ∂sk ∂zj ∂sj k∈Children(j) k∈Children(j) k∈Children(j) Для всех j:

∂R(i) ∂R(i) ∂sj = · = δj zℓ ∂wℓj ∂sj ∂wℓj

Batch и On-line Back Propagation (ρr → 0, ∑ ρr = ∞, ∑ ρ2r < ∞, например, ρr = 1r ): N

∂R(i) ∂R(i) (r) (r+1) , wℓj = wℓj − ρ −ρ∑ = ∂wℓj i=1 ∂wℓj procedure BackPropagation (on-line) Инициализировать wℓj (например, случайными значениями) repeat for i = 1, . . . , N Прямой ход: подать на вход x(i), вычислить все zj Обратный ход: for j ∈ Outputs (r+1) wℓj

(r) wℓj

(i)

(a, b) δj ← zj − yj for каждого уровня, начиная с предпоследнего for каждого узла j текущего уровня δj ← σ ′(sj ) ∑k∈Children(j) wjk δk for каждой дуги (ℓ, j) wℓj ← wℓj − ρδj zl return wℓj

1.5

Классификация на основе «трехслойной» нейронной сети с 10 скрытыми узлами. Построенный классификатор сильно зависит от начальных значений.

0.0

0.5

x2

1.0

Train error = 0.155 Test error = 0.246 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

5.4. Переобучение Регуляризация — weight decay Добавим штраф к функции ошибок: R(w) + λJ(w), где J(w) = ∑ wi2i′ , i i′

λ≥0 Вариант:

wi2i′ J(w) = ∑ 2 , 1 + w i i′ i i′

— большие коэффициенты подвергаются б´ольшему сокращению, чем это делает (⋆)

(⋆)

1.5

Классификация на основе «трехслойной» нейронной сети с 10 скрытыми узлами и коэффициентом λ = decay weigth = 0.1

0.0

0.5

x2

1.0

Train error = 0.17 Test error = 0.201 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

5.4.1. Dropout Другой метод борьбы с переобучением (это тоже регуляризация). «Отключение» нейронов на этапе обучения. На каждой итерации обучения каждый нейрон на полносвязных слоях с некоторой вероятностью (например, 0.5) «отключается», т.е. не участвует ни в прямом, ни в обратном ходе. В режиме предсказания все нейроны работают.

В примере digits выборка размера 1934 была случайным образом разбита на две группы по 967 объектов в каждой. Для обучения использовалась «трехслойная» нейронная сеть с 15 элементами в скрытом слое. 100 итераций алгоритма BFGS

decay weight

Ошибка на обучающей выборке на тестовой выборке

0

0.000

0.111

0.1

0.000

0.078

0.2

0.000

0.035

0.3

0.000

0.037

0.4

0.000

0.039

0.5

0.000

0.037

0.6

0.000

0.035

0.7

0.000

0.029

0.8

0.000

0.036

0.9

0

0.037

1.0

0

0.033

5.0

0.007

0.039

10.0

0.027

0.047

50.0

0.249

0.267

Рукописные цифры, которые были не правильно классифицированы нейронной сетью с decay weight = 0.7. Цифра рядом с каждым изображением — ответ нейронной сети 0

1

1

1

9

5

4

4

9

8

4

9

6

4

1

5

1

4

5

2

4

9

9

9

1

1

3

4

9

7

0

4

8

3

9

1

9

9

9

4

7

1

9

1

6

5.5. Глубокое обучение (Yann LeCun, Yoshua Bengio, Geoffrey Hinton и др.) Глубокое обучение (Deep learning) — подход, основанный на моделировании высокоуровневых абстракций (новых признаков) с помощью последовательных нелинейных преобразований. Более высокие уровни нейронной сети представляют абстракцию на базе предыдущих слоев. Некоторые подходы в глубоком обучении • Сверточные нейронные сети • Автокодировщики (autoencoders) и стеки автокодировщиков • Ограниченная машина Больцмана и глубокие сети доверия (deep belief networks) Проблемы с большими нейронными сетями • Переобучение • Исчезающий градиент

5.5.1. Сверточные нейронные сети

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1  0 1  K=  1 −4 0 1

0



 1  0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1  0 1  K=  1 −4 0 1

0



 1  0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1  0 1  K=  1 −4 0 1

0



 1  0

Основная идея сверточных нейронных сетей (сверточных слоев): Параметры фильтра будем подбирать с помощью обучения: h

w

zpq = σ β0 + ∑ ∑ βij xp+i−1, q+j−1 i=1 j=1

!

xij — узлы (нейроны) одного слоя (например, входного) zpq — узлы следующего слоя Параметры фильтра — это теперь веса нейронной сети. Отличия от полносвязной сети (полносвязного слоя): • Нет соединения каждого узла одного слоя со всеми узлами следующего. • Веса становятся разделяемыми.

0

1

0

1

−4

1

0

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

510 0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

510 0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

−510

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

510 0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

−510

0

0

255

255

255

255

255

0

0

255

255

255

255

0 0

0 0

0 0

255 0

255 255

510 0

1

0

1

−4

1

0

1

0

255 255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

−510

0

0

0

255

255

255

255

255

0

0

255

255

255

255

510 0

0 0

0 0

0 0

255 0

255 255

1

0

255

0 1

−4

1

0

1

0

255

0

0

0

0

0

255

0

0

0

0

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

−510

0

0

0

255

255

255

255

255

0

0

255

255

255

255 0

0 0

0 0

0 0

255 0

255 255

1

0

0

0

0

0

255

0

0

0

0

0

0

1

−4

1

0

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

510

0

255 255

510

0



 1  0

0

0

0

255

255

255

255

255

0

0

255

255

255

255 0

0 0

0 0

0 0

255 0

255 255

1

0

0

0

0

0

255

0

0

0

0

0

0

1

−4

1

0

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

510

−510

0

255 255

510

0



 1  0

0

0

255

255

255

255

255

0

0

255

255

255

255 0

0 0

0 0

0 0

255 0

255 255

1

0

0

0

0

0

255

0

0

0

0

0

0

1

−4

1

0

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

255 255

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

(I ∗ K)pq =

1

0

Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0

0

0

510

−510

0

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

−510

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

−510

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

h

Например,

0

0

0

510

−510

0

0

0

510

−510

0

Линейный фильтр (свертка) I ∗ K с ядром K: (I ∗ K)pq =

−510

0

255 1

0

1

510

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

−510

0

0

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

−510

0

0

0

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

−510

0

0

0

510

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

−510

0

0

0

510

−510

0

0

0

510

−510

0

0

0

510

0

255 1

0

1

510

0



 1  0

0

255

255

255

255

255

0

0

255

255

255

255 0

0

0

0

255

255

0

0

0

255

255 0

0

0

0

0

0

255

0

0

0

0

0

0

−4

1

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0

0

0

0

255

0

0

0

0

255

0

0

0

0

255

0

255 1

0

1

255

0



 1  0

0

1

0

1

−4

1

0

1

0

Линейный фильтр (свертка) I ∗ K с ядром K: h

(I ∗ K)pq = Например,

w

∑ ∑ Ip+i−1, q+j−1Kij

i=1 j=1



0 1  K=  1 −4 0 1

0



 1  0

LeNet-5 [Le Cun et al., 1998] 16×10×10

Input

16×5×5

Output

120 84

6×28×28

10

6×14×14

32×32

5

5 2

5

5

2

Convolution

Pooling

2

Convolution

Feature extraction

2

Pooling

Fully connected

Classification

• Сверточные слои (convolutional layers) • «Выборочные» слои, или слои объединения (subsampling/pooling layers) • Полносвязные слои (fully connected layers)

Выделение признаков в слоях нейронной сети (схема)

Другие примеры: ImageNet Large-Scale Visual Recognition Challenge • AlexNet (Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton, 2012) — победитель ImageNet-2012 — 8 слоев, 61 млн. параметров • GoogLeNet (Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, 2015) — 22 слоя, 7 млн. параметров • Microsoft ResNet (Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, 2015) — 101 слой, 44.6 млн. параметров • DenseNet (Gao Huang, Zhuang Liu, Laurens Van Der Maaten, Kilian Q. Weinberger, 2017) — 201 слой, 20 млн. параметров • ... • Playing Atari with Deep Reinforcement Learning (V. Mnih, 2013) — 10 слоев • AlphaGo (D.Silver et al, Alphabet Inc.’s Google DeepMind, 2015) — 2 нейронных сети по 13 слоев

5.5.2. Автокодировщики Автокодировщик (autoencoder) — метод сжатия (с потерями) на основе обучения без учителя. x1 b z1

1

1

x2 b

x1

...............

z2

x2 x1 ≈ b x1 ,

...

M < d или используется разреженность

скрытый слой

zM

............... x2 ≈ b x2 ,

xd выходы b

...,

xd

входы

xd ≈ b xd

5.5.3. Ограниченная машина Больцмана h1

.........

h2

w11 w12 v1

скрытые состояния

hL wML

v2

...

vM

наблюдаемые состояния

Метод сравнительного отклонения (Contrastive Divergence) begin Наблюдаемым состояниям присваиваются значения v = (v1, v2, . . . , vM ) По ним вычисляются значения скрытого слоя h = (h1, h2, . . . , hL) ′ По h вычисляются новые значения наблюдаемого слоя v ′ = (v1′ , v2′ , . . . , vM ) По v ′ вычисляются новые значения скрытого слоя h′ = (h′1, h′2, . . . , h′L) end

W ← W + α(vh⊤ − v ′h′⊤) M

vj , hi ∈ {0, 1} ,

Pr {hi = 0} = σ

∑ wij vj

j=1

!

,

Pr {vi′ = 0} = σ

L

∑ wij hi

i=1

!

5.6. Программное обеспечение № Пакет/библиотека

Интерфейс

ОС

FCNN CNN RNN AE RBM

1 TensorFlow

Python, Java, Go

Linux, Windows, Mac OS, Android

+

+

+

+

+

2 Theano

Python

Linux, Windows, Mac OS

+

+

+

+

+

3 Keras

Python, R

Linux, Vagrant

+

+

+

+

+

4 Torch

Lua, C

Linux, iOS, Android

+

+

+

+

+

5 Caffe

C++, Python, Matlab

Linux, Windows, OS X

+

+

+

+



6 MXNet

C++, Python, R, Linux, Windows, Scala, Julia, Perl, Mac OS MATLAB, JavaScript

+

+

+

+

+

7 Matlab Neural Networks Toolbox

Matlab

Linux, Windows, OS X

+

+

+

+



8 Wolfram Mathematica

Java, C++

Linux, Windows, OS X

+

+



+

+

5.7.* Персептрон Розенблатта Модель нейрона и нейронной сети [W. S. McCulloch, W. Pitts, 1943] Идеи обучения нейронной сети [D. O. Hebb, 1949] Алгоритм обучения, программа [1958], нейрокомпьютер MARK 1 [F. Rosenblatt, 1960]   d y = sign β0 + ∑ βj xj j=1

sign β0 1

β1 x1

β2

βd x2

...

xd

Будем строить линейную разделяющую поверхность (гиперплоскость). Рассмотрим случай K = 2 классов, которые будем кодировать числами 1 и −1. Разделяющую гиперплоскость зададим уравнением β0 + β ⊤x = 0, а решающее правило — формулой f (x) = sign(β0 + β ⊤x).

Для нахождения гиперплоскости будем минимизировать кусочно-линейную функцию D(β, β0) = −

∑ y(i)(β0 + β ⊤x(i)),

i∈M

где M = M (β, β0) — множество индексов тех объектов, которые были классифицированы неправильно (т.е. β0 + β ⊤x(i) < 0). Каждое слагаемое неотрицательно и пропорционально расстоянию от точки до гиперплоскости β0 + β ⊤x = 0.

D(β, β0) = − ∂D(β, β0) = − ∑ y (i). ∂β0 i∈M

∑ y(i)(β0 + β ⊤x(i)),

i∈M

∂D(β, β0) = − ∑ y (i)x(i), ∂β i∈M

Воспользуемся алгоритмом стохастического градиентного спуска: вместо вычисления градиента (как в обычном градиентном спуске), будем находить одно из слагаемых y (i)x(i) (и y (i)). Объекты в обучающей выборке обходим в некотором порядке (например, случайно). Если на i-м объекте текущее решающее правило ошибается, т. е. i ∈ M , то обновляем веса (M обновляется после каждого изменения коэффициентов β0, β): ! ! ! (r) (r+1) (i) y β0 β0 , +ρ ← (i) (i) (r) (r+1) y x β β где ρ — некоторый положительный параметр (например, ρ = 1). Обучение происходит до тех пор, пока β0, β не стабилизируются (или не пройдет слишком много итераций).

Теорема 5.2 (A. B. J. Novikoff, 1962) Если классы линейно отделимы, то за конечное число шагов алгоритм построит разделяющую гиперплоскость. ДОКАЗАТЕЛЬСТВО. Пусть к x(i) приписана первая координата, равная 1, и β (0) = 0, ρ = 1, kx(i)k ≤ γ. Пусть классы разделяются гиперплоскостью β ∗⊤x = 0, причем β ∗⊤x(i) ≥ α > 0 ⇔ y (i) = 1,

β ∗⊤x(i) ≤ −α < 0 ⇔ y (i) = −1,

kβ ∗k = 1

β ∗⊤β (1) = β ∗⊤(β (0) + ρy (i1)x(i1)) = β ∗⊤y (i1)x(i1) ≥ α

β ∗⊤β (2) = β ∗⊤(β (1) + ρy (i2)x(i2)) = β ∗⊤β (1) + β ∗⊤y (i2)x(i2) ≥ 2α β ∗⊤β (r) ≥ rα

kβ (1)k2 = kx(i1)y (i1)k2 ≤ γ 2 , ⊤

(1) (i2) (i2 ) 2 (i2) 2 kβ (2)k2 = kβ (1) + x(i2)y (i2)k2 = kβ (1)k2 +2 β x y < 2γ + kx k | {z } | {z } | {z } ≤γ 2 r

<0

≤γ 2

(iℓ ) 2 2 kx k ≤ rγ ∑ ℓ=1 √ ⊤ rα rα β ∗ β (r) (∗) (r) √ = → ∞ (если r → ∞) — противоречие! > cos 6 (β , β ) = ∗ (r) rγ γ kβ k · kβ k

kβ (r)k2 <

Количество итераций:

√ rα <1 γ



γ2 rmax = 2 . α

Недостатки 1. Персептрон работает крайне медленно. 2. Если данные линейно не разделимы, то не известно, какую именно разделяющую гиперплоскость из возможных найдет алгоритм: это зависит от начального значения параметров β, β0, от порядка обхода точек и от величины ρ. 3. Если данные линейно не разделимы, то алгоритм может зациклиться, причем, как правило, наблюдается большая длина цикла, и зацикливание трудно распознать.

Глава 6 Машина опорных векторов SVM — Support Vector Machine • Метод обобщенного портрета (оптимальная разделяющая гиперплоскость) — 60–70 гг. В. Н. Вапник и др., см. В. Н. Вапник, А. Я. Червоненкис «Теория распознавания образов». М.: Наука, 1974 • Добавлены ядра — [Cortes, Vapnik, 1995]

6.1. Оптимальная разделяющая гиперплоскость

b

b

b b b b

b

b b b b b

b b

b

b b b

b b b b

b b b

b

b

b b b

Два класса

b

b

b

b b b b

b

b b b b b

b b

b

b b b

b b b b

b b b

b

b

b b b

Одна из возможных разделяющих прямых

b

b

b

b b b b

b

b b b b b

b b

b

b b b

b b b b

b b b

b

b

b b b

Другая из возможных разделяющих прямых

b

b

b

b b b b

b

b b b b b

b b

b

b b b

b b b b

b b b

b

b

b b b

b

Еще одна из возможных разделяющих прямых (гиперплоскостей)

b

b

b b b b

b

b b b b b

b b

b

b b b

b b b b

b b b

b

b

b b b

Желтая — разделяющая («нейтральная») полоса

b

Оптимальная разделяющая гиперплоскость — это гиперплоскость, максимизирующая ширину разделяющей полосы и лежащая в середине этой полосы. Иными словами, оптимальная разделяющая гиперплоскость максимизирует зазор (margin) между плоскостью и данными из обучающей выборки. Если классы линейно разделимы и каждый содержит не менее одного элемента, то оптимальная разделяющая гиперплоскость единственна.

b

b

b b b b

b

b b b b

b

b b

b

b b b

b b b b

b b b

b

b

b b b

b

Задача поиска оптимальной гиперплоскости эквивалентна следующей: max C β, β0

при ограничениях y (i)(β ⊤x(i) + β0) ≥ C

(i = 1, 2, . . . , N )

kβk = 1

или, что эквивалентно,

1 min kβk2 β, β0 2

при ограничениях y (i)(β ⊤x(i) + β0) ≥ 1 (i = 1, 2, . . . , N ). Во втором случае зазор равен 2/kβk. Получили задачу выпуклого программирования (минимизация квадратичной функции при линейных ограничениях).

Функция Лагранжа:   N 1 L (β0, β, λ) = kβk2 − ∑ λi y (i)(β ⊤x(i) + β0) − 1 . 2 i=1 Так как задача выпуклая, то w(λ)

v(β, β )

}| 0 { }| { z z min max L (β0, β, λ) = max min L (β0, β, λ) |β, β0 λ≥0 {z } |λ≥0 β, β0 {z } прямая задача

двойственная задача

Решаем двойственную задачу. ∂L (β0, β, λ) ∂β0

N



0=

∑ λiy

i=1

(i)

,

∂L (β0, β, λ) ∂β

N



β=

Двойственная функция: N 1 N N (i) (k) (i)⊤ (k) w(λ) = ∑ ∑ λiλk y y x x − ∑ λi → min . λ≥0 2 i=1 k=1 i=1

На практике обычно решают именно эту — двойственную — задачу.

∑ λiy(i)x(i).

i=1

Решение задачи удовлетворяет условию Куна–Таккера (дополняющей нежесткости):   λi y (i)(β ⊤x(i) + β0) − 1 = 0 (i = 1, 2, . . . , N ),

откуда следует, что

• если λi > 0, то y (i)(β ⊤x(i) + β0) = 1, т. е. x(i) лежит на границе разделяющей полосы • если y (i)(β ⊤x(i) + β0) > 1, т. е. x(i) не лежит на границе разд. полосы, то λi = 0 Точки, для которых y (i)(β ⊤x(i) + β0) = 1, называются опорными точками или опорными векторами.

C= b

b b

1 kβk

b b

b b b b b

b b

b

b

b

C= b

b

1 kβk b

b

b b



β0 + β x = 0 b

b b

b

По построению, ни один объект из обучающей выборки не может попасть внутрь разделяющей полосы. Однако в нее могут попасть тестовые объекты. Тем не менее, даже в этом случае решающее правило, основанное на оптимальной разделяющей гиперплоскости, показывает, как правило, хорошие результаты. Расположение оптимальной разделяющей гиперплоскости полностью определяется только опорными точками и не зависит от других точек обучающей выборки. Такая робастность отличает метод, основанный на оптимальных разделяющих гиперплоскостях, от LDA, в котором учитываются даже точки, расположенные далеко от границы. Конечно, для нахождения самих опорных точек мы должны принимать во внимание все точки обучающей выборки. Однако если данные действительно подчиняются нормальному закону с равными матрицами ковариации, то LDA — лучший выбор. Разделяющая гиперплоскость, найденная с помощью логистической регрессии, часто близка к оптимальной разделяющей гиперплоскости. Это можно объяснить некоторой схожестью этих походов: на логистическую регрессии можно смотреть как на взвешенный метод наименьших квадратов, причем веса тем больше, чем ближе точка к границе.

Что делать, если данные линейно не разделимы?

6.2. Случай «перекрывающихся» классов Предположим, что классы линейно-неразделимы. Рассмотрим задачу max C

β, β0 , ξi

при ограничениях kβk = 1,

y (i)(β ⊤x(i) + β0) ≥ C(1 − ξi),

n

ξi ≥ 0 (i = 1, 2, . . . , N ),

∑ ξi ≤ Ξ,

i=1

где Ξ — некоторая константа (параметр метода). Случаю линейно-отделимых классов соответствует Ξ = 0. ξi пропорционально расстоянию, на которое x(i) заходит за границу разделяющей полосы. В частности, i-й объект будет классифицирован не правильно ⇔ ξi > 1. Чем меньше Ξ, тем меньше объектов будет классифицировано неправильно. Но параметр Ξ должен быть достаточно велик, чтобы задача была совместной.

b

C= b

1 kβk

b b b b b b

b

ξ2∗ ξ4∗

b b

b

b

b

1 kβk

C=

ξ3∗ b

ξ1∗

b

b

b b b b

b

β0 + β ⊤x = 0 b

b

b b

b

b

b

Эквивалентная запись задачи:

1 kβk2, β, β0, ξi 2 min

при ограничениях (i)

⊤ (i)

y (β x

n

+ β0) ≥ 1 − ξi,

ξi ≥ 0 (i = 1, 2, . . . , N ),

∑ ξi ≤ Ξ.

i=1

Задача заключается в минимизации квадратичной положительно определенной функции при линейных ограничениях. Запишем задачу в виде n 1 2 min kβk + γ ∑ ξi, β, β0, ξi 2 i=1 при ограничениях yi(β ⊤x(i) + β0) ≥ 1 − ξi,

ξi ≥ 0 (i = 1, 2, . . . , N ),

где γ = 1/Ξ. Случай линейно отделимых областей соответствует значению γ = ∞.

Функция Лагранжа для этой задачи имеет вид   N n N 1 L (β0, β, ξ, λ, µ) = kβk2 + γ ∑ ξi − ∑ λi y (i)(β ⊤x(i) + β0) − (1 − ξi) − ∑ µiξi. 2 i=1 i=1 i=1 Положим производные относительно неизвестных β0, β, ξi равными нулю: N

0=

∑ λiy(i),

i=1

N

β=

∑ λiy(i)x(i),

i=1

λi = γ − µi

(i = 1, 2, . . . , N ).

Подставляя эти формулы в L (β0, β, ξ, λ, µ), получим двойственную функцию Лагранжа N 1 N N (i) (k) (i)⊤ (k) w(λ) = ∑ ∑ λiλk y y x x − ∑ λi. 2 i=1 k=1 i=1 w(λ) необходимо минимизировать при ограничениях N

0 ≤ λi ≤ γ,

(i) λ y = 0. i ∑

i=1

Условия Куна–Таккера (дополняющей нежесткости):   λi y (i)(β ⊤x(i) + β0) − (1 − ξi) = 0, µiξi = 0

Пусть β, β0, ξi, λi и т. д. — оптимальные значения соответствующих неизвестных. Если λi 6= 0, то y (i)(β ⊤x(i) + β0) = 1 − ξi, т. е. i-е неравенство выполнено как равенство. Таким образом, в формуле N

β=

∑ λiy(i)x(i),

i=1

в правой части остаются только слагаемые, соответствующие точкам, для которых ⊤ y (i)(x(i) β + β0) = 1 − ξi. Эти точки (объекты) называются опорными векторами, так как β зависит только от них.

Среди этих точек некоторые могут лежать на границе разделяющей полосы (ξi = 0). Для них 0 < λi < γ. Для остальных опорных точек ξi > 0 и λi = γ. Любая точка на границе разделяющей полосы может использоваться для определения β0. На практике в качестве β0 берется среднее из всех значений, определяемых по опорным векторам. Итак, на расположение разделяющей гиперплоскости влияют только опорные точки. Это выгодно отличает данный классификатор от LDA, в котором граница областей определяется матрицами ковариации и расположением центроидов, и, следовательно, зависит от всех точек. В рассматриваемом отношении классификатор опорных векторов больше похож на логистическую регрессию.

1.5 0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.235 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

6.3. Ядра и спрямляющие пространства Перейдем от исходного пространства X в другое, называемое спрямляющим, H с помощью некоторого отображения   h(x) = h1(x), . . . , hM (x) ,

где hm(x) — базисные функции (новые признаки) (m = 1, 2, . . . , M ). Новый классификатор определяется теперь функцией  ⊤ f (x) = sign β h(x) + β0 .

В формуле

N

β=

∑ λiy(i)x(i),

i=1

заменяем x(i) на h(x(i)):

N

β=

∑ λiy(i)h(x(i)),

i=1

Двойственная функция Лагранжа N 1 N N (i) (j) (i)⊤ (j) LD = ∑ ∑ λiλj y y x x − ∑ λi. 2 i=1 j=1 i=1

примет вид

D E N 1 N N LD = ∑ ∑ λiλj y (i)y (j) h(x(i)), h(x(j)) − ∑ λi. 2 i=1 j=1 i=1

Функция f (x) запишется как ⊤



f (x) = sign β h(x) + β0 = sign

N

∑ λiy(i)

i=1

D

E

!

h(x), h(x(i)) + β0 .

Мы видим, что h(x) встречается только в скалярном произведении h(x), h(x ) ! (i)

Таким образом, для определения классификатора опорных векторов нам достаточно уметь вычислять лишь функцию K(x, x′) = hh(x), h(x′)i . Итак, мы можем заменить скалярное произведение функцией K(x, x′) и, более того, вообще явно не строить спрямляющего пространства H , а подбирать функцию K. Можно совсем отказаться от построения новых признаков, а попробовать построить модель, в которой описываются взаимоотнощения между объектами с помощью функции K(x, x′).

Рассмотрим необходимые и достаточные условия, которым должна удовлетворять функция K(x, x′). Функция K : X × X → R называется ядром, если она представима в виде K(x, x′) = hh(x), h(x′)i при некотором отображении h : X → H , где H — евклидово (или гильбертово) пространство со скалярным произведением h·, ·i. Теорема 6.1 (Мерсер) Функция K(x, x′) является ядром тогда и только тогда, когда она симметрична, т. е. K(x, x′) = K(x′, x), и неотрицательно определена, т. е. Z Z

X X

для всех g(x), для которых

R

X

K(x, x′)g(x)g(x′)dxdx′ ≥ 0

g(x)2dx ограничено.

Пример Рассмотрим пространство признаков размерности 2 с двумя входами x1, x2 и полиномиальным ядром степени 2: K(x, x′) = (1+hx, x′i)2 = (1+x1x′1+x2x′2)2 = 1+2x1x′1+2x2x′2+(x1x′1)2+(x2x′2)2+2x1x′1x2x′2. Мы видим, что M = 6 и можно положить √ √ √ 2 2 h1(x) = 1, h2(x) = 2x1, h3(x) = 2x2, h4(x) = x1, h5(x) = x2, h6(x) = 2x1x2. Тогда K(x, x′) = hh(x), h(x′)i.

Примеры ядер • K(x, x′) = 1 • K(x, x′) = hx, x′i • произведение ядер K(x, x′) = K1 (x, x′)K2(x, x′) — ядро • K(x, x′) = α1K1(x, x′) + α2K2(x, x′) для любых α1 > 0, α2 > 0 • K(x, x′) = ϕ(x)ϕ(x′) для любой ϕ : Rd → R • K(x, x′) = K0(ϕ(x), ϕ(x′)) для любой ϕ : Rd → Rd R

• K(x, x ) = X s(x, z)s(x′, z)dz, где s : X × X → R – симметричная интегрируемая функция ′

• если K0 – ядро и ϕ : R → R представима в виде сходящегося степенного ряда с неотрицательными коэффициентами, то K(x, x′) = ϕ(K0 (x, x′)) – ядро

Примеры ядер • однородный многочлен степени m: K(x, x′) = hx, x′im, • неоднородный многочлен степени m: K(x, x′) = (1 + hx, x′i)m, ′ 2

• радиальная функция: K(x, x′) = e−γkx−x k (предел многочленов при m → ∞; H– бесконечномерное), • сигмоидальная (масштабированная логистическая) функция: K(x, x′) = tanh(κ1 hx, x′i + κ2),

где

ex − e−x tanh x = x e + e−x

SVM – аналог kNN ⊤



f (x) = sign β h(x) + β0 = sign (напомним, что λi 6= 0 ⇔ x(i) – опорный)

N

∑ λiy

i=1

(i)

D

(i)

E

!

h(x), h(x ) + β0 .

Исследуем роль параметра γ в n 1 min kβk2 + γ ∑ ξi, β, β0, ξi 2 i=1

учитывая, что классы в спрямляющем пространстве, как правило, можно разделить. Большое значение γ препятствует росту ξi, что, как правило, приводит к переобучению и крайне извилистой границе между областями. Маленькое значение γ способствует росту ξi и обычно приводит к более «прямой» разделяющей поверхности.

На SVM можно смотреть как на регуляризованный метод минимизации эмпирического риска, если в качестве штрафной функции рассматривается h i L(g, y) = 1 − yg , +

где f (x) = sign g(x) — классификатор, g(x) = h(x)⊤β + β0 — отступ (margin) объекта x. SVM эквивалентен минимизации

 i h 1 (i) ⊤ (i) h(x ) β + β 1 − y + kβk2. 0 ∑ + 2γ i=1 N

Целевая функция имеет вид «потери + штраф».

1.5

SVM радиальное ядро, γ = 1/2

0.0

0.5

x2

1.0

Train error = 0.17 Test error = 0.211 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM радиальное ядро, γ = 5

0.0

0.5

x2

1.0

Train error = 0.12 Test error = 0.245 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM радиальное ядро, γ = 20

0.0

0.5

x2

1.0

Train error = 0.06 Test error = 0.27 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM радиальное ядро, γ = 50

0.0

0.5

x2

1.0

Train error = 0.025 Test error = 0.304 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM радиальное ядро, γ = 100

0.0

0.5

x2

1.0

Train error = 0.015 Test error = 0.334 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM радиальное ядро, γ = 500

0.0

0.5

x2

1.0

Train error = 0.005 Test error = 0.432 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

SVM полиномиальное ядро (полином 3-й степени)

0.0

0.5

x2

1.0

Train error = 0.205 Test error = 0.257 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

Задача классификации рукописных цифр. Выборка размера 1934 была случайным образом разбита на две группы по 967 объектов в каждой. γ = 1/1024 Ошибки на обучающей и тестовой выборках приведена в следующей таблице. Ошибка

Ядро

на обучающей выборке на тестовой выборке

Линейное

0

0.021

Радиальное

0.011

0.030

Полином 3 степени

0.090

0.094

Сигмоидальное

0.131

0.125

Все случаи неправильной классификации цифр из тестовой выборки в случае линейного ядра. 5 9

9 7

2 5

8 1

8 5

3 7

9 4

0 4

4 6

3 5

1 8

6 1

5 9

6 1

9 3

4 9

1 4

8 1

7 9

0 8

6.4. SVM и восстановление регрессии Как SVM можно адаптировать к решению задачи восстановления регрессии? Сначала рассмотрим линейную регрессионную модель f (x) = β ⊤x + β0. Для восстановления β, β0 рассмотрим задачу минимизации функции N

H(β, β0) =

∑V

i=1

V (t) = Vε(t) =

(



0,

y

(i)



α − f (x ) + kβk2, 2 (i)

если |t| < ε,

|t| − ε в противном случае.

Vε(t) — функция «ε-нечувствительности», игнорирующая ошибки, меньшие ε. Можно провести аналогию с SVM-классификатором, в которой точки, расположенные далеко от разделяющей полосы (с «правильной» стороны) не рассматриваются при построении классификатора. В случае с регрессией такую роль играют точки с маленькой ошибкой |y (i) − f (x(i))|.

b β b0, минимизирующее функцию H(β, β0), можно Можно показать, что решение β, представить в виде b= β

N

∑(bαi∗ − αbi)x(i),

i=1

E D fb(x) = ∑ (b αi∗ − α b i) x, x(i) + β0, N

i=1

где α bi и α bi∗ являются решением следующей задачи квадратичного программирования: ! D E N N N 1 ∗ (i) ∗ min∗ ε ∑ (αi + αi) − ∑ y (αi − αi) + ∑ (αi∗ − αi)(αj∗ − αj ) x(i), xj αi , αi 2 i,j=1 i=1 i=1 при ограничениях

0≤

αi, αi∗

1 ≤ , λ

N

∑(αi∗ − αi) = 0,

αiαi∗ = 0.

i=1

Как и в случае задачи классификации, здесь решение зависит только от скалярных произведений x(i), xj , поэтому мы можем использовать аппарат спрямляющих пространств и ядер.

В качестве функции V (t), можно выбрать другую меру ошибки, например, квадратичную V (t) = t2 или функцию Хьюбера ( r2/2, если |r| < c, VH (r) = c|r| − c2/2 в противном случае,

но важно свести все к задаче программирования, содержащей только

(i) квадратичного скаларные произведения x , xj . V (r) Квадратичная Хьюбер

ε-нечувствительность

−c

−ε

0

ε

c

r

6.5. Регрессия и ядра SVM — не единственная модель, в которой могут использоваться ядра. Рассмотрим, например, задачу аппроксимации функции f (x) (т. е. задачу восстановления регрессии) при заданных базисных функциях h1(x), . . . , hm(x): M

f (x) =

∑ βmhm(x) + β0.

m=1

Будем минимизировать регуляризованную функцию потерь N

H(β, β0) =

∑ V (y

(i)

i=1

λ − f (x )) + kβk2. 2 (i)

Решение задачи минимизации имеет вид

где

fb(x) =

M



m=1

bmhm(x) + β b0 = β ′

K(x, x ) =

M

N

(i) α b K(x, x ), i ∑

i=1

∑ hm(x)hm(x′).

m=1

Пусть, например, V (r) = r2. Пусть H — (N × M )-матрица, в которой (i, m)-й элемент есть hm(x(i)). Предположим, что M > N и M велико. Для простоты будем предполагать, что β0 = 0. Тогда H(β) = (y − Hβ)⊤(y − Hβ) + λkβk2. b который можно определить из условий Минимизирует функцию H(β) вектор β, b + λβ b = 0. −H⊤(y − Hβ)

После очевидных преобразований получаем

b = (HH⊤ + λI)−1HH⊤y. Hβ

⊤ Матрица HH N × N содержит скалярные произведения для всех пар

(i) размера векторов x , xj .

Таким образом, (HH⊤)ij = K(x(i), xj ). Легко показать, что

fb(x) = h(x) β = ⊤

N

∑ αbiK(x, x(i)),

i=1

где α b = (HH⊤ + I)−1y. Как и в SVM, нет необходимости вычислять M значений функций h1(x), . . . , hM (x) (и даже определять сами эти функции). Достаточно вычислить только значения K(x(i), xj ). Удачный выбор функций hm (например, если в качестве них выбраны собственные функции ядра) позволяет вычислить все эти значения за время N 2/2, а не N 2M , как при прямом умножении матриц.

Глава 7 Деревья решений Пространство признаков разбивается на параллелепипеды со сторонами, параллельными осям координат (ящики). В каждом ящике ответ аппроксимируется с помощью некоторой простой модели, обычно константой (как для задачи классификации, так и для задачи восстановления регрессии). Используются только рекурсивные гильотинные разбиения.

2.5

Задача классификации цветов ириса (Fisher, 1936). x1, x2 — длина и ширина чашелистика.

2.0

virginica

1.5

setosa

<2.45

1.0

Petal Width

50:50:50Petal.Length Petal.Length 50:50:50

setosa 50:0:0

virginica

versicolor

>2.45

0:50:50Petal.Width Petal.Width 0:50:50

0.5

<1.75

0:49:5Petal.Length Petal.Length 0:49:5

<4.95

1

2

3

4

5

6

7

versicolor 0:47:1

>4.95

virginica 0:2:4

Petal Length

Каждому узлу дерева соответствует «ящик» в пространстве признаков. Этот ящик может разбиваться далее на следующих ярусах.

>1.75

virginica 0:1:45

7.1. Популярные алгоритмы построения деревьев решений • See5/C5.0 [Quinlan et., 1997] ← C4.5 [Quinlan, 1993] ← ID3 [Quinlan, 1979] ← CLS [Hunt & Marin & Stone & 1966] • CART — Classification and Regression Trees [Breiman & Friedman & Olshen & Stone, 1984] ← CHAID [Kass, 1980] ← THAID [Morgan & Messenger 1973] ← AID [Morgan & Sonquist, 1963] — это жадные рекурсивные алгоритмы, на каждом шаге разбивающие очередной ящик, чтобы добиться максимального уменьшения взвешенной неоднородности: b

b b

b

b

b b b b

b b

b b

b

b

b b

b

b

b

b b

b

b

b b

b

b

b

b b

b

b

b

b b

b

b

b b

b

b

b b

b

b b

b b

b

b b

b

b

b

b

b b

b

b b

b

b

b b

b

b

b b

b b

b

b

b b

b

b b

b

b b

b b

b

b

b b

b b

b b

b

b b

b

b

b

b b

b b

b

b

b

b

b

b

b

b

b

b

b

b

b b

b

b

b b

b b

b

b b

b

b b

b

b

b b

b b

b b

b

b

b

b

b b

b b

b

b b

b

b

b

b b

b

b

b

b

b

7.2. Алгоритм CART Разбиения (splits) имеют вид: • xj ≤ c для количественных признаков; • xj ∈ L, где L ⊂ {1, 2, . . . , Mj } для качественных признаков. Дерево строим рекурсивно. Пусть на текущем шаге имеется разбиение пространства признаков на области R1, R2, . . . , RM . • Выбираем область Rm. • Выбираем j и c (или L) так, чтобы добиться максимального уменьшения взвешенной неоднородности (impurity) (загрязненности, примесности, хаоса) Qm (m = 1, 2, . . . , M ) (т. е. максимального увеличения «прироста информации»). • Строим разбиение (split) и повторяем действия.

Способы измерить «неоднородности»: • Для задачи восстановления регрессии:  2 1 1 (i) (i) = y − f (x ) Qm = Nm (i)∑ Nm x ∈Rm



x(i) ∈Rm



y (i) − cm

2

,

где Nm = ∑ I(x(i) ∈ Rm) — количество x(i) ∈ Rm. Взвешенная неоднородность: 

Nm1 Nm2 1  b Qm = Qm1 + Qm2 = Nm Nm Nm



x(i) ∈Rm1



y (i) − cm1

2

+



x(i) ∈Rm2



2



y (i) − cm2  → min,

где Rm = Rm1 ∪ Rm2 , Nm1 = ∑ I(x(i) ∈ Rm1), Nm2 = ∑ I(x(i) ∈ Rm2 ).

• Для задачи классификации: – Ошибка классификации:   1 (i) Qm = I y = 6 k(m) = 1 − max pkm = 1 − pk(m), m, k Nm x(i)∑ ∈R m

pkm — доля объектов k-го класса в Rm, k(m) — класс, преобладающий в Rm. – Индекс К. Джини (вероятность, что два наугад взятых элемента из Rm принадлежат разным классам): Qm =

K

K

k=1

k=1

∑′ pmk pmk′ = ∑ pmk (1 − pmk ) = 1 − ∑ p2mk .

k6=k

– Энтропия (количество информации): K

Qm = − ∑ pmk log pmk . k=1

Если K = 2, то эти функции равны соответственно 1 − max {p, 1 − p} ,

2p(1 − p),

−p log p − (1 − p) log(1 − p),

где p = p1m — доля объектов 1-го класса, попавших в ящик Rm.

Q(p)





к ка иб Ош

Дж ин и

1 Энтропия

ии ац ик иф сс ла

0

1 2

p 1

Функции похожи друг на друга. Индекс Джини и энтропия являются гладкими функциями и поэтому более податливы для численной оптимизации. Каждая из трех приведенных функций равна нулю тогда и только тогда, когда в узле присутствуют объекты только одного класса.

b

b

b

b

b

2 Qmisclass = = 0.4, 5 Qentropy

QGini = 1 −

2 5

!2



3 5

!2

12 = = 0.4800, 25

2 3 3 2 = − log − log = 0.9710. 5 5 5 5

b

b

b

b

b

b

b

b

1·0+4·

1 2 1 2

=2 =2

1·0+4·1=4

b

2·0+3·

2·0+3·

1 3 4 9

=1 4 3

=

3 · 13 + 2 ·

3 · 49 + 2 ·

1·0+4·1=4

4 · 14 + 1 · 0 = 1

4 · 83 + 1 · 0 =

3 2

b b

b

2 · 12 + 3 ·

2 · 12 + 3 ·

b

b

b

=4

7 3

=

b b

=2

=2

b

b

1 2 1 2

1 2 1 2

b

b

1·0+4·

b

2 · 0 + 3 · 0.9183 = 2.7549 3 · 0.9183 + 2 · 1 = 4.7549 4 · 0.8113 + 1 · 0 = 3.2452

b

1·0+4·

b

b

b

b

b

b

b

b misclass = Nm Q b Gini = Nm Q b entropy = Nm Q

b

b

b

1·0+4·

b

b

b

b misclass = Nm Q b Gini = Nm Q b entropy = Nm Q

b

b

b

1 3 4 9

=2 =

7 3

3 · 13 + 2 ·

3 · 49 + 2 ·

b

1 2 1 2

=2 =

3 2

4 · 14 + 1 · 0 = 1

4 · 83 + 1 · 0 =

3 4

2 · 1 + 3 · 0.9183 = 4.7549 3 · 0.9183 + 2 · 1 = 4.7549 4 · 0.8113 + 1 · 0 = 3.2452

Замечание 7.1 Дадим еще две интерпретации индексу Джини: • Вместо того, чтобы в листе m классифицировать объект по большинству голосов, мы можем относить объект к классу k с вероятностью pmk . В этом случае средняя ошибка на обучающей выборке равна индексу Джини

∑′ pmk pmk′ .

k6=k

Разумеется, средняя ошибка на обучающей выборке является аппроксимацией средней ошибки на тестовой выборке (для объектов, попадающих в Rm) • Кодируем единицей объекты k-го класса и нулем — все остальные. Тогда выборочная дисперсия этой случайной величины в Rm равна pmk (1 − pmk ). Сумма по все классам k снова дает индекс Джини.

1.0

Высота = 6

0.0

0.2

0.4

x2

0.6

0.8

Train error = 0 Test error = 0.042

0.0

0.2

0.4

0.6 x1

0.8

1.0

0.0 −0.5 −1.0

x2

0.5

1.0

У алгоритм CART проблемы с некоторыми простыми распределениями. Например, с функцией xor, хотя для нее можно построить хорошее дерево решений.

−1.0

−0.5

0.0 x1

0.5

1.0

0.0 −0.5 −1.0

x2

0.5

1.0

Высота = 2, 3, 4

−1.0

−0.5

0.0 x1

0.5

1.0

1.0

Высота = 5

0.0 −0.5 −1.0

x2

0.5

Train error = 0 Test error = 0.02

−1.0

−0.5

0.0 x1

0.5

1.0

1.5

Высота = 10

0.0

0.5

x2

1.0

Train error = 0.015 Test error = 0.28 Bayes error = 0.21

0.0

0.5

1.0 x1

— переобучение

1.5

7.3. Обрезка деревьев Обрезка, или стрижка, деревьев (pruning) — боремся с переобучением. T ′ ⊆ T ⇔ дерево T ′ получается из T отсечениями (выбираем неконцевую вершину и удаляем оба ее поддерева) Qα(T ) = Q(T ) + α · |T | |T | — число листьев в дереве T Минимизируем Qα(T ′) на множестве всех поддеревьев T ′, получаемых из T отсечениями. Для любого α существует единственное тупиковое минимальное дерево T (α) ⊂ T , т. е. 1) на T (α) достигается минимум Qα(T ); 2) из любого другого дерева, на котором достигается минимум Qα(T ), отсечениями можно получить T (α). Найдем 0 = α0 < α1 < α2 < · · · < αs, T ⊃ T1 ⊃ T2 ⊃ · · · ⊃ Ts , для которых Ti = T (α), где αi−1 < α ≤ αi.

5 : 5 Q = 0.5, g = 0.1 Q = 0.2, g = 0.1 3 : 2

2 : 3 Q = 0.2, g = 0.1 1 : 2 Q = 0.1

Q=0 2:0

2 : 1 Q = 0.1

0:2 Q=0

T — все дерево, T ′ — синее поддерево. Qα(T ′) = 0.3 + 3α.

Qα(T ) = 0.2 + 4α, Qα(T ′) < Qα(T )



α > 0.1

В общем случае (t — вершина, Tt — выходящее из нее поддерево): Qα(T ′) < Qα(T ) ⇔



Q(T ′) + α|T ′| < Q(T ) + α|T ′|

Q(t) + α < Q(Tt) + |Tt| · α

так как |T | = |T ′| + |Tt| − 1,



α > gT (t) ≡



Q(t) − Q(Tt) , |Tt| − 1

Q(T ) = Q(T ′) + Q(Tt) − Q(t).

Процедура построения последовательности T ⊃ T1 ⊃ T2 ⊃ · · · ⊃ Ts begin T0 ← T α0 ← 0 k=0 while число узлов в Tk больше 1 Для каждого нетерминального узла t дерева Tk вычислить gTk (t) αk ← min gTk (t) (минимум берется по всем нетерминальным узлам t дерева Tk ) t

end

Обойти сверху вниз все узлы t′ дерева Tk и обрезать те, в которых gTk (t) = αk+1 Построенное дерево обозначить Tk+1 k ←k+1

end Среди всех k выбираем такое, для которого T (αk ) дает наименьшую CV-ошибку.

1.5

Дерево решений глубины 10 — переобучение

0.0

0.5

x2

1.0

Train error = 0.015 Test error = 0.28 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

Оптимальное дерево после проведения отсечений — 5 листьев

0.0

0.5

x2

1.0

Train error = 0.14 Test error = 0.245 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

Оптимальное дерево после проведения отсечений — 5 листьев x2 <> 0.515062

5

x1 <> 0.391393

1 88 obs x1 <> 0.510502

1 2 41 obs 2

x2 <> 0.132986

1 14 obs 3

4

2 15 obs

2 42 obs

Пример fgl По стеклянным осколкам требуется определить их происхождение (B. German). N = 214, d = 9, K = 6 Входные признаки: RI — показатель преломления плюс 8 значений процентного содержания оксидов/диоксидов следующих элементов: Na, Mg, Al, Si, K, Ca, Ba, Fe Классы: WinF — оконное термополированное стекло (флоат-стекло) (70) WinNF — оконное нетермополированное стекло (76) Veh — автомобильные окна (17) Con — сосуд (13) Tabl — посуда (9) Head — автомобильные фары (29) Мера неоднородности — энтропия.

70:76:17:13:9:29Mg Mg

70:76:17:13:9:29

<2.695 0:13:0:13:9:26NaNa <13.785 0:11:0:12:0:1AlAl

0:11:0:12:0:1

0:13:0:13:9:26

0:2:0:1:9:25BaBa

0:2:0:1:9:25

64:23:13:0:0:1RIRI

<0.2 >0.2 Head 0:2:0:0:9:1 3:4:7:0:0:0RIRI 0:0:0:1:0:24

<1.265>1.265 Tabl 0:0:0:0:7:0

70:63:17:0:0:3

<1.42

WinNF 0:4:0:12:0:0FeFe 0:4:0:12:0:0 0:2:0:0:9:1RIRI 0:7:0:0:0:1

Con WinNF 0:0:0:10:0:0 0:4:0:2:0:0

70:63:17:0:0:3AlAl

>13.785

<1.38 >1.38

<0.085>0.085

>2.695

WinNF 0:2:0:0:2:1

64:23:13:0:0:1

<−0.93

>−0.93

3:4:7:0:0:0

61:19:6:0:0:1K K

<−1.885 >−1.885 WinF 3:0:2:0:0:0

>1.42 6:40:4:0:0:2MgMg <3.455 61:19:6:0:0:1 0:11:4:0:0:2SiSi

<0.29

Veh 20:2:6:0:0:0CaCa 0:4:5:0:0:0

>0.29

<9.67 >9.67

Veh 41:17:0:0:0:1 0:2:4:0:0:2

<3.75 >3.75

36:1:0:0:0:1RIRI

>0.145

36:1:0:0:0:1 5:6:0:0:0:0AlAl

<1.045>1.045 WinF WinF 33:0:0:0:0:0 3:1:0:0:0:1

5:6:0:0:0:0

<1.17 >1.17 WinNF 0:5:0:0:0:0

WinNF 0:9:0:0:0:0

6:29:0:0:0:0

<12.835 >12.835 WinF 2:26:0:0:0:0K K 4:3:0:0:0:0

2:26:0:0:0:0

<0.55 >0.55

WinF WinF WinNF 41:7:0:0:0:1FeFe 41:7:0:0:0:1 11:0:6:0:0:0 9:2:0:0:0:0 0:10:0:0:0:0 <0.145

>3.455

0:11:4:0:0:2 6:29:0:0:0:0NaNa

<72.84>72.84

20:2:6:0:0:0 41:17:0:0:0:1MgMg

6:40:4:0:0:2

WinF 5:1:0:0:0:0

WinNF WinNF 2:4:0:0:0:0 0:22:0:0:0:0

38.2

18.7

13.1

9.9 8.9 6.8

400 300 200

Deviance

500

600

700

167.0

Train 10−fold CV

5

10 Size

15

20

«Оптимальное» дерево — 8 листьев

70:76:17:13:9:29Mg Mg

70:76:17:13:9:29

<2.695 0:13:0:13:9:26NaNa <13.785 Con 0:11:0:12:0:1

>2.695

0:13:0:13:9:26

70:63:17:0:0:3AlAl

>13.785 0:2:0:1:9:25BaBa <0.2 Tabl 0:2:0:0:9:1

70:63:17:0:0:3

<1.42 0:2:0:1:9:25

64:23:13:0:0:1RIRI

>0.2 Head 0:0:0:1:0:24

<−0.93 Veh 3:4:7:0:0:0

>1.42 WinNF 6:40:4:0:0:2

64:23:13:0:0:1 >−0.93 61:19:6:0:0:1K K <0.29

WinF 20:2:6:0:0:0

61:19:6:0:0:1 >0.29

41:17:0:0:0:1MgMg <3.75 WinF 41:7:0:0:0:1

41:17:0:0:0:1 >3.75 WinNF 0:10:0:0:0:0

SMS 3615:565call call yes 200:244claim claim

200:244

spam 200:183ill ill 200:183 0:61 ham 157:183min min 157:183 43:0

3615:565 no 3415:321txttxt

3415:321

spam 3409:214free free 6:107 30:44now now 30:44

3409:214 3379:170repli repli

3379:170

spam spam 157:147servic servic 157:147 30:29text text 30:29 28:31stop stop 28:31 3351:139text text 3351:139 0:36 0:15 spam spam spam ham 157:118urgent urgent 157:118 27:15week week 27:15 54:30mobil mobil 54:30 3297:109pmsg pmsg 3297:109 0:29 3:14 0:13 28:18 spam spam spam spam 157:93free free 157:93 27:10servic servic 27:10 54:24unsubscrib unsubscrib 54:24 3297:98claim claim 3297:98 0:25 0:5 0:6 0:11 spam ham spam spam 8:28sirsir 8:28 149:65award award 149:65 54:19win win 54:19 3297:90tone tone 3297:90 0:4 27:6 0:5 0:8 ham spam spam spam ham spam 149:56privat privat 149:56 3297:84mobil mobil 3297:84 3:0 5:28 0:9 0:4 54:15 0:6 spam spam 149:48pmin pmin 149:48 3292:77secret secret 3292:77 0:8 5:7 spam 149:41new new 149:41 3:6contact contact 3:6 3289:71unsubscrib unsubscrib 3289:71 0:7 spam spam ham spam 149:34collect collect 149:34 3289:68voucher voucher 3289:68 0:7 0:6 3:0 0:3 spam spam 149:27now now 149:27 3289:65collect collect 3289:65 0:7 0:3 ham ham 135:15repli repli 135:15 3281:61real real 3281:61 14:12 8:4 spam ham 134:11contact contact 134:11 3263:56video video 3263:56 1:4 18:5 spam spam 134:9match match 134:9 3263:54ltdltd 3263:54 0:2 0:2 spam spam 134:7credit credit 134:7 3263:52sms sms 3263:52 0:2 0:2 spam ham ham 3257:49import import 3257:49 0:2 134:5 6:3 ham 3250:46chat chat 3250:46 7:3 ham 3241:43picpic 3241:43 9:3 ham 3229:40play play 3229:40 12:3 ham 3215:37select select 3215:37 14:3 ham 3212:35appli appli 3212:35 3:2 ham 3:2

ham 3209:33

3615:565call call 3615:565 yes

no

200:244claim claim 200:244

3415:321txt txt 3415:321

spam 200:183illill 200:183 0:61

spam 3409:214free free 3409:214 6:107

ham 157:183min min 157:183 43:0 spam 157:147servic servic 157:147 0:36 spam 157:118urgent urgent 157:118 0:29 spam ham 0:25 157:93

spam 3379:170repli repli 3379:170 30:44 spam 3351:139text text 3351:139 28:31 ham 3297:109pmsg pmsg 3297:109 54:30 spam 3297:98claim claim 3297:98 0:11 spam 3297:90tone tone 3297:90 0:8 spam 3297:84mobil mobil 3297:84 0:6 spam 3292:77secret secret 3292:77 5:7 spam ham 3:6 3289:71

1.0

Дерево решений ROC-кривая. tree.test.FPR[tree.threshold.seq == 0.9] = 0.07920792 1 tree.test.TPR[tree.threshold.seq == 0.9] = 0.1428571 tree.test.Err[tree.threshold.seq == 0.9] = 0.08751793 AUC = 0.916712 1

0.985

0.0

0.2

0.4

TPR

0.6

0.8

0.9

Naive Bayes Tree

0

0.0

0.2

0.4

0.6 FPR

0.8

1.0

7.4. Некоторые отличия C4.5 от CART • C4.5 для каждого значения номинального признака строит свою ветвь (т. е. деревья не бинарные). • При обрезке используется не перекрестный контроль, а пессимистическая верхняя оценка для биномиального распределения.

7.5. Обрезка в C4.5 Пусть в ящик Rm попало n объектов из обучающей выборки, из них n′ — не принадлежат большинству. Таким образом, вероятность ошибки в заданном ящике ≈ n′/n. Но насколько эта оценка точна? Не будет ли она слишком завышенной («пессимистичной»)? Пусть p — настоящая вероятность ошибки, тогда n′   n i ′ { Pr ≤ n объектов не принадлежат большинству} = ∑ p (1 − p)n−i. (⋆) i i=0 В качестве верхней оценки p∗ для вероятности ошибки берем такое значение p, для которого правая часть равенства (⋆) равна выбранному уровню значимости α. Рекомендуется α = 0.25. Т. е. интервал [0, p∗] является доверительным интервалом при оценивании вероятности p с уровнем доверия 1 − α. Иными словами, p∗ — верхняя оценка значения вероятности p при уровне доверия 1 − α. За один проход от листьев к корню удаляются те узлы, взвешенная сумма оценок которых больше оценки для их родителя. — «Когда не видно разницы, зачем платить больше?»

10 : 6 : 4

n′ 4 ∗ = , p = 0.608 n 9

5:4:0

n′ 10 ∗ = , p = 0.598 n 20

4:2:2 n′ 4 ∗ = , p = 0.671 n 8

1:0:2

n′ 1 ∗ = , p = 0.674 n 3

9 8 3 · 0.608 + · 0.671 + · 0.674 > 0.598 — все листья отсекаем. 20 20 20 Для вычисления p∗ используются аппроксимации (обратной) функции биномиального распределения. Например, s  2 2 2 1 1 u u 1 1 n′ + + + u n′ + − + n′ + 2 2 2 n 2 4 ∗ p = . 2 n+u [Blyth C.R. Approximate binomial confidence limits // JASA. V. 81, 1986. P. 843–855] Здесь u = u1−α — квантиль нормального распределения. Если, например, α = 0.25, то u = u0.75 = 0.674.

7.6. Достоинства и недостатки деревьев решений Достоинства: • Поддерживают работу с входными переменными разных (смешанных) типов • Возможность обрабатывать данные с пропущенными значениями • Устойчивы к выбросам • Нечувствительность к монотонным преобразованиям входных переменных • Поддерживают работу с большими выборками • Возможность интерпретации построенного решающего правила Недостатки: • Основной недостаток — плохая предсказательная (обобщающая) способность.

Глава 8 Ансамбли решающих правил Ансамбль, или комитет, решающих правил (функций).

Рассмотрим задачу классификации на K классов. Y = {1, 2, . . . , K} . Пусть имеется M классификаторов («экспертов») f1, f2, . . . , fM fm : X → Y ,

fm ∈ F ,

(m = 1, 2, . . . , M )

Построим новый классификатор: простое голосование: M

f (x) = argmax

∑I

k=1,...,K m=1



fm(x) = k ,

взвешенное (выпуклая комбинация классификаторов, или «смесь экспертов»): M

f (x) = argmax



k=1,...,K m=1

 αm · I fm(x) = k ,

M

αm ≥ 0,

∑ αm = 1,

m=1

или M

f (x) = argmax



k=1,...,K m=1

 αm(x) · I fm(x) = k ,

M

αm(x) ≥ 0,

∑ αm(x) = 1.

m=1

В задаче восстановления регрессии простое голосование: 1 f (x) = M

M

∑ fm(x),

m=1

взвешенное голосование («смесь экспертов»): M

M

f (x) =

∑ αm(x) · fm(x),

m=1

αm(x) ≥ 0,

∑ αm(x) = 1.

m=1

Пример: K = 2, M = 3. Решение принимается с использованием простого голосования. Пусть классификаторы независимы (на практике недостижимое требование!). p — вероятность ошибки каждого отдельного классификатора. Тогда вероятность ошибки общего решения (ожидаемый риск) равен R = p3 + 3p2(1 − p) = 3p2 − 2p3.

0.0

0.2

0.4

R

0.6

0.8

1.0

R = 3p2 − 2p3

0.0

0.2

0.4

0.6 p

0.8

1.0

1.0

M = 1, 3, 15

0.0

0.2

0.4

R

0.6

0.8

M=1 M=3 M = 15

0.0

0.2

0.4

0.6 p

0.8

1.0

K=2 1 • p > — плохой классификатор, 2 1 • p = — 50/50, 2 • p=

1 − ε — хороший, но слабый классификатор (ε мало), 2

• p = ε — сильный классификатор. Можно ли научиться комбинировать слабые классификаторы, чтобы получить сильный [Kearns, Valiant, 1988]? Два известных подхода: • Баггинг и т. п.: пытаемся снизить зависимость экспертов друг от друга. • Бустинг и т. п.: эксперты учатся на ошибках других.

8.1. Баггинг Bagging — от bootstrap aggregation [Breiman, 1994] Классификатор fm обучается на bootstrap–выборке (повторной выборке) (m = 1, 2, . . . , M ). Финальный классификатор f — функция голосования: для задачи восстановления регрессии: 1 f (x) = M

M

∑ fm(x),

m=1

для задачи классификации: M

f (x) = argmax

∑I

k=1,...,K m=1



fm(x) = k .

1.0 0.5 x2

0.0 −0.5 −1.0 −1.0

−0.5

0.0 x1

0.5

1.0

1.0

xor: низких деревьев (высоты 1 или 2) должно быть много. Еще при 1000 деревьях картина не удовлетворительная. На рис.: деревья решений высоты 1 (100 деревьев).

0.0 −0.5 −1.0

x2

0.5

Train error = 0.46 Test error = 0.512

−1.0

−0.5

0.0 x1

0.5

1.0

1.0

Bagging — деревья решений высоты 2 (100 деревьев)

0.0 −0.5 −1.0

x2

0.5

Train error = 0.243 Test error = 0.29

−1.0

−0.5

0.0 x1

0.5

1.0

1.0

Bagging — деревья решений высоты 3 (100 деревьев)

0.0 −0.5 −1.0

x2

0.5

Train error = 0 Test error = 0.014

−1.0

−0.5

0.0 x1

0.5

1.0

0.30 0.20 0.10

0.15

Error

0.25

Train Test

0

200

400

600 Trees

Переобучается ли баггинг?

800

1000

8.2. Случайный лес Развитие идеи баггинга: Random forests [Breiman, 2001] Ансамбль параллельно обучаемых «независимых» деревьев решений. Независимое построение определенного количества M (например, 500) деревьев: • генерация случайной bootstrap-выборки из обучающей выборки (50–70% от размера всей обучающей выборки); • построение дерева решений по данной подвыборке: в каждом новом узле дерева переменная для разбиения выбирается не из всех признаков, а из случайно выбранного их подмножества небольшой мощности.

procedure RandomForests for m = 1, 2, . . . , M begin По обучающей выборке построить бутстрэп-выборку Построить дерево fm, рекурсивно применяя следующую процедуру, пока не будет достигнут минимальный размер sz: begin Построить случайный набор из p признаков Выбрать из него лучшую переменную и построить 2 дочерних узла end end 1 M Для задачи восстановления регрессии return f = ∑ fm M m=1 M

Для задачи классификации return f = argmax ∑ I(fm = k) k

end

m=1

√ Для задачи восстановления регрессии, например, p = d, sz = 3 Для задачи классификации, например, p = d/3, sz = 1

1.5

Random forest: 500 деревьев

0.0

0.5

x2

1.0

Train error = 0 Test error = 0.248 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.0

Random Forest (50 деревьев)

0.0 −0.5 −1.0

x2

0.5

Train error = 0 Test error = 0.01

−1.0

−0.5

0.0 x1

0.5

1.0

Out of bag error OOB ошибка — средняя ошибка предсказаний классификатора (RF) на обучающей выборке, усредненная по всем слабым классификаторам (деревьям), при обучении которых данных объект не вошел в бутстрэп-выборку.

0.24 0.22 0.20 0.18 0.16

Error

0.26

0.28

RF test error RF OOB error

0

1000

2000 Trees

3000

4000

5000

Extremely randomized trees [Geurts, Ernst, Wehenkel, 2006] Основные отличия от Random Forests: • Бутстрэп-выборки не используются. Для обучения каждого дерева используется целиком все обучающее множество. • При ветвлении, как и в RF, выбираем случайное подмножество (неконстантных в данном ящике) признаков. Затем для каждой такое переменной строим случайное разбиение и выбираем из них лучшее.

8.3. Бустинг To boost — улучшать, повышать, рекламировать. Попробуем строить последовательность решающих правил, каждый из которых осведомлен об ошибках предыдущих. Пусть только два класса: Y = {−1, 1}. Простая схема [Schapire, 1990] 3 классификатора f1 обучается на N прецедентах f2 обучается на N прецедентах, таких, что f1 ровно на половине дает верный ответ f3 обучается на N прецедентах, на которых f1(x) 6= f2(x)   3 return f = sign ∑ fm m=1

Откуда брать данные для новых обучающих выборок? — Например, из исходной выборки путем изъятия с возвращением (бутстрэп-выборка)

AdaBoost [Freund, Schapire, 1995] (от Adaptive Boosting) Будем использовать веса w1, w2, . . . , wN . На первой итерации wi = 1/N (i = 1, 2, . . . , N ) и алгоритм построения f1 работает в обычном режиме. На m-й итерации увеличиваются веса тех прецедентов, на которых на (m − 1)-й итерации была допущена ошибка, и уменьшаются веса тех прецедентов, которые на предыдущей итерации были классифицированы правильно. На m-й итерации ищем классификатор fm ∈ Fm, минимизирующий ошибку N

errm =

∑ wi · I

i=1

y

(i)

(i)



6= fm(x ) =



wi .

y (i) 6=fm (x(i))

— Некоторые алгоритмы обучения принимают на вход веса wi. Если это не возможно, то на каждой итерации генерировать бутстрэп выборку, изымая (с возвращением) из обучающей выборки (x(1), y (1)), (x(2), y (2)), . . . , (x(N ), y (N )) i-й элемент с вероятностью wi.

M

f (x) = sign g(x),

g(x) = gM (x) =

∑ βmhm(x),

y (i) ∈ {±1} ,

m=1

hm(x) ∈ {±1}

L (g, y) = e−gy (i) w1

bm = R

N

∑ e|

i=1

(i) wm

= 1, N

∑ e|−y g{zm−1(x }) e−βmy

−y (i) gm (x(i))

{z (i)

wm+1

} =

=e

−y (i) gm−1 (x(i) )

(i)

i=1

(i)

⇒ (i) h (x(i) ) m

i=1

hm :



y (i) 6=hm (x(i) )

=



→ min ⇔ hm

(i) −βm y (i) hm (x(i) ) wm e



y (i) 6=hm (x(i) )

errm → min, hm



(i) −βm wm e +

y (i) =hm (x(i))

(i)

∑ wm(i)e−βm + (eβm − e−βm )

(i) wm

=

wm

N

=

(i) wm+1

y (i) 6=hm (x(i) )

(i) wm → min

errm =

βm ,hm



y (i) 6=hm (x(i))

(i) wm

,

N

∑ wm(i)

i=1

(i) βm wm e

Если hm найдена, то найдем βm: βm =

1 1 − errm ln 2 errm

procedure AdaBoost Положить wi ← 1/N for m = 1, 2, . . . , M

(i = 1, 2, . . . , N ) N

Найти hm ∈ Fm, минимизирующую ошибку errm = ∑ wi · I y i=1

(i)

(i)

6= hm(x )

1 2 break

if errm >

Вычислить βm ← wi′

← wi · e

wi ← end

wi′

1 1 − errm ln 2 errm

−βm y (i) fm (x(i))



N

∑ wj′

= wi ·

1 − errm errm

(i = 1, 2, . . . , N )

j=1

M

return f = sign g, где g = ∑ βmfm m=1

end

s

!−y(i)hm(x(i))

(i = 1, 2, . . . , N )



1 b ) итогового − εm, то для эмпирической ошибки R(f 2 классификатора, построенного алгоротмом AdaBoost, справедливо Теорема 8.1 Если errm ≤

b )≤ R(f

M



m=1

p 2 errm(1 − errm) =

M



m=1

p

M

1 − 4ε2m ≤ e

−2 ∑ ε2m m=1

.

Теорема 8.2 Для ошибки предсказания R(f ) алгоритма AdaBoost справедливо ! r M ·v b )+O e , R(f ) = R(f N

где v = VC(Fm) — размерность Вапника–Червоненкиса для класса Fm (m = 1, 2, . . . , M ). Большое M — возможно переобучение.

Пример Слабые классификаторы — деревья решений высоты 1 (stumps)

1.5

M =1

0.0

0.5

x2

1.0

Train error = 0.195 Test error = 0.233 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 25

0.0

0.5

x2

1.0

Train error = 0.17 Test error = 0.217 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 50

0.0

0.5

x2

1.0

Train error = 0.145 Test error = 0.222 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 75

0.0

0.5

x2

1.0

Train error = 0.145 Test error = 0.224 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 100

0.0

0.5

x2

1.0

Train error = 0.145 Test error = 0.219 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 150

0.0

0.5

x2

1.0

Train error = 0.18 Test error = 0.225 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 200

0.0

0.5

x2

1.0

Train error = 0.17 Test error = 0.23 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 1000

0.0

0.5

x2

1.0

Train error = 0.15 Test error = 0.227 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.0

50 деревья решений высоты 2

0.0 −1.0

−0.5

x2

0.5

Train error = 0 Test error = 0.007

−1.0

−0.5

0.0

0.5

x1

(Если брать деревья решений высоты 1 — не хватает даже 1000)

1.0

Пример d = 10, X = Rd , Y = {−1, 1}, N = 1000 — обучающая выборка, Ntest = 10000 d

y=1



∑ x2j ≤ χ210(0.5) ≈ 9.34

j=1

0.2 0.1 0.0

Error

0.3

0.4

Train Test

0

100

200 Trees

300

400

0.5 0.3 0.2 0.1

Error

0.4

Bagging RF AdaBoost Deep Tree Stump

0

20

40

60 Trees

80

100

Алгоритм

Ошибка на обучающей выборке на тестовой выборке

Одиночное дерево

0.01

0.29

Stump

0.43

0.47

Bagging (100 деревьев)

0.10

0.22

RF (100 деревьев)

0.00

0.18

0

0.12

0.26

0.32

AdaBoost (100 stumps) GBT (100 stumps) Одиночное дерево: 138 листьев

Пример. Классификации рукописных цифр M

Ошибка на обучающей выборке на тестовой выборке

5

0.070

0.121

10

0.017

0.074

20

0.001

0.056

30

0

0.048

40

0

0.044

Алгоритм

Ошибка на обучающей выборке на тестовой выборке

Машина опорных векторов

0%

2.1 %

Метод ближайшего соседа

0%

3.1 %

0.0 %

2.9 %

0%

4.8 %

Нейронная сеть AdaBoost

AdaBoost.M1, AdaBoost.M2, RealBoost, SAMME, SAMME.R — разные варианты алгоритма AdaBoost для задачи классификации с K > 2

8.3.1. Статистические свойства экспоненциальной функции потерь 

min E Y | xL f (x), Y = min E Y | x e f

∂E Y | xL f (x), Y ∂f



= E Y |x e

−Y f (x)·(−Y )



 Pr Y = 1| x 1 ∗  f (x) = ln 2 Pr Y = −1| x

=e

f

−f (x)



Логит-функция (log-odds):

logit p = ln

−Y f (x)





Pr Y = 1| x − e 

Pr Y = 1| x = p 1−p

Логистическая функция — обратная к логит-функции: 1 eα logistic α = = −α 1+e 1 + eα

f (x)



Pr Y = −1| x = 0 1

1 + e−2f ∗(x)

8.4. Градиентный бустинг деревьев решений GBT — Gradient Boosted Trees [Friedman, 1999] • Задача классификации, Y = {−1, 1}. Решающее правило: f (x) = sign h(x). Штрафные функции (функции потерь):

– Пороговая функция: L(h, y) = I(yh < 0) – Линейная функция: L(h, y) = (1 − yh)I(yh < 1)

– Кросс-энтропия: L(h, y) = log2(1 + e−yh)

– Экспоненциальная функция: L(h, y) = e−yh – Броуновская функция: L(h, y) = e−cyh(yh+s) • Задача восстановления регрессии. Решающее правило: f (x) = h(x). Штрафные функции:

– Квадратичная функция: L(h, y) = (y − h)2

– Абсолютная: L(h, y) = 2|y − h|

– Функция Хьюбера: (y − h)2 · I(|y − h| ≤ δ) + δ · (2|y − h| − δ) · I(|y − h| > δ)

L Экcпоненциальная

Линейная

Кросс-энтропия Пороговая

1

Броуновская функция yh 0

1

δ = 1.3 L Квадратичная

Хьюбер

Абсолютная

−δ

0

δ

y−h

В случае произвольной гладкой штрафной функции алгоритмы для настройки модели можно получить по аналогии с соответствующими численными методами оптимизации. Наша задача заключается в минимизации функционала N

L(h) =

∑L

(i)

h(x ), y

i=1

(i)



,

где h — функция известного вида. Опуская последнее ограничение, получаем задачу минимизации min L(h), h

(1)

(2)

где h = h(x ), h(x ), . . . , h(x

(N )



) ∈ RN .

На многие численные методы оптимизации можно смотреть как на процесс, который, начиная с h0, переходит от одной точки к другой, делая на m-й итерации шаг sm. За M итераций алгоритм приходит в точку M



hM = h0 +

m=1

sm,

sm ∈ RN .

В методе наискорейшего спуска шаг равен sm = −ρmgm, где gm — градиент функции L(h), вычисленный в точке hm−1. Компоненты вектора gm суть: (i) (i) ∂L(h(x ), y ) (i) (i = 1, 2, . . . , N ). gm = (i) ∂h(x ) (i) (i) h(x )=hm−1 (x )

Параметр ρm, характеризующий длину шага, равен

ρm = argmin L(hm−1 − ρgm). ρ

К сожалению, градиент известен только на объектах из обучающей выборки.

Эту проблему можно решить путем обучения базовой модели (например, дерева решений) так, чтобы она наиболее точно предсказывала компоненты градиента. ∂L(y (i), h(x(i))) легко вычисляются аналитически. Частные производные ∂h(x(i))

Градиентный бустинг N

Положить h0 ← argmin ∑ L(y (i), γ) γ

i=1

for m = 1, 2, . . . , M for i = 1, 2, . . . , N  (i) (i) ∂L y , h(x ) (i) gm ← − ∂h(x(i)) h=h

m−1

end (1) (2) (N ) Обучить базовую модель gm на выборке (x1, gm ), (x2, gm ), . . . , (xN , gm ).  Найти длину шага: ρm = argmin L hm−1 − ρgm(x) . ρ

Обновить модель: hm = hm−1 − γρm gm(x).

end return f = sign(hM ) 0 < γ ≤ 1 — shrinkage

1.5

M = 100, штрафная функция — кросс-энтропия, stumps

0.0

0.5

x2

1.0

Train error = 0.05 Test error = 0.244 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 1000

0.0

0.5

x2

1.0

Train error = 0 Test error = 0.27 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 100, shrinkage = 0.5

0.0

0.5

x2

1.0

Train error = 0.1 Test error = 0.218 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.5

M = 1000, shrinkage = 0.5

0.0

0.5

x2

1.0

Train error = 0 Test error = 0.251 Bayes error = 0.21

0.0

0.5

1.0 x1

1.5

1.0

50 деревьев решений высоты 1, no shrinkage

0.0 −1.0

−0.5

x2

0.5

Train error = 0.345 Test error = 0.495

−1.0

−0.5

0.0

0.5

1.0

x1

Для 1000 деревьев высоты 1 картина (и ошибка) примерно такая же

1.0

50 деревья решений высоты 2, no shrinkage

0.0 −0.5 −1.0

x2

0.5

Train error = 0 Test error = 0.008

−1.0

−0.5

0.0 x1

0.5

1.0

0.5

Гиперсфера. Штрафная функция — кросс-энтропия. shrinkage = 0.01, stumps

0.0

0.1

0.2

Error

0.3

0.4

Train Test

0

10000

20000

30000

Trees

Минимум (0.069) достигается на 9447 деревьях

40000

50000

1.4

Как меняется h(x)?

0.8 0.6 0.0

0.2

0.4

Deviance

1.0

1.2

Train 10−fold CV

0

10000

20000

30000

Trees

Минимум (0.359) достигается на 19864 деревьях

40000

50000

8.5. XGBoost The XGBoost Contributors (Tianqi Chen и др.) (2016–. . . ) M

f (x) = fM (x) = f0 +

∑ hm(x),

m=1

R(f ) =

fm(x) = f0(x) + h1(x) + · · · + hm(x)

N

M

i=1

m=1

∑ L (f (x(i)), y(i)) + ∑ Ω(hm) → min

λ Tm 2 Ω(hm) = γTm + ∑ wmj , 2 j=1

Tm

fm(x) =

∑ wmj I(x ∈ Rmj )

j=1

Tm — количество листьев в дереве wmj — вес (значение) в листе (ящике) Rmj

Жадный алгоритм: N

Rm(f ) =

∑L

i=1

(i)

(i)

f (x ) + hm(x ), y | m−1{z } уже найдены

(i)



+ Ω(hm) → min

Разложим L (·) в ряд Тейлора (до членов 2-го порядка), зануляя внедиагональные элементы Гессиана: N



∂L h2m(x(i)) ∂ 2L Rm(f ) ≈ ∑ L fm−1(x ), y + hm(x ) + + Ω(hm) = 2 ∂f 2 ∂f m−1,i m−1,i i=1    Tm  N 2  ∂ L 1 ∂L 2 +γTm → min w + λ+ ∑ = ∑ L fm−1(x(i)), y (i) + ∑ wmj ∑ mj 2 Rmj ,wmj i=1 j=1 i∈Rmj ∂fm−1,i i∈Rmj ∂fm−1,i 2 | | {z } {z } (i)

(i)

(i)

Gmj

Hmj

∗ =− Если уже знаем структуру дерева (т. е. знаем Rmj ), то wmj ∗ Строим дерево, минимизируя Rm : 2 Tm G 1 mj ∗ + γTm Rm =− ∑ 2 j=1 Hmj + λ ∗ . и приписывая листьям веса wmj

Gmj Hmj + λ

8.6. Эксперименты Данные: UCI Machine Learning Repository http://archive.ics.uci.edu/ml/ Software: OpenCV Library http://opencv.willowgarage.com (Реализация GBT — П.Н.Дружков, ННГУ) Эксперимент — П.Н. Дружков Задачи классификации 10-CV ошибка Задача

N

Agaricus lepiota 8124

d (колич.+ном.) K GBT DTree 22 (0 + 22)

2

0

RF

ExtRF SVM

0.00

0

0

0

0.22

0.25

0.28

Liver disorders

345

6 (6 + 0)

2 0.25

0.31

Car evaluation

1728

6 (0 + 6)

4

0.051 0.036 0.039 0.050

0

GBT — Gradient Boosting Trees — градиентный бустинг деревьев решений, DTree — Decision Tree — деревья решений, RF — Random Forests — случайные леса, ExtRF — Extremely Random Forests — экстремально случайные леса, SVM — Support Vector Machine — машина опорных векторов

Задачи восстановления регрессии. Средняя абсолютная 10-CV ошибка d (колич.+ном.) GBT DTree

RF

ExtRF SVM

Задача

N

Auto-mpg

398

7 (4 + 3)

2.00

1.88

2.15

2.98

Computer hardware 209

8 (7 + 1)

12.61 15.62 11.62

9.63

37.00

Concrete slump

103

9 (9 + 0)

2.26

2.36

1.77

Forestfires

517

12 (10 + 2)

18.74 17.26 17.79 16.64 12.90

Boston housing

506

13 (13 + 0)

2.03

2.60

2.13

2.20

4.05

Import-85

201

25 (14 + 11)

1305

1649

1290

1487

1787

Servo

167

4 (0 + 4)

0.238 0.258 0.247 0.420 0.655

Abalone

4177

8 (7 + 1)

1.470 1.603 1.492 1.498 2.091

2.24 2.92

2.60

Глава 9 Обучение без учителя

План • Матрица расстояний • Многомерное шкалирование (масштабирование) • Алгоритмы кластеризации: – Методы, основанные на теории графов – Методы центров тяжести и медоидов – FOREL • Иерархическая кластеризация: – Агломеративные методы – Разделяющие методы • Ассоциативные правила и алгоритм Apriori • Google PageRank

Обучение с учителем X — d-мерная случайная величина, Y — одномерная случайная величина, P (X, Y ) — совместная функция распределения. Имеется набор (x(1), y (1)), (x(2), y (2)), . . . , (x(N ), y (N )) (обучающая выборка) из N независимых реализаций случайной величины (X, Y ). Задачу обучения с учителем можно рассматривать как исследование функции распределения P (Y | X). Обучение без учителя X — d-мерная случайная величина. Имеется N объектов x(1), x(2), . . . , x(N ) из N независимых реализаций случайной величины X. Задачу обучения без учителя можно рассматривать как исследование функции распределения P (X).

9.1. Матрица различий Многие алгоритмы кластеризации на вход принимают матрицу различий (dissimilarity matrix), или матрицу расстояний D = (δii′ ), размера N × N . δii′ равен «расстоянию» от i-го объекта до i′-го. При этом под «расстоянием» не обязательно понимается евклидово или какое-либо другое расстояние, удовлетворяющее аксиомам метрического пространства. Например, часто не предполагается, что выполнено неравенство треугольника δii′ ≤ δik + δki′ . Однако, как правило, δii = 0, δii′ = δi′i ≥ 0 (i = 1, 2, . . . , N , i′ = 1, 2, . . . , N ). Явные признаковые описания объектов могут вообще отсутствовать.

Бельгия Бразилия Египет Заир Израиль Индия Куба СССР США Франция Чили Югославия

Югославия

Чили

Франция

США

СССР

Куба

Индия

Израиль

Заир

Египет

Бразилия

Бельгия

Пример: матрица различий в политической и экономической системах 12 стран мира (на основании опроса студентов, изучающих политические науки, 1980-е гг., StatLib). Различия в баллах (от 0 до 10):

0 5.58 4.83 4.75 3.42 6.42 7.08 6.08 2.50 2.17 7.00 6.25 0

5.08 3.00 5.50 5.00 7.00 6.67 4.92 5.75 6.50 6.83 0

5.00 5.00 4.67 5.83 6.00 4.50 4.92 8.17 5.75 0

6.17 4.83 6.67 6.50 5.67 5.58 6.08 6.92 0

6.17 6.42 6.92 2.75 3.92 6.42 5.83 0

6.00 6.17 6.33 6.42 5.58 6.08 0

2.67 7.33 6.92 3.83 3.75 0

6.17 6.17 4.25 3.67 0

2.25 6.25 6.67 0

6.67 5.42 0

4.50 0

Можно разглядеть 3 кластера (строки и столбцы переставлены). Белый и желтый цвет — большие различия. Красный — малые. USSR Cuba Yugoslavia Chile USA France Belgium Israel Egypt India Brazil

Zaire

Brazil

India

Egypt

Israel

Belgium

France

USA

Chile

Yugoslavia

Cuba

USSR

Zaire

(i)

x2 −0.5

0 −2

−1.5

−4 −6

x2

2

0.5

4

1.5

6

Пусть признаковые описания xj (i = 1, 2, . . . , N , j = 1, 2, . . . , d) известны. Как строить матрицу различий?

−6

−4

−2

0 x1

2

4

−1.5

−0.5 x1

0.5

1.5

Разные подходы к построению матрицы различий. ′

d

δ(x, x ) =



wj δj (xj , x′j ),

j=1

d

∑ wj = 1,

j=1

wj ≥ 0,

где wj — весовые константы, а δj (x, x′) — функция, характеризующая различие в j-й координате. Для количественных, бинарных и порядковых признаков можно взять, например, δj (x, x′) = (xj − x′j )2. Пусть качественная переменная j может принимать m значений sj1, sj2 , . . . , sjm. Функцию δj (xj , x′j ) = δj (sjr , sjr′ ) определяем явным перечислением набора значений Lrr′ = δj (sr , sr′ ). Матрица L = (Lrr′ ) должна удовлетворять свойствам: Lrr′ = Lr′r ,

Lrr = 0,

(r = 1, 2, . . . , m, r′ = 1, 2, . . . , m).

Другой подход для измерения различия между объектами (если нет качественных переменных) заключается в использовании корреляции: d



Corr(x, x ) = s

∑ (xj − x)

j=1 d

2

x′j d

∑ (xj − x) ∑

j=1

j=1

−x x′j





−x

 ′ 2

,

где

1 d x = ∑ xj , d j=1

1 d ′ x = ∑ xj . d j=1 ′

Измеряется корреляция между объектами, а не между переменными! Здесь наоборот: чем Corr(x, x′) больше, тем различие между объектами x, x′ меньше. Если вход стандартизован, то d

∑ (xj − x′j )2 = hx − x′, x − x′i = hx, xi − 2hx, x′i + hx′, x′i = 2 (1 − Corr(x, x′)) .

j=1

Таким образом, кластеризация на основе евклидова расстояния (расстояние является мерой различия между парой объектов) эквивалентна кластеризации на основе корреляции (корреляция является мерой сходства между парой объектов).

Как выбирать веса wj (j = 1, 2, . . . , d)? Выбор wj = 1/d не обязательно приводит к тому, что влияние различия в каждой переменной будет одинаковым. смысл соотнести со средним значением δ по всем Величину wj δj (xj , x′j ) имеет  ′



расстояниям δ x(i), x(i ) между каждой парой объектов x(i), x(i ) (i, i′ = 1, 2, . . . , N ):   d 1 N N  (i) (i′) 1 N N d (i′ ) (i) δ = 2 ∑ ∑ δ x ,x = ∑ wj δ j . = 2 ∑ ∑ ∑ w j δ j xj , xj N i=1 i′=1 N i=1 i′=1 j=1 j=1

Здесь

  1 N N (i′ ) (i) δ j = 2 ∑ ∑ δ j xj , xj N i=1 i′=1

есть среднее различие в j-м признаке. Таким образом, относительное влияние wj δj (xj , x′j ) равно wj δ j . И если wj = 1/δ j , то эти влияния будут одинаковыми в каждой координате.

Заметим, что если все переменные количественные и в качестве меры различия выбрана взвешенная сумма квадратов: δ(x, x′) =

d

∑ wj (xj − x′j )2,

j=1

то

2 1 N N  (i) (i′ ) δ j = 2 ∑ ∑ xj − xj = 2 varj , N i=1 i′=1

где varj — смещенная выборочная дисперсия для j-й координаты: !2   N 2 1 1 N (i) (i) − 2 ∑ xj . varj = ∑ xj N i=1 N i=1 Упражнение 9.1 Проверить, что δ j = 2 varj .

x2 −0.5

0 −2

−1.5

−4 −6

x2

2

0.5

4

1.5

6

От выбора коэффициентов wj сильно зависит ответ. Разбиение на классы множества точек на плоскости, полученные методом медоидов. На рисунке слева использовались равномерные веса. На рисунке справа перед применением алгоритма данные были приведены к стандартному виду, что эквивалентно использованию весов wj = 1/(2 varj ).

−6

−4

−2

0 x1

2

4

−1.5

−0.5 x1

0.5

1.5

9.2. Многомерное шкалирование (масштабирование) Пусть D = (δii′ ) — матрица различий между каждой парой объектов x(1), x(2), . . . , x(N ) ∈ Rd . Предполагается, что δii′ = δi′i ≥ 0,

δi = 0

(i, i′ = 1, 2, . . . , N ).

В задаче многомерного шкалирования (multidimensional scaling) требуется найти такие z (1), z (2), . . . , z (N ) ∈ Rk , что kz

(i)

−z

(i′ )

k ≈ δii′

(i, i′ = 1, 2, . . . , N ).

Компоненты векторов z (i) называются MDS-координатами. Понятно, что если в качестве меры различия берется евклидово расстояние и k = d, то задача имеет точное тривиальное решение: в качестве z (i) надо взять x(i) (i = 1, 2, . . . , N ). На самом деле, задача интересна для небольших k, например, k = 2. В случае k = 2 точки z (i) можно визуализировать и тем самым попробовать решить задачу кластеризации визуально.

Подходы к решению: Шкалирование Краскала–Шефарда (Kruskal–Shephard scaling) — минимизация стресс-функции 2  ′ S(z (1), z (2), . . . , z (N )) = ∑ δii′ − kz (i) − z (i )k i6=i′

(например, методом наискорейшего спуска). Шкалирование Сэммона (Sammon scaling) — минимизация функции  2 ′ δii′ − kz (i) − z (i )k S(z (1), z (2), . . . , z (N )) = ∑ δii′ i6=i′ — маленькие расстояния между точками учитываются сильнее, чем большие.

Классический метрический метод. Вместо «различий» δii′ будем рассматривать «сходства» sii′ : D E (i) (i′) sii′ = x − x, x − x ,

1 где x = N

N

∑ x(i).

i=1

Рассмотрим матрицу S = (sii′ ). Будем минимизировать функцию

∑′

i6=i

D

sii′ − z (i) − z, z

(i′ )

−z

E

2

.

Эта задача минимизации имеет явное решение в терминах собственных векторов матрицы S. Пусть λ1 ≥ λ2 ≥ · · · ≥ λk суть k наибольших собственных чисел матрицы S, а e1, e2, . . . , ek — соответствующие собственные векторы. E — матрица, составленная из столбцов e1, e2, . . . , ek , √ √ √ D — диагональная матрица с числами λ1, λ2, . . . , λk на диагонали. Тогда в качестве решений zi (i = 1, 2, . . . , k) нужно взять строки матрицы ED.

Если известна матрица S, по ней можно определить D, причем единственным способом. Обратный переход неоднозначен. Например, S можно вычислить по формуле ! N N 1 1 T 1 1T − + 2 ∑ ∑ tii′ , S=− T− 2 N N N i=1 i′=1 где 1 — матрица порядка N , заполненная единицами, а T = (tii′ ) — матрица порядка N , в которой tii′ = δii2 ′ . Классический метрический метод эквивалентен PCA.

Неметрический метод Шефарда–Краскала основан на минимизации стресс-функции 2   ′ ∑ θ kz (i) − z (i )k − δii′ ii′

∑ δii2 ′ ii′

на множестве всех δii′ и всех монотонно возрастающих функций θ. Если θ зафиксировано, то δii′ можно найти, например, методом наискорейшего спуска. Если зафиксированы δii′ , то для поиска θ можно воспользоваться методом изотонной регрессии: функция ищется в классе монотонных ступенчатых функций методом наименьших квадратов. Итерации заканчиваются, когда процесс стабилизируется.

Результаты применения классического метрического метода и неметрического метода Шефарда–Краскала к данным из примера politics. Было выбрано k = 2. Можно выделить 3 кластера.

Классический метод 2

France Israel Belgium USA

0

USSR Cuba Chile

−2

−1

Egypt

India

−3

2nd MDS coordinate

1

Yugoslavia

−2

0 1st MDS coordinate

Brazil Zaire 2

1

2

Неметрический метод Шефарда–Краскала Israel

France

Belgium USA

Yugoslavia USSR

0

Chile

−2

−1

Egypt

Brazil Zaire

−3

2nd MDS coordinate

Cuba

India −2

0 1st MDS coordinate

2

0 −100 −200

2nd MDS coordinate

100

Пример digits. Классический метод 0 6 0 2 6 066 2 2 06 6 2 22 2 0 00 0 6 2 22 0020 0 600 66 9 292 222 22 00 00 6 2 2 2 2 23 22 2232 06 6 6 2 2 0 006660 00666 22299 2 3 2 9 82252 2 5 5 0020 00000 0 0 0 6 3 2 0 2 3 2 2 660 3 6 8 3 3 2222293 9 59 2 33223 0000 00000 600 666 0 66 0 6 0 0 6 2 0 0 6 6 0 1 222 3 23223 3 8 9 5 9 0 6 2 0 6 6666 5 8 5 2 82 6 6 660 9 00 000000600006 0 3223 3 92222393 2 66 6 6606666664 2 959 993 25 29 3 2323 2 5 98558 9 0 6666 6 0 0 6 6 2 8 2 2 0 3 9 3 8 2 3 3 9 2 2 9 0 0 2 2 6 0 0 9 2 3 3 0 5 3 8 6 0 8 95 8 9 011 100800 0 0 23 323 39 6 9 0 6 2 6 5 2 9 0 0 9 3332 3333 0 6 223 23 0 0 3 6 3 060 60 6 6 6 66 0 6 29 3 232 9 998298922 1 29 1 3 3 959282 22 0 10000 0060666606 666 666 666666 6 3223 9 3 322 2 9 29922 3 3 23 9898985595 9 2 66666 6 0 6 8 6 2 0 9 6 5 5 3 3 333223333232 9 3 2 2 9 8 8 2 0 3 3 3 8 33 393899 8 0 5 6 9 0 5 6 2 3 2 0 2 9 1 9 3 00 6606 000000 92929280 588 3 2 6666 8 399 5 92985 0 23332 9239999 6 6 8 2 3323 23 33 0 5 6 6 5 0 6 0 5 5 9 66 666 666 4 9 3 0 0 0 0 5 6 9 8 5 2 0 2 3 0 0 3 3 8 2 5 1 6 1 8 8 2 9 6 6666666 558592 99 5 83 233329 3 232 0 1 0 6666 5 29889 85 2 33 33 333 6 66 2922 5552 0000000 3 38 2529958259 60 8 15 1 2 89 60666 4 2 933223395235299 5 6 00 666666 888 9 6 0 3 1 5 0 3 6 5 9 1 8 9 8 2 2 6 3 2 0 5 3 6 0 3 1 5 8 8 6 3 0 3 9 9 8 5 23 295885595 8588899899898891 8 1 8 001066 6666 2 2 33332399 3 5 9 8 5 8 9 8 3 5 0 0 5 8 9 5 6 5 4 6 3 83359888 5 8 8 0 111 585882 8555551 3 33 0010 060 06 60 0 85 8888893 3 23 333 882855512114 11 2 99 8 5 278885551 1 0 8 1 9 9 5 7 23 1 1 8 9 5 3 8 5 5 5 1 4 8 5 5 8 3 5 0 2 6 6 3 8 8 2 1 3 85883 55888585858 58858 5 885 1 6 0 8875 5225 7 7 3373 32 333 333338 8382 5 1 11515 0 1 55581885 8 8 2 5 5 3 5 9 5 8 8 8558 4 44 4 55 8 58 3 3 9 9 385881 4 165 11 551 0 0 00 51 3 8 55 1 3883 51551811 5 5 5 83 82 57 825 5558 5 1 5 9 3 8 9 9 1 8 3 44 444 4 7 5 1 0 1 5 1 8 4 7 5 7 7 5 3 5 1 1 1 3 8 3 8 3 8 5 8 9 7 9 1 3 5 151 11 81 3 33 83 9 59 8587 9 4 4 4 11 79 9 58519555815119111 4 3 7 87 4 4 4 44 111115415 1 357 7 5994 9377 73 73 7 97 4 8 7 8 1 1 4 4 8 4 4 5 8 7 4 1 5 8 7 5 1 1 8 4 7 1 4 7 8 4 4 8 1 91 1 58 4 9 11811 14141 4 44 4 4444 444 4 4 7 34 77 4 87 7 95 4 7 4 1 4 33 1 8 4 7 797 4 4 4 44 5481 1 11 1 5 5 4 44 44 4 44 4 4 7 15 93 81 191 4 1 9 4 377779 77773 44 44 44 1771 7 4 4 1 197 4 1 4 1 4 4 9 4 7 4 7 1 4 4 9 0 4 7 44 444 7 7 9 1 4 7 14 1 4 71971 7 7 411 1 1111 11 4 4 8 4 7 7 79 777 7777 4 1 1 1 777 9 1 4 7 7 4 4 4 4 9 4 44 9 11 7 77 77 97777 7959 991 17111 1 111 19 14 9 9 4 4 44 4 444 44 4444 77 777 54 5 4 7 91 9171118 19 9 7 4 77 7 77777 1 4 1 4 9 4 1 4 7 7 777 7 777 9 191 49911 4 4 1 914 84 4 444 444 4 4 77777 7 777 7 1 119 9 14 1 777 779 7 7119 4 1 7 9 7 7777777777 4 4 9 9 9 797 54 4 4 44 71 1 77 7719791 4 9 494 4 4 49 7 77 77 77 7 9 9797 4 1 7 4 4 1 9 7 7 7 9 4 4 77 7 9 4 4 4 9 4 9 7 7 7 9 4 4 4 7 7 77777 7777 7 9 7 9 9 7 4 7777 7 7 7 77 7 7 7

−200

−100

0

100

1st MDS coordinate

200

С помощью LDA тоже можно решать задачу визуализации, но там мы используем метки классов!

−5

LD2

0

5

2 2222 2 2 2 22 22 2 2 2 2 2 2 2 2 2 0 222222 2222222 2 222 2 00 0 0 0 0 2 2 2 222 22 2 222 22 222 2 00 00 0 0 222 22222222222222 222 0 22 0 0 000000 00 0 2 2 2 2 2 22222 222 2 2 22 2 222222222 000 000 0 00 0 0 000 2 0 2 2 2 2 2 2 2 0 2 0 00 0 22 222 2 22 0 000 00000000 0 00 2 22322222 00 23 2 2 2 22 2 00 2 2 0 0000000000 6 2 0 00 0000 0 2 6 0 8 88 000 0000 255522222 2 22 2 32 33 0600000000 60 2 60 0 0 5 5 6 0 0 0 8 5 0 8 0 0000006000 23 55 3 3 3 2 006 060 00 000 00 6 88 18 8888 58 55 5 2 535552355352253335 22 233 33 0006006 0600 060660 95 8 0 5 55 25 535 333 3 06666660 8060 8 8 5 5 5 5 8 8 6000666 8 06 60666660 5 353333 33 3 3 888 88 8 8 589 893 555 559 55 3 3 35 0 0600066 66 06666 955 555535555333 0060 3333333333 3 8888 5 915515 6006 2 95952 3 1 888881 9 88 818 3 06606666666666 88888 9555 33 66 6 0666 6 606 5 18589 999 6 66 35 5333353 5 5 3 6 66 9 9 60 5 8 9 8 3 8 5 8 8 5333333 33 3 333333 6 8 9 8 33 1 8 1 9 333 3 8 5 6 6 8 8 9 8 8 8 5 5 888888888 8 18 5 5 5 2 66 66 6 1 2 5 6 3 3 8 8 8 8 3 5 5 9 1 3 1 5 5 8 5 33333333 3 6 666660666666666 6 1 1 1 8 5 1 3 9 8 8 5 9 5 9 8 5 5 8 9 5 1 8 5 8 9 3 5 9 8 9 1 8 5 9 0 8 5 9 3 3 3 5 5 5 3 6 8 3 9 5 6 0 88 66666 6 66 1 3 3 333 3 891 51 3555 55333335335 89959 333 888888 6 5595 1888 881 88 66666 5 9 9 6 9 66 6666 9 6 5 8 6 9 5 6 6 8 9 0 9 6 1 9 3 8 5 8 1 3 3 3 6 5 8 6 9 5 9 5 9 6 9 6 8 5 5 8 6 1 1 81 8 1 8895 998919998 1118 55 33333 33 53 9888 3333333 0 6 6 666666 3 5 5 55 91 81 811188 5 6 66 666 6 8 6 9 5 9 6 9 5 9 1 5 3 8 9 3 3 33 3 3 1 3 1 9 1 6 6 3 5 8991 666 6 9199999918998899911 6666 1995559515555 355 3333 3333 9899 1 8 88 18 88891 11181918 5 3 189111991919 8 3 5 1 1 8111 181819 3 3 666 6 3 66 5 3 3 5 9 5 9 5 6 9 5 1 1 1 5 8 3 3 11191189119 9199 9 6 9981 91919 8 1 81 1111 11111151 11 91915 6 6 6 6 6 66666 6 819991 1 911999 911 1991191 1 919 19999 6 1 19 33 111 1 8 1 1 811 891111811 11 1 8 1 1 8 9 1 1 9 1 1 9 11 9899 1 9 11 19 991119191 9995 8 1 19 991 3 1 19 9 9 9 9 9 1999 191 3 1 1 9 4 1 1 1 9 99 1 9 1 1 1 9 9 9 9 9 1 19 1 9 11 1 9 1 9 9 9 1 19 9 1 7 19 9 4 9 4 9 95 7 4 7 4 4 7 7 4 4 4 4 4 4 7 77 4 7 4 7 4 7 4 4 7 7 7 4 4 4 444444 4 4 4 4 4 7 777 7 4 44 4 4 4 44 4 7 4 7 4 4 4 4 4 7 7 7 4 44444444 4 77 4 444 44 444 4 4 7 77 777 77777 7 7 7 4 444 44 44444 77777 7 44 4 44 444444444 7 4 7 7 7 7 44 4 4 4 444444 44 44444 444 4 4 7 7 7 77 7777777777 7 7 7 77 4444 4444 4 4 7 7 7 777777 77 77 7 7 7 7 7777 4 4444 44444444 44 777777 7 7 77 777777 7 444 44 4 4 7 7 7 4 7 7 7 4 4 44 44 4 7 77777777 777 777 7 77777 7 7 7 7 4 44 7 7 7 7 7 7777777 7 4 777777 7 77 77 7 77 7 777 4 7 7 77 7 4 7

−10

−5

0 LD1

5

9.2.1. Метод главных компонент

0 −2 −4

x2

2

4

Principal component analysis (PCA) Неформально: пусть точки группируются «вдоль» некоторого линейного многообразия (небольшой размерности). Как его найти?

−6

−4

−2

0 x1

2

4

6

4 2 x2

0 −2 −4

−6

−4

−2

0 x1

2

4

6

Сингулярным, или SVD-разложением (singular value decomposition), матрицы X размера N × d называется ее представление в виде ⊤ X = U × D ×V

N ×d

N ×d

d×d

d×d

где U — N × d матрица с ортонормированными столбцами (U⊤U = I), V — ортогональная d × d матрица (V⊤ = V−1), D = diag(σ1, σ2, . . . , σd) — диагональная d × d матрица, σ1 ≥ σ2 ≥ · · · ≥ σd ≥ 0. σ1, σ2, . . . , σd — сингулярные значения (или сингулярные числа) матрицы X Столбцы матрицы U — левые сингулярные векторы Столбцы матрицы V — правые сингулярные векторы Очевидно, что столбцы u1, u2, . . . , ud матрицы U представляют собой ортонормированный базис подпространства, натянутого на столбцы x1, x2, . . . , xd матрицы X.

Как σj зависят от данных? Пусть, по-прежнему, данные, центрированы. Выборочная матрица ковариаций равна S = X⊤X/N , откуда 1 ⊤ 1 S = X X = VDU⊤UDV⊤ = V · D2/N · V⊤. N N Итак, столбцы v1, v2, . . . , vd матрицы V представляют собой собственный базис матрицы ковариаций S, σj2/N — собственные числа этой матрицы. Векторы vj называются также главными (или основными) компонентами (principal components) для данных X.

Пусть zj = Xvj . Легко проверить, что σj2 Var(zj ) = Var(Xvj ) = , N

zj = Xvj = σj uj .

Первая главная компонента u1 обладает тем свойством, что z1 имеет максимальную дисперсию среди всех нормированных линейных комбинаций столбцов матрицы X. Вектор uj выбран среди всех векторов, ортогональных u1, . . . , uj−1, так, что zj имеет максимальную дисперсию. Вектор zd имеет минимальную дисперсию.

4 2 x2

0 −2 −4

−6

−4

−2

0 x1

2

4

6

1.0 0.8 0.6 0.0

0.2

0.4

y

−0.2

0.0

0.2

0.4

0.6 x

0.8

1.0

1.2

5 0 −5

z2

7

7 3 7 7 3 777 7 7 7 97 7 3 7 7 7 7 7 77 77 777 7 7 9 7 7 77 7 7 7799 7 3 7 7 77777 3 7 77 7 7 777 77 77 7 77 7 77 73 7 7 73 7 3 3 977 777 3 7 7377 7373 7 3773 7 3 7 7 7 7 77 3 77 7 3 3 33 377 3373777 77477373727232 2 7 2 97 7 8 3 9 77 74 33 773 97 8 8 133 3 7333 33 7 237 333772777 3 2 3 7 7 3 3 3 7 2 7 9 3 3 3 3 2 3 78323332 93 3 8331 7 7 7 7 72 73 97 733328335333738273 3 3 4 31 822 33 3 77 3 77 23 328 33 3 1 2 732737 775 772737723 7274 295933323523 3 3 3 3 2 7 2 7 9 8 1 3 1 7 3 777723 3 3 2 3 27 7 92 27 325323 25717 9333313 938 739 33 3 32 3 328 73 23733 7 2 27 5 32 32 223939722393392 3 89883 98 8 79 3 45 2 35 9 7 8232228593 35 25252 9 3 3 22 9 7 3 7 8 3 8 2 9 8 3 1 2 9 5 5 4 5 7 3 2 231 2 5 2229 3232338293 3 3 9 13 89 98 1 1188 8 8 81 99 7 1 27213328 3 955 7825 521932 23323 88399 9 9 2 3 9 7 51 2 83 1 7 58 2 3 4912242172 17232 3 2 2 29 225 98 28 3 9 2 1 939 89 1 8 998 9 1 8 1 1 5129 989 9 72 5993 182589198 173 23252585395 57 8 5 2 2 5 2 3 5 2 7 5 5 5 3 7 2 1 9 9 8 9 8 1 1 5 2 5 5 1 7 1 2 2 2 2 8 2 58 189 88 8 88189 1 88 1 19955 1 9 97 99 8 99 223 5882 578 5 11 258589 1512119 19 259298322919 225 591 1 955 359 3 2155 5 5 8 298 999 983 2 9998 45 5 3 8 3 1 5 5 8 8 9 9 5 5 9 9 1 2 8 4 2 7 1 2 5 98 81 9 852 1 4 9 2 1 5 1 8 1 9 8 8 9 2 1 9 2 1 1 8 188915 8 11 5 5 8 3 2 9 9 8 5 9 5 1 9 959 19 8 5 529 5819 2158 1 59 11 95 29 9952 1559 59 19169 2 8 4 5 2 1 4 5 9 8 78 9 2 1 8 5 18888881 2 2 8 4 5 9 9 1 9 5 5 8 5 8 4 9 3 9 5 8 5 2 2 9 1 5 8 2 8 5 1 8 825 895 85 51 12 599 51955119 113 9 8 98891818811 11 3991155858295 49 8 5291289 12 58 2525 159 9415 229 982 15 98555 1 55 2585 21 5 3 5 2 5 1 1 9 5 1 9 1 2 5 8 5 9 9 1 5 5 1 1 2 5 8 9 5 2 1 1 9 5 9 2 9 1 9 9 2 9 9 5 9 5 4 1 5 1 5 8 4 4 1 8 1 1 9 9 9 8 8 2 1 1 5 9 4 8 9 8 1 9 1 4 2 2 9 8 8 1 8 8 9 1 29 59 9 5 1159 8111 51 1181 48 58 9948829 1 5 15 1 5 815 4484129 491244194 1 18 8 2 8581955 58 59 9 119 1 19 91818 51 5 888 51 2 40 1 9 5 41242 1 2 9 4 5 8 2 5 1 5 2 4 1 8 99 8 5 1 1 5 1 81 1 5 8 5 1 1 5 5 4 5 1 41 5 88913 8 8 1 8 8 8 21988 1 5245 155 55 54 45 9155 1 2 8 4 114 4024 9 10 4 414 4 5 4 6 494 14 41 2 0 0 4 4 2 1 4 1 5 4 0 1 4 1 2904 54 0 4 8 8 4 1 4 0 4 00 4 4 00404444060004010006010 44040 4 4 8 0 040 001 60 0 00 6 6 0 4004000 60000 00 0404 444 400 44000 0 0 6 4 0 4 0 0 0 0 6 4 0 4 0 4 4 14 604 0000606 04 4 40404 0046 606000 40004 00 00 0 0 0 0 4 4 4 4 4 4 6 6 0 0 0 6 0 4 6 0 0 6 0 4 0 6000004 006 4 6006 60 6606 4 6 4 6 404 46 4 46 606 6064 46 06 66 0 06000060 060 0 000 0 6000 646 660 0064 64406 64 06 0 6 4 0 6 6 4640 4 6 6 4 6 046 660 66 6 0 4 06006 064 06 00 4 4 6 0 4 4 4 6 6 6 6 0 6 6 6 6 6 6 6 0 6 4 6 6 4 6 6 6 66 44 4 6 66 6 0 0 466 60 6 0 00640466666 6646066660 6 6 0 4 0 6 0 0 00 4 46 46 066 4 4 46 4 6 66 6 6 6 6 6646 4666 06 46 0446 66644 60660 6 6 64 6 4060 6646 6 66 66664 4 0 6 6 4 66 6 0 66 6664 64646 666 66 6 646 4 46 4 4 4 6 66 4 64

10

12

14 z1

16

18

9.2.2. Самоорганизующиеся карты Кохонена Самоорганизующаяся карта Кохонена (self-organized map, SOM) является одним из методов многомерного шкалирования. Прототипы mjj ′ ∈ Rd (j = 1, 2, . . . , K1 , j ′ = 1, 2, . . . , K2), K = K1K2. mjj ′ и mkk′ — соседи, если |j − k| + |j ′ − k ′| ≤ ρ N (i, i′, ρ) = {(k, k ′) : |j − k| + |j ′ − k ′| ≤ ρ} 0<α<1 Инициализировать значения прототипов mjj ′ ∈ Rd repeat for i = 1, 2, . . . , N Найти ближайший к xi прототип mjj ′ в Rd for (k, k ′) ∈ N (i, i′, ρ) (т. е. для каждого соседа mkk′ прототипа mjj ′ ) mkk′ ← mkk′ + α(xi − mkk′ ) end end end

Можно использовать не прямоугольную, а гексогональную или треугольную сетку, и т. п.

Самоорганизующая карта Кохонена для данных по классификации цветов ириса. Данные содержат 150 объектов, 4 признака. Используется карта с прямоугольной сеткой 6 × 6. Точки, соответствующие объектам, случайным образом расположены вокруг узлов сетки, которым они приписаны. Точки, соответствующие цветам разных сортов, окрашены в разные цвета. Информация о сортах при обучении не использовалась.

versicolor virginica

setosa

2

9

9

6

3

13

3

3

7

2

0

0

1

8

3

0

0

0

7

2

1

0

0

0

6

2

3

0

0

4

16

5

2

0

0

33

9.3. Кластеризация Алгоритмы кластеризации разбивают заданное множество объектов на группы (кластеры), в одном кластере размещая близкие, а в разных — далекие по своим характеристикам объекты. Количество кластеров может быть известно заранее, а может определяться в процессе работы алгоритма. Некоторые алгоритмы кластеризации на вход требуют признаковые описания x(1), x(2), . . . , x(N ) ∈ Rd объектов. Для других достаточно только матрицы различий D. Если число кластеров известно заранее, то с формальной точки зрения алгоритм кластеризации находит отображение C : {1, 2, . . . , N } → {1, 2, . . . , K} , где N — число имеющихся объектов, а K — число кластеров.

9.3.1. Кластеризация методами теории графов 1. Пусть D — матрица различий. Рассмотрим полный граф с N вершинами. Каждой вершине соответствует объект. Припишем ребрам графа веса δii′ . Пусть r — некоторый параметр. Удалим из графа все ребра, веса которых больше r. Компоненты связности полученного таким образом графа и есть кластеры. 2. Для полного графа из N вершин, ребрам которого приписаны веса δii′ , построим миимальное остовное дерево. Удалим из дерева K ребер максимального веса. Получим разбиение множества объектов на K кластеров.

9.3.2. Метод центров тяжести Рассмотрим метод центров тяжести (K-means). Предположим, что множество объектов уже разбито некоторым образом на K групп (кластеров) и значение C(i) равно номеру группы, которой принадлежит i-й объект. Обозначим µk центр тяжести системы точек, принадлежащих k-му кластеру: 1 µk = {i : C(i) = k}



x(i)

(k = 1, 2, . . . , K).

C(i)=k

Будем минимизировать

N

min ∑ kx(i) − µC(i)k2.

C, µk

(1)

i=1

Для этого применим следующий итерационный алгоритм. Если какое-то разбиение на кластеры уже известно, то найдем µk (k = 1, 2, . . . , m), а затем обновим C(i) (i = 1, 2, . . . , N ), приписав точке x(i) тот класс k (k = 1, 2, . . . , K), для которого расстояние от x(i) до µk минимально. После этого повторим итерацию.

Получаем следующий алгоритм. begin Случайно инициировать µk (k = 1, 2, . . . , K) repeat Положить C(i) ← argmin kx(i) − µk k2 (i = 1, 2, . . . , N ) 1≤k≤K

1 ∑ x(i) Найти µk ← {i : C(i) = k} C(i)=k end end

(k = 1, 2, . . . , K)

Итерации в алгоритме повторяются до тех пор, пока µk , C(i) перестанут изменяться. Алгоритм может не сойтись к глобальному минимуму, но всегда найдет локальный минимум. Можно начинать со случайного разбиения объектов на K кластеров, найти у них центры тяжести и продолжать итерации.

Иллюстрация, K = 2:

Случайно выбираем центры кластеров:

Находим ближайшие точки:

Находим ближайшие точки:

Вычисляем центры кластеров:

Находим ближайшие точки:

Находим ближайшие точки:

Вычисляем центры кластеров:

Находим ближайшие точки:

Находим ближайшие точки:

Вычисляем центры кластеров:

Находим ближайшие точки:

9.3.3. Метод медоидов Метод центров тяжести работает только с явными описаниями объектов, так как находит µk . Метод медоидов (K-medoids) является версией метода центров тяжести, однако ему достаточно только матрицы расстояний D = (dii′ ). Вместо того, чтобы работать с центрами тяжести, найдем в каждом кластере медоид (i∗k ) x : i∗k = argmin ∑ δii2 ′ . {i: C(i)=k} C(i′ )=k

Обновим C(i) (i = 1, 2, . . . , N ), приписав точке x(i) тот класс k (k = 1, 2, . . . , N ), для (i∗k ) (i) которого расстояние от x до x минимально. После этого повторим итерацию. repeat Найти i∗k ← argmin



i: C(i)=k C(i′)=k

2 δi,i ′

2 Положить C(i) ← argmin δi,i ∗ 1≤k≤K

end

k

(k = 1, 2, . . . , K) (i = 1, 2, . . . , N )

Иллюстрация, K = 2:

Случайно выбираем две точки из выборки:

Находим ближайшие точки:

Находим ближайшие точки:

Находим медоиды:

Находим ближайшие точки:

Находим ближайшие точки:

Находим медоиды:

Находим ближайшие точки:

Находим ближайшие точки:

Находим медоиды:

Находим ближайшие точки:

5 стилей написания цифры 1, найденные методом медоидов. Манхеттеновская метрика. Медоиды изображены первыми в своем кластере.

2 стиля написания цифры 9, найденные методом медоидов. Манхеттеновская метрика. Медоиды изображены первыми в своем кластере.

9.3.4. Метод нечетких множеств Рассмотрим подход к задаче кластеризации, навеянный нечеткой логикой. Зафиксируем некоторое натуральное K и рассмотрим множество U = {1, 2, . . . , K}, которое назовем универсом. Нечетким множеством называется отображение V : U → [0, 1], для которого 0 ≤ V (i) ≤ 1,

(i = 1, 2, . . . , N ).

Отображение V называется также функцией принадлежности, а значение V (i) — степенью принадлежности элемента i нечеткому множеству V . Предположим, что кластеры являются нечеткими множествами. Пусть тогда uik есть степень принадлежности i-го объекта k-му кластеру. Имеем K

∑ uik = 1,

k=1

0 ≤ uik ≤ 1,

(i = 1, 2, . . . , N, k = 1, 2, . . . , K).

Обозначим mk взвешенный центр тяжести системы точек x(1), x(2), . . . , x(N ) с весами u1k , u2k , . . . , uN k : N

(i) u x . ik ∑

mk =

i=1

«Нечеткий» вариант метода центров тяжести заключается в итеративной минимизации N

min ∑ uik

K

∑ u2ik kx(i) − mk k2.

i=1 k=1

А «нечеткий» вариант метода медоидов состоит в минимизации K

min ∑ uik

∑ u2ik u2i′k δii′

i, i′

k=1

∑ u2ik

.

i

По окончании процесса полагаем C(i) = argmax uik k

(i = 1, 2, . . . , N ).

9.3.5. Метод FOREL Метод FOREL (от «формальный элемент») [Загоруйко–Елкина, 1967], похож на метод центров тяжести. Он не требует знания количества кластеров, на которые нужно разбить множество объектов. Наоборот, параметром алгоритма является число R, характеризующее близость точек внутри одного кластера. Пусть задана точка x(0) в Rd и параметр R. Найдем все объекты из тестовой выборки, попадающие в шар радиуса R с центром x(0). Перенесем x(0) в центр тяжести системы точек, найденных на предыдущем шаге. Так будем продолжать до тех пор, пока x(0) не перестанет изменяться. После этого, если еще остались некластеризованные объекты, то повторим процесс сначала. Точка x(0) — это и есть «формальный элемент». Формальным он назван потому, что может не принадлежать множеству рассматриваемых объектов.

begin  (1) (2) (N ) Положить U ← x , x , . . . , x (множество некластеризованных объектов) Инициализировать множество кластеров C ← 0/ Инициализировать счетчик количества кластеров k ← 0 while U 6= 0/ k ←k+1 Выбрать в Rd точку x0 repeat  (i) (0) Образовать кластер Ck ← i : kx − x k ≤ R, i = 1, 2, . . . , N Найти центр тяжести x(0) ←

U ← U \ Ck , C ← C ∪ {ck } end end Возвратить множество C end

1 ∑ x(i) |Ck | i∈Ck

9.3.6. DBSCAN Density-based spatial clustering of applications with noise (DBSCAN)  (1) (2) (N ) D = x ,x ,...,x Входные параметры: ε, M n o ′ ′ Точка x(i ) — ядерная (core) ⇔ i : dist(x(i ), x(i)) ≤ ε ≥ M ′



′′



′′

Точка x(i ) — граничная (border) ⇔ x(i ) не ядерная и ∃ ядерная x(i ): dist(x(i ), x(i )) ≤ ε ′ Точка x(i ) — шум (noise) ⇔ не ядерная и не граничная (outlier) ′ Точка x(i ) достижима из ядерной точки x(i) ⇔ существует последовательность ′

x(i0) = x(i), x(i1), . . . , x(is−1), x(is) = x(i ), такая, что точки x(i1), . . . , x(is−1) — ядерные и dist(x(iℓ), x(iℓ+1)) ≤ ε (ℓ = 0, 1, . . . , s − 1) ′ ′′ ′′ x(i) и x(i ) принадлежат одному кластеру ⇔ ∃ ядерная точка x(i ), такая, что из x(i ) (i) (i′ ) достижима как x , так и x Шумовые точки не принадлежат ни одному кластеру Замечание: алгоритм недетерминированный: граничные точки могут быть отнесены к разным кластерам в зависимости от порядка обхода.

Пометить все x ∈ D как «Непосещенные» foreach x ∈ D if x — «Непосещенная» пометить x как «Посещенная» P ← Neighbourhood(x, ε) (ε-окрестность точки x включая x) if |P | < M отнести x к «Шуму» else отнести x к новому кластеру foreach x′ ∈ P \ {x} if x′ — «Посещенная» и относится к «Шуму» отнести x′ к текущему кластеру elseif x′ — «Непосещенная» пометить x′ как «Посещенная» и отнести к текущему кластеру P ′ = Neighbourhood(x′, ε) if |P ′| ≥ M P ← P ∪ P′

9.4. EM-алгоритм Алгоритм Expectation–maximization («ожидание–максимизация») — «сглаженный» вариант алгоритма центров тяжести. Имеется смесь K нормальных распределений (пока для простоты одномерных):    X1, если Y = 1, X1 ∼ N (µ1, σ1)     X , если Y = 2, X2 ∼ N (µ2, σ2) 2 X=  .................      XK , если Y = K, XK ∼ N (µK , σK )

где Y — скрытая (неизвестная) случайная переменная (переменная переключения). K

pX (x) =

∑ δK pXk (x),

k=1

pXk (x) = pX | Y (x) = ϕ(x, µk , σk ),

Pr {Y = k} = δk ,

(x−µ)2 1 − ϕ(x, µ, σ) = √ e 2σ2 . σ 2π

Необходимо по выборке x(1), x(2), . . . , x(N ) восстановить µ1, . . . , µK , σ1 . . . , σK , δ1 , . . . , δK .

1.5 x2

1.0 0.5

0.0

0.5 x1

1.0

1.5 x2

1.0 0.5

0.0

0.5 x1

1.0

4 2

1.5

1.0 0.0 0.5

0.5 1.0

1.6 1.4 1.2 x2

1.0 0.8 0.6 0.4

−0.2

0.0

0.2

0.4 x1

0.6

0.8

1.0

Ожидание — Expectation step. Если знаем параметры µ1, . . . , µK , σ1 . . . , σK , δ1, . . . , δK , то можем найти апостериорные вероятности (вероятности, что i-й объект принадлежит k-й компоненте смеси):   (i) (i) Pr {k} p x | k δk ϕ x , µk , σk (i)  γik = Pr (k | x ) = (i = 1, . . . , N ; k = 1, . . . , K). = K (i)  p x ∑ δℓ ϕ x(i), µℓ, σℓ ℓ=1

Максимизация — Maximization step. Если знаем апостериорные вероятности γik , то можем оценить параметры µ1, . . . , µK , σ1 . . . , σK , δ 1 , . . . , δ K : 1 N µk = ∑ γik x(i), ζk i=1

σk2

1 N = ∑ γik (x(i) − µk )2, ζk i=1

1 δk = N

N

∑ γik ,

N

ζk =

i=1

∑ γik .

i=1

EM-алгоритм заключается в итерационном повторении этих шагов. В случае смеси d-мерных для пересчета матрицы ковариации используем формулу (остальное также):

∑k

1 N = ∑ γik (x(i) − µk )(x(i) − µk )⊤ ζk i=1

(k = 1, 2, . . . , K).

Упражнение 9.2 Измените формулы для вычисления σk2 и ∑k , чтобы они давали несмещенные оценки для дисперсии и матрицы ковариации.

Иллюстрация, K = 2:

Случайно выбираем параметры компонентов смесей и априорные вероятности:

Вычисляем апостериорные вероятности: Expectation step

Обновляем параметры компонентов смесей и априорные вероятности: Maximization step

Вычисляем апостериорные вероятности: Expectation step

Обновляем параметры компонентов смесей и априорные вероятности: Maximization step

Вычисляем апостериорные вероятности: Expectation step

Обновляем параметры компонентов смесей и априорные вероятности: Maximization step

Вычисляем апостериорные вероятности: Expectation step

Обновляем параметры компонентов смесей и априорные вероятности: Maximization step

Вычисляем апостериорные вероятности: Expectation step

Обновляем параметры компонентов смесей и априорные вероятности: Maximization step

9.4.1. Варианты Стандартное отклонение σk может быть: (а) Единым для всех: σk = σ (б) Разным d≥2 Матрица ковариации Σk может быть: 1. (а) Единой для всех: Σk = Σ (k = 1, 2, . . . , K) (б) Разной 2. (а) Скалярной: ∑k = λk I (б) Диагональной: ∑k = Dk (в) Произвольной (положительно определенной): ∑k

90 80 waiting

70 60 50 1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

0.04 100

0.02 80

0.00 2 60 4 40

100

1e

−0

0.001

90

0.005

1e−05

0.04

1e−04

70

0.02

0.001

60

0.01

1e−04

50

1e−05

0.02 0.01 0.005

40

waiting

80

0.03

2

3

4 eruptions

5

4

90 80 waiting

70 60 50 1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

0.04

0.02

100 80

0.00 2 60 4 40

100

1e

90

−0

0.01

0.03

1e−05

1e−04

70

0.02

0.001 0.005

0.01

60

0.001 1e−04

0.03

50

1e−05

0.02 0.005

40

waiting

80

0.04

2

3

4 eruptions

5

4

90 80 waiting

70 60 50 1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

0.04 100

0.02 80

0.00 2 60 4 40

2 3 4

eruptions 5

40

50

60

70

waiting 80

90

100

90 80 waiting

70 60 50 1.5

2.0

2.5

3.0

3.5

eruptions

4.0

4.5

5.0

0.04 100

0.02 80

0.00 2 60 4 40

100

1e−04

90

0.001

0.01 0.02

80

0.04

1e−05

70

0.005 0.01

60

1e−04

50

0.

04

1e−05

0.03

0.02

0.005

40

waiting

0.03

2

3

4 eruptions

5

Цвета, соответствующие центрам каждой компоненты смеси нормальных распределений. В RGB:

В HSV (Hue, Saturation, Value — тон, насыщенность, значение):

9.4.2. EM. Общий случай Наблюдаемые значения: x = (x(1), x(2), . . . , x(N )) Скрытые переменные: Y = (Y (1), Y (2), . . . , Y (N )) Логарифмическая функция правдоподобия: ℓ(θ, x) Логарифмическая функция правдоподобия, если z (i) известны: ℓ0(θ, x, z)

begin θ. Установить начальные значения для b repeat Expectation step Вычислить Q(θ ′, b θ) ← E (ℓ0(θ ′, x, z)| x, b θ) как функцию от θ ′ Maximization step b θ ← argmax Q(θ ′, b θ) θ′

end end

Можно показать, что ℓ(θ ′, x, z) ≥ ℓ(θ, x, z)

K

p(x) =

K

∑ Pr {Y

= k} p(x | Y = k) =

k=1

K

∑ δk ϕ(x, θ),

∑ δk = 1,

k=1

k=1

δk ≥ 0

Теорема 9.3 Если (δ, θ) — локальный экстремум функции N

L(δ, θ) = ln ∏ p(x ) = (i)

i=1

K

K

∑ ln ∑ δk ϕ(x

i=1

k=1

(i)

K

, θk ) → max

s.t.

∑ δk = 1,

k=1

δk ≥ 0,

то E-step:

γiℓ =

δℓϕ(x(i), θℓ) K

(i = 1, 2, . . . , N ; ℓ = 1, 2, . . . , K)

∑ δk ϕ(x(i), θk )

k=1

N

M-step:

θℓ = argmax ∑ γiℓ ln ϕ(x(i), θ) θ

i=1

1 δℓ = N

N

∑ γiℓ

i=1

(ℓ = 1, 2, . . . , K)

K

∑ Pr {Y

p(x) =

k=1

N

K

= k} p(x | Y = k) =

L(δ, θ) = ln ∏ p(x ) = (i)

i=1

K

i=1

ϕ(x(i), θℓ) K

∑ δk ϕ(x(i), θk )

k=1

∑ δk = 1,

k=1 (i)

k=1

δk ≥ 0

K

, θk ) → max

K

∑ ln ∑ δk ϕ(x(i), θk )

i=1

N ∂L =∑ ∂δℓ i=1

∑ δk ϕ(x, θ),

∑ ln ∑ δk ϕ(x

N

L (δ, θ) =

K

K

k=1

(i)

!

s.t.

= Pr (Y = ℓ | X = x )−λ = 0

δk ≥ 0

k=1 K

−λ

∑ δk = 1,

∑ δk − 1

k=1



!

λ = N,

1 δℓ = N

k=1

N

∑ γiℓ =

i=1



k

N δℓϕ(x(i), θℓ) ∂ ∂ N ∂L (i) (i) =∑ ln p (x ) = γ ln ϕ(x , θℓ ) = 0 · ℓ iℓ ∑ (i)) ∂θℓ ∂θ ∂θ p(x ℓ ℓ i=1 i=1 | {z } γiℓ

9.5. Иерархическая кластеризация (таксономия) Алгоритмы иерархической кластеризации, или таксономии, находят иерархическое представление, такое, что кластеры на каждом уровне получаются объединением кластеров на более низком уровне. Таким образом, речь идет о кластерах кластеров. Можно сказать по-другому: кластеры на более низком уровне получаются дроблением кластеров на более высоком уровне. В вершине этой классификации мы имеет один кластер, включающий все объекты. На низшем уровне имеем N кластеров, каждый из которых включает один объект. Такие иерархические структуры удобно представлять в виде корневых деревьев (дендрограмм). Примеры таксономий: номенклатура живых существ, библиографические классификаторы, различные системы научной классификации и т. п. Алгоритмам иерархической кластеризации не нужно на вход подавать количество кластеров. Имея дендрограмму, исследователь может сам обрезать ее на нужном уровне, получив некоторое количество кластеров.

BR.MDA.MB.435 BR.MDA.N

CO.HT29 CO.HCC.2998 CO.KM12 CO.COLO205 BR.MCF7 BR.T.47D LE.CCRF.CEM LE.MOLT.4 LE.HL.60

LC.NCI.H23 LC.NCI.H522 CNS.SNB.75 BR.HS578T CNS.SF.539 LC.HOP.92 BR.MDA.MB.231.ATCC

LE.SR LE.K.562 LE.RPMI.8226

RE.SN12C LC.NCI.H226

ME.LOXIMVI LC.A549.ATCC RE.A498 LC.EKVX RE.UO.31 RE.CAKI.1 RE.RXF.393 RE.786.0 RE.ACHN RE.TK.10 CNS.SNB.19 CNS.U251 LC.HOP.62 CNS.SF.295 CNS.SF.268 OV.OVCAR.8 UN.ADR.RES BR.BT.549 LC.NCI.H322M CO.HCT.116 CO.HCT.15 OV.OVCAR.5 PR.PC.3 PR.DU.145 CO.SW.620 OV.OVCAR.3 OV.OVCAR.4 OV.IGROV1 OV.SK.OV.3 LC.NCI.H460 ME.MALME.3M ME.SK.MEL.28 ME.UACC.257 ME.M14 ME.SK.MEL.2 ME.UACC.62 ME.SK.MEL.5

Таксономия 60 клеток на основе анализа уровня экспресии их генов. Иерархия составлена агломеративным усредняющим методом.

9.5.1. Агломеративные методы Агломеративные методы, или методы «снизу вверх», строят дерево в направлении от листьев к корню. δii′ — мера различия («расстояние») между i-м и i′-м объектами (i = 1, 2, . . . , N ), δRS — мера различия между кластерами R и S, которая каким-либо образом определяется исходя из попарных различий между элементами из R и из S. Некоторые возможные способы определения δRS : по минимальному различию (по принципу «ближнего соседа») δRS = min′ δii′ , i∈R, i ∈S

по максимальному различию (по принципу «дальнего соседа») δRS = max δii′ , ′ i∈R, i ∈S

по усредненному различию (по принципу «средней связи») δRS =

1 δii′ . ∑ ∑ |R| · |S| i∈R i′∈S

Агломеративные методы начинают работу с N кластеров, каждый из которых содержит один объект. Пусть на некотором этапе имеется некоторый набор кластеров. В этом наборе находится пара кластеров, скажем, R и S, для которой δRS минимально. Тогда объекты из этих групп объединяются в один кластер и т. д. Использование разных функций δRS приводит к различным уточнениям данного метода. Первая из упомянутых выше функций (по минимальному различию) обычно приводит к сильно несбалансированным деревьям, длинным и плохо связанным кластерам. Вторая (по минимальному различию) приводит к сбалансированным деревьям и «компактным» кластерам, но, с другой стороны, даже весьма близкие объекты могут оказаться в далеких друг от друга (по иерархии) кластерах. Третий метод занимает промежуточное положение между ними.

Single

Average

Complete

9.5.2. Разделяющие (дивизивные) методы Разделяющие методы, или методы «сверху вниз», строят дерево в направлении от корня к листьям. Один из подходов: На первом шаге ко множеству объектов применим какой-либо алгоритм (центров тяжести, медоидов и т. п.), разбивающий это множество на два кластера. Затем разобъем каждый из полученных кластеров и т. д.

Другой подход: Достаточно описать, как разбить произвольный кластер R. Сначала найдем в R объект, для которого среднее расстояние до всех остальных объектов максимально: 1 ∗ δii′ i = argmax ∑ |R| − 1 i∈R i′ ∈R, i′ 6=i Удалим i∗ из R и поместим в S. Далее выполняем следующие итерации. Среди оставшихся в R объектов найдем ∗

i = argmax i∈R

1 1 δii′′ ∑′ δii′ − |S| ∑ |R| − 1 i′∈R, i 6=i i′ ∈S

!

Также поместим его в S и удалим из R. Эту итерацию будем продолжать до тех пор, пока max

1 1 ′ δ − δii′′ ii ∑ ∑ |R| − 1 i′∈R, i′6=i |S| i′∈S

!

≥ 0.

Тогда имеем разбиение исходного кластера на два подкластера R и S.

Процедура для разбиения кластера R на два подкластера R и S: begin S ← 0/ 1 i∗ ← argmax |R|−1 ∑i′∈R, i′6=i δii′ i∈R

R ← R \ {i∗} S ← S ∪ {i∗} while max

1 1 ′ δ − ∑ ∑ δii′′ ii |R| − 1 i′∈R, i′6=i |S| i′∈S

i∗ = argmax i∈R

!

≥0

1 1 ′ δ − ∑ ∑ δii′′ ii |R| − 1 i′∈R, i′6=i |S| i′∈S

!

R ← R \ {i∗} S ← S ∪ {i∗} end Имеем разбиение исходного кластера на два подкластера R и S. end

9.6. Поиск ассоциативных правил. Алгоритм Apriori Задачу обучения без учителя можно рассматривать как исследование свойств распределения с. в. X ∈ X ⊆ Rd , при наличии выборки x(1), x(2), . . . , x(N ). Например, выделяем области в D ⊆ X , для которых вероятность Pr {X ∈ D} велика.

Задача анализа рыночной корзины (market basket analysis) [1993] Магазин обладает ассортиментом из d наименований товаров: U = {1, 2, . . . , d} Имеются данные о N покупках (транзакциях): t(1), t(2), . . . , t(N ), где t(i) ⊆ U . Например, d ≈ 104, N ≈ 108. • Найти часто повторяющиеся шаблоны c. Например, в 2 % всех транзакций встречается вместе хлеб и молоко. • Найти «ассоциативные правила». Например, если купили хлеб, то с вероятностью 50 % покупают молоко. Поддержкой (support) шаблона c ⊆ U называется частота его встречаемости:  (i) | i: c⊆t | ≈ Pr {c ⊆ t} supp c = N Пусть c, c′ — два непересекающихся шаблона, c ⊆ U , c′ ⊆ U , c ∩ c′ = 0/ Значимостью (confidence) правила c ⇒ c′ называется supp(c ∪ c′) conf(c ⇒ c ) = ≈ Pr (c′ ⊆ t | c ⊆ t) supp c ′

Поддержка правила c ⇒ c′: supp(c ⇒ c′) = supp(c ∪ c′)

Например, U = {1, 2, 3, 4, 5} t(1) = {2, 4, 5} t(2) = {1, 2, 4, 5} t(3) = {1, 2, 3, 4} t(4) = {2} Шаблон c = {2} встречается в каждой транзакции, supp {2} = 1 Шаблон c = {2, 4} встречается в 3 транзакциях из 4, supp {2, 4} = 0.75. Шаблон c = {1, 2, 4} встречается в 2 транзакциях из 4, supp {1, 2, 4} = 0.5. Шаблон c = {2, 4, 5} встречается в 2 транзакциях из 4, supp {2, 4, 5} = 0.5.   conf r = 1, supp r = 1 Правило r = 0/ ⇒ {2}   Правило r = {5} ⇒ {2, 4} conf r = 1, supp r = 0.5   2 0.5 = , supp r = 0.5 Правило r = {2, 4} ⇒ {1} conf r = 0.75 3

δ — минимальная поддержка γ — минимальная значимость Необходимо найти все правила c ⇒ c′, для которых supp(c ⇒ c′) ≥ δ, conf(c ⇒ c′) ≥ γ Алгоритм Apriori [R. Agrawal, R. Srikant, 1994] • Вначале выделяет частые шаблоны, т. е. те, для которых supp c ≥ δ • Из частых шаблонов выделяем частые ассоциативные правила

9.6.1. Apriori. Обнаружение частых наборов Основная идея — поиск в ширину (от частых шаблонов мощности 1 к частым шаблонам мощности 2, 3 и т. д.), используя следующее свойство: Свойство антимонотонности: Если c ⊆ c′, то supp c ≥ supp c′. Следствия: • Если шаблон c частый, то все его подмножества частые • Если шаблон c нечастый, то все его надмножества нечастые • supp(c ∪ c′) ≤ supp c для всех c, c′ Будем пытаться уменьшить объем работы с базой транзакций, пытаясь уменьшить количество новый кандидатов в частые шаблоны (функция apriori-gen)

L1 = {c : ⊆ U, |c| = 1, supp c ≥ δ} (частые шаблоны мощности 1) for m = 2, 3, . . . , d if Lm−1 = 0/ break Cm = apriori-gen (Lm−1) (новые кандидаты в частые наборы) (Теперь вычисляем Lm = {c ∈ Cm : supp c ≥ δ}:) foreach c ∈ Cm c.count = 0 for i = 1, 2, . . . , N (сканируем базу транзакций)  ′ (i) C = c : c ∈ Cm , c ⊆ t foreach c ∈ C ′ c.count + + Lm = {c ∈ Cm : c.count/N ≥ δ} S return Lm m

В худшем случае 2d шаблонов — очень много! Нужны хорошие структуры данных для реализации всех процедур

function apriori-gen (L) Пусть шаблоны в L лексикографически упорядочены C = 0/ Join-step: foreach c ∈ L Пусть c = {j1, j2, . . . , jm−1}, j1 < j2 < · · · < jm−1 for j = jm−1 + 1, jm−1 + 2, . . . , d c′ = {j1, j2, . . . , jm−2, j} if c′ ∈ L Добавить {j1, j2, . . . , jm−2, jm−1, j} в C Prune-step: foreach c ∈ C foreach j ∈ c if c \ {j} ∈ /L Удалить c из C break end

0/

1, 2

1

2

3

4

1, 3

1, 4

2, 3

2, 4

1, 2, 3

1, 2, 4

1, 3, 4

2, 3, 4

3, 4

1, 2, 3, 4 Шаблоны, вошедшие в Lm, обведены красной сплошной линией; шаблоны, вошедшие в Cm, но не в Lm, — красным пунктиром (также отмечено пустое множество, так как можно считать, что 0/ ∈ L0) {1, 2, 4} = {1, 2} ∪ {1, 4}, однако так как {2, 4} ∈ / L2 и {2, 4} ⊆ {1, 2, 4}, то {1, 2, 4} ∈ /C

9.6.2. Apriori. Вывод ассоциативных правил foreach c ∈ L Assoc-Rules(R, c, 0) / function Assoc-Rules(R, c, c′) foreach j ∈ c c = c \ {j} c′ = c′ ∪ {j} if (c ∪ c′).count ≥ γ · c.count (т. е. conf(c ⇒ c′) ≥ γ) Добавить правило c ⇒ c′ в список R if |c| > 1 Assoc-Rules(R, c, c′) (Можно не выполнять, если нужны правила с п.ч. мощности 1) end (Можно, наоборот, начинать с одного элемента в c)

Пример. Titanic N = 2201 пассажир (по другим данным 2208) Дети: ≤ 12 лет Признаки: Class 1st :325 2nd :285 3rd :706 Crew:885

Gender Female: 470 Male :1731

Age Adult:2092 Child: 109

Survived No :1490 Yes: 711

δ = 0.005, γ = 0.8 Всего надено 72 правила c ⇒ c′, где |c′| = 1. Из них 12 правил, в которых правая часть Survived=Yes или Survived=No Из них 6 избыточные. Например, {Class=2nd, Gender=Female, Age=Child} => {Survived=Yes} следует из {Class=2nd, Age=Child} => {Survived=Yes}

Оставшиеся правила:

1 2 3 4 5 6

lhs {Class=2nd, Age=Child} {Class=1st, Gender=Female} {Class=2nd, Gender=Female} {Class=Crew, Gender=Female} {Class=2nd, Gender=Male} {Class=3rd, Gender=Male}

=> => => => => =>

rhs support confidence lift {Survived=Yes} 0.011 1.000 3.096 {Survived=Yes} 0.064 0.972 3.010 {Survived=Yes} 0.042 0.877 2.716 {Survived=Yes} 0.009 0.870 2.692 {Survived=No} 0.070 0.860 1.271 {Survived=No} 0.192 0.827 1.222

9.7. Google PageRank [Brin S., Page L., 1998] N страниц, A = (aij ) — N × N -матрица смежности aij =

(

1, если i-я страница ссылается на j-ю, 0 в противном случае.

Исходящая степень i-й страницы (вершины): N

ui =

∑ aij

j=1

Основные принципы: • Чем больше страниц ссылаются на i-ю, тем выше ее ранг ri. • Чем выше ранг страницы, тем больший вес она имеет при «голосовании» за страницы, на которые ссылается. • При этом ранг страницы равномерно распределяется на все эти страницы.

Исходя из этих принципов, составляем систему относительно ri: N aji 1−δ + δ ∑ rj ri = N j=1 uj

(i = 1, 2, . . . , N )

(⋆)

δ — «коэффициент демпфирования», 0 < δ < 1 (например, δ = 0.85). Страницы, на которые нет ссылок, имеют ранг (1 − δ)/N . Следовательно, даже они «голосуют» за страницы, на которые ссылаются. N

Суммируя все уравнения в (⋆), получаем (1 − δ) ∑ ri = (1 − δ). i=1

Откуда при δ 6= 1 получаем условие нормировки: N

∑ ri = 1.

i=1

Матричная запись уравнений (⋆): 1−δ 1−δ e + δU −1A⊤r ⇔ (I − δU −1A⊤)r = e N N (e — вектор из единиц, I — единичная, U — диагональная матрица с uj на диагонали). Итак, матрица системы (⋆) есть I − δU −1A⊤. При 0 < δ < 1 она имеет диагональное преобладание (по столбцам), поэтому невырождена. Система имеет единственное решение, причем все его компоненты строго положительны и в сумме равны 1. r=

Систему решают методом простых итераций: (m+1) ri

N aji (m) 1−δ + δ ∑ rj = N j=1 uj

Так как kδU −1A⊤k1 = δ < 1, то процесс сходится. В [Brin S., Page L., 1998] сообщается, что при N ≈ 322 млн. алгоритм сошелся с приемлемой точностью за 52 итерации. Одна из интерпретаций — цепь Маркова. Ходим по ссылкам. Находясь на странице, случайно выбираем любую гиперссылку на ней и переходим по этой ссылке. С вероятностью 1 − δ выбираем случайную страницу. В этой интерпретации ранг страницы есть вероятность нахождения на ней при m → ∞.

Пример. Интернет в 1984 г. :-)  1−δ    r1 = +  1 2  4     1−δ   + r =  2 4 3 1−δ    r = + 3   4     1−δ   r = .  4 4 4

δ





r2 r3 + 2 1

r 1 δ 1  r2 δ 2



, ,

r4  + , 1



0

1 2



10   1 0 0 0   U −1A⊤ =  1  0 0 1   2 0000

Решение при δ = 0.85:

 r1 = 0.3797, 



0.25    0.25    r(0) =  ,  0.25    0.25

r2 =  0.3603,

0.3562    0.2500    r(1) =  ,  0.3562    0.0375

r3  = 0.2225, r4 = 0.0375. 

0.4466    0.3403    r(2) =  ,  0.1756    0.0375



0.3314    0.4171    r(3) =  ,  0.2140    0.0375

...

Замечание 9.4 При δ = 1 получаем задачу на собственные векторы: r = U −1A⊤r. Требуется найти собственный вектор матрицы U −1A⊤, относящийся к собственному значению 1. Для таких матриц (стохастических по столбцам) 1 всегда является максимальным собственным значением, но соответствующий собственный вектор может быть неединственным. Например, для матрицы   0 1 0 0   1 0 0 0   .  0 0 0 1   0 0 1 0 Если же граф строго связен, то такой собственный вектор единственен (теорема эргодичности). Замечание 9.5 Вместо системы (⋆) можно рассматривать N

aji rj j=1 uj

ri = (1 − δ) + δ ∑

N

(i = 1, 2, . . . , N ).

Тогда условие нормировки запишется как ∑ ri = N. i=1

Глава 10 Теория машинного обучения Истоки: В. П. Вапник, А. Я. Червоненкис [1971]

Лемма 10.1 Пусть A1, A2, . . . , Aq — некоторые события (зависимые или независимые), заданные на одном вероятностном пространстве, тогда Pr (A1 ∪ A2 ∪ · · · ∪ Aq ) ≤ Pr A1 + Pr A2 + · · · + Pr Aq . Лемма 10.2 (С.Н. Бернштейн, H. Chernoff, W. Hoeffding) Пусть Z (1), Z (2), . . . , Z (N ) — независимые одинаково распределенные случайные величины. n o n o Pr Z (i) = 1 = θ, Pr Z (i) = 0 = 1 − θ

(схема Бернулли). Тогда где

2 Pr (|b θ − θ| > γ) ≤ 2e−2γ N ,

1 b θ= N

N

∑ Z (i).

i=1

Рассмотрим задачу классификации на 2 класса. F — некоторое множество функций f : Rd → {0, 1}. (X, Y ) — (d + 1)-мерная с.в. с неизвестной функцией распределения P (x, y) Ожидаемый риск   R(f ) = E I f (X) 6= Y = Pr I f (X) 6= Y . (x(1), y (1)), (x(2), y (2)), . . . , (x(N ), y (N )) — обучающая выборка. Эмпирический риск (частота ошибки) на данной выборке есть b )= 1 R(f N

N

∑I

i=1

(i)

f (x ) 6= y

b ). Задача: оценить R(f ) в терминах R(f Принцип минимизации эмпирической риска:

b ) fb = argmin R(f f ∈F

(i)



.

10.1. Случай конечного F Пусть F = {f1, f2, . . . , fq }. Рассмотрим f ∈ F . Введем семейство случайных величин Z

(i)

(i)

= I f (X ) 6= Y

(i)



(i = 1, 2, . . . , N ).

Z (i) распределены одинаково и независимо — схема испытаний Бернулли. По лемме 2 −2γ 2N b Pr (|R(f ) − R(f )| > γ) ≤ 2e Откуда

b ) − R(f )| ≤ γ) ≥ 1 − 2e−2γ 2N Pr (|R(f

Итак, для конкретной f эмпирический риск близок к ожидаемому с большой вероятностью. Нас же интересует более сильное условие: n o b ) − R(f )| ≤ γ Pr ∀ f ∈ F : |R(f

n o b ) − R(f )| > γ = Pr (A1 ∪ · · · ∪ Aq ) ≤ Pr ∃ f ∈ F : |R(f q



q

∑ Pr (Ai) ≤ ∑ 2e

i=1

−2γ 2N

−2γ 2N

= 2qe

i=1

Мы доказали утверждение: b к R в случае конечного F ) Утверждение 10.3 (О равномерной сходимости R n o −2γ 2N b Pr ∀ f ∈ F : |R(f ) − R(f )| ≤ γ ≥ 1 − 2qe 2q 1 Следствие 10.4 Если N ≥ 2 ln , тогда 2γ δ n o b ) − R(f )| ≤ γ ≥ 1 − δ. Pr ∀ f ∈ F : |R(f

Следствие 10.5

Pr

(

b ) − R(f )| ≤ ∀ f ∈ F : |R(f

r

1 2q ln N δ

)

≥1−δ

Следствие 10.6 (Принцип минимизации эмпирического риска) Пусть f ∗ = argmin R(f ), f ∈F

тогда Pr

f ∈F

(

ДОКАЗАТЕЛЬСТВО.

b ), fb = argmin R(f

R(fb) ≤ R(f ∗ ) + 2

r

1 2q ln N δ

)

≥ 1 − δ.

b fb) + R( b fb) − R(f b ∗ ) + R(f b ∗) − R(f ∗ ) = 0 ≤ R(fb) − R(f ∗ ) = R(fb) − R( b fb) + R( b fb) − R(f b ∗) + R(f b ∗ ) − R(f ∗ ) ≤ 2γ. = R(fb) − R( | {z } | {z } | {z } ≤γ

≤0

≤γ

Поэтому n o n o b fb) ≤ γ и R(f b ∗) − R(f ∗ ) ≤ γ ≥ 1 − δ, Pr R(fb) − R(f ∗ ) ≤ 2γ ≥ Pr R(fb) − R(

где δ =

s

1 2q ln . N δ

10.2. Случай бесконечного F Коэффициентом разнообразия (shatter coefficient) ∆0(F , x) множества F на выборке x называется количество различных бинарных векторов вида  (1) (2) (N ) f (x ), f (x ), . . . , f (x ) , порождаемых всевозможными функциями f из F .

Пример. В качестве F рассмотрим класс пороговых функций (линейных решающих правил)  d F = TFd = f (x) = I(β0 + hβ, xi ≤ 0) : β0 ∈ R, β ∈ R b

b

b

∆0(TFp, x) = 8 (все возможные разбиения)

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

Если 3 точки на прямой, то ∆0(TFd, x) = 6 Если N точек на прямой, то ∆0(TFd, x) = 2N Если 4 точки (в общем положении) в R2, то . . . ∆0(TFd, x) = 14 т. е. все без двух b

b

b

b

b

b

b

b

Функцией роста ∆(F , N ) класса F называется максимальное значение ∆0(F , x), если максимум берется по всем возможным выборкам x длины N : ∆(F , N ) = max ∆0(F , x). |x|=N

Утверждение 10.7 Функция роста класса пороговых функций равна       N −1 N −1 N −1 ∆(TFd, N ) = 2 + + ··· + . 0 1 d Например, ∆(TF2, 2) = 4, ∆(TF2, 3) = 8, ∆(TF2, 4) = 14, ∆(TF2, 5) = 22 ∆(TF3, 2) = 4, ∆(TF3, 3) = 8, ∆(TF3, 4) = 16, ∆(TF3, 5) = 30

Система из N неравенств с неизвестными β0, β1, . . . , βd: (

β0 + hβ, xi ≤ 0, если f (x) = 0

β0 + hβ, xi > 0, если f (x) = 1

Не нарушая общности, можем считать, что точка 0 — один из объектов. Множество всех функций разобьется на два равномощных класса: для которых f (0) = 0 и для которых f (0) = 1 Будем считать только первые, а затем результат умножим на 2. Для них можно считать, что β0 = −1: ( −1 + hβ, xi ≤ 0, если f (x) = 0 −1 + hβ, xi > 0, если f (x) = 1

β2

β1

β2

1

2 3 5

6

10

7

4

8 9

11 β1

Количество областей

Найдем максимальное количество Г(d, N ) областей, на которые можно разбить d-мерное пространство N гиперплоскостями.

Справедливо рекуррентное соотношение Г(d, N ) = Г(d, N − 1) + Г(d − 1, N − 1), откуда получаем

      N N N Г(d, N ) = + + ··· + . 0 1 d

Размерностью Вапника–Червоненкиса (VC-размерностью), или емкостью, VC(F ) класса F называется максимальное N , при котором ∆(F , N ) = 2N . Если максимального N не существует, то будем считать, что размерность Вапника-Червоненкиса равна бесконечности. Эквивалентно: Размерностью Вапника–Червоненкиса называется наибольшая мощность множества в X , разбиваемая (shatter) функциями из F .  (1) (2) (N ) Говорят, что F разбивает множество x , x , . . . , x , если для любого двоичного  N (1) (2) (N ) набора y ∈ {0, 1} найдется f ∈ F , такое, что y = f (x ), f (x ), . . . , f (x ) . Чтобы доказать, что VC F = h достаточно проделать две вещи:  (1) (2) (N ) 1) доказать VC F ≥ h; для этого достаточно построить x , x , . . . , x , разбиваемое функциями из F ; 2) доказать VC F ≤ h; для этого достаточно показать, что никакое множество из n + 1 точек нельзя разбить функциями из F .

Утверждение 10.8 Если F конечно, то VC(F ) ≤ log2 |F |. Утверждение 10.9 Размерность Вапника–Червоненкиса класса пороговых функций равна VC(TFd) = d + 1.

b к R в случае Теорема 10.10 (Вапник–Червоненкис) (О равномерной сходимости R конечной VC F ) Пусть F задано и VC F конечно, тогда n o b ) − R(f )| ≤ γ ≥ 1 − δ, Pr ∀ f ∈ F : |R(f (2) где

n o ∗ Pr R(fb) ≤ R(f ) + 2γ ≥ 1 − δ.

γ=O

r

VC F N 1 1 ln + ln N VC F N δ

!

(3)

.

(4)

В правой части неравенства R(fb) ≤ R(f ∗ ) + 2γ с ростом VC F первое слагаемое убывает, а второе (при VC F < N ) возрастает. Сумма достигает своего минимума при некотором оптимальном значении VC F . Также можно доказать, что если VC F = ∞, то равномерной сходимости нет.

Пусть F = {f : f (x, α), α ∈ [0, 1]} — класс решающих правил b — эмпирический риск на функции f (x, α) R(α) — средний риск, R(α)

R(b α)

R(α∗ )

R(α)

b b

b

b R(α) b

b

α b

b

α∗ α b R(b α) далеко от минимального значения R(α∗ ). n

o

b ) − R(f )| ≤ γ = 1. lim Pr |R(f

N →∞

Равномерная сходимость

R(α) b R(α) R(b α) R(α∗ )

b

b b

b

b

b

b

α∗ n o b ) − R(f )| ≤ γ = 1. lim Pr ∀f :∈ F : |R(f α b

N →∞

α

Принцип структурной минимизации риска, предложенный Вапником, предназначен для отыскания оптимальной сложности. Пусть в F выделена некоторая цепочка подсемейств F1 ⊂ F2 ⊂ · · · ⊂ FM = F . Необходимо выбрать семейство с минимальным значением верхней оценки в (3). К сожалению, оценки (2)–(4) являются слишком завышенными, чтобы их можно было использовать для практических вычислений. Однако они представляют большой интерес с теоретической точки зрения и являются стимулом для дальнейших исследований в поиске подобных оценок, в частности в теории вероятностно–приближенно–корректного обучения (probably approximately correct learning, PAC–learning). Изложенные здесь результаты распространяются на задачу классификации с б´ольшим числом классов и на задачу восстановления регрессии. Пусть F — некоторый класс функций f : X → Y . Размерностью Вапника–Червоненкиса для класса F называется VC F = VC F ′, где   ′ F = I f (x) − y : f ∈ F , y ∈ Y .

Теорема 10.11 (Лемма Зауэра; Sauer, 1972; Shelah, 1972) Пусть класс F имеет конечную размерность Вапника–Червоненкиса VC(F ) = h, тогда        h N N N eN ∆(F , N ) ≤ + + ··· + < 0 1 h h

10.3. Дилемма «Смещение–разброс» Y = f ∗ (x) + ε(x),

E ε(x) = 0,

Var ε(x) = σε2(x)

f (x, D) – решающее правило, D = {(x(1), y (1)), (x(2), y (2)), . . . , (x(N ), y (N ))} – обучающая выборка x, f ∗ (x) случайными не являются Случайными являются: ε(x) и D, причем считаем их независимыми Тогда 2 2  2 2 ∗ MSE(x) = E D,ε f (x, D)−Y = σε (x)+E D f (x, D) − f (x) + E D f (x, D) − E D f (x, D) {z } | {z } | Bias2 x

Variance x

Ошибка = Неустранимая ошибка + Смещение2 + Разброс Доказательство: (можно раскрыть л.ч и п.ч. и увидеть, что они совпадают) Большое смещение — недообучение. Большой разброс — переобучение.

LSQ

LSQ

LSQ

10.4. Кривая обучения (learning curve)

More Documents from "Az Rex"