Машинне навчання
Машинне навчання — це підполе штучного інтелекту, яке займається створенням програм, що навчаються на даних. Машинне навчання пов’язане з темою роботи з даними, особливо з їх збором і записом.
У рамах Знаємо інформатику ми розділяємо цю тему таким чином:
- основи машинного навчання (основний принцип машинного навчання, відмінність від класичного програмування, використання машинного навчання)
- типи завдань, які можна вирішити за допомогою машинного навчання (як-от, класифікація, регресія, кластеризація)
- методи вирішення цих завдань (навчання з учителем і без нього, посилене навчання, нейронні мережі та інші моделі, алгоритми навчання)
- оцінка вивчених моделей (розрізнення між узагальненням і простим запам’ятовуванням, розпізнавання навчання та перенавчання, вибір та інтерпретація відповідних показників для порівняння моделей)
- викривлення (упередження) у машинному навчанні (що це таке, як це розпізнати та що з цим можна зробити)
Упередженість машинного навчання
Спотворення (іноді також упередженість, англ. bias) означає систематичну помилку, яка призводить до несправедливих наслідків для різних груп. Це не обов’язково мають бути групи людей, термін спотворення також використовується для ситуації, коли, наприклад, модель значно частіше передбачає одну категорію (як-от, груші), навіть якщо інші категорії (як-от, яблука) трапляються так само часто.
Спотворення моделі можуть сприяти упередженості (модель, що передбачає академічну успішність у певній галузі з використанням гендерної інформації) та призвести до дискримінації (якщо цю модель використовуватимуть для прийняття рішень про вступ до університету).
Спотворення моделі здебільшого викликано спотвореними даними, оскільки модель дізнається лише те, що вона бачить у даних. Вибіркове спотворення виникає, коли дані не представляють належним чином усі типи випадків. Якщо ми тренуємо розпізнавання взуття лише на чоловічому взутті, модель не розпізнає жіноче взуття. Спотворення відповідей може статися, наприклад, через упередження анотаторів або небажання респондентів розповідати правду. В опитуваннях люди часто коригують свої відповіді про себе відповідно до соціальних очікувань.
Спотворення може бути важко виявити, оскільки, на відміну від перенавчання, воно зазвичай не проявляється в нижчому рівні успіху на тестових даних. У звичайній процедурі дані для тестування та навчання надходять з одного джерела, тому вони містять однакове упередження.
Щоб зменшити ризик упередженості, бажано постійно перевіряти якість даних. Так, ми маємо переконатися, що зібрані дані включають усі типи випадків і що кожна категорія представлена подібною кількістю прикладів, подібної якості та в подібних контекстах. Під час анотування даних бажано, щоб це робили люди з різних груп (як-от, чоловіки та жінки). Також корисно оцінити поведінку моделі для різних підгруп даних (наприклад, для чоловіків і жінок, різних вікових груп, меншин) і постійно стежити за поведінкою моделі навіть після розгортання.
ВгоруМашинне навчання: поняття
Ось огляд термінів, які нерідко зустрічаються у сфері машинного навчання. Багато з них ще не мають усталених українських відповідників, тому в текстах часто наведено й англійські терміни(вказано нижче курсивом у дужках). Ви можете знайти більш детальне пояснення окремих термінів у підтемах з машинного навчання.
| поняття | опис |
|---|---|
| машинне навчання | навчальні програми на основі даних |
| модель | відображення входів і виходів (вирішення проблеми машинного навчання) |
| набір даних (dataset) | дані для навчання моделі |
| приклад (example) | один повний вхід моделі (рядок набору даних) |
| атрибут (feature) | інформація про приклади, які використовує модель (стовпець набору даних) |
| марка (label) | правильний висновок для наведеного прикладу |
| анотація даних | присвоєння правильних висновків (марок) |
| марковані дані | дані з бажаним результатом (маркою) |
| предикція | прогноз, оцінка (вихід моделі) |
| висновок | складання оцінок за допомогою навченої моделі |
| контрольоване навчання (supervised learning) | підхід машинного навчання з використанням маркованих даних |
| неконтрольоване навчання (unsupervised learning) | підхід машинного навчання з використанням немаркованих даних |
| напівконтрольоване навчання (semi-supervised learning) | підхід машинного навчання з використанням як маркованих, так і немаркованих даних |
| поглиблене навчання, навчання зі зворотнім зв’язком (reinforcement learning) | навчання через взаємодію з навколишнім середовищем, включаючи зворотній зв’язок щодо вжитих дій |
| класифікація | завдання визначити, чи належить приклад до однієї з кількох попередньо визначених категорій (як-от, жанр книги) |
| регресія | завдання на визначення числового значення для заданого прикладу (як-от, оцінка книги) |
| сортування (ranking) | завдання організації прикладів (як-от, рекомендації книг) |
| виявлення аномалії | завдання виявлення прикладів, які значно відрізняються від решти даних |
| кластеризація (clustering) | завдання поділу прикладів на групи (кластери) зі схожими властивостями |
| генеративний штучний інтелект (generative AI) | моделі, що генерують складні результати, такі як відповіді чи зображення |
| лінійна модель | модель, що визначає результат на основі зваженої суми атрибутів |
| дерево рішень (decision tree) | модель, що визначає результат на основі послідовності умов |
| випадковий ліс (random forest) | модель, що складається з багатьох дерев рішень |
| нейронна сіть | модель, дещо натхненна структурою мозку, що складається з багатьох взаємопов’язаних «нейронів», які виконують просту функцію, зазвичай організовану в шари |
| глибоке навчання (deep learning) | вивчення нейронних мереж з багатьма шарами |
| велика мовна модель (Large Language Model, LLM) | великомасштабна нейронна мережа, що передбачає ймовірність наступного слова (як-от, GPT) |
| трансформатор (transformer) | тип нейронної мережі, що забезпечує ефективне навчання на великих даних (T у GPT означає трансформатор) |
| параметри, ваги | значення моделей, які можна змінювати у процесі навчання |
| градієнтний спуск (gradient descent) | алгоритм навчання, який багаторазово змінює параметри моделі в напрямі найбільшої зміни (градієнта) функції помилки |
| стохастичний градієнтний спуск (SGD) | ефективний варіант градієнтного спуску використовує елемент випадковості |
| навчальні дані | дані, які використовуються для навчання моделі |
| тестувальні дані | дані, які використовуються для оцінки моделі |
| генералізація | здатність передбачати правильні результати навіть для нових даних (тобто узагальнювати) |
| меморизація | лише запам’ятовування правильних вихідних даних навчання |
| недонавчання (underfitting) | модель має високий рівень помилок, оскільки вона занадто проста для поставленого завдання |
| перенавчання (overfitting) | точне запам’ятовування навчальних даних за рахунок здатності до узагальнення |
| регулярізація | методи запобігання перенавчанню, наприклад, штрафування за складність моделі |
| упередженість, (bias) | систематична помилка, що призводить до несправедливих наслідків |
| вибрана упередженість (selection bias) | тип упередженості, коли дані не представляють належним чином усі типи випадків |
| основна модель (baseline) | просте рішення задачі використовується для порівняння з більш складними методами |
| метрика | значення, що виражає якість моделі |
| середньоквадратична похибка (mean squared error) | метрика для задач регресії, середній квадрат відхилення між прогнозованим і фактичним значенням |
| правильність (accuracy) | метрика класифікаційних завдань, частка правильних відповідей |
| точність (precision) | метрика для класифікаційних завдань, скільки з усіх позначених прикладів є позитивними |
| покриття (recall) | метрика для класифікаційних завдань, скільки всіх позитивних прикладів виявила модель |
| матриця невідповідностей (confusion matrix) | таблиця, яка показує, скільки яких категорій було класифіковано і яким чином |
| тензорний блок обробки, TPU (Tensor Processing Unit) | процесори, що спеціалізуються на машинному навчанні |