Кероване навчання

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Керо́ване навча́ння,[1][2][3][4][5] контрольо́ване навча́ння,[6][7] навча́ння під на́глядом,[8] або навча́ння з учи́телем[7] (англ. supervised learning, SL) — це парадигма машинного навчання, в якій модель тренують об'єкти входу (наприклад, вектор змінних-передбачувачів) та бажане значення виходу (також відоме як мічений людиною керівний сигнал, англ. supervisory signal). Ці тренувальні дані обробляються, будуючи функцію, яка відображує нові дані на очікувані значення виходу.[9] Оптимальний сценарій дозволятиме алгоритмові правильно визначати значення виходу для небачених примірників. Це вимагає, щоб алгоритм навчання узагальнювався з тренувальних даних на небачені ситуації «розумним» чином (див. індуктивне упередження[en]). Цю статистичну якість алгоритму вимірюють через так звану похибку узагальнення.

Схильність завдань використовувати керовані та некеровані методи. Перетин кіл назвами завдань навмисний. Він показує, що класичне відокремлення творчих завдань (ліворуч) із застосуванням некерованих методів у сучасних схемах навчання розмите.

Кроки для виконання[ред. | ред. код]

Щоби розв'язати задану задачу керованого навчання, слід виконати наступні кроки:

  1. Визначити тип тренувальних прикладів. Перш ніж робити щось інше, користувач повинен вирішити, який тип даних використовувати як тренувальний набір. У випадку аналізу рукописного тексту, наприклад, це може бути один рукописний символ, ціле рукописне слово, ціле речення рукописного тексту або, можливо, повний абзац рукописного тексту.
  2. Зібрати тренувальний набір (англ. training set). Він повинен бути репрезентативним для реального використання функції. Таким чином, збирають набір об'єктів входу, а також збирають відповідні дані виходу, або від людей-експертів, або з вимірювань.
  3. Визначити подання ознак (англ. features) входу навчаної функції. Точність навченої функції сильно залежить від того, як подано об'єкт входу. Як правило, вхідний об'єкт перетворюють на вектор ознак, що містить низку ознак, які описують об'єкт. Кількість ознак не повинна бути занадто великою через прокляття розмірності; але повинна містити достатньо інформації для точного передбачування виходу.
  4. Визначити структуру навчаної функції та відповідний алгоритм навчання. Наприклад, інженер може обрати використання опорновекторних машин чи дерев рішень.
  5. Завершити розробку. Виконати алгоритм навчання на зібраному тренувальному наборі. Деякі алгоритми керованого навчання вимагають від користувача визначення певних керівних параметрів. Ці параметри можна налаштувати, оптимізуючи продуктивність на підмножині тренувального набору (званій затверджувальним набором, англ. validation set), або за допомогою перехресного затверджування (англ. cross-validation).
  6. Оцінити точність навченої функції. Після налаштування параметрів та навчання продуктивність отриманої в результаті функції повинно бути виміряно на випробувальному наборі (англ. test set), окремому від тренувального.

Вибір алгоритму[ред. | ред. код]

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

У керованім навчанні слід враховувати чотири основні питання:

Компроміс зміщення та дисперсії[ред. | ред. код]

Перше питання це компроміс між зміщенням (англ. bias) та дисперсією (англ. variance).[10] Уявімо, що ми маємо кілька різних, але однаково добрих тренувальних наборів даних. Алгоритм навчання зміщений для певного входу , якщо при тренуванні на кожному з цих наборів він систематично неправильний у передбачуванні правильного виходу для . Алгоритм навчання має велику дисперсію для певного входу , якщо при тренуванні на різних тренувальних наборах він передбачує різні виходи. Похибка передбачення навченого класифікатора пов'язана із сумою зміщення та дисперсії навченого алгоритму.[11] Як правило, існує компроміс між зміщенням і дисперсією. Алгоритм навчання з малим зміщенням повинен бути «гнучким», щоби могти добре допасовуватися до даних. Але якщо алгоритм навчання занадто гнучкий, він допасується до кожного тренувального набору даних по-різному, й відтак матиме велику дисперсію. Ключовим аспектом багатьох методів керованого навчання є те, що вони здатні підлаштовувати цей компроміс між зміщенням і дисперсією (автоматично, або шляхом надання параметра зміщення/дисперсії, який може налаштовувати користувач).

Складність функції та обсяг тренувальних даних[ред. | ред. код]

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

Розмірність простору входу[ред. | ред. код]

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

Шум у значеннях виходу[ред. | ред. код]

