Тренувальний, затверджувальний та випробувальний набори
В машинному навчанні поширеною задачею є дослідження та побудова алгоритмів, здатних навчатися з даних та робити передбачування на них.[1] Такі алгоритми працюють, роблячи керовані даними передбачування або рішення[2] шляхом побудови математичної моделі з вхідних даних.
Дані, які використовують для побудови остаточної моделі, зазвичай походять з декількох наборів даних. Зокрема, на різних етапах створення моделі зазвичай використовують три набори даних.
Модель початково допасовують на тренува́льному набо́рі да́них (англ. training dataset),[3] який є набором прикладів, що використовують для допасовування параметрів моделі (наприклад, ваг з'єднань між нейронами в штучній нейронній мережі).[4] Модель (наприклад, нейронну мережу чи наївний баєсів класифікатор) тренують на тренувальному наборі даних, використовуючи якийсь метод керованого навчання, наприклад, використовуючи методи оптимізації, такі як градієнтний спуск або стохастичний градієнтний спуск. На практиці тренувальний набір даних часто складається з пар векторів (або скалярів) входу та відповідних векторів (або скалярів) виходу, де ключ відповіді зазвичай позначують як ціль (англ. target, або мітку, англ. label). Поточну модель проганяють на тренувальнім наборі даних та отримують результат, який потім порівнюють з ціллю для кожного вектору входу в тренувальнім наборі даних. На основі результату цього порівняння та конкретного використовуваного алгоритму навчання параметри моделі підганяють. Допасовування моделі може включати як обирання змінних, так й оцінювання параметрів.
Далі цю допасовану модель використовують для передбачення відгуків для спостережень у другому наборі даних, званому затве́рджувальним набо́ром да́них (англ. validation dataset).[3] Затверджувальний набір даних забезпечує неупереджену оцінку допасованості моделі на тренувальному наборі даних при налаштовуванні гіперпараметрів моделі[5] (наприклад, числа прихованих вузлів (шарів та ширин шарів) у нейронній мережі[4]). Затверджувальні набори даних можливо використовувати для регуляризації шляхом ранньої зупинки (зупинки тренування, коли похибка на затверджувальному наборі даних починає зростати, оскільки це є ознакою перенавчання тренувального набору даних).[6] Ця проста процедура на практиці є ускладненою тим фактом, що похибка затверджувального набору даних може флуктувати протягом навчання, виробляючи декілька локальних мінімумів. Це ускладнення привело до створення багатьох спеціальних правил для вирішування, коли перенавчання справді почалося.[6]
Нарешті, випро́бувальний набі́р да́них (англ. test dataset) — це набір даних, який використовують для забезпечення неупередженої оцінки допасованості остаточної моделі на тренувальному наборі даних.[5] Якщо дані випробувального набору ніколи не використовуються в тренуванні (наприклад, в перехреснім затверджуванні), то випробувальний набір також називають притри́маним набо́ром да́них (англ. holdout dataset).
Тренувальний набір даних (англ. training dataset) — це набір даних прикладів, які використовують під час процесу навчання, та використовують для допасовування параметрів (наприклад, ваг), наприклад, класифікатора.[7][8]
Більшість підходів, які здійснюють пошук емпіричних взаємозв'язків у тренувальних даних, мають схильність до перенавчання цих даних, тобто, можуть виявляти та використовувати видимі взаємозв'язки в тренувальних даних, які в загальному випадку дійсними не є.
Випробувальний набір даних (англ. test dataset) — це набір даних, що є незалежним від тренувального набору даних, але слідує тому же розподілові ймовірності, що й тренувальний. Якщо модель, допасована до тренувального набору даних, також добре допасовується й до випробувального набору даних, то було мінімальне перенавчання (див. рисунок нижче). Краща допасованість до тренувального набору даних, на противагу до випробувального набору даних, зазвичай вказує на перенавчання.
Відтак, випробувальний набір є набором прикладів, які використовують лише для оцінювання продуктивності (тобто, узагальнюваності) повністю визначеного класифікатора.[7][8]
Затверджувальний набір даних (англ. validation dataset) — це набір даних прикладів, який використовують для налаштовування гіперпараметрів (тобто, архітектури) класифікатора. Його іноді також називають розробницьким набором (англ. development set, "dev set"). До прикладів гіперпараметрів для штучних нейронних мереж належить число прихованих вузлів у кожному з шарів.[7][8] Він, як і випробувальний набір (як зазначено вище), повинен слідувати тому ж розподілові ймовірності, що й тренувальний набір даних.
Щоби запобігати перенавчанню, коли будь-який параметр класифікації вимагає підлаштовування, необхідно мати затверджувальний набір даних на додачу до тренувального та випробувального наборів даних. Наприклад, якщо шукають найпридатніший класифікатор для заданої задачі, тренувальний набір даних використовують для тренування алгоритмів-кандидатів, затверджувальний набір використовують для порівнювання їхньої продуктивності й вирішування, який з них взяти, і, нарешті, випробувальний набір даних використовують для отримання характеристик продуктивності, таких як точність, чутливість, специфічність, F-міра тощо. Випробувальний набір діє гібридно: він є тренувальними даними, які використовують для випробування, але не є ані частиною низькорівневого тренування, ані частиною остаточного випробування.
Спрощений процес застосування затверджувального набору даних для обирання моделі (як частини з-поміж тренувального, затверджувального та випробувального наборів даних) виглядає так:[8][9]
Оскільки нашою метою є знайти мережу, що має найкращу продуктивність на нових даних, найпростішим підходом до порівнювання різних мереж є оцінювати функцію похибки із застосуванням даних, що є незалежними від тих, які було використано в тренуванні. Різні мережі тренують шляхом мінімізування відповідної функції похибки, визначеної по відношенню до тренувального набору даних. Потім продуктивність цих мереж порівнюють шляхом оцінювання функції похибки із застосуванням незалежного затверджувального набору, й обирають мережу з найменшою похибкою відносно затверджувального набору. Цей підхід називають методом притримування. Оскільки ця процедура може й сама вести до деякого перенавчання затверджувального набору, продуктивність обраної мережі повинно бути підтверджено вимірюванням її продуктивності на третім незалежнім наборі даних, званім випробувальним.Оригінальний текст (англ.)Since our goal is to find the network having the best performance on new data, the simplest approach to the comparison of different networks is to evaluate the error function using data which is independent of that used for training. Various networks are trained by minimization of an appropriate error function defined with respect to a training data set. The performance of the networks is then compared by evaluating the error function using an independent validation set, and the network having the smallest error with respect to the validation set is selected. This approach is called the hold out method. Since this procedure can itself lead to some overfitting to the validation set, the performance of the selected network should be confirmed by measuring its performance on a third independent set of data called a test set.
Цей метод застосовують в ранній зупинці, де моделі-кандидати є послідовними ітераціями однієї й тієї ж мережі, й де тренування припиняють, коли похибка на затверджувальному наборі показує зростання, обираючи попередню модель (ту, що з мінімальною похибкою).
Частину первинного набору даних може бути відкладено, й використано як випробувальний набір: це є відомим як ме́тод притри́мування (англ. holdout method).[10]
Терміни випробувальний набір (англ. test set) та затверджувальний набір (англ. validation set), як в академічному середовищі, так і в промисловості, іноді використовують таким чином, що їхні значення міняються місцями. В помилковому застосуванні «випробувальний набір» стає розробницьким набором (англ. development set), а «затверджувальний набір» є незалежним набором, який використовують для оцінювання продуктивності повністю визначеного класифікатора.
Література з машинного навчання часто міняє значення «затверджувального» та «випробувального» наборів на протилежні. Це є найяскравішим прикладом термінологічної плутанини, що пронизує дослідження штучного інтелекту.[11]
Оригінальний текст (англ.)The literature on machine learning often reverses the meaning of “validation” and “test” sets. This is the most blatant example of the terminological confusion that pervades artificial intelligence research.
Набір даних може бути повторювано розбивано на тренувальний та затверджувальний набори: це є відомим як перехресне затверджування. Ці повторювані розбиття може бути виконувано різними способами, такими як поділ на 2 рівні набори значень та використання їх як тренувального/затверджувального, а потім як затверджувального/тренувального, або як повторюване вибирання випадкового піднабору як затверджувального набору даних.[джерело?] Для затверджування продуктивності моделі іноді використовують додатковий набір даних, притриманий від перехресного затверджування.
Іншим прикладом підлаштовування параметрів є ієрархі́чна класифіка́ція (англ. hierarchical classification, іноді звана ро́зкладом про́стору зразкі́в, англ. instance space decomposition[12]), яка розбиває повну багатокласову задачу на набір менших задач класифікації. Вона слугує навчанню точніших понять через простіші межі класифікації в підзадачах, та окремі процедури обирання ознак для підзадач. При здійсненні розкладання класифікації центральним вибором є порядок поєднання менших кроків класифікації, званий шляхом класифікації (англ. classification path). Залежно від застосування, його можливо виводити з матриці невідповідностей, розкриванням причин типових помилок, та пошуком шляхів запобігання повторюванню їх системою в майбутньому. Наприклад,[13] на затверджувальному наборі видно класи, які система найчастіше взаємно плутає між собою, тоді розклад простору зразків виконують наступним чином: спершу класифікацію виконують серед добре розпізнаваних класів, а класи, розділювати які складно, розглядають як єдиний спільний клас, а тоді, як другий крок класифікації, цей спільний клас класифікують на ті два взаємно переплутувані класи.
Для створювання тренувальних даних існують комерційні інструменти, такі як Diffgram [Архівовано 15 серпня 2020 у Wayback Machine.] та Supervisely [Архівовано 18 липня 2020 у Wayback Machine.].[14]
- ↑ Ron Kohavi; Foster Provost (1998). Glossary of terms. Machine Learning. 30: 271—274. doi:10.1023/A:1007411609915. Архів оригіналу за 11 листопада 2019. Процитовано 8 липня 2020. (англ.)
- ↑ Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. New York: Springer. с. vii. ISBN 0-387-31073-8.
Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years.
(англ.) - ↑ а б James, Gareth (2013). An Introduction to Statistical Learning: with Applications in R. Springer. с. 176. ISBN 978-1461471370. Архів оригіналу за 23 червня 2019. Процитовано 7 серпня 2018. (англ.)
- ↑ а б Ripley, Brian (1996). Pattern Recognition and Neural Networks. Cambridge University Press. с. 354. ISBN 978-0521717700. (англ.)
- ↑ а б Brownlee, Jason (13 липня 2017). What is the Difference Between Test and Validation Datasets?. Архів оригіналу за 10 грудня 2019. Процитовано 12 жовтня 2017. (англ.)
- ↑ а б Prechelt, Lutz; Geneviève B. Orr (1 січня 2012). Early Stopping — But When?. У Grégoire Montavon; Klaus-Robert Müller (ред.). Neural Networks: Tricks of the Trade. Lecture Notes in Computer Science. Springer Berlin Heidelberg. с. 53–67. doi:10.1007/978-3-642-35289-8_5. ISBN 978-3-642-35289-8. (англ.)
- ↑ а б в Ripley, B.D. (1996) Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press, p. 354 (англ.)
- ↑ а б в г "Subject: What are the population, sample, training set, design set, validation set, and test set? [Архівовано 10 березня 2021 у Wayback Machine.]", Neural Network FAQ, part 1 of 7: Introduction [Архівовано 10 березня 2021 у Wayback Machine.] (txt), comp.ai.neural-nets, Sarle, W.S., ed. (1997, last modified 2002-05-17) (англ.)
- ↑ Bishop, C.M. (1995), Neural Networks for Pattern Recognition [Архівовано 18 липня 2020 у Wayback Machine.], Oxford: Oxford University Press, p. 372 (англ.)
- ↑ Kohavi, Ron (3 березня 2001). A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection. 14. (англ.)
- ↑ Ripley, Brian D. (2009). Pattern recognition and neural networks. Cambridge Univ. Press. с. Glossary. ISBN 9780521717700. OCLC 601063414. (англ.)
- ↑ Cohen, S.; Rokach, L.; Maimon, O. (2007). Decision-tree instance-space decomposition with grouped gain-ratio. Information Sciences. Elsevier. 177 (17): 3592—3612. doi:10.1016/j.ins.2007.01.016. (англ.)
- ↑ Sidorova, J., Badia, T. "ESEDA: tool for enhanced speech emotion detection and analysis [Архівовано 1 червня 2020 у Wayback Machine.]". The 4th International Conference on Automated Solutions for Cross Media Content and Multi-Channel Distribution (AXMEDIS 2008). Florence, November, 17-19, pp. 257–260. IEEE press. (англ.)
- ↑ Loop, Humans in the (28 травня 2019). The best image annotation platforms for computer vision (+ an honest review of each). Medium (англ.). Процитовано 27 листопада 2019. (англ.)
- FAQ: What are the population, sample, training set, design set, validation set, and test set? [Архівовано 10 березня 2021 у Wayback Machine.] (англ.)
- What is the Difference Between Test and Validation Datasets? [Архівовано 10 грудня 2019 у Wayback Machine.] (англ.)
- What is training, validation, and testing data-sets scenario in machine learning? (англ.)
- Is there a rule-of-thumb for how to divide a dataset into training and validation sets? (англ.)