Skip to content

Лекція 01 · Вступ до машинного навчання ​

Перша лекція курсу відповідає на три питання: що саме означає «навчатися з даних», які бувають задачі машинного навчання і чому реальні дані майже ніколи не готові до того, щоб одразу подати їх у модель. Усі приклади ми розберемо на двох справжніх наборах — Iris і списку пасажирів «Титаніка».

Зміст лекції ​

Лекція побудована як шлях від питання «що це взагалі таке» до першої повністю навченої й чесно оціненої моделі.

  1. Що таке машинне навчання. Означення, різниця з класичним програмуванням, місце серед суміжних дисциплін.
  2. Дані та їхні дефекти. Таблиця зразків і ознак, типи ознак, пропуски, викиди, дисбаланс класів — усе на реальному наборі даних.
  3. Три режими навчання. З учителем, без учителя, з підкріпленням; регресія проти класифікації.
  4. Нотація і будова методу. Позначення курсу, трійка «модель — функція втрат — оптимізація».
  5. Узагальнення. Тренувальна і тестова помилка, розбиття вибірки, золоте правило, витік даних.
  6. Чесна інтерпретація. Кореляція та причинність, обмеження методів.

Порядок не випадковий: спершу з'ясуємо, що модель отримує на вхід, потім — що вона з цим робить, і лише наприкінці — як зрозуміти, чи можна їй довіряти.

Чого ви навчитеся ​

Після цієї лекції ви зможете:

  • пояснити, чим машинне навчання відрізняється від класичного програмування, і сказати, що саме є «результатом» навчання;
  • визначити для довільної прикладної задачі, що тут є зразком, ознакою й міткою;
  • розрізнити навчання з учителем, без учителя і з підкріпленням та навести приклад кожного;
  • відрізнити задачу регресії від задачі класифікації за типом цільової змінної;
  • побудувати конвеєр підготовки даних із заповненням пропусків, кодуванням категорій і масштабуванням;
  • пояснити, навіщо потрібні окремі тренувальна, валідаційна й тестова вибірки, і сформулювати золоте правило;
  • розпізнати витік даних і пояснити, чому кореляція в даних не доводить причинного зв'язку.

Комп'ютер бачить не зображення, а масив чисел ​

Фотографія кота для комп'ютера — це прямокутна таблиця з кількох сотень тисяч чисел, кожне з яких описує яскравість одного пікселя. Жодне окреме число не містить поняття «кіт». Проте система, навчена на мільйоні знімків, повертає розподіл упевненості: 82 % кіт, 15 % собака, решта — інше.

Ніхто не писав правила «якщо піксель 1042 темніший за піксель 1043, то це вухо». Правило виникло саме — з прикладів. Так само влаштовані пошук, машинний переклад, рекомендації й медична діагностика за знімком: усюди правило добуто з даних, а не сформульовано людиною.

raw pixel array of a cat image turned into class probabilities

Джерело: Stanford CS231n · Image Classification

Означення: алгоритми, які навчаються з даних ​

Курс дотримується двох формулювань, які доповнюють одне одного.

"What is Machine Learning? — algorithms that can learn from data." — EPFL CS-433, лекція 01a

"Using computer to automatically detect patterns in data and use these to make predictions or decisions." — UBC CPSC 340, лекція 1

Перше формулювання коротке й задає напрям: машинне навчання (machine learning) — це алгоритми, здатні навчатися з даних. Друге пояснює, з чого складається процес: комп'ютер автоматично виявляє закономірності й використовує їх для прогнозів або рішень. Ключове слово в обох — «автоматично»: закономірність не описує людина, її знаходить алгоритм.

Джерела: EPFL CS-433 · UBC CPSC 340

Дві традиції програмування ​

Найкоротший спосіб пояснити машинне навчання — порівняти напрям потоку даних.

У класичному підході ми пишемо правила самі: програма отримує дані й правила, а видає відповіді. Так працює бухгалтерія, компілятор, будь-який алгоритм сортування.