Четвертим питанням є міра шуму в бажаних значеннях виходу (керівних цільових змінних[en], англ. target variables). Якщо бажані значення виходу часто неправильні (через людський чинник чи похибки давача), то алгоритм навчання не повинен намагатися знайти функцію, яка відповідає тренувальним прикладам точно. Спроба занадто ретельно допасуватися до даних призводить до перенавчання. Якщо функція, якої ви намагаєтеся навчитися, занадто складна для вашої моделі навчання, ви можете перенавчитися її, навіть якщо похибки вимірювання (стохастичний шум) відсутні. У такій ситуації частина цільової функції, яку неможливо змоделювати, «псує» ваші навчальні дані — це явище назвали детермінованим шумом[en]. Якщо присутній будь-який тип шуму, краще використовувати оцінювач з більшим зміщенням і меншою дисперсією.

На практиці існує кілька підходів для полегшення шуму в значеннях виходу, таких як рання зупинка, щоби запобігати перенавчанню, а також виявляння та усування шумових тренувальних прикладів перед тренуванням алгоритму керованого навчання. Існує кілька алгоритмів, які встановлюють шумові тренувальні приклади, а усунення ймовірних шумових тренувальних прикладів перед тренуванням знижує похибку узагальнення зі статистичною значущістю.[12][13]

Інші чинники, які слід враховувати[ред. | ред. код]

До інших чинників, які слід враховувати при виборі та застосуванні алгоритму навчання, належать наступні:

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

Алгоритми[ред. | ред. код]

Найширше використовувані алгоритми навчання:

Як працюють алгоритми керованого навчання[ред. | ред. код]

Для заданого набору з тренувальних прикладів, вигляду , такого, що  — вектор ознак -го прикладу, а  — його мітка (англ. label, тобто, клас), алгоритм навчання шукає функцію , де  — простір входу, а  — простір виходу. Функція це елемент деякого простору можливих функцій , зазвичай званого простором гіпотез (англ. hypothesis space). Іноді зручно подавати за допомогою оцінкової функції[en] , такої, що визначають як таку, що повертає значення , яке дає найвищу оцінку: . Нехай позначує простір оцінкових функцій.

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

Є два основні підходи до вибору або : мінімізація емпіричного ризику та мінімізація структурного ризику[en].[14] Мінімізація емпіричного ризику шукає функцію, яка найкраще допасовується до тренувальних даних. Мінімізація структурного ризику включає штрафну функцію (англ. penalty function), яка контролює компроміс зміщення/дисперсії.

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

Ризик (англ. risk) функції визначають як очікувані втрати . Їх можливо оцінювати з тренувальних даних через

.

Мінімізація емпіричного ризику[ред. | ред. код]

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

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

Коли містить багато функцій-кандидатів або тренувальний набір недостатньо великий, мінімізація емпіричного ризику призводить до великої дисперсії та поганого узагальнення. Алгоритм навчання здатний запам'ятовувати тренувальні приклади без доброго узагальнення. Це називають перенавчанням.

Мінімізація структурного ризику[ред. | ред. код]

Мінімізація структурного ризику[en] має на меті запобігати перенавчанню включенням до оптимізації регуляризаційного штрафу. Регуляризаційний штраф можливо розглядати як втілення певного вигляду леза Оккама, яке віддає перевагу простішим функціям перед складнішими.

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

.

Популярним регуляризаційним штрафом є , що є квадратом евклідової норми ваг, також відомим як норма . До інших норм належать норма , , та «норма» [en], яка є числом ненульових . Штраф буде позначувано через .

Задача оптимізації керованого навчання полягає в тому, щоби знайти функцію , яка мінімізує

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

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

Породжувальне тренування[ред. | ред. код]

Описані вище методи тренування є методами розрізнювального тренування (англ. discriminative training), оскільки вони прагнуть знайти функцію , яка добре розрізнює відмінні значення виходу (див. розрізнювальну модель). Для особливого випадку, коли є спільним розподілом імовірності, а функція втрат є негативною логарифмічною правдоподібністю кажуть, що алгоритм мінімізації ризику виконує породжувальне тренування (англ. generative training), оскільки можливо розглядати як породжувальну модель, яка пояснює, як було породжено дані. Алгоритми породжувального тренування часто простіші та обчислювально ефективніші за алгоритми розрізнювального тренування. У деяких випадках розв'язок може бути обчислено у замкненому вигляді, як у наївному баєсовому класифікаторі та лінійному розділювальному аналізі.

Узагальнення[ред. | ред. код]

