машинное обучение
Манга
О Б Р А З О В АТ Е Л Ь Н А Я М А Н Г А
ЗАНИМАТЕЛЬНОЕ
МАШ ИННОЕ ОБУЧЕН ИЕ
Араки Масахиро
Художник Ватари Макана
Перевод
А. С. Слащевой
Москва
ДМК Пресс, 2020
УДК 004.4
ББК 32.972
А79
УДК 004.4
ББК 32.972
Все права защищены. Никакая часть этого издания не может быть воспроизведена
в любой форме или любыми средствами, электронными или механическими, включая
фотографирование, ксерокопирование или иные средства копирования или сохране-
ния информации, без письменного разрешения издательства.
В каждой главе будет предложено лишь введение в тот или иной метод. Если
вы хотите применить его на практике для решения какой-либо задачи, я советую
обратиться к учебникам, которые указаны в списке рекомендованной литературы
в конце книги.
Наконец, я благодарю всех сотрудников издательства Ohmsha за возможность
написать эту книгу. Я также благодарен г-же Ватари Макана и всем сотрудникам
Уильтэ, которые превратили мою рукопись в веселую мангу.
V
содержание
ПРЕДИСЛОВИЕ ....................................................................................... V
Пролог
ПОГОВОРИМ О МАШИННОМ ОБУЧЕНИИ ................... 1
В кабинете у Саяка (1). Саяка и старшеклассница Ай ...........................14
Глава 1
ЧТО ТАКОЕ РЕГРЕССИЯ ...............................................................15
1.1. Сложности с прогнозом ..........................................................................16
1.2. Определяем зависимые и независимые переменные ................17
1.3. Находим функцию линейной регрессии ........................................ 20
1.4. Регуляризация результата ...................................................................... 22
В кабинете у Саяка (2). Математическое повторение (1) .................... 34
Глава 2
КАК ДЕЛАТЬ КЛАССИФИКАЦИЮ? ....................................39
2.1. Приводим данные в порядок ............................................................... 46
2.2. Определяем класс данных .................................................................. 47
2.3. Логистическая регрессия ..................................................................... 49
2.4. Классификация по решающему дереву .......................................... 55
В кабинете у Саяка (3). Математическое повторение (2) ................... 74
Содержание
VI
Глава 3
ОЦЕНКА РЕЗУЛЬТАТОВ ..............................................................77
3.1. Без проверки тестовых данных никак нельзя ................................ 82
3.2. Обучающая, тестовая и проверочная выборки ............................. 83
3.3. Метод перекрестной проверки (кросс-валидации) ..................... 85
3.4. Доля правильно предсказанных объектов, точность,
полнота и F-мера ............................................................................................. 87
В кабинете у Саяка (4). Математическое повторение (3).................... 95
Глава 4
ГЛУБОКОЕ ОБУЧЕНИЕ ...................................................................97
4.1. Нейронная сеть ....................................................................................... 103
4.2. Обучение методом обратного распространения ошибок ....... 107
4.3. Вызовы глубокого обучения ................................................................111
4.3.1. Проблема глубокой нейронной сети .................................. 112
4.3.2. Хитрости многоступенчатого обучения
1. Метод предварительного обучения ............................................ 113
4.3.3. Хитрости многоступенчатого обучения
2. Функция активации........................................................................... 115
4.3.4. Хитрости многоступенчатого обучения
3. Как избежать переобучения........................................................... 117
4.3.5. Нейронные сети со специализированной
структурой ................................................................................................ 118
В кабинете у Саяка (5). Математическое повторение (4) ................. 134
Глава 5
АНСАМБЛЕВЫЕ МЕТОДЫ .................................................... 139
5.1. Бэггинг ....................................................................................................... 146
5.2. Cлучайный лес ........................................................................................149
5.3. Бустинг ...................................................................................................... 152
В кабинете у Саяка (6). Математическое повторение (5) ................. 160
Содержание
VII
Глава 6
ОБУЧЕНИЕ БЕЗ УЧИТЕЛЯ ...................................................... 165
6.1. Кластеризация..........................................................................................172
6.1.1. Иерархическая кластеризация ...............................................173
6.1.2. Разделяющая кластеризация ................................................. 175
6.2. Разложение матрицы.............................................................................179
В кабинете у Саяка (7). Математическое повторение (6) .................. 191
Содержание
VIII
Пролог
Поговорим
о маш инном
обучении
Зачем нужно
машинное обучение?
Топ- Топ
-
Топ- Топ
В одном -
топ
университете Топ
Нда…
так тоже нельзя
КЛ
ИК
Топ
- Топ
Топ -
- Топ
топ -
топ
Хм… неплохо бы
найти и это,
но на компромисс
идти я не хочу.
Топ
Профессор
намигоэ?
-
Топ !
- Х
топ БУ
- Да что ж... ...такое! Киёхара-кун, - А, Саяка-
что случилось? сэмпай1!
Давно тебя
не видела!
уф
уф
- Сэмпай, тут есть кто-нибудь еще?
Надо поговорить
с профессором Намигоэ...
Киёхара Кадзума
Вот уже год как работает в городской
администрации.
Изучал машинное обучение в университете
на факультете компьютерных технологий,
но так ничему толком не выучился.
СЕ
РЬ
Е
ТО З Н Ы
НО М
М
- П-простите!
Сэмпай – название старших по курсу/классу учеников или студентов. Антоним – слово «кохай»,
которое обозначает младшего по курсу. – Прим. перев. 3
Все такой же
Киёхара-кун совсем
шумный, бестолко-
не поменялся,
вый, не слышишь,
хоть теперь
что тебе говорят,
и нашел работу…
и потом...
Мияно Саяка
Сэмпай Киёхары. Саяка-сэмпай,
Учится на втором курсе вы как обычно...
магистратуры.
ок
д т
по во
Нет, нет!
ар
Как обычно,
милая…
Он вместе с другими
лаборантами в командировке
за границей, раньше, чем
через два месяца,
не вернется.
Сп
УГ
У
Ну м
ас
не
так
каж е
иб
т ся …
о!
ЧТо?!
Пролог. Поговорим о машинном обуЧении
4
Блин, мне это
никак не подходит!
Что-то
ется
случилось? тряс
в
уж
ас
е
Я хотел попросить
профессора Намигоэ
рассказать мне про
машинное обучение…
машинное
обучение?
Киёхара, ты же работаешь у себя У тебя что-то
в местной администрации. стряслось? Может,
Ты же говорил: «хочу спокойно мне расскажешь?
работать дома и жить в свое
удовольствие». Зачем тебе
машинное обучение?
а-кун О-хо-хо...
Киёхаеррситете Ч т о?
Ра б о т
в унив Хо ч у
не с
у иск
а т ь?
напр
яж е н л и ш ко м
в хор н о ра
ошем ботать
мест
е
Пролог. Поговорим о машинном обуЧении
5
У нас есть
консультант, который поручил
К моменту наступления
мне поработать с его ИИ-програм-
сингулярности появится
мой, прогнозирующей количество
искусственный интеллект, мозг,
гостей на публичных мероприятиях
сравнимый с человеческим
нашей администрации.
или даже превосходящий его,
Этот консультант -
который сделает всю челове-
ческую работу ненужной!
в о од уш е в л е н н о
Количество гостей Цифры были подозри-
...примерно такой тип…
Я подсчитал количество гостей тельными, и когда
я их проверил…
через ИИ-программу, которую
он разработал…
2 года 1 год Этот год
назад назад (прогноз)
уф!
ой!
Но я
ничего умею...
Пролог. Поговорим о машинном обуЧении
6
реши
Ну что,
Киёхара-кун…
Какой ужас!
тел ь
Ага.
но
Что? я?
Но разве
это не входит в твои
рабочие обязанности?
Ну… не совсем…
если бы этот консультант не начал
всех дергать, все бы обошлось…
Ну а когда пришлось
взяться за дело,
то я сразу же помчался
сюда...
Ну ладно!
Ага, узнаю студента -
Что? Решено!
Киёхару-куна.
а ет
д ых
в з
Я расскажу тебе
про машинное обучение!
но
ап
ез
вн
Что?
Кстати, Саяка-сэмпай,
А разве вы помолчи-ка!
а почему вы
не должны ходить
не в командировке
Я ищу работу... на собеседования?
с учителем Намигоэ?
Я просто не могу преподавать
тем, кто говорит такие вещи! Итак...
Простите! Будьте
снисходительны!
зл
и
тс
тся
я
зл и
очки...
Ну что, Киёхара…
Итак, машинное обучение - это
построение на основании большого объема данных
модели, которая может оценивать и делать прогнозы.
Оценка
Машинное обучение
Модель
Сейчас
все решается при помощи
искусственного интеллекта!
Как в сказку попал.
у
рук
т
не
тя
когда мы говорим
за усе
ае
пи рд об обучении
ич
сы н с учителем.
ва о
н
рв
ет
не
тина
вкусня
сколько всяких
разных новых слов! Пролог. Поговорим о машинном обуЧении
11
Затем идут промежуточные
методы. Киёхара-кун, ты слышал
когда-нибудь новости о том,
Победа –
что искусственный интеллект положительное
обыграл человека в шахматы подкрепление
или го?
Проигрыш –
отрицательное
Ага, это было восхитительно.
подкрепление
Хотя раньше казалось,
что ИИ этого не сможет.
После каждого хода неизвестно,
какой следующий ход лучше сделать*
Метод, используемый
искусственным интеллектом
для игры в го или шахматы,
называется обучение
с ПодкреПлением. Обучение с подкреплением
не дает ответа на вопрос,
какой ход лучше сделать,
но вместо этого выдает
подкрепление в зависимости
от победы или поражения.
уго
щай
хру
с я
м
хр
ум
* Приведенная таблица – расстановка для игры в сёги, японские шахматы. – Прим. перев.
12
А как тогда
проходит обучение?
Что же касается обучения
без учителя, то желаемого ответа
на вопросы среди данных нет.
Ре к о м
ендуе
арт ис м ые
ты
Билеты
это уже
восьмой.
хр ум
ум хр
Пролог. Поговорим о машинном обуЧении
13
В кабинете у Саяка (1)
Саяка и старшеклассница Ай
Пролог. Поговорим о машинном обуЧении
14
глава 1
что такое
регрессия
Линейная регрессия!
Регуляризация!
Для начала В качестве примера
возьмем ситуацию, когда надо
поговорим
подсчитать количество гостей
о регрессии. на пиар-мероприятии, которое
организовывает город.
На нем будет подаваться сок,
Пожалуйста! выжатый из местных фруктов,
поэтому надо как можно точнее
подсчитать количество
участников. Ага!
ки
ва
ет
1.1. Сложности с прогнозом
Для начала посмотрим
на этот график. Да. А если мы взглянем
на график участников
с 13-го года?
Количество участников
Количество участников
Год участия
Год участия
Участники
Участники
глава 1. ЧТо Такое регреССиЯ
16
Именно так! В зависимости И это тот способ, который
от того, какой период мы использовал консультант?
взяли, тенденции абсолютно Да.
противоположные. Даже если тенденция
и правильная, график
ен
но
необязательно будет вл
д уш е
походить на прямую.
воо
1.2. определяем зависимые и независимые переменные
А теперь попробуем выбрать метод
Что ж, Киёхара, как мы предсказания в зависимости от факторов.
теперь будем предсказывать Те результаты, которые мы хотим
спрогнозировать, называются зависимыми
количество гостей? Переменными, а факторы, влияющие
на результат, - независимыми
Переменными.
ста Да!
за п рател
ис ь
ыв но
а ет
На этом графике
горизонтальная ось - независимая
переменная (погода), а вертикальная -
количество участников (зависимая
п
скри крип
переменная). Отметим точки, равные
количеству участников, и проведем с
по ним прямую.
Это невозможно?
Итак, обозначим наклон графика 1, w
сдвиг графика относительно
вертикальной оси - w
0, температуру за x,
а количество участников - за y
y = w1x + w 0
- и получим эту формулу.
ие велико
Влиян Влия
ние
Ага. м а ло
Видимо, независимых
переменных несколько.
Зависимая
переменная
Влажность × вес цена
глава 1. ЧТо Такое регреССиЯ
18
Если независимых переменных две, Очень похоже
x
то обозначим их как 1 и 2, х на недавнюю формулу.
их вес как w w
1 и 2 соответственно, ип
а их взвешенная сумма вместе скр п
с постоянной составляющей 0 w к ри
записывается… с
y = w1x1 + w 2 x 2 + w 0
Мы же строили
...вот так. двумерный график?
фух!
x2
Шаг 1
Пусть у нас есть d независимых переменных. Тогда обозначим d-мерный столбец-
вектор x. В соответствии с этим вес, отличный от постоянной w0, также будет обо-
значен d-мерным вектором-столбцом w, и уравнение гиперплоскости примет такой
вид:
y = w Tx + w0, (1.1)
где T – обозначение транспонирования.
Шаг 2
До этого мы обозначили за y величину взвешенной суммы независимых переменных,
а теперь обозначим так величину зависимых переменных в данных для обучения.
Взвешенную сумму независимых переменных мы обозначим как ĉ(x). Значок над бук-
вой означает, что мы не можем гарантировать правильность полученных данных.
Таким образом уравнение (1.1) примет вид (1.2):
ĉ(x) = w Tx + w0. (1.2)
Шаг 3
Для определения «отклонения» линейной функции от имеющихся данных возводим
в квадрат разницу между линейной функцией ĉ(x) и зависимой переменной y; т.е. на-
ходим квадрат ошибки. Уменьшение квадрата ошибки путем корректировки веса
линейной функции называется обучением по методу наименьших квадратов.
глава 1. ЧТо Такое регреССиЯ
20
Таким образом, добавив к x в уравнении (1.2) 0-мерность и определив его величину
как равную 1, а также добавив w0 к 0-мерному w, получим, что функция регрессии
будет записываться как внутреннее произведение (d + 1)-мерного вектора (1.3).
ĉ(x) = w Tx. (1.3)
Шаг 4
Оценим коэффициенты w этого уравнения, используя обучающие данные {(x1, y1), …
(xn, yn)}. Постараемся максимально возможно уменьшить разницу между величина-
ми зависимой переменной y и функции ĉ(x), рассчитанной по уравнению 1.3. Ошиб-
ка определяется значением коэффициентов w в уравнении (1.3) обозначив ее E(w),
получим следующее уравнение:
n
E(w) = ∑ (y – ĉ(x))2, (1.4)
i=1
n
E(w) = ∑ (y – wTxi)2. (1.5)
i=1
Шаг 5
Чтобы избавиться от трудоемких вычислений суммы, представим независимые пере-
менные матрицами, а зависимые – векторами. Обозначим матрицу, имеющую n пози-
ций по вертикали, которая получилась путем транспонирования независимой пере-
менной x d-мерного вектора-столбца как X, y – вектор-столбец величин независимой
переменной y, а w – вектор-столбец коэффициентов.
В итоге отклонение примет следующий вид:
E(w) = (y − Xw)T(y − Xw). (1.6)
Чтобы минимизировать отклонение, нужно найти такие величины коэффициентов
w, при которых производная функции ошибки равняется 0, то есть:
X T(y − Xw) = 0, (1.7)
w = (X TX)−1X Ty, (1.8)
–1
где А – матрица, обратная матрице А.
1.3. находим функцию линейной регреССии
21
Если я знаю численный вес,
1.4. регуляризация результата то он может быть просто
подставлен в эту формулу?
Если коэффициенты
линейные, то веса могут
быть рассчитаны таким же
образом, даже если это
уравнения высокого
порядка. Так можно
проводить обучение при
помощи самых сложных
уравнений регрессии.
Объяснимость
Сложновато.
важнее
А как сделать Так быстро?
точности?
хороший прогноз?
Но, впрочем, с на би
есть и другая точка ты м рто
зрения на вес, в случаях, м
когда правильность
прогноза важнее, чем
объяснимость результа-
тов обучения.
Если небольшое изменение
какого-либо параметра на
входе дает большое измене-
ние на выходе, это означает, чп ок
ж ан
ро ом ам
что коэффициент уравнения ок пи зл ол
а
р оп
п
слишком велик, поэтому его
необходимо уменьшить.
Пирожок
Составляющие:
– мука Что влияет больше?
– начинка
– сахар
глава 1. ЧТо Такое регреССиЯ
22
Иными словами, следует найти способ,
Если говорить конкретнее,
можно подставить в качестве
чтобы коэффициент w
в уравнении
линейной регрессии уменьшился,
веса переменных в формулу
если величина его большая,
линейной регрессии 0 или же стал равен нулю.
и посмотреть, изменится ли И этот способ
количество измерений. называется
регуляризацией.
Регуля
ри зация
Он нужен,
Мука Начинка Сах чтобы коэффициент
не был слишком большим...
Ридж- лассо-
Регрессия Регрессия
Регуляризация осуществляется
добавлением дополнительного
члена к уравнению ошибки.
Начнем с объяснения
ридж-регрессии. Мы добавляем
дополнительный член,
квадрат параметра . w
Чтобы …надо
уменьшить увеличить
это… это А α откуда
взялась?
1.4. регулЯризациЯ резульТаТа
23
α - это вес дополнительного члена
регуляризации. Если параметр боль-
шой, то эффект регуляризации Используя Ридж-регрессию, мы нахо-
становится важнее эффективности, дим величину w
, когда градиент
если маленький, то эффективность
становится важнее.
по w
функции ошибки равен , 0
как и в случае нахождения этого
параметра методом наименьших
квадратов.
w = (XTX + αI)−1XTy
I – единичная матрица.
А теперь поговорим
о регрессии «лассо». это
Кстати, а почему
регуляризация, при которой w
становится абсолютной
Ридж-регрессия величиной.
так называется?
ПИ
РО о п
ЖО
К!
т
фу то
п
х
Как я и говорила, фух
Ридж-регрессия - Вроде
это регуляризация это слово используют,
для уменьшения величины когда говорят о ковбоях.
параметра.
24
Представь, что во множество
параметров кидают лассо Изначально это аббревиатура
и выбирают самые маленькие фразы least absolute
из них. shrinkage and selection
operator.
Надо же.
n
E(w) = (y − Xw) (y − Xw) + α ∑ |wj|
T
i=1
…так:
Поскольку w
0 - постоянное А как можно объяснить
слагаемое в уравнении, его величина регрессию «лассо»?
не повлияет на величину уравнения
регрессии, и его обычно
не регуляризируют. Здесь если вес
дополнительного члена
увеличивается, растет
число величин
с весом, равным . 0
Пожалуйста!
Удобно.
Метод Метод
наименьших наименьших
w1 квадратов w1 квадратов
Метод
Метод регрессии
ридж Максимальная
«лассо»
регрессии ошибка
Минимальная
ошибка
w2 w2
А в случае регрессии
«лассо», при условии что
определена сумма параметров,
Как показано на рисунке, диапазон параметров ограничен
при использовании Ридж-регрессии областью (ромбом), углы
ограничение диапазона параметров которого лежат на каждой оси,
окружностью (общий случай как показано на рисунке.
d -мерной гиперсферы) не позволяет
каждому весу принимать большое И один из углов ромба
значение. В общем случае точка касается изолинии функции
касания изолинии функции ошибки.
ошибки является точкой на
Кажется,
окружности, которая является
в углах большинство
значением веса параметра.
параметров становятся
0
равными .
boston = load_boston()
X = boston.data
y = boston.target
1.4. регулЯризациЯ резульТаТа
27
Код в scikit-learn удобен для обучения. А теперь используем учебный
набор данных.
lr1 = LinearRegression()
lr1.fi t(X, y)
print("Linear Regression")
for f, w in zip(boston.feature_names, lr1.coef_) :
print("{0:7s}: {1:6.2f}". format(f, w))
print("coef = {0:4.2f}".format(sum(lr1.coef_**2)))
Linear Regression
CRIM : -0.11
ZN : 0.05
INDUS : 0.02
CHAS : 2.69
NOX : -17.80
RM : 3.80
AGE : 0.00
DIS : -1.48
глава 1. ЧТо Такое регреССиЯ
28
RAD : 0.31
TAX : -0.01
PTRATIO: -0.95
B : 0.01
LSTAT : -0.53
coef = 341.86
lr2 = Ridge(alpha=10.0)
lr2.fi t(X, y)
print("Ridge")
for f, w in zip(boston.feature_names, lr2.coef_) :
print("{0:7s}: {1:6.2f}". format(f, w))
print("coef = {0:4.2f}".format(sum(lr2.coef_**2)))
Ridge
CRIM : -0.10
ZN : 0.05
INDUS : -0.04
CHAS : 1.95
NOX : -2.37
RM : 3.70
AGE : -0.01
DIS : -1.25
RAD : 0.28
TAX : -0.01
PTRATIO: -0.80
B : 0.01
LSTAT : -0.56
coef = 25.73
1.4. регулЯризациЯ резульТаТа
29
Мы видим, что сумма квадратов коэффициентов абсолютно мала.
А теперь применим регрессию «лассо». Вес α дополнительного пара-
метра регуляризации примем равным 2,0 и заметим, что несколько
коэффициентов равны 0.
lr3 = Lasso(alpha=2.0)
lr3.fi t(X, y)
print("Lasso")
for f, w in zip(boston.feature_names, lr3.coef_) :
print("{0:7s}: {1:6.2f}". format(f, w))
print("coef = {0:4.2f}".format(sum(lr3.coef_**2)))
Lasso
CRIM : -0.02
ZN : 0.04
INDUS : -0.00
CHAS : 0.00
NOX : -0.00
RM : 0.00
AGE : 0.04
DIS : -0.07
RAD : 0.17
TAX : -0.01
PTRATIO: -0.56
B : 0.01
LSTAT : -0.82
coef = 1.02
глава 1. ЧТо Такое регреССиЯ
30
Пока все понятно?
Н-ну…
Нет! Она мне так доверяет!
дрожит
Ка Я сам справлюсь!
ка
я
?
Спасибо большое!
то
м-
п
м-
м-
топ
м-
ми
ил
лла
А?
я
1.4. регулЯризациЯ резульТаТа
31
Все в порядке?
уб
е га
ет х
щел
к ф фу
топ-то
ух
п
о Киёхара-кун,
Наверняка ее мнение о ль к
Не с к н а з а д ты мне как братик!
обо мне не изменилось. ле т
покажу я этому
консультанту!
бод ро
ро бод
Быть во френдзоне
тоже толку мало.
32
Не думаю, что Киёхара-кун
вообще чему-то научился, Но он быстро все схватывает,
хотя учился четыре года. может, ему надо было
побольше мотивации.
О Й!
Хлоп! Пир
ож ки
ь
илис
ко н ч
Нет, не думаю.
1.4. регулЯризациЯ резульТаТа
33
В кабинете у Саяка (2)
Математическое повторение (1)
глава 1. ЧТо Такое регреССиЯ
34
Напомним, что столбцы идут сверху вниз, а строки слева на-
право.
Ага!
Да. Все так. При умножении матрицы (i×j) на матрицу (j×k) ре-
зультатом будет матрица (i×k), если говорить совсем просто.
· =
в кабинеТе у СаЯка (2). маТемаТиЧеСкое ПовТорение (1)
35
Теперь рассмотрим транспонированные и обратные матрицы.
Транспонированная матрица X обозначается как XT и получает-
ся при замене столбцов на строки и обратно.
Угу.
глава 1. ЧТо Такое регреССиЯ
36
Обратное число – это результат деления единицы на него.
Обратное число для 5 – 1/5.
1 2 1 0 1 2
· =
3 4 0 1 3 4
–1
a b 1 d –c
=
c d ad – bc –c a
в кабинеТе у СаЯка (2). маТемаТиЧеСкое ПовТорение (1)
37
Если матрицу A перемножить на обратную ей левую матрицу
A–1, то получится единичная матрица I.
глава 1. ЧТо Такое регреССиЯ
38
глава 2
как делать
классификацию?
Где растет
решающее дерево?
саяка-сэмПай здесь?
бу- ух !
...такое! В лабораторию
да что ж... надо входить
тише!
Извините...
т
ча е
вру
и!
И мероприятие прошло
по плану и имело успех!
Ура!
41
И теперь ты,
Хорошо, что ты не дал
Киёхара-кун, можешь Я что-то
обвести себя вокруг
посвятить себя не то сказала?
пальца. своим рабочим
обязанностям!
ум
хр Да нет...
хр
ум
что?!
Например?
вз
ма
Ведь мы изучали
х
регрессию
на прошлом занятии.
енно
удивл
Что?
Киёхара-кун,
Нет-нет, я зашел тебя ты же хочешь, чтобы все жители
отблагодарить! были здоровыми?
Нет-нет-нет!
Хватит с меня безответной любви!
Я больше этого не вынесу,
что?
она мне так нравится!
Ну, раз так...
Не забивай на это!
К тому же ты сможешь сделать
хороший проект.
Д-да, хочу…
С чего бы такое давление…
да в
л ен и
е
Киёхара-кун, ты будешь
моим учеником! Я не успокоюсь,
если не позабочусь о тебе!
Да, есть...
Встретимся в семейном
ресторанчике в два часа!
Хорошо…
нет, великолепно!
Cуббота
А мы ведь тут Киёхара-кун,
уже были… ты будешь моим учеником!
Ты мне
как братик!
За несколько лет
продвинулся от братика
до ученика, называется.
Прогресс ли это?
регресс? не знаю!!!
и
ни
ая
тч
в о
киёхара-кун!
Потише!
Ты же в ресторане!
саяка-
сэнсэй!
взво
лнов
анно
Разве?
лк
Меню
ще
Это была моя идея.
Итак…
На
де
ва
ет
оч
ки
Начинаем урок!
вы б
рас
ы ва е
т
Д ан
ны е
Да,
так будет лучше.
А что
тогда делать?
2.2. определяем класс данных
Задача классификации -
это задача распределения Типичные задачи классификации
по уже заданным классам. включают в себя распознавание речи
и текста, PN-классификацию рецензий,
определение наличия или отсутствия
болезни.
A
л
ст ь р а зные п
Е
PN-классификация?
Именно. Болен человек или нет,
Позитивный идет письмо в спам или нет -
или негативный. это задача на разделение
по двум классам.
Хвалят или ругают
продукт.
Японские
(не Торт
сладости га
зна тивн
или нет ч ен о е
ие)
позитивный негативный Жел е
а
(поз ммицу
ити
знач вное
ени е
)
Самая простая
из задач классификации -
это бинарная классификация.
Бинарная классификация -
это разделение на две части?
Все остальное Японская сладость
ш ет
x1
пи
че н и я
е зн а В зависимости от класса
т и вн ы
П о з и че н и я
е зн а обозначим их черными
е г а т и вн ы
Н или белыми точками.
Что? Нет!
дн
И так понимаю!
им
Я все вижу,
ае
и мне все
т
ся
понятно!
АААА
ААА
А
Или я сяду рядом…
Именно!
Продолжим
мыслить в том
x1
же направлении.
Да!
1
значения, близкие к ,
ри
а для отрицательных -
ĝ(x) = w0 + w1x1 + ··· + wdxd = w0 + wTx
п
0
близкие к .
и получается
такая формула:
Распределение весов
2.3. логиСТиЧеСкаЯ регреССиЯ
49
ĝ(x) = w0 + w1x1 + ··· + wdxd = w0 + wTx
Здесь wT x -
внутреннее произведение вектора w
x
на вектор . Это можно определить
как сумму произведений
соответствующих элементов.
Именно!
x1
Да! x1
50 ĝ(x) бесконечно мала
Если мы возьмем преобразованную
1
Поскольку трудно оценить вероятность функцию p(+|x) = , то по формуле
принадлежности x к положительному
1 + e–(w0+wTx)
классу, надо сделать так, чтобы ниже можно получить вероятность
разброс результатов на выходе функции принадлежности x
к положительному
ĝ(x)колебался от 0 до 1; если x
принад- классу.
лежит к положительному классу,
то результат должен быть близок к , 1
а если к отрицательному,
то близок к .0 1
p(+|x) =
1+ e–(w0+wTx)
Именно!
Sigmoid(ĝ(x))
ĝ(x)
Если ĝ(x) = 0
, то функция
примет значение . 0,5
Это функция, показывающая
значение вероятности.
Далее поговорим о том, как провести обучение логистической
классификации. Логистический классификатор можно рассмат-
ривать как вероятностную модель с весовым параметром w.
Здесь и далее для простоты объяснения w будет включать в себя w0.
Логистический
классификатор
1
о=
1 + e–wTx
Сравнение Правильный
Вход Параметр Выход результат
х w о y
Пусть в данных для обучения D этой модели при входе xi, а на выходе oi. Желае-
мый выход обозначим положительным исходом yi. Предположим, что у нас задача
бинарной классификации, yi = 1, если данные принадлежат к положительному
классу, а если к отрицательному, то yi = 0.
Чтобы правильно провести обучение созданной модели и оценить значение, не-
обходимо уравнение правдоподобия, которое приведено ниже. ∏ обозначает про-
изведение.
P(D | w) = ∏ oiyi(1 − oi)(1−yi).
xi ÎD
глава 2. как делаТь клаССификацию?
52
Чтобы представить ясней задачу оптимизации, в дальнейшем бу-
дем рассматривать задачу минимизации функции ошибки E(w),
которая может быть определена как логарифмическая функция
со знаком минус.
E(w) = −logP(D|w).
1
S(z) = .
1 + e–z
Производная сигмоидной функции будет выглядеть так:
S¢(z) = S(z) · (1 − S(z)).
∂E(w) .
w¬w−η
∂w
2.3. логиСТиЧеСкаЯ регреССиЯ
53
Затем вычислим направление градиента функции ошибки E(w)
по формуле ниже:
∂E(w) yi 1 – yi
=– ∑ – o (1 – oi)xi = – ∑ (yi – oi)xi.
∂w xi ÎD o i 1 – oi i xi ÎD
Когда новое значение веса будет ниже заранее определенного значения, метод гра-
диентного спуска закончен.
∂E(w)
–
∂w
E(w)
Минимальное
решение
w2
w1
Метод, при котором градиент вычисляют на основании всех данных для обучения
D, называется пакетным (batch method). Если из D выбирают данные определен-
ной величины и вычисляют отдельный градиент по ним, то это называется мини-
пакетный метод (mini batch), а метод, когда из D случайно выбирают элемент дан-
ных и вычисляют градиент для него, называется методом стохастического гради-
ентного спуска.
глава 2. как делаТь клаССификацию?
54
2.4. классификация по решающему дереву Дерево?
Далее - классификация путем решающего Которое растет?
дерева… Возможно, этот способ подходит
для определения тех, кто рискует
заболеть диабетом.
Да, только
корни у него будут сверху,
а листья - снизу.
Решающее дерево
проще понять,
чем логические схемы.
Данетки?
Это игра, в которой надо отгадать то,
что загадал ведущий, задав не более
20 вопросов, на которые можно ответить
только «да» или «нет». Может быть,
играл в детстве в нее?
Животное?
Л етает?
Лает?
Именно!
глава 2. как делаТь клаССификацию?
56
Погода Температура Влажность Ветер Играем?
1 Ясно Высокая Высокая Нет Нет
2 Ясно Высокая Высокая Да Нет
3 Облачно Высокая Высокая Нет Да
4 Дождь Средняя Высокая Нет Да
5 Дождь Низкая Стандартная Нет Да
6 Дождь Низкая Стандартная Да Нет
7 Облачно Низкая Стандартная Да Да
8 Ясно Средняя Высокая Нет Нет
9 Ясно Низкая Стандартная Нет Да
10 Дождь Средняя Стандартная Нет Да
11 Ясно Средняя Стандартная Да Да
12 Облачно Средняя Высокая Да Да
13 Облачно Высокая Стандартная Нет Да
14 Дождь Средняя Высокая Да Нет
Они показывают,
Это данные по игре в гольф,
играли люди в гольф
на примере которых
на протяжении двух недель
мы рассмотрим ID3-алгоритм.
или нет?
57
Допустим, мы зададим Так… Кажется,
вопрос про влажность. В зависимости
тут нельзя ничего
от ответа данные будут
выделить.
делиться так,
Данные D как показано ниже:
Да Нет
(9) (5)
Если мы сначала спросим
про влажность, то какой бы
Высокая Средняя Низкая ответ ни был выбран,
условия для задания
Да Нет Да Нет Да Нет второго вопроса не будут Ага. Потому,
(2) (2) (4) (2) (3) (1) отличаться от предыдущих. что условия совсем
не отличаются.
Погода Температура Влажность Ветер Играем? Погода Температура Влажность Ветер Играем?
1 Ясно Высокая Высокая Нет Нет 4 Дождь Средняя Высокая Нет Да
2 Ясно Высокая Высокая Да Нет 5 Дождь Низкая Стандартная Нет Да
8 Ясно Средняя Высокая Нет Нет 6 Дождь Низкая Стандартная Да Нет
9 Ясно Низкая Стандартная Нет Да 10 Дождь Средняя Стандартная Нет Да
11 Ясно Средняя Стандартная Да Да 14 Дождь Средняя Высокая Да Нет
Ясно Дождь
Облачно
Да
Влажность Ветер
Высокая Стандартная Есть Нет
Нет Да Нет Да
Погода?
Температура?
Ключевые слова
в данном случае -
информационная
энтроПия.
неПредска-
зуемость и
инф
ка -
орм
дс энт ацион
ре роп н
неп мость ия а я
зуе
Да
Нет 50 % Нет Да
50 % 100 % 100 %
Затем идет
информационная энтропия.
Информационная энтропия – это количество
информации, определяемое вероятностью
получения определенного результата
(ДА или НЕТ) из набора данных.
Набор данных
Данные (1)
Да
П о кра Вероятностью
йней м
не все ере,
– НЕ Т получения
!
результата?
глава 2. как делаТь клаССификацию?
60
Например, если мы получили ответ «да»
из набора данных, где все данные - А если из 14 элементов данных
«да», мы не получили никакой 13 будут «да», а один - «нет»?
информации.
У нас будет
информация о том,
Наверное, так. что случилось что-то
необычное.
Точно.
А теперь рассмотрим формулу
непредсказуемости данных.
Пожалуйста.
Ее можно найти,
если мы сложим произведения
информационной энтропии
каждого класса и соотношение
каждого класса с общими
данными, и записать следующей
формулой:
А теперь рассчитаем
наши данные по гольфу!
глава 2. как делаТь клаССификацию?
62
Следуя шагам 1–5, рассчитаем непредсказуемость и соотношение при-
роста информации в данных для гольфа.
Шаг 1
Так как в наборе данных D ответов «да» 9, а ответов «нет» – 5, то рассчитаем непред-
сказуемость по формуле ниже.
Шаг 2
Найдем непредсказуемость данных соответственно для ясной погоды, облачной
и дождя.
Шаг 3
Возьмем эти величины в качестве весов к данным и рассчитаем непредсказуемость
после разделения.
5 × 0.971 + 4 × 0 + 4 × 0.971 = 0.694.
14 14 14
2.4. клаССификациЯ По решающему дереву
63
Шаг 4
Вычтя из непредсказуемости изначальных данных величину непредсказуемости
данных после разделения, найдем отношение информационного выигрыша к внут-
ренней информации, или же Gain.
Gain(D, погода) = 0.94 − 0.694 = 0.246.
Шаг 5
Таким же методом рассчитаем информационный выигрыш для других данных.
Gain(D, температура) = 0.029.
Gain(D, влажность) = 0.151.
Gain(D, ветер) = 0.048.
Следовательно, если первым вопросом для деления данных должен стать вопрос
о погоде, непредсказуемость будет самой большой, а потом будет уменьшаться. Пос-
ле разделения данных можно использовать оставшиеся признаки в том же порядке.
2
Gini(D) = 1 − PДа − P 2Нет
глава 2. как делаТь клаССификацию?
64
Так можно
численно сравнить
величины эффективных
вопросов? В основе метода,
которым мы сегодня пользовались,
лежит «бритва Оккама», которая гласит:
«Выбирай самую простую гипотезу
для применения к данным».
Бритва
Оккама
Самую простую?
Пере-
Ты хочешь сказать, обучения?
что если мы при обучении получили
небольшое решающее дерево, то оно
и будет использоваться дальше?
т
же я!
Мо ватьс
ь з о
л
и спо
65
Поскольку модель слишком
хорошо объясняет данные для
Чтобы справиться с переобучением,
обучения, при вводе новых
можно либо изначально ограничить
данных правильные значения
толщину дерева, либо же
не получатся.
после обучения обрезать ветви.
Хм, я не обращал
внимания.
х1
Да
Нет
θ1 θ2 θ3
breast_cancer = load_breast_cancer()
X = breast_cancer.data
y = breast_cancer.target
clf1 = LogisticRegression()
clf1.fi t(X,y)
2.4. клаССификациЯ По решающему дереву
67
mean radius : 2.10
mean texture : 0.12
mean perimeter : -0.06
...
worst concave points : -0.65
worst symmetry : -0.69
worst fractal dimension: -0.11
глава 2. как делаТь клаССификацию?
68
Видишь аааа, как близко!
на компьютере?
Надо сдерживаться!
А... да.
тся
вол нуе
Так, о классификации
мы поговорили, а затем
пододвигает
идет оценка…
Все в порядке!
сПасибо большое!
Сп ди
их
Хм…
ч ек
ас те
о
иб е
Вроде все
о, щ е
было в порядке,
т
га е
когда
уб е я объясняла.
А?
Разработчик игр?
Отдел здравоохранения
и благосостояния
Что?
Ого...
уд
ач
и!
Спасибо
Он немного легкомысленно за информацию!
относится к рабочим
обязанностям, и говорят,
что он разрабатывает игры
прямо на работе...
глава 2. как делаТь клаССификацию?
70
Простите! Я Киёхара
из отдела здравоохранения.
Кудзё-сан, вы тут?
клик
клик
Я - Кудзё,
что надо?
уди
вляе
Я знаю, тся
что вы хорошо программируете,
и хотел попросить кое о чем...
клик
клик
Кое о чем?..
Программу для отдела здравоохранения
написать, что ли?
2.4. клаССификациЯ По решающему дереву
71
Очень уж
он суровый... …такие дела.
Ну,
на самом
деле… Ну?
Ты ж информатике учился
Не люблю Python.
в университете, правда?
А программу написать
поворачи не можешь.
ва ется
обратно
о
рова нн
разоча Не люблю, потому что
это слишком просто.
Ладно,
сделаю!
Правда?
Да.
е
е вл
уш
од
во
ра
ду е
Все ли хорошо?
ет хе
-х
ся Хе
-
В кабинете у Саяка (3)
Математическое повторение (2)
глава 2. как делаТь клаССификацию?
74
Логарифм – это показатель степени, в которую надо возвести
основание, чтобы получилось число. Если основание равно
двум, то понятно, почему в решающем дереве встречаются
двоичные разряды, но что за странное основание e, и почему
они натуральные?
в кабинеТе у СаЯка (3). маТемаТиЧеСкое ПовТорение (2)
75
А теперь найдем частную производную по вектору. ∂ (закруг-
ленная d) – это обозначение дифференцирования по одной из
∂E
переменных. Например, в формуле ∂ означает, что в фор-
∂w0
муле E нужно найти производную по переменной w0.
T
∂E ∂E ∂E ∂E
ÑE = = , , , .
∂w ∂w0 ∂w1 ∂wd
глава 2. как делаТь клаССификацию?
76
глава 3
оценка результатов
Оценка результатов
особенно важна!
с к в оз
ня к
хм?
А? Дверь
открыта...
Что-то она как-то
плохо прикрывает СЯ!!!!
стук
в
уж
ас
е
Ой
!
САЯКА-СЭМПАА-Й.
глава 3. оценка резульТаТов
78
да ТЫ менЯ оПЯТь наПугал! я же Просила Потише,
но это слишком тихо!
Извините...
Сколько мо-о-о-ожно-о-о-о! Извините...
Что случилось?
Я три месяца после ресторана
тебя не видела, думала,
все хорошо.
..............
Возможен ли
у вас диабет?
Да
или
Нет
Выберите
нужный
ответ
А те, кто был в группе
НАЧАТЬ
риска, идут в больницу,
и им говорят, что все
нормально.
Но на сайт много жалуются.
79
Почему вероятность Что? Жалобы?
правильного ответа стопроцентная, Я только настроил данные,
а классификация все равно выдает как ты и просил, и сам ничего
ошибки? Я посоветовался не понимаю....
с программистом Кудзё-сан...
т
ка е
ча в
100%-ная
вероятность,
говоришь...
Что?
Вот и причина...
глава 3. оценка резульТаТов
80
Надо было тебе рассказать
об оценке тестовых данных…
Это моя вина...
Я расскажу
тебе об этом.
Да.
Пожалуйста.
3.1. без проверки тестовых данных никак нельзя
Говоришь, классификатор
с точностью 100 %?
В таких системах,
если в данных для обучения
все четко настроено, велика
вероятность того, что новые данные
будут интерпретироваться
неправильно?
глава 3. оценка резульТаТов
82
3.2. обучающая, тестовая и контрольная выборки
все данные
Прежде всего надо оценить
вж
эффективность используемых
данных. Для этого самый
простой способ - это
их
!
разделить их на... тестовая
Выборка
для обучения выборка
выборку тестовую
и
для обучения выборку
...две части.
А это проблема
Разделить данного метода.
данные?
тестовая
выборка
3.2. обуЧающаЯ, ТеСТоваЯ и конТрольнаЯ вЫборки
83
Так… Только в случае,
если есть достаточно данных
Если нельзя получить и для обучения, и для тестовой выборки,
достаточно неизвестных можно использовать этот метод.
данных, то и тестирование
невозможно? Но даже если данных
достаточно, то не всегда
это хороший метод.
Если их не хватает…
я об этом.
Почему?
х!
ка
рк
выбор
и
в ж
прове
роч
выбор на я
ка
ща я
Обуча ю а
к
Ни ч его себе выбор рк
ап
ло
ди
см
е нт
ы
глава 3. оценка резульТаТов
84
А чтобы делить данные
на три части, их должно С методом проверки на зарезервиро-
быть много? ванных данных ее объединяет деление
данных на выборку для обучения
Когда данных мало, используется и тестовую выборку, однако суть в том,
метод Перекрестной Проверки что все данные используются
(кросс-валидации). в качестве тестовой выборки.
На
обучение де
оч ва е
ф
ки т
ух
тест
!
Все данные?
Это как?
проверка
Что это?
3.3. метод перекрестной проверки (кросс-валидации)
Доля правильно Представим, что данные делятся,
классифицированных как на картинке, на тестовые блоки.
объектов 1 Для них обычно берется
10 % данных.
Доля правильно Обучающая
классифицированных выборка
объектов 2
Доля правильно
классифицированных Тестовая
объектов 3 выборка Почему 10 %?
Доля правильно
классифицированных
объектов 4
Результат
3.3. меТод ПерекреСТной Проверки (кроСС-валидации)
85
Метод, при котором для оценки
используется один блок данных,
называется контролем По отдельным А разве у кросс-валидации
объектам. нет недостатков?
Пожалуйста!
глава 3. оценка резульТаТов
86
3.4. доля правильно предсказанных Прежде всего…
объектов, точность, полнота и F-мера Для простоты
рассмотрим
До этого
метод оценки,
мы использовали показатель
количества правильно оцененных при котором данные разделены
объектов для примерной оценки на два класса. Допустим, у нас вопросы
точности, но он основывается на такого плана: есть болезнь или нет,
количестве правильно распреде- спам письмо или не спам.
ленных по классам данных Данные, которые подходят,
в тестовой выборке. будут называться истинными Примерами,
А теперь рассмотрим а которые не подходят - ложными.
чуть-чуть подробнее
методы оценки
эффективности самой
классификации.
истинные ложные
3.4. долЯ Правильно ПредСказаннЫх объекТов, ТоЧноСТь, ПолноТа и F-мера
87
Это матрица неточностей.
Цифры у нас только для примера,
но что ты можешь понять отсюда,
Киёхара-кун? Ну…
н ное
н ное Предска за
Предска за «нет»
«да» 20
30 40
«да»
Истинное 10
н ое «нет»
Истин
Истинное «нет» 10 40
Точность: 30 + 40 = 70
Ошибки: 20 + 10 = 30
именно!
Предсказанное Предсказанное
«да» «нет»
Истинное «да» 30 20
Истинное «нет» 10 40
То есть складывать
положительные
и отрицательные результаты
не поможет?
Что?
Долей правильно предсказан-
ных ответов не обойтись?
Чтобы распознать
Именно! такие ситуации, результаты
Допустим, что болеет машинного обучения
один человек из тысячи, необходимо перепроверять.
все негативные результаты
повлияют на логический
классификатор и на долю
правильных ответов.
А ну расскажите мне!
3.4. долЯ Правильно ПредСказаннЫх объекТов, ТоЧноСТь, ПолноТа и F-мера
89
Предсказанное «да» Предсказанное «нет»
Истинное «да» Истинное «за» (ИЗ) Ложное «против» (ЛП)
Истинное «нет» Ложное «за» (ЛЗ) Истинное «против» (ИП)
Доля правильно
ИЗ + ИП
предсказанных =
данных ИЗ + ЛП + ЛЗ + ИП
Нужно разделить количество
правильных ответов
на общее количество данных.
Допустим, мы хотим
узнать, насколько точно
мы определили болезнь.
ИЗ
Точность =
ИЗ + ЛЗ
Мы делим количество
истинных «за» на сумму «да»,
предсказанных классификатором.
глава 3. оценка резульТаТов
90
После точности идет Полнота данных.
Она указывает, насколько адекватно оцениваются
истинные «да». Например, мы можем узнать,
насколько адекватна выборка на основании Чтобы найти полноту,
количества на самом деле заболевших людей. надо разделить количество
истинных «за», правильно
предсказанных классификатором,
на общую сумму
истинных «да».
ИЗ
Полнота = ск
ИЗ + ЛП ри
п
Допустим,
Именно!
Точность точность классификатора,
который выдает положительный
и полнота находятся в таких
результат, будет выше, если мы заранее
отношениях: если использо- знаем, что в наших данных есть
вать один из этих большое количество людей,
заболевших той или иной
параметров, другой теряет
болезнью.
значимость, и наоборот.
Это как?
91
Вероятность пропустить заболевшего
низкая, однако придется проводить
большое количество медосмотров
людей, которые не заболели.
Понятно.
Точность × Полнота
F-мера = 2 ×
Точность + Полнота
В зависимости от задачи
можно сосредоточиться на точности,
а иногда на полноте. Если же нам нужны оба
показателя, то лучше всего использовать F-меру.
Спасибо, Саяка-сэмпай.
Вот как.
о п
хл
Пожалуйста.
У него
изменилось Удачи!
отношение
к учебе...
Пока объясняла
сегодня, ничего
не съела.
3.4. долЯ Правильно ПредСказаннЫх объекТов, ТоЧноСТь, ПолноТа и F-мера
93
Отдел здравоохранения
Так, перекрестная
и благосостояния проверка.
Число F… 0,60
тяжк
ов зды
ха ет
И В С Е ИЗ-З А ТОГО,
Ч ТО Я СБ Е Ж А Л О Т Н Е Е! Да что ж
я такое сделал...
ет
е га
уб
чек
В кабинете у Саяка (4)
Математическое повторение (3)
в кабинеТе у СаЯка (4). маТемаТиЧеСкое ПовТорение (3)
95
Да. Возьмем такой пример.
км/ч
км/ч
Дом Школа
км/ч
2х х 4 × 6 48
= 2× = 2× = = 4.8
х х
+ х(4 + 6) 4 + 6 10
4 4 4×6
4×6
Да. Эта формула 2 × используется и для нахождения
4+6
F-меры. Это среднее гармоническое значение.
глава 3. оценка резульТаТов
96
глава 4
глубокое обучение
Глубокое обучение
для распознавания
картинок!
тук тук
Да-а,
заходите.
ще
лк
к
кли
клик
Привет, Саяка-сэмпай!
глава 4. глубокое обуЧение
98
Ты чего
так обычно заходишь?
Киёхара-кун!
уд
и вл да Ну...
е сег
нн е в ь ся .
о ж ш
Ты ы в а е о р и ю
в р о рат
аб
вл
Ну, я так тоже могу.
Извините,
что не предупредил заранее!
Хотел сказать, что сайт готов.
Так-так,
ты на что-то Сэмпай!
намекаешь? Расскажете мне
про глубокое обучение?
99
Недавно, когда я сидел,
Глубокое расстроенный из-за сайта,
пришел человек из департамента
обучение?
сельского хозяйства и попросил
Н-да… Ну, сначала
меня кое о чем.
расскажи, что и зачем
ты сегодня принес.
вот!
Мы хотели бы,
чтобы кто-нибудь сделал
Конечно…
автоматическую систему, которая
вот сладости!
смогла бы сортировать виноград.
Меню обеда
в к
ет
ча ча
в к
НА!
Но это… у тебя ничего
Это было как раз то,
не получается, а ты
что мне нужно, и я поблагодарил
все стараешься?
Кудзё-сан за эту статью.
Ты что-то
сказал?
Добрая душа. хлюп
Спасибо!
хрум м
хру
101
Я не хочу снова
облажаться!
отчаянно
По размеру, форме,
цвету, величине семечек
и форме грозди.
Форма
Размер
Величина
семечек
Цвет
глава 4. глубокое обуЧение
102 Форма грозди
Да, с наскока с этой По всей видимости, для сортировки
задачей не справиться. нам понадобится большое количество
Нужен опыт! изображений и сверточная нейронная сеть,
которая будет их распознавать
и затем классифицировать.
Это и есть
наш метод?
А потом уже
Без паники! Сначала поговорим перейдем к объекту
о нейронных сетях, затем глубокого обучения -
о глубоком обучении, иными к сверточной
словами, о том, что это такое. нейронной сети!
4.1. нейронная сеть
Нейрон
Дендрит
А как устроены
нервные клетки
живых существ? 4.1. нейроннаЯ СеТь
103
Каждый нейрон
получает положительно или
отрицательно заряженный Такие нейроны, как на картинке, называются
сигнал от связанных Пороговыми логическими элементами.
с ним нейронов.
x1
Когда сумма зарядов w1
достигает определенного
значения, он начинает
x2
генерировать w2 ∑ Вывод (о или 1)
электрический сигнал.
Пороговая Пороговыми?
wd функция
xd Взвешенная
Ввод сумма Речь идет о пределе,
Электрический сигнал или границе.
1 Заряды
w0 суммируются
на входе вместе
x1 с порогом w0 Проснулся
w1 Функция
∑ h
активации f
Вывод (о или 1)
i=0
которой будет равен или 1 0
в зависимости от того, является ли
взвешенная сумма положительной или отрицательной.
А почему используется
сигмоидная функция?
Сигмоидная функция
Входной слой
Выходной слой
Скрытый слой
Если провести аналогию с живыми
организмами, то входной слой -
это клетки, которые реагируют
на внешние раздражители, скрытый слой -
клетки, которые передают сигналы,
Это нейронная сеть
а выходной слой - клетки мозга,
с Прямым расПространением.
которые классифицируют сигналы.
Вход Дождь!
Выход
...
но
лод
Модель, сигнал й
ыты
Хо
в которой может
С к р ло й
только идти вперед. с мок
о
Пр
Да.
Все элементы соединены Сумма весов
с соседними слоями,
но без обратной связи.
Сигнал идет от входа
к выходу в прямом
направлении.
Функция
Через три слоя? активации
Вес
Входной Скрытый Выходной
слой слой слой
4.1. нейроннаЯ СеТь
105
Если же классификация ведется по нескольким
категориям, то количество выходных элементов
Тогда в качестве
совпадает с количеством классов. В таком случае
вероятно, что большое количество элементов
функции активации f(h)
используется
на выходном слое выдаст значение, близкое к 1.
не сигмоида,
а функция Softmax.
exp(hk)
gk = c
∑ exp(hj)
j=1
h
Здесь k - сумма зарядов на выходе из скрытого
слоя, которая соответствует количеству элементов
выходного слоя и количеству классов . k
Величина взвешенной
суммы зарядов на входе
выходного слоя нейронной
сети Функция softmax
Функция max
Случай 1: классы
более-менее равны
Cкрытый
слой 1
Cкрытый
слой 2
уг
у
Поговорим о методе обратного распространения ошибок. Пусть
обучение ведется в нейронной сети с архитектурой, как на ри-
сунке ниже:
х1
Вес w
Выход g
Взвешенная Правильный
х2 сумма h результат y
х3
Вход х Скрытый
слой 2
1
E(w) º ∑ (g − y )2. (4.1)
2 xi ÎD i i
Здесь w обозначает всю сумму весов нейронной сети. Используя описанный в гла-
ве 2 метод градиентного спуска, найдем один вес w из весов w и, регулируя его ве-
личину, снизим ошибку.
∂E(w)
w¬w–η . (4.2)
∂w
Далее найдем частную производную по w функции ошибки E(w), используя метод
градиентного спуска. В этом случае изменение веса w изменит и выход g функции
активации. Используя формулу дифференцирования сложной функции, получим
следующее выражение:
∂E(w) ∂E(w) ∂h
= . (4.3)
∂w ∂h ∂w
глава 4. глубокое обуЧение
108
После вычисления второго множителя в правой части формулы (4.3) из определе-
ния суммы весов h можно получить значение выхода предыдущего слоя в сочета-
нии с весом w. Первый множитель можно записать, как показано ниже, с исполь-
зованием производной. После вычислений у нас получится величина ошибки ε.
∂E(w) ∂E(w) ∂g
ε= = . (4.4)
∂h ∂g ∂h
В формуле 4.4 второй множитель справа – это производная функции активации.
Поскольку в качестве функции активации используется сигмоида, то это g(1 – g).
Значение первого множителя справа зависит от того, между какими слоями вес
определяется. Если w – это вес от скрытого слоя к выходному, то первый множи-
тель – это производная функции ошибки.
∂E(w)
= g – y. (4.5)
∂g
С другой стороны, если w – это вес от входного слоя к скрытому, то g в первом мно-
жителе – это выход скрытого слоя, и его величина будет влиять на выход выходно-
го слоя h. Обычно выходных слоев много, и их обозначают hj, где j – номер слоя,
и первый множитель уравнения (4.4) примет такой вид:
4.2. обуЧение меТодом обраТного раСПроСТранениЯ ошибок
109
Расчет во время обучения
(обратное направление)
сердит сердит
ся сердится ся сердится
Элемент Учительский
Элемент выходного слоя сигнал
скрытого слоя
Ошибка
глава 4. глубокое обуЧение
110
4.3. вызовы глубокого обучения
т
Так, а теперь поговорим о глубоком обучении яне у
т ук
(deep learning) как о многослойной р
нейронной сети.
Да, учитель!
Мы будем говорить о том, что таится
в глубине нейронных сетей?
Хорошо!
Почему?
4.3. вЫзовЫ глубокого обуЧениЯ
111
4.3.1. Проблема глубокой Казалось бы, что если увеличить
нейронной сети количество скрытых слоев
в нейронной сети с прямым
обучением, как на картинке, то ее
Так, для начала - эффективность тоже вырастет, и она
проблема… сможет выполнять разные задачи.
Проблема исчезающего
Посмотри на график,
градиента...
как она себя ведет
в реальной жизни.
Проблема
исчезающего градиента?
Максимальный
S¢(x) градиент - 0,25.
Да.
Это сравнительно высокое
значение появляется, только
когда входные сигналы равны 0
или близки к нему. А в остальных
случаях градиент близится к .0
Ошибка
Объект
корректировки Однако?
Я и этого не понял!
Входной Скрытый
слой слой
сжи
ма ет Обучение методом обратного распространения ошибок
Скрытый слой 1
Копия
Входной слой
входного слоя
Небольшое
количество элементов Не может повторяться
глава 4. глубокое обуЧение
114
После того как настроены веса
между входным слоем и скрытым
1
слоем , они фиксируются, затем
обучение ведется между скрытым
слоем 1
и скрытым слоем , 2
и так повторяется вплоть
до выходного слоя.
Извле ч ем
важные
Входной слой Копия признаки!
Скрытый скрытого
слой 1 слоя 1
Скрытый
слой 2
Если не извлекать
признаки, то, поскольку количество
элементов (узлов) уменьшается
Завершение Объект по мере удаления от входного слоя,
настройки настройки информация не сохраняется.
Метод
предварительного
обучения
Сумма
весов Функция
xd wd активации
Вход
Вместо сигмоиды, о которой мы говорили, используется
усеченная линейная функция, где . f(x) = max(0, x)
Элемент, который использует эту функцию,
называется блоком линейной ректификации (ReLU).
В отличие от сигмоиды,
1
градиент равен .
НЕТ
е
е льно
в а ри т
Пре д у чение
Фух
об
глава 4. глубокое обуЧение
116
4.3.4. Хитрости многоступенчатого обучения
3. как избежать переобучения
А как работает
Если в модели есть этот метод?
параметры с большими
В глубоком обучении,
весами, они могут
кроме проблемы
слишком хорошо
исчезающего объяснять примеры
градиента, есть еще в данных для обучения.
и проблема
переобучения.
Чтобы избежать
переобучения, можно
использовать метод
Прореживания Обучение ведется
(Dropout), при котором путем исключения
переобучение случайных нейронов.
происходит реже,
а универсальность
Переобучение системы повышается. Обучение путем
исключения случайных
элементов?
Исключение
1
–0.8 1
х1 –0.8
0.9 х1
∑ h
∑ h
0.1
0.1
х2 h = 0.9x1 + 0.1x2 − 0.8
х2
Хотя оба элемента – и x1, и x 2 – важны, Поскольку любой входной элемент во время
небольшая разница во время обучения обучения может исчезнуть с определенной
приводит к большой разнице в весах вероятностью, значения весов выровнены так,
в окончательном результате. Если величина x1 что только один из них даст правильный ответ.
в неизвестных данных будет даже ненамного Значения на входе в неизвестных данных
меньше, это может привести к ошибочной могут немного меняться, но это не важно.
идентификации.
117
Но почему
при использовании метода
прореживания не происходит
Когда логистическая
переобучения?
классификация ведется уже
обученной нейронной сетью,
Появление
вес увеличивается в раз. p градиента
Производится обучение
нескольких блоков нейронной сети,
результаты усредняются.
1
Сигмоидная функция Распределение
–0.8 h
х1 0.5
Существует теория,
∑ h что, во-первых, благодаря снижению
степени свободы происходит
0.5 регуля ризация, а во-вторых, градиент
х2 h = 0.5x1 + 0.5x2 − 0.8 остается таким же, даже несмотря
на то, что распределение взвешенной
суммы весов h
на входе на узел растет.
глава 4. глубокое обуЧение
118
Это метод специализации заданий в структуре нейронной
сети. Примером специализированной нейронной сети служит
сверточная нейронная сеть, которая используется
при распознавании изображений.
Распознавание
лиц
Выходной
Входной слой слой
Нейронная
сеть
Рассмотрим, как
работает сверточный При наложении фильтра
слой при помощи выделяется паттерн, например фильтр,
наложения фильтра. как на изображении, представляющий
собой маленькую картинку , так? 3×3 Так.
Развертка изображения
по пикселям
Значение изображения
конвертируется в
2 2
∑ ∑ xi+p,j+qhpq
p=0 q=0
Фильтра?
Фильтр выделения
края h
Данные изображения x
Фильр изображения накладывается на каждый
пиксель его развертки, и из изображения В вертикальном
выделяется паттерн. В этом примере фильтр направлении? но я вижу
выделения края будет реагировать только ряды цифр:
на изменение цвета в вертикальном
–1 1
, 0
и .
направлении.
Так? Да.
Наложение
Вижу!
Изображение Плоское Фильтр
изображение
А что, если поменять значения
в центральной вертикальной полосе
фильтра?
Наложение
3 же больше, чем ? 0
При наложении фильтра только вертикальная
полоса будет иметь большие значения.
Значит, можно выделить паттерн.
Понятно.
будет 0.
Да!
Даже если у нас будет
горизонтальная полоса, то все
А если хотим выделить
равно при перемножении и сложении
другой признак, то нам
участков с одинаковой мощностью
лучше поменять фильтр?
–1
( справа и –1слева) получится . 0
Иными словами, фильтр выделения
края не сможет выделить паттерн.
32 f
Распознавание
горизонтальной
прямой
Повторение свертки
Входное и пулинга
изображение
f
Распознавание
диагонали Информация после
понижающей
Фильтры Совокупность точек, где был
передискретизации
обнаружен паттерн фильтра
(после использования
Свертка функции активации)
Пулинг
122
То есть фильтры точно Да. Но на следующем слое пулинга
так же выделяют необходимо сжать полученные данные,
паттерны. отрегулировав признаки.
Это как?
Выражение,
Информация о том, которое собирает
Информация о том, всю информацию
что здесь есть что в этой области
наклон справа вниз есть наклон справа
вниз
Входное
изображение Фильтр Самое
большое
Слой свертки значение Слой пулинга
Чтобы ты понял,
как работает сверточная Для этого необходимо
нейронная сеть, большое количество фотографий.
продемонстрируем И где можно его найти?
высокоэффективное
распознавание картинок.
Действительно.
Да!
глава 4. глубокое обуЧение
124
Для кодирования глубокого обучения в Python лучше всего использо-
вать библиотеки.
import keras
4.3. вЫзовЫ глубокого обуЧениЯ
125
Поскольку обычно распознаются цветные изображения, в одном
изобра жении будет трехмерный тензор (количество пикселов по вер-
тикали × количество пикселов по горизонтали × значение цвета),
а в данных для ввода будет четырехмерный тензор, к которому доба-
вится количество изображений.
глава 4. глубокое обуЧение
126
from keras.utils import to_categorical
Y_train = to_categorical(y_train)
Y_test = to_categorical(y_test)
4.3. вЫзовЫ глубокого обуЧениЯ
127
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 26, 26, 16) 160
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 13, 13, 16) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 11, 11, 32) 4640
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 5, 5, 32) 0
_________________________________________________________________
fl atten_1 (Flatten) (None, 800) 0
_________________________________________________________________
dense_1 (Dense) (None, 128) 102528
_________________________________________________________________
dense_2 (Dense) (None, 10) 1290
=================================================================
Total params: 108,618
Trainable params: 108,618
Non-trainable params: 0
_________________________________________________________________
глава 4. глубокое обуЧение
128
model.compile(loss = 'categorical_crossentropy',
optimizer = 'rmsprop',
metrics = ['accuracy'])
model.fi t(X_train, Y_train, epochs=5, batch_size=200)
score = model.evaluate(X_test, Y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
Epoch 1/5
60000/60000 [==============================] - 13s 224us/step - loss: 0.2883 -
acc: 0.9130
Epoch 2/5
60000/60000 [==============================] - 13s 210us/step - loss: 0.0763 -
acc: 0.9765
Epoch 3/5
60000/60000 [==============================] - 14s 239us/step - loss: 0.0516 -
acc: 0.9836
Epoch 4/5
60000/60000 [==============================] - 14s 238us/step - loss: 0.0384 -
acc: 0.9874
Epoch 5/5
60000/60000 [==============================] - 14s 235us/step - loss: 0.0306 -
acc: 0.9906
Test loss: 0.03475515839108266
Test accuracy: 0.9878
4.3. вЫзовЫ глубокого обуЧениЯ
129
Да, в целом понял.
Ну что, Извините, что занял
все понятно? много времени.
Ничего страшного,
я люблю повторять
материал, когда
кого-то учу.
Спасибо!
ще
лк
Удачи!
по
ка
- по О!
ка
сообщение
О т компьютерщиков,
пришло.
ч то ли...
ты
к
!
нь
тык
ы
дз
ОАО
н о С а як а о т
ия
Г-же М ча с т ие
г о д а р им з а у ле м
Б ла иш
. Мы п р и я н о.
в тес те таты г-же М
р е з у ль
А…
глава 4. глубокое обуЧение
130
щелк
кли
к
клик
Та-а-а-к.
Я проголодался.
Зв
по он
ты к
те ит
леф
ты
ону
к
4.3. вЫзовЫ глубокого обуЧениЯ
131
Я же недавно
Что?
тебя угощал!
Да? Что?
Это Хасимото!
Как-то маловато
из
Го л е ф
за мою помощь...
те
ло он
с а
Это Тебя.
Уговори их
на 98 %,
помощник!
А-алло!
А, Киёхара-сан! Здравствуйте.
Вы о сортировке винограда?
Все настроили?
Ха-ха-ха, Киёхара-сан,
Да, но точность и 98 % хватит.
составляет 98 %. Что?
98 %?!
Люди на 5 % ошибаются,
так что все в порядке!
Ну…
Мы бы хотели ее
еще увеличить,
если можно...
глава 4. глубокое обуЧение
132
Спасибо за вашу усердную работу!
Вы нас очень выручили!
Да нет,
спасибо вам…
ты к
к ты
Молодец, Киёхара!
Пошли ужинать...
Ну пошли…
Жаль я не смог
Как важно, ч то сегодня
улучшить
я услышал «спасибо»
производительность
до предела… Буду стараться.
Быстрей, Киёхара.
к
ты
иду!
В кабинете у Саяка (5)
Математическое повторение (4)
Ну, надо было мне его сначала научить как следует... Но хоро-
шо, что он исправился.
глава 4. глубокое обуЧение
134
Сегодня мы говорили о глубоком обучении. Но это на практи-
ке выглядит страшно.
в кабинеТе у СаЯка (5). маТемаТиЧеСкое ПовТорение (4)
135
Ага. Эта двухмерная фигура, которую можно представить в
виде матрицы.
Это интересно.
глава 4. глубокое обуЧение
136
Поскольку красный, зеленый и синий представлены двумер-
ными массивами одного размера, то если их сгруппировать,
получится трехмерный массив?
в кабинеТе у СаЯка (5). маТемаТиЧеСкое ПовТорение (4)
137
Если у нас видео, то изображения выстроены по оси времени.
И чтобы его обработать, 4D-мерный тензор становится… 5D?
Да!
глава 4. глубокое обуЧение
138
глава 5
ансамблевые
методы
Будем использовать
несколько
классификаторов!
тук
тук Заходите!
Извините...
ту
тук к
Скажи
Это Киёхара-кун? пароль!
Э...
Да. «пароль».
глава 5. анСамблевЫе меТодЫ
140
Проходи! Это от фермеров,
что сегодня? о которых я говорил.
они мне винограда
надарили.
ого, сколько
коробок.
рь
ве
д
ет
ва
ы
кр
от
Вин
ог р
ад
Вин
ог р
ад
Вин
ог р
ад
О, правда?
Сэмпай!
не
Конечно!
рв
нич
ае
Угощайтесь.
т
М-м?
Спасибо.
Ее все знают.
гра д
Вино
Выглядит аппетитно.
141
Ну что, получилось Да, и я понял, о чем вы тогда
сортировать виноград? говорили, - что иногда человеческие
способности не идут в сравнение
с машинным обучением.
Ага.
Конечно, Киёхара-кун!
глава 5. анСамблевЫе меТодЫ
142
М-м-м. А у тебя есть время?
А разве ты не занят?
Переоткрыть
сайт...
Да.
Не хочешь немного
поучиться?
Конечно!
п
то
...время.
Э… Вы переоделись?
ая!
мил
- м- я!
М а
мил
А, конечно… да...
э...
ся
ет
ва
Я сходила
жи
переодеться.
а
дс
по
Черт! Так… ки
Вся уверенность пропала. оч
начнем урок?
я ет
Да!
а вл
ет
ыв
а а пр
пи
с
а по
за а
а
а
а
а
глава 5. анСамблевЫе меТодЫ
144
Да… хотя глубокое обучение вполне
успешно справляется с классификацией
Сегодня поговорим данных, связанных со звуком,
об ансамблевых изображениями или естественной речью,
методах! необходимо смотреть,
как оно будет работать
со сложными признаками
в каждом отдельном случае.
Отношения между
бл
Как это?
145
Нет! Нет! Нет!
ба м !
м ! ба
5.1. бэггинг
Есть три секрета,
которые используются
в ансамблевых методах,
пе
ме рвы
и первый из них -
бэггинг!
то й
д
угу
глава 5. анСамблевЫе меТодЫ
146
Первая мысль: чтобы сделать Но, наверное,
алгоритмы с отличающимся это очень трудно -
поведением, нужно использовать подготовить разные
несколько отличающихся наборов данные для обучения?
данных для обучения.
Д ан
д ля об ные
у че н и
я
е
Д а н н ы н ия
у че
д ля об
Данные
для обучения
Выборка с возвращением?
Результат 1 Результат 2 Результат m
Мажоритарное голосование
(majority vote) При этом методе данные,
попавшие в выборку,
Результат
записываются и возвращаются.
Какие-то данные могут
попасть в выборку много раз,
а какие-то - ни разу.
Давай посчитаем, пе р
ево
насколько при использовании этого метода стр рачи
будут отличаться данные в разных выборках! ани ва е
цу т
да!
Допустим, в наборе данных есть N отдельных элементов. Какова веро-
ятность, что один элемент не попадет в выборку?
1
Если элементов N, то вероятность того, что он попадет в выборку, – .
N
1
А вероятность, что не попадет, – (1 – ).
N
глава 5. анСамблевЫе меТодЫ
148
Какой метод машинного обучения мы
используем для создания классификатора? В принципе, любой метод
может подойти, но алгоритм,
который создает классифи-
катор, будет зависеть от
нестабильности, иными
словами, он будет
чувствителен к разнице
данных для обучения.
большинство
лачно Погода
Высокая
ность
Стандартная
Ветер Об-
лачно
Да
голосов
Есть Нет Ветер
Нет Да Нет Да Есть Нет
Нет Да
Ого!
вто
от бэггинга.
рой
мет
од
5.2. CлуЧайнЫй леС
149
Строится дерево решений
по классификаторам
для каждого набора данных.
выбирается заранее определенное количество
признаков из всех, а уже в них ищется признак
с максимально эффективным разделением.
Выбирается условие
для деления данных
Возраст Уровень глюкозы
Давление ИМТ* в крови
Извлекается случайное
количество
Уровень глюкозы
Возраст Давление ИМТ* в крови
Выбираются признаки с высоким Не используются
информационным выигрышем * Индекс массы тела.
лк
к
ще
не
чи
чик
Именно!
150
Используя метод случайного леса,
можно специально применять переобучение,
Од-на-ко. чтобы построить максимально
отличающиеся деревья!
достно
ра
Од-на-ко? Что?
Именно!
ет
и ра
б
за
5.2. CлуЧайнЫй леС
151
Потом для отдельных наборов
данных случайным образом
Сначала подсчитывается определяется набор признаков,
классифицирующая из них выбирается признак
способность каждого с самой высокой способностью
признака, и затем выбирается классификации, и дерево растет.
признак с самой высокой.
Признак
Случайный выбор
Признак
Классификатор m
Классификатор 1
Классификатор 2
x2 x2 x2
x3 x3 x3
А как настраивается
вес данных?
xn xn xn
Результат 1 Результат 2 Результат m Так, чтобы сумма весов
правильно классифицированных
Взвешенное голосование данных и сумма весов неправильно
классифицированных данных
становились одинаковыми.
Результат
Учебный алгоритм
классификатора, который
используется в бустинге, должен
в основном применять веса
данных в качестве критерия
для создания нового
классификатора.
5.3. буСТинг
153
Иными словами, если в исходных
данных для обучения много
В случае метода AdaBoost
ошибок, то надежность
классификатор создается
классификатора, созданного
на основании ошибок на основе этих данных, для
на предыдущем этапе, так? неизвестных данных на входе
будет увеличиваться.
надежность
Поскольку в AdaBoost
Как определяется к классификаторам
результат классификации? на предыдущих этапах один
за другим добавляются
классификаторы, которые
правильно классифицировали
ошибочные данные, его
эффективность повышается.
Ввод
Находим такие Находим такие
a2 и h2, чтобы a3 и h3, чтобы Бустинг, основанный
x1 минимизировать минимизировать на этой идее, называется
Классификатор m
Классификатор 1
Классификатор 2
потери, потери,
рассчитанные рассчитанные градиентным бустингом.
по формуле по формуле
x2 F2 = h1 + a2h2. F3 = h2 + a3h3.
x3
h1 h2 hm
a2 am А теперь немного
xn
Результат 1 Результат 2 Результат m
покодируем!
Взвешенное голосование
Результат
глава 5. анСамблевЫе меТодЫ
154
Возьмем данные diabetes.arff из инструментов для машинного обуче-
ния Weka. Они близки к данным, необходимым для сайта с тестом
определения вероятности диабета.
import numpy as np
from scipy.io import arff
from sklearn.ensemble import BaggingClassifi er, RandomForestClassifi er,
AdaBoostClassifi er, GradientBoostingClassifi er
from sklearn.model_selection import cross_val_score
Файл формата arff будет прочитан как модуль arff scipy. Поскольку
признаковые описания и метки правильных ответов находятся в од-
ной строке, каждый можно сохранить в отдельный массив numpy.
5.3. буСТинг
155
for e in data:
e2 = list(e)
X = np.append(X, [e2[0:8]], axis=0)
y = np.append(y, e2[8:9])
глава 5. анСамблевЫе меТодЫ
156
Ну, на сегодня все
про ансамблевые методы. Удачи Лучше бы я в тот раз
с открытием сайта! все дослушал…
Наверное, надо
бежать, потому что
Спасибо! боюсь снова
услышать, что я ей
как «братик».
ки
оч
т
ае Я очень
и м
сн благодарен
вам, сэмпай!
Нет-нет,
это я сама меня взяли на работу!
вызвалась тебя
учить!
Кстати, мне
недавно пришло
письмо...
Письмо?.. Что?
Ну это же прекрасно!
И после выпуска
Поздравляю!
я перееду в Токио.
!
уст
ал о
Да…
но я думала, что не возьмут.
Конечно, будет трудно
встречаться, и я не смогу
тебя больше учить.
Я жалею об этом,
потому что ты хороший
ученик.
'
А теперь я заплачу.
Нет уж!
т
рае
би чет
за с
То младший
Это я должен,
товарищ,
плата за обучение! Нет!
то братик,
Но ты же уже заплатил
до этого, не хочу,
чтобы ты постоянно
ет
меня угощал! ира
за б чет
с
то ученик.
от
но не хочу
кр
выглядеть лучше,
ы
ва
чем я есть.
ет
две
рь
Спасибо!
ст
ы-
ы-
ы-
ыд
но
!
Спасибо…
Сэмпай! Большое.
Кажется,
будто бы тебе
не понравилось.
Отпразднуем мою
новую работу
как-нибудь?
Ну да, ну да.
5.3. буСТинг
159
В кабинете у Саяка (6)
Математическое повторение (5)
Ну, я поняла, что даже если много людей дают одинаковый от-
вет, они не умнее одного, который ответит так же. Но если мы
соберем много людей, умных и не очень, и они будут давать
разные ответы, они не поссорятся?
глава 5. анСамблевЫе меТодЫ
160
Правда?
в кабинеТе у СаЯка (6). маТемаТиЧеСкое ПовТорение (5)
161
Тогда число способов выбрать 2 из L будет LС2, и, значит, у нас
будет LC2e2(1 – e)(L–2).
Вероятность того,
что более половины
ошиблись
глава 5. анСамблевЫе меТодЫ
162
Если вероятность ошибки каждого классификатора по отдель-
ности 20 %, но мы используем все 11 классификаторов, то веро-
ятность ошибки составит всего 1,2 %.
В целом да. Жаль, что ты, Сая, уезжаешь в Токио. Там будет тебе
одиноко...
в кабинеТе у СаЯка (6). маТемаТиЧеСкое ПовТорение (5)
163
Ну… ну что он мне как братик, но это было еще тогда...
глава 5. анСамблевЫе меТодЫ
164
глава 6
обучение
без учителя
Кластеризация?
Разложение матрицы?
Киёхара-кун, можно
на минуточку?
Отдел здравоохранения
и благосостояния так…
Да, директор.
ет
вста
У сайта, который
определяет вероятность
заболевания диабетом, Не стоит. В этом году,
хорошие отзывы. как вам известно,
я выхожу на пенсию.
ТА
К
слишком сложное
АТ
Что за дело?
С-спасибо!
глава 6. обуЧение без уЧиТелЯ
166
Каждый месяц наш В этой рассылке
департамент устраивает я советовал им
рассылку для одиноких отдельные мероприятия,
пожилых людей. основываясь
на их предпочтениях.
т
л ю би
цветы
Весенняя распродажа
растений такого-то
Хотелось бы, чтобы
ч исла в «З еленом
рассылка продолжалась
саду»
и после того, как
я уйду на пенсию.
Вы же не сможете
До этого я отправлял все все это передать просто так
самостоятельно, но хотелось бы своему преемнику?
как-то систематизировать
это дело...
Да, и я подумал,
может вы, Киёхара-кун,
сможете что-нибудь сделать.
Ну…
Конечно!
Данных для обучения нет, Спасибо, Киёхара-кун!
поэтому это обучение
без учителя.
167
Что-то ты недавно стал
учиться во время обеда...
Так…
Угу.
м
хру Директор сказал, что отзывы на сайт
с прогнозами диабета хорошие, и попросил
сделать кое-что, для чего надо обучение
хр без учителя...
ум
ча
в к
что?
в к
ча ча
в к
что?
нервничает
глава 6. обуЧение без уЧиТелЯ
168
Ну, я могу спросить
у товарища по игре, который
помог мне с журналом Неделю спустя
про машинное обучение.
н ь
дзи
м-м-м?
Сообщение.
О, это от
Саяка-сэмпай!
н ь!
к дзы
ты
тык Добро
пожаловать!
С а я к а-
с эм п а й
Извини
, чт о о тв
Не хоче ле к а ю
в к афе п ш ь вс т р
о с ле р а е т и т ь с я
боты?
Что-то случилось?
Сэмпай!
Извините, что опоздал!
И сегодня она тоже милая!
п
то
топ
Ничего
страшного! Ну...
Ты экстрасенс,
что ли?
Киёхара-кун,
у тебя опять проблемы
с машинным
обучением?
А?
Я поняла,
что ты очень устал.
Расскажите мне
Ну…
про обучение
без учителя.
Ага!
На самом
деле...
глава 6. обуЧение без уЧиТелЯ
170
Я попытался сам найти
информацию про кластеризацию
и разложение матрицы.
Сэмпай,
вы мне расскажете
Направление верное! про обучение без
учителя, правда?
Хорошо!
ул
Конечно! ы Ага!
ба
ет
ся
о
стн
до
ра
Я же рада видеть,
что ты чему-то учишься!
171
6.1. кластеризация
Это очень широко.
Один из методов обучения Попробуй определить
без учителя - кластерный анализ - кластеризацию, используя
используется для разделения слово «расстояние».
данных по группам.
сла
дос
р, ти
ри ме
п
На
Ну...
И можно сказать,
Данные, которые объединяются в одну группу, что их это
должны находиться на близком расстоянии объединяет.
друг от друга.
рядом
Расстояния малы,
можно объединить
Расстояния между
элементами велики,
нельзя объединить
Именно!
глава 6. обуЧение без уЧиТелЯ
172
...когда новые кластеры
Кластеризация делится на иерархическую,
создаются путем деления
когда новые кластеры создаются путем
более крупных кластеров
объединения более мелких кластеров
на более мелкие и дерево
и дерево создается от листьев к стволу;
создается от ствола
и на разделяющую (дивизивную)...
к листьям.
Разделяющая кластеризация
Иерархическая кластеризация
Вот так?
Похоже?
Похоже?
Объединение
кластеров
x1
Один кластер
Если записать операцию
x2
объединения кластеров в виде
дерева, как показано на рисунке,
то сначала количество кластеров x3
будет равняться количеству
данных N
, а далее уменьшаться
по одному за каждую операцию. x4
Кластеры постепенно
объединяются в один. x5
В принципе, можно получить
любое их количество. Если надо
получить три кластера, то лучше x6
остановиться здесь.
Надо остановиться здесь
глава 6. обуЧение без уЧиТелЯ
174
6.1.2. Разделяющая кластеризация
Ну...
6.1. клаСТеризациЯ
175
Один элемент данных может быть разделен по кластерам одним из
двух способов. Два – из четырех. А три, получается, из восьми.
Повторяем пункты и
глава 6. обуЧение без уЧиТелЯ
176
А какая у этого метода функция оценки?
6.1. клаСТеризациЯ
177
Кстати, существует так называемый Функция распределения
EM-алгоритм, основанный вероятности? Сложновато.
на функции распределения
вероятности, который помогает
не только разделить данные
по кластерам, но и генерировать
новые данные в каждом классе.
В общем,
ее может легко объяснить
гипотеза распределения
правильных ответов.
При перевычислении
распределения
добавляется вес 0,2 0.2ϕ1 + 0.8ϕ2
бам! бам!
Но сначала, используя метод
k-средних, мы случайным образом
% %
20 80
определяли средний вектор
и на основании его строили
кластеры, правда?
Ну… да.
И как удалось найти
это распределение?
k
Затем, как и в методе -средних, вычисляются
параметры кластеров, то есть средний вектор
и ковариационная матрица.
Все так.
6.2. разложение матрицы
Я обнаружил, что это
Поговорим часто используется
о разложении в рекомендательных системах.
Почему
матрицы. ты хотел
использовать этот
метод для рекомен-
дации событий
пожилым людям?
Куплю!
Что из этого?
Рекомендация?
Пожилые Данные о том, что
люди N пользователей купили
продукт марки M
, можно
записать в виде матрицы
N×M .
Женщины
Местные
Любят
сладости
глава 6. обуЧение без уЧиТелЯ
180
w1n Женщины
ν1m
wkn
Любят νkm
сладкое
6.2. разложение маТрицЫ
181
M видов продуктов Матрица видов продуктов М×K
N пользователей
1 1
min ||E||2Fro = min ||X – UVT||2Fro
U,V 2 U,V 2
глава 6. обуЧение без уЧиТелЯ
182
Это можно решить с использованием сингулярного разложения, ко-
торое изучается в линейной алгебре, но для этого надо заменить X на
0, если значение X не указано. Несмотря на то что никакой информа-
ции поначалу нет, далее она появится, и она будет отличаться от изна-
чально введенных данных.
6.2. разложение маТрицЫ
183
Суть в том,
Молодец.
что большинство
А ты слышал о неотрицательном
элементов матрицы X
матричном разложении?
неотрицательные.
Допустим, X
- количество товаров в магазине, 1 - это вероятность того,
и покупатель купил в магазине один товар. что этот покупатель:
И это одно число обозначает покупателя,
который купил один товар.
...женщина.
...сладкоежка...
...сидит на диете...
Можно объяснить,
что товар - это сумма всех
вычислений вероятностей, связанных
с этими скрытыми факторами.
Действительно,
Если U и V
могут принимать произвольные
значения, то для уменьшения ошибки могут
можно же объяснить
потребоваться крайние значения.
его как вероятность… А тут они ограничены
до неотрицательных.
А вероятность
не может быть
отрицательной!
глава 6. обуЧение без уЧиТелЯ
184
А про Factorization Machine
Да,
ты слышал?
эта модель вычисляет значение,
которое можно оценить по внутреннему
произведению и U V
в каждом измерении и сумме
весов элементов произвольного измерения.
Взаимное влияние:
внутреннее
Постоянная произведение k-мерных
векторов из латентных
факторов
Ура! Спасибо!
Ну что, хватит?
Теперь я могу
проводить обучение
модели без учителя,
без своего учителя, -
л енно
Да! Отлично! ушев
воод
6.2. разложение маТрицЫ
185
Извините…
неудачная шутка
Ну…
за п
и
на е
тся
т
ае
м
и к и
сн оч
братик...
Извини
да! за «женщину»,
«местную»,
«любит сладости»
в моем примере.
6.2. разложение маТрицЫ
187
Сегодня платы за обучение Спасибо
д
не будет, мы разделим счет
зы
Да!
пополам!
дзы
нь
Хотя вы же меня многому нау ч или сегодня н ь!
!
Кстати, сэмпай, Ей очень
Ей очень идет
у вас же были другие очки. идет
в-а-ам о-о-ч-
Ей очень
идет
оче-ень
Хорошо, когда
есть такой Киёхара-кун,
переключатель. у тебя тоже есть такой Что?
переключатель?
ей очень идет!
Нет
Выберите
нужный
ответ
НАЧАТЬ
Да.
Вся прибыль
Конечно! будет
Да… помню...
пожертвована
Сэмпай!
Приятной поездки!
Спасибо!
До свидания!
В кабинете у Саяка (7)
Математическое повторение (6)
в кабинеТе у СаЯка (7). маТемаТиЧеСкое ПовТорение (6)
191
Если помнить это, то можно связать многие вещи.
глава 6. обуЧение без уЧиТелЯ
192
Ты говоришь правильно, но идея разложения матрицы не
в том, чтобы можно было восстановить предыдущую матрицу,
а сделать приближение более низкого ранга.
в кабинеТе у СаЯка (7). маТемаТиЧеСкое ПовТорение (6)
193
a b
Если у нас квадратная матрица второго порядка , то ее
c d
определитель равен ad – bc. В первой главе мы узнали, как
можно найти обратную матрицу – 1/(ad – bc), но если знамена-
тель равен 0, то найти обратную матрицу не получится!
Угу.
глава 6. обуЧение без уЧиТелЯ
194
Конечно. Поэтому это разложение по собственным числам пре-
вращается в сингулярное разложение.
M = UΣV T.
Здесь M – матрица n×m, U – матрица n×n, V – матрица m×m, Σ –
матрица n×m. Таким образом, при перемножении UΣV T полу-
чится матрица n×m.
σ1
0
Σ=
σr
0 0
в кабинеТе у СаЯка (7). маТемаТиЧеСкое ПовТорение (6)
195
Каждое сингулярное значение умножается на элементы U и V,
в результате чего получается элемент М, и, конечно, большая
величина сингулярного значения оказывает большое влияние
на определение значения М. Это сразу станет ясно, если пред-
ставить, что первое сингулярное число настолько велико, что
будто возвышается над остальными.
глава 6. обуЧение без уЧиТелЯ
196
эПилог
Знания!
Практика!
Применение
Полгода спустя…
Начальник!
Чего?
Стесняешься?
Привыкай, привыкай...
Сюда вниз,
пожалуйста.
Сам удивлен!
топ-т
о п-
то п -топ
топ топ-
Пойду-ка я поработаю.
топ-
топ-
Конечно! топ
киёхара-кун?
БУ
Х!
да что ж...
...такое!
всем
Саяка-сэмпай,
Привет!
что вы тут делаете?
Сэмпай, а что
Надо же? А? Да.
случилось с вашей
Это твоя сэмпай?
работой?
и поэтому уволилась!
Мудрое
решение
ЭПилог
200
Я была И теперь Киёхара-кун
так рада услышать, применяет полученные
Это шутка?
что Киёхара-кун от меня знания
обзавелся собственной на практике, да?
компанией. Это хорошо!
Но мы не шутим.
Взаимно! Ура!
с тобой мы справимся со всем!
Да! Конечно,
возьмем!
А я программист, Кудзё-сан?
Кудзё. Я о вас слышала.
я Мияно!
.............
Простите, не у вас ли
ник Machine learning? А у вас - Line 9?
А?
ЭПилог
202
Да!
А?
Я поблагодарил Кудзё-сан
Бинго! ура!
за эту статью. Я так и подумал,
что это вы.
Я тоже подумала!
На самом деле я играл тут
с каким-то спецом
!
ура
по машинному обучению,
поговорил с ним, и он
посоветовал мне эту книгу.
.......!
точно!
кудзё-сан!
Итак! Знания! Практика! Применение!
Постараемся
им следовать!
Да!
Ага!
Для начала
сделаем приличный офис Так, Киёхара, который
из этой комнаты! нашел работу в компании
своих хороших друзей,
стал злиться...
Да! Я пойду переоденусь
в спортивную одежду.
Не надо тут
этих разговоров!
Вперед!
я
и
от
В
Отдохну-ка я!
Кудзё-сан!
ЭПилог
204
Предметный
указатель
Ada Boost ....................................................................153 Метод кросс-валидации
Alternating Least Squares, метод ...........................183 (перекрестная проверка) .........................................85
data mining...................................................................10 Метод наименьших квадратов ..............................20
dropout, прореживание..........................................117 Метод обратного распространения ошибки ...107
EM-алгоритм ............................................................178 Метод предварительного обучения ...................113
Factorization Machine ..............................................185 Метод проверки на зарезервированных
F-мера............................................................................92 данных ..........................................................................83
ID3-алгоритм ..............................................................56 Независимая переменная .......................................17
mini-batch метод ....................................................... 54 Нейронная сеть ........................................................103
Автокодировщик .......................................................11 Нейронная сеть с прямым
Ансамблевые методы ............................................145 распространением ..................................................105
Бинарная классификация ...................................... 48 Неопределенность .....................................................59
Блок линейной ректификации ............................116 Норма Фробениуса..................................................182
Бритва Оккама ...........................................................65 Обучение без учителя ..............................................10
Бустинг .......................................................................152 Обучение с подкреплением ....................................12
Бэггинг........................................................................146 Обучение с учителем ................................................10
Вес ..................................................................................18 Пакетный метод ........................................................ 54
Входной слой.............................................................105 Переобучение .............................................................65
Выборка с возвращением ......................................147 Полнота ........................................................................91
Выходной слой .........................................................105 Пороговый логический элемент .........................104
Глубокое обучение ............................................11, 111 Правдоподобие ...........................................................52
Градиентный бустинг ............................................ 154
Проблема исчезновения градиента ....................112
Решающее дерево.......................................................55
Промежуточные способы обучения ....................10
Дискретизация .......................................................... 66
Зависимая переменная ............................................17 Разделяющая кластеризация ...............................173
Иерархическая кластеризация............................173 Разделяющая поверхность .....................................50
Информационная энтропия ..................................59 Разложение матрицы ..............................................179
Информационный выигрыш ................................ 64 Регрессия .....................................................................16
Истинный пример .....................................................87 Регуляризация............................................................23
Квадрат ошибки.........................................................20 Ридж-регрессия .........................................................23
Классификация ..........................................................47 Сверточная нейронная сеть .................................119
Кластеринг ................................................................172 Сигмоидная функция ..............................................51
Количество правильно предсказанных Скрытый слой...........................................................105
ответов..........................................................................88 Слой пулинга ............................................................119
Контроль по отдельным объектам .......................86 Слой свертки ............................................................119
Лассо-регрессия .........................................................23 Случайный лес .........................................................149
Латентный фактор ..................................................180 Стохастический градиентный спуск .................. 54
Линейная регрессия .................................................18 Тестовый блок ............................................................85
Лист ...............................................................................55 Точность ...................................................................... 90
Логистическая классификация .............................49 Узел ................................................................................55
Ложный пример .........................................................87 Усеченная линейная функция .............................116
Матрица неточностей ..............................................88 Учительский сигнал ...............................................107
Машинное обучение...................................................9 Функция Softmax.....................................................106
Метод k-средних ......................................................176 Функция активации ...............................................104
205
Книги издательства «ДМК ПРЕСС» можно купить оптом и в розницу
в книготорговой компании «Галактика» (представляет интересы издательств
«ДМК ПРЕСС», «СОЛОН ПРЕСС», «КТК Галактика»).
Адрес: г. Москва, пр. Андропова, 38;
тел.: (499) 782-38-89, электронная почта: books@alians-kniga.ru.
При оформлении заказа следует указать адрес (полностью),
по которому должны быть высланы книги; фамилию, имя и отчество получателя.
Желательно также указать свой телефон и электронный адрес.
Эти книги вы можете заказать и в интернет-магазине: www.a-planeta.ru.