У машинному навчанні напрям обертається: алгоритм отримує дані разом із бажаними відповідями, а видає правила. Ці правила зберігаються у вигляді чисел — параметрів моделі, які в курсі позначатимемо w. Навчена модель — це і є набір знайдених правил, готовий застосовуватися до нових, ще не бачених даних.

traditional programming versus machine learning data flow

Машинне навчання серед суміжних дисциплін ​

Терміни «штучний інтелект», «машинне навчання» і «глибоке навчання» часто вживають як синоніми, хоча вони позначають вкладені одна в одну області. Штучний інтелект — найширше поняття, що охоплює й системи, побудовані на явно записаних правилах. Машинне навчання — його частина, у якій правила видобуваються з даних. Глибоке навчання — частина машинного навчання, що спирається на багатошарові нейронні мережі; йому присвячено лекції 10–14.

За походженням машинне навчання лежить на перетині трьох галузей: інформатика дає алгоритми й обчислення, статистика — моделі й міру невизначеності, предметна галузь — розуміння того, що взагалі варто прогнозувати.

machine learning inside artificial intelligence and at the intersection of three fields

Дані — це таблиця зразків і ознак ​

"[Data is] a collection of examples, and their features. Each row is an 'example', each column is a 'feature'." — UBC CPSC 340, лекція 2

Рядок таблиці — зразок (example, sample), стовпець — ознака (feature). Один зі стовпців ми оголошуємо міткою (label, target) — саме його модель має навчитися передбачати.

Вивід код запущено, вивід не редагувався
text
 survived  pclass    sex  age    fare embarked
        0       3   male 22.0  7.2500        S
        1       1 female 38.0 71.2833        C
        1       3 female 26.0  7.9250        S
        1       1 female 35.0 53.1000        S

пропуски: survived 0, pclass 0, sex 0, age 177, fare 0, embarked 2
частка вижилих: 0.384

На що дивитися: у віку бракує 177 значень із 891, у порту посадки — двох, а вижила лише 38,4 % пасажирів, тож класи нерівні.

Ознаки бувають різних типів ​

Тип ознаки визначає, що з нею взагалі можна робити: категоріальну не можна усереднювати, порядкову не можна кодувати як незалежні категорії, бо це втратить порядок.

ТипПідтипОзнака в наборі «Титанік»
категоріальнабінарнаsex — чоловік або жінка
категоріальнаномінальнаembarked — порт посадки: Шербур, Квінстаун, Саутгемптон
числовапорядковаpclass — клас каюти: 1, 2, 3 (порядок є, різниця не рівна)
числовалічильнаsibsp, parch — кількість родичів на борту
числованеперервнаage — вік у роках, fare — вартість квитка

Класифікація типів наведена за UBC CPSC 340; приклади підібрані з набору даних цієї лекції.

Джерело: UBC CPSC 340 · Exploratory Data Analysis

Набір даних лекції: пасажири «Титаніка» ​

Список пасажирів «Титаніка» — 891 запис із 15 стовпцями. Для кожного пасажира відомі клас каюти, стать, вік, кількість родичів на борту, вартість квитка й порт посадки. Передбачаємо мітку survived: вижив пасажир чи ні.

Набір цікавий не розміром, а тим, що містить одразу всі типові проблеми реальних даних — пропуски, категоріальні ознаки, викиди й дисбаланс класів. Вижили 342 пасажири з 891, тобто 38,4 %: класи незбалансовані, і модель, яка завжди відповідатиме «загинув», уже матиме 61,6 % правильних відповідей.

Дві ознаки пояснюють майже всю різницю у виживанні: серед жінок першого класу вижили 97 %, серед чоловіків третього — 14 %.

titanic class imbalance and survival rate by cabin class and sex

Джерело даних: seaborn-data · titanic.csv

Пропуски: у стовпці палуби бракує 688 значень із 891 ​

Пропущене значення (missing value) — не нуль і не нейтральне число. Це відсутність відомостей, і причина відсутності часто сама по собі інформативна.

У стовпці deck немає 688 значень із 891, тобто 77 %. Карта пропусків праворуч показує, що вони розподілені не випадково: номер палуби зафіксовано майже виключно для дорогих кают, тож сам факт «палуба відома» непрямо кодує клас каюти. Вік невідомий для 177 пасажирів, порт посадки — лише для двох.

Стовпець із 77 % пропусків зазвичай не рятують — його прибирають. Стовпець із 20 % пропусків, як age, заповнюють, бо вік справді впливає на результат.

titanic missing values per column and missingness map

Пропуски заповнюють, а категорії кодують числами ​

Модель приймає лише числову матрицю. Тому кожну категоріальну ознаку розкладають на набір нулів та одиниць — це пряме кодування (one-hot encoding), — а пропуски заповнюють медіаною для числових ознак і найчастішим значенням для категоріальних.

Вивід код запущено, вивід не редагувався
text
було (891, 7) → стало (891, 12)
числові лишились як є: age, fare, sibsp, parch
pclass   → pclass_1, pclass_2, pclass_3
sex      → sex_female, sex_male
embarked → embarked_C, embarked_Q, embarked_S

На що дивитися: сім вихідних стовпців перетворилися на дванадцять: чотири числові лишилися, а три категоріальні розклалися на вісім стовпців із нулів та одиниць.

Джерело: scikit-learn · ColumnTransformer

Що саме робить підготовка даних
Вісім справжніх рядків «Титаніка» — серед них ті, у кого бракує віку або порту посадки. Вмикайте кроки по черзі й дивіться, як змінюється таблиця: це рівно те, що виконує ColumnTransformer із коду вище.
pclasssexagesibspparchfareembarked
3maleNaN008,46Q
2maleNaN0013S
3femaleNaN007,22C
1female380080NaN
1female620080NaN
3male22107,25S
1female381071,28C
1female351053,1S
(891, 7)форма всієї таблиці
179пропусків лишилося
німодель це прийме

Поки пропуски не заповнено, NaN у таблиці — і жодна лінійна модель не навчиться: арифметика з ним дає знову NaN. Поки категорії не закодовано, стовпець sex містить слова, а не числа. Увімкніть обидва кроки — сім стовпців перетворяться на дванадцять, бо кожна категорія розгортається в набір нулів і одиниць; саме це число друкує код вище. Стандартизація нічого не додає до форми, але приводить ознаки до спільного масштабу — вік у роках і тариф у фунтах перестають конкурувати величиною. Зверніть увагу: медіана віку 28 років і найчастіший порт «S» рахуються тільки за навчальною частиною, інакше в модель просочиться інформація про тест.

Розподіли, викиди й асиметрія ​

Перш ніж навчати модель, кожну ознаку варто побачити окремо. Гістограма показує форму розподілу, коробчаста діаграма (box plot) — медіану, розкид і викиди (outliers).

Вік пасажирів розподілений майже симетрично навколо медіани 28 років, з окремим сплеском на дітях до 10 років. Вартість квитка поводиться інакше: розподіл різко асиметричний, за межі вусів виходять 79 значень (20 у першому класі, 7 у другому, 52 в третьому), максимум становить 512 фунтів проти медіани 14,5. П'ятнадцять квитків коштували рівно нуль — таке значення треба перевіряти окремо, перш ніж вважати його помилкою введення.

Викид не завжди треба видаляти. Спочатку треба зрозуміти, звідки він узявся: помилка приладу, помилка введення чи справжнє рідкісне спостереження.

titanic age histogram and fare box plot with outliers

Зведені числа не замінюють графік ​

Класичний аргумент проти того, щоб довіряти самим лише зведеним статистикам, — квартет Анскомба. Чотири набори по одинадцять точок мають однакове середнє за x (9,0) і за y (7,5), дисперсії, що збігаються до другого знака, однакову кореляцію 0,816 і дають ту саму пряму найменших квадратів.

Виглядають вони при цьому цілком по-різному: перший набір справді лінійний, другий описує параболу, у третьому одна точка викривляє пряму, у четвертому взагалі немає залежності — лінію тримає єдине спостереження праворуч.

Звідси практичне правило курсу: дивитися на дані очима — не етап, який можна пропустити заради економії часу.

anscombe quartet four datasets with identical summary statistics

Джерело: Anscombe F. J. Graphs in Statistical Analysis, 1973

Навчання з учителем: мітки відомі заздалегідь ​

Навчання з учителем (supervised learning) — режим, у якому кожен зразок тренувальної вибірки супроводжується правильною відповіддю.

"Our goal is, given a training set, to learn a function h : X → Y so that h(x) is a 'good' predictor for the corresponding value of y." — Stanford CS229, вступний розділ

У курсі ми позначаємо цю функцію f, а не h; у літературі її також називають гіпотезою (hypothesis). Задача розпадається на два типи залежно від того, яких значень набуває y: неперервних — це регресія, або невеликої кількості дискретних — це класифікація.

Друга розвилка стосується мети. Прогнозування (prediction) відповідає на питання «яка вага людини зростом 170 см», інтерпретація (interpretation) — на питання «чи вищі люди важчі». Одна й та сама модель може служити обом цілям, але вимоги до неї різні.

Джерело: Stanford CS229 · Main Notes

Регресія передбачає число ​

"Regression is to relate input variables to the output variable, to either predict outputs for new inputs and/or to understand the effect of the input on the output." — EPFL CS-433, лекція 01b

Дані регресії — пари (xn,yn), де yn — числова відповідь. Модель шукає функцію, для якої yn≈f(xn) для всіх n одночасно.

На рисунку — найпростіший випадок з однією ознакою: пряма, підігнана до тренувальних точок ліворуч, застосовується до нових точок праворуч. Видно і головне обмеження: точки не лягають на пряму, тож будь-який прогноз матиме похибку, і завдання полягає в тому, щоб зробити її якомога меншою на нових даних. Побудові такої прямої повністю присвячена лекція 02.

linear regression fitted on train points and applied to test points

Джерело: scikit-learn · Ordinary Least Squares

Класифікація передбачає категорію ​

"When y can take on only a small number of discrete values … we call it a classification problem." — Stanford CS229, вступний розділ

Класифікатор ділить простір ознак на області, по одній на клас. Поверхня між областями називається межею рішення (decision boundary), і саме її форма відрізняє методи один від одного.

На рисунку десять різних класифікаторів працюють на трьох однакових наборах даних. Перший стовпець — самі дані, далі — межі рішень і частка правильних відповідей у правому нижньому куті кожної панелі. Головний висновок: універсального методу немає, форма межі має відповідати формі даних. Класифікації присвячені лекції 05–07.

comparison of ten classifiers on three synthetic datasets

Джерело: scikit-learn · Classifier comparison

Iris: класична задача класифікації на трьох видах ​

Набір Iris — 150 квіток трьох видів півників, для кожної виміряно чотири ознаки: довжину й ширину чашолистка та пелюстки в сантиметрах. Передбачається вид рослини. Дані зібрав Едгар Андерсон, а 1936 року їх опублікував Рональд Фішер; відтоді набір став стандартним прикладом у підручниках.

Парний графік (pair plot) показує всі пари ознак одразу, а на діагоналі — розподіл кожної ознаки окремо. Видно головне: вид setosa відділяється від решти однією прямою за довжиною пелюстки, а versicolor і virginica частково перекриваються — саме там будь-який класифікатор помилятиметься.

pair plot of the four iris features coloured by species

Джерело: scikit-learn · PCA on Iris · UCI Iris

Навчання без учителя шукає структуру в даних ​

Навчання без учителя (unsupervised learning) відрізняється однією обставиною: міток немає. Є лише xn, і алгоритм має сам знайти в них структуру.