Існує кілька способів узагальнення стандартної задачі керованого навчання:

  • Напівкероване навчання, або слабке керування: бажані значення виходу надаються лише для підмножини тренувальних даних. Решта даних немічені або мічені неточно.
  • Активне навчання[en]: замість виходити з того, що всі тренувальні приклади наведено від початку, алгоритми активного навчання інтерактивно збирають нові приклади, як правило, надсилаючи запити людині-користувачу. Часто запити ґрунтуються на немічених даних, що є сценарієм, який поєднує напівкероване навчання з активним.
  • Структурове передбачування: якщо бажане значення виходу це складний об'єкт, такий як синтаксичне дерево або мічений граф, стандартні методи потребують розширення.
  • Навчання ранжуванню: коли вхід це набір об'єктів, а бажаний вихід це ранжування цих об'єктів, стандартні методи теж потребують розширення.

Підходи та алгоритми[ред. | ред. код]

Застосування[ред. | ред. код]

Загальні питання[ред. | ред. код]

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Верес, О. М.; Оливко, Р. М. (2017). Класифікація методів аналізу великих даних. Вісник Національного університету «Львівська політехніка». Інформаційні системи та мережі (укр.) (Л.: НУЛП). 872: 84–92. 
  2. Проніна, О. І. (2019). Робоча програма навчальної дисципліни «Машинне навчання» для здобувачів освітнього ступеня магістра за спеціальністю 122 «Комп’ютерні науки», освітньої програми «Інформаційні системи та технології» (укр.). Маріуполь: ПДТУ. Архів оригіналу за 9 липня 2021. Процитовано 4 липня 2021. 
  3. Синєглазов, Віктор; Чумаченко, Олена (2022). Бідюк, П. І.; Шугалей, Л. П. (ред.). Методи та технології напівкерованого навчання: Курс лекцій (укр.). Київ: НТУУ «КПІ ім. Ігоря Сікорського». 
  4. Дуда, О. М.; Кунанець, Н. Е.; Мацюк, О. В.; Пасічник, В. В. (21—27 травня 2018). Методи аналітичного опрацювання big data Інтелектуальні системи прийняття рішень та проблеми обчислювального інтелекту (укр.). Залізний Порт. с. 159. ISBN 978-617-7573-17-2. 
  5. Кропивницька, В. Б.; Магас, Д. М. (30 квітня 2023). Напівкероване машинне навчання для виявлення несправностей нафтогазопроводів. Modern engineering and innovative technologies (укр.). 1 (18): 33—36. doi:10.30890/2567-5273.2023-26-01-010. 
  6. Мельник, А.; Берестенко, Д. (2022). Дослідження методів машинного навчання Автоматика, комп’ютерно-інтегровані технології та проблеми енергоефективності в промисловості і сільському господарстві (АКІТ-2022) (укр.). Кропивницький: КНТУ. с. 41—42. 
  7. а б Мілян, Н. (2018). Аналіз методів машинного навчання з вчителем. Збірник тез Міжнародної студентської науково-технічної конференції „Природничі та гуманітарні науки. Актуальні питання“ (укр.). 1: 51—52. 
  8. Іваніченко, Є.; Сабліна, М.; Кравчук, К. (2021). Використання машинного навчання в кібербезпеці. Кібербезпека: освіта, наука, техніка» (укр.). 4 (12): 32—142. 
  9. Mehryar Mohri[en], Afshin Rostamizadeh, Ameet Talwalkar (2012) Foundations of Machine Learning, The MIT Press ISBN 9780262018258. (англ.)
  10. S. Geman, E. Bienenstock, and R. Doursat (1992). Neural networks and the bias/variance dilemma. Neural Computation 4, 1–58. (англ.)
  11. G. James (2003) Variance and Bias for General Loss Functions, Machine Learning 51, 115-135. (http://www-bcf.usc.edu/~gareth/research/bv.pdf [Архівовано 2020-12-08 у Wayback Machine.]) (англ.)
  12. C.E. Brodely and M.A. Friedl (1999). Identifying and Eliminating Mislabeled Training Instances, Journal of Artificial Intelligence Research 11, 131-167. (http://jair.org/media/606/live-606-1803-jair.pdf [Архівовано 2016-05-12 у Wayback Machine.]) (англ.)
  13. M.R. Smith and T. Martinez (2011). Improving Classification Accuracy by Identifying and Removing Instances that Should Be Misclassified. Proceedings of International Joint Conference on Neural Networks (IJCNN 2011) (англ.). с. 2690–2697. CiteSeerX 10.1.1.221.1371. doi:10.1109/IJCNN.2011.6033571. 
  14. Vapnik, V. N. The Nature of Statistical Learning Theory (2nd Ed.), Springer Verlag, 2000. (англ.)
  15. A. Maity (2016). «Supervised Classification of RADARSAT-2 Polarimetric Data for Different Land Features» (en). arXiv:1608.00501 [cs.CV]. 
  16. Key Technologies for Agile Procurement | SIPMM Publications. publication.sipmm.edu.sg (амер.). 9 жовтня 2020. Процитовано 16 червня 2022. 

Посилання[ред. | ред. код]