Найпоширеніша така задача — кластеризація (clustering): розбити зразки на групи так, щоб усередині групи вони були схожі, а між групами — ні.

Ліворуч на рисунку показані справжні види півників, праворуч — три групи, які метод k-середніх знайшов за двома пелюстковими ознаками, не бачивши жодної мітки. Групи майже збігаються зі справжніми видами: скоригований індекс Ренда дорівнює 0,89. На всіх чотирьох ознаках після стандартизації той самий метод дає помітно менше — чому саме так, розберемо в лекції 08. Це важливий сигнал — структура справді закладена в самих вимірах, а не тільки в підписах до них.

iris true species versus k-means clusters found without labels

Кластеризація — це сімейство різних алгоритмів ​

Слово «кластеризація» не називає конкретного методу. Алгоритмів десятки, і вони спираються на різні уявлення про те, що таке група: віддаленість від центру, щільність точок, послідовне злиття найближчих пар.

Наслідок видно на рисунку: на однакових даних різні алгоритми дають різні відповіді. Метод k-середніх шукає округлі згустки і безпорадний на двох вкладених кільцях у верхньому рядку; DBSCAN, який спирається на щільність, розділяє кільця правильно, зате вимагає підбору радіуса сусідства.

Вибір алгоритму — це припущення про форму груп, і перевірити його можна тільки на власних даних. Детально ці методи розглянуто в лекції 08.

eleven clustering algorithms compared on six toy datasets

Джерело: scikit-learn · Comparing clustering algorithms

Зниження розмірності стискає десятки ознак у дві ​

Друга велика задача без учителя — зниження розмірності (dimensionality reduction): замінити багато ознак на кілька нових так, щоб втратити якнайменше інформації.

Мотивів два. Перший практичний: людина не вміє дивитися на чотиривимірний простір, а на двовимірний — уміє. Другий обчислювальний: у стиснутому просторі методи працюють швидше й стійкіше.

На рисунку чотири ознаки Iris замінено трьома головними компонентами — новими напрямами, уздовж яких дані розкидані найсильніше. Види залишилися розділеними, хоча жодну з початкових ознак більше не використано. Метод головних компонент розібрано в лекції 09.

iris projected onto its first three principal components

Джерело: scikit-learn · PCA on Iris dataset

Пошук аномалій виділяє нетипові спостереження ​

Третя задача без учителя — пошук аномалій (anomaly detection). Модель вивчає, як виглядає типове спостереження, і позначає ті, що на нього не схожі: шахрайську транзакцію, збій датчика, браковану деталь.

Це прямий родич сюжету про викиди у вартості квитка. Різниця в тому, що там ми дивилися на одну ознаку очима, а тут алгоритм оцінює нетиповість одразу в багатовимірному просторі, де точка може мати цілком звичайні значення кожної ознаки окремо й бути аномальною за їх поєднанням.

Кожен стовпець рисунка — окремий алгоритм, кожен рядок — свій набір даних. Помаранчевим позначено те, що алгоритм визнав нормою, синім — аномалії; чорні контури окреслюють знайдену межу норми.

five anomaly detection algorithms on five synthetic datasets

Джерело: scikit-learn · Comparing anomaly detection algorithms

Навчання з підкріпленням здобуває дані дією ​

Третій режим не має готового набору даних узагалі. Агент (agent) діє в середовищі (environment), середовище повертає новий стан і винагороду (reward), і агент поступово з'ясовує, які дії приносять більше винагороди в довгостроковій перспективі.

Правильної відповіді для кожного окремого кроку ніхто не повідомляє — відома лише сумарна винагорода наприкінці. Саме так навчають грати в шахи й го, керувати роботом, розподіляти обчислювальні ресурси.

Окремо стоїть самонавчання (self-supervised learning), де мітки будують із самих даних: приховують частину тексту чи зображення й вимагають від моделі її відновити. На цьому побудовані сучасні мовні моделі, і до нього ми повернемось у лекції 13.

reinforcement learning agent environment interaction loop

Джерело: Sutton R., Barto A. Reinforcement Learning: An Introduction

Позначення курсу ​

Одна нотація діятиме в усіх чотирнадцяти лекціях.

D={(xn,yn)}n=1N,xn∈RD,y^n=f(xn)
ПозначенняЗначення«Титанік»
Nкількість зразків891 пасажир
Dкількість ознак7 початкових, 12 після кодування
xnвектор ознак зразка nвік, вартість квитка, клас, стать…
ynсправжня мітка зразка n1 — вижив, 0 — загинув
y^nпрогноз моделіоцінка шансу вижити
wпараметри моделі12 ваг і вільний член

Індекс n завжди нумерує зразки, індекс d — ознаки. Жирний шрифт означає вектор.

Одне поняття — багато назв ​

Машинне навчання виросло на стику кількох дисциплін, і кожна принесла власні слова для тих самих речей. Читаючи англомовну літературу, ви зустрінете їх усі впереміш.

Наше словоСиноніми в літературі
ознакиfeatures, covariates, independent variables, explanatory variables, predictors, regressors
міткаtarget, label, response, outcome, dependent variable, measured variable, regressand

Перелік наведено за конспектом EPFL, який спеціально попереджає про цю плутанину. У курсі ми послідовно вживаємо «ознака» і «мітка», але канонічні англійські терміни зберігаємо там, де українська калька звучить неприродно.

Джерело: EPFL CS-433 · Regression

Три складові будь-якого методу навчання ​

Скільки б методів ми не розглянули за семестр, кожен розкладається на ті самі три частини.

Модель — сімейство функцій, серед яких шукаємо відповідь. Обираючи лінійну модель, ми стверджуємо: потрібна залежність — пряма, лишилося знайти яка саме.

Функція втрат (loss function) — число, що вимірює незгоду прогнозу з міткою. Вона перетворює розпливчасте «модель добра» на величину, яку можна мінімізувати. Конкретні функції втрат з'являться в лекції 02.

Оптимізація — процедура, що добирає параметри w, за яких втрата найменша. Для одних моделей розв'язок записується формулою, для більшості — шукається ітеративно, кроками в бік спадання втрати.

Ці три питання варто ставити щоразу, зустрічаючи новий метод: яке сімейство функцій, яка міра помилки, як шукаємо мінімум.

Наскрізний приклад: логістична регресія на «Титаніку» ​

Складаємо все разом: підготовка даних і модель об'єднуються в один об'єкт, який навчається на тренувальній частині та оцінюється на відкладеній.

Вивід код запущено, вивід не редагувався
text
частка правильних, тренування: 0.816
частка правильних, тест      : 0.789
              precision    recall  f1-score   support

     загинув       0.79      0.89      0.84       137
       вижив       0.78      0.63      0.70        86

    accuracy                           0.79       223
   macro avg       0.79      0.76      0.77       223
weighted avg       0.79      0.79      0.78       223

На що дивитися: точність на тесті 0,789 лише трохи нижча за тренувальну 0,816, а повнота для тих, хто вижив, лише 0,63 — модель пропускає більше третини врятованих.

Обгортка Pipeline тут не косметика: медіану віку й параметри масштабування обчислено тільки на тренувальній частині.

Що модель вивчила про шанси вижити ​

Модель дає 78,9 % правильних відповідей на 223 відкладених пасажирах проти 61,4 % у «моделі», яка завжди відповідає «загинув». Приріст є, але його треба читати уважно: із 86 вижилих модель знайшла 54 і пропустила 32.

Ваги логістичної регресії праворуч показують, що саме модель вважає важливим. Найбільша додатна вага — у ознаки «жінка», найбільші від'ємні — у «чоловік» і «третій клас». Вік і кількість братів або сестер на борту зменшують шанси, вартість квитка майже нічого не додає понад те, що вже сказав клас каюти.

Ці ваги обчислені на стандартизованих ознаках, тому їх можна порівнювати між собою. Як саме вони знаходяться — тема лекції 05.

titanic confusion matrix and logistic regression feature weights

Тестова помилка складається з двох частин ​

Мета навчання — не мінімальна помилка на тренувальних даних, а узагальнення (generalization): якість на даних, яких модель не бачила. Тестову помилку зручно розкласти на дві складові:

Etest=Etrain+Egap

де Etrain — помилка на тренувальній вибірці, а Egap — розрив узагальнення (generalization gap), тобто плата за те, що вибірка скінченна.

Рисунок показує обидві складові на «Титаніку». Дерево глибини 1 помиляється однаково на обох вибірках: розрив 2,1 відсоткового пункту. Дерево глибини 20 запам'ятовує тренувальні дані майже дослівно — 98,2 % правильних відповідей, — але на тесті дає лише 81,6 %, і розрив зростає до 16,6 пункту.

train and test accuracy versus decision tree depth on titanic

Недонавчання й перенавчання ​

Дві складові помилки тягнуть у різні боки: спрощуючи модель, ми зменшуємо розрив і збільшуємо тренувальну помилку, ускладнюючи — навпаки.

Недонавчання (underfitting) — модель занадто проста, вона не вловлює навіть тієї закономірності, що є в даних. На рисунку це ліва панель: пряма не здатна описати хвилю.

Перенавчання (overfitting) — модель занадто гнучка, вона підлаштовується під випадковий шум конкретної вибірки. Це права панель: многочлен п'ятнадцятого степеня проходить майже через кожну точку і при цьому вигинається там, де справжня функція гладка.

Посередині лежить потрібний баланс. Знайти його на око неможливо — потрібна процедура вимірювання, і саме тому наступний крок стосується розбиття даних. Повністю цю тему розібрано в лекції 03.

polynomial models of degree one four and fifteen fitted to the same points

Джерело: scikit-learn · Underfitting vs Overfitting

Тренувальна, валідаційна і тестова вибірки ​

Дані ділять щонайменше на дві частини, а частіше на три, і кожна має власне призначення.

Тренувальна вибірка (training set) — на ній підбираються параметри моделі. Валідаційна (validation set) — на ній обирають гіперпараметри: глибину дерева, силу регуляризації, саму модель. Тестова (test set) — на ній робиться остаточне вимірювання якості, і використати її можна рівно один раз.

Верхній рядок рисунка показує просте розбиття, нижній — перехресну перевірку (cross-validation), коли роль валідаційної частини по черзі грає кожен блок тренувальних даних. Тестова частина при цьому не торкається взагалі. Пропорції розбиття не є універсальною константою: більшу частину віддають на тренування.

data split into training folds and a held out test set

Джерело: Stanford CS231n · Validation sets and cross-validation

Золоте правило і незалежність спостережень ​

THE TEST DATA CANNOT INFLUENCE THE TRAINING PHASE IN ANY WAY. — UBC CPSC 340, лекція 4

Правило записане великими літерами в самому джерелі, і це не перебільшення. Щойно тестові дані вплинули на будь-яке рішення — вибір ознак, заповнення пропусків, підбір порога, — виміряна на них якість перестає бути оцінкою якості на нових даних.

Друге припущення стосується походження даних: вибірки мають бути незалежними й однаково розподіленими (i.i.d.). Усі зразки походять з одного розподілу, і кожен вибрано незалежно від інших. Джерело пропонує наочну метафору: витягнути карту з колоди, повернути назад, перетасувати, повторити.

На практиці припущення часто порушується — дані змінюються з часом, спостереження одного пацієнта корелюють між собою, — і тоді оцінка якості стає оптимістичною.

Джерело: UBC CPSC 340 · Fundamentals of Learning

Витік даних дає підозріло ідеальний результат ​

Витік даних (data leakage) — ситуація, коли до ознак потрапляє інформація, недоступна в момент реального прогнозу. Найчастіше це відбувається непомітно.

У наборі «Титанік» є стовпець alive зі значеннями yes і no. Це та сама мітка, лише словами. Достатньо забути його прибрати:

Вивід код запущено, вивід не редагувався
text
частка правильних на тесті: 1.0

На що дивитися: точність 1,0 на тесті — не успіх моделі, а ознака того, що відповідь потрапила у вхідні дані.

Сто відсотків правильних відповідей — не привід радіти, а привід шукати помилку. Крім alive, у цьому наборі є ще п'ять похідних стовпців: class, who, adult_male, embark_town і alone. Перше правило захисту просте: перед навчанням перевірте, чи кожна ознака справді була б відома до настання події, яку ви прогнозуєте.

Кореляція не є причинністю ​

"Regression finds correlation not a causal relationship, so interpret your results with caution." — EPFL CS-433, лекція 01b

Ліва панель рисунка показує чіткий зв'язок: серед пасажирів із найдешевшими квитками вижили 20 %, серед найдорожчих — 58 %. Спокуслива інтерпретація — «дорогий квиток рятує життя».

Права панель розглядає лише третій клас, у якому їхав 491 пасажир із 891. Усередині одного класу залежність зникає: 21 %, 25 %, 32 %, 20 % — коливання без напряму. Отже, справа не в ціні. Клас каюти — спільна причина, що визначає і вартість квитка, і розташування кают відносно шлюпок.

Змінна, яка одночасно впливає на ознаку й на мітку, називається конфаундером (confounder). Модель, побудована на кореляціях, прогнозує добре й водночас пояснює неправильно — це різні речі.

survival by fare quartile overall versus within third class only

Обмеження машинного навчання ​

Метод потужний, але його межі варто знати з першої лекції.

Модель не краща за свої дані. Якщо у вибірці систематично бракує певної групи людей, модель працюватиме на ній гірше — і не повідомить про це.

Кореляція не дає права на причинні висновки. Ми щойно бачили це на вартості квитка. Для причинних тверджень потрібні експеримент або окремий апарат причинного висновку.

Гарна якість на тесті не гарантує гарної роботи завтра. Припущення про однаковий розподіл порушується щоразу, коли світ змінюється.

Складні моделі важко пояснити. У медицині чи кредитуванні відповідь без пояснення часто просто неприйнятна.

Не кожна задача потребує навчання. Якщо правило можна записати трьома рядками коду, машинне навчання лише додасть невизначеності.

Підсумок лекції ​

Машинне навчання обертає напрям програмування. Замість того щоб писати правила, ми даємо алгоритму дані з відповідями і отримуємо правила у вигляді параметрів моделі.

Дані — це таблиця зразків і ознак, і в реальному наборі вона майже завжди має дефекти: 77 % пропусків у стовпці deck, викиди у вартості квитка, дисбаланс класів 62 на 38.

Три режими навчання розрізняються тим, що відомо алгоритму: мітки відомі — з учителем, міток немає — без учителя, даних немає взагалі й агент здобуває їх дією — з підкріпленням.

Будь-який метод складається з моделі, функції втрат і процедури оптимізації. Ці три питання ми ставитимемо кожному новому методу курсу.

Мета — узагальнення, а не мінімум помилки на тренуванні. Розрив між тренувальною і тестовою якістю вимірюється, і золоте правило захищає це вимірювання.

Наступна лекція будує першу повноцінну модель — лінійну регресію — і показує, звідки береться її функція втрат.

Джерела й додаткові матеріали ​

Курси, на яких побудовано лекцію

  • EPFL CS-433 — лекції 01a і 01b: означення, дві традиції, регресія
  • UBC CPSC 340 — лекції 1, 2, 4: дані, золоте правило, i.i.d.
  • Stanford CS229 — вступ: регресія проти класифікації
  • Stanford CS231n — зображення як числа, розбиття вибірок

Підручники

Документація та дані

Матеріали курсу. Схеми із зовнішніх джерел належать їхнім авторам — посилання під кожною ілюстрацією.