Підсилювання (машинне навчання)
Підси́лювання (англ. boosting) — це ансамблевий мета-алгоритм машинного навчання передусім для зменшення зсуву а також і дисперсії[1] у керованім навчанні, та сімейство алгоритмів машинного навчання, які перетворюють слабких учнів на сильних.[2] Підсилювання ґрунтується на питанні, поставленому Кірнсом[en] і Веліентом (1988, 1989):[3][4] Чи може набір слабких учнів (англ. weak learners) утворити єдиного сильного учня (англ. strong learner)? Слабкого учня визначають як класифікатор, який лише трохи корелює зі справжньою класифікацією (він може мітити зразки краще за випадкове вгадування). На противагу, сильний учень є класифікатором, який корелює зі справжньою класифікацією доволі добре. Ствердна відповідь Роберта Шапіра на питання Кірнса та Веліента в праці 1990 року[5] мала значні наслідки в машинному навчанні та статистиці, найголовніше, призвівши до розробки підсилювання.[6] Коли її вперше було представлено, задача підсилювання гіпотези (англ. hypothesis boosting problem) означала просто процес перетворення слабкого учня на сильного. «Неформально, задача [підсилювання гіпотези] ставить питання, чи ефективний алгоритм навчання […], який видає гіпотезу, чия ефективність лише трохи краща за випадкове вгадування [тобто, слабкий учень], означає існування ефективного алгоритму, який видає гіпотезу довільної точності [тобто, сильного учня].»[3] Алгоритми, що швидко досягають підсилювання гіпотези, стали називати просто «підсилюванням». ARCing (англ. Adapt[at]ive Resampling and Combining, адаптивна перевібирка та об'єднування) Фройнда[en] та Шапіро,[7] як загальна методика, є більш-менш синонімічною підсилюванню.[8] Алгоритми підсилюванняХоча підсилювання й не є обмеженим алгоритмічно, більшість алгоритмів підсилювання складаються з ітеративного навчання слабких класифікаторів стосовно розподілу та додавання їх до кінцевого сильного класифікатора. Коли вони додаються, вони, як правило, зважуються певним чином, зазвичай пов'язаним з точністю слабких учнів. Після додавання слабкого учня дані ваги змінюються: неправильно класифіковані приклади набирають ваги, а класифіковані правильно вагу втрачають (деякі алгоритми підсилювання насправді зменшують вагу повторювано неправильно класифікованих прикладів, наприклад, підсилювання більшістю [англ. boost by majority] та BrownBoost[en]). Таким чином, майбутні слабкі учні більше зосереджуються на тих прикладах, які попередні слабкі учні класифікували неправильно. Алгоритмів підсилювання існує багато. Первинні, запропоновані Робертом Шапіро (рекурсивне більшісно-вентильне формулювання, англ. a recursive majority gate formulation[5]) та Йоавом Фройндом[en] (підсилювання більшістю, англ. boost by majority[9]), не були адаптивними й не могли повною мірою користуватися перевагами слабких учнів. Проте Шапіро та Фройнд потім розробили AdaBoost[en], адаптивний алгоритм підсилювання, який виграв престижну премію Геделя. Алгоритмами підсилювання (англ. boosting algorithms) можна з точністю називати лише ті алгоритми, які довідно є алгоритмами підсилювання в формулюванні ймовірно приблизно правильного навчання. Інші алгоритми, подібні за духом до алгоритмів підсилювання, іноді називають «алгоритмами підважування» (англ. leveraging algorithms), хоча їх іноді неправильно називають й алгоритмами підсилювання.[9] Основна відмінність між багатьма алгоритмами підсилювання полягає в їхніх методах зважування тренувальних точок даних та гіпотез. AdaBoost[en] є дуже популярним і, мабуть, найважливішим історично, оскільки він був першим алгоритмом, який зміг адаптуватися до слабких учнів. Проте існує багато новіших алгоритмів, таких як LPBoost[en], TotalBoost, BrownBoost[en], Xgboost, MadaBoost, LogitBoost[en] та інші. Багато алгоритмів підсилювання вписуються в систему AnyBoost,[9] яка показує, що підсилювання виконує градієнтний спуск у просторі функцій за допомогою опуклої функції витрат. Категоризація об'єктівДля заданих зображень, що містять різні відомі об'єкти світу, з них може бути навчено класифікатора для автоматичного поділу на категорії об'єктів з майбутніх зображень. Прості класифікатори, побудовані на основі деякої ознаки зображення об'єкта, як правило, мають слабку ефективність у категоризації. Застосування методів підсилювання для категоризації об'єктів є способом об'єднувати слабкі класифікатори спеціальним чином для підсилювання загальної здатності до категоризації. Задача категоризації об'єктівКатегоризація об'єктів є типовим завданням комп'ютерного зору, яке передбачає визначення того, чи містить зображення певну категорію об'єктів, чи ні. Ця ідея тісно пов'язана з розпізнаванням, ідентифікацією та виявленням. Категоризація об'єктів на основі зовнішнього вигляду зазвичай включає виділяння ознак, навчання класифікатора та застосування цього класифікатора до нових прикладів. Існує багато способів представляти категорію об'єктів, наприклад, з аналізу форми[en], моделей торби слів, або локальних дескрипторів, таких як SIFT тощо. Прикладами керованих класифікаторів є наївний баєсів класифікатор, ОВМ, суміші ґаусіанів[en], нейронна мережа тощо. Проте дослідження показали, що категорії об'єктів та їх розташування в зображеннях можливо також виявляти й некерованим чином.[10] Стан справ у категоризації об'єктівРозпізнавання категорій об'єктів у зображеннях є складною проблемою в комп'ютерному зорі, особливо коли кількість категорій є великою. Це пов'язано з високою мінливістю всередині класів та потребою в узагальненні над різними варіаціями об'єктів у межах однієї категорії. Об'єкти в межах однієї категорії можуть виглядати вельми по-різному. Навіть той самий об'єкт може виглядати несхожо за різних точок огляду, масштабів[en] та освітлення[en]. Захаращене тло та часткове перекриття теж додають труднощів до розпізнавання.[11] Люди здатні розпізнавати тисячі типів об'єктів, тоді як більшість наявних систем розпізнавання об'єктів тренуються розпізнавати лише декілька, наприклад, людське обличчя, автомобіль, прості об'єкти тощо.[12] Були дуже активними дослідження порядкування більшою кількістю категорій та забезпечення інкрементного додавання нових категорій, і, хоча загальна задача залишається нерозв'язаною, було розроблено кілька багатокатегорійних систем виявлення об'єктів (для сотень та тисяч категорій[13]). Одними зі способів є спільні ознаки (англ. feature sharing) та підсилювання. Підсилювання для бінарної категоризаціїAdaBoost можливо використовувати для виявлення облич як приклад бінарної категоризації. Двома категоріями є обличчя та тло. Загальний алгоритм виглядає наступним чином:
Після підсилювання, класифікатор, побудований з 200 ознак, може забезпечити 95-відсотковий рівень виявлення за рівня хибного виявлення в .[14] Ще одним застосуванням підсилювання для бінарної категоризації є система, яка виявляє пішоходів, використовуючи характери руху та вигляду.[15] Ця робота є першою, яка об'єднала як інформацію про рух, так і інформацію про вигляд, як ознаки для виявлення людини, що йде. Вона використовує подібний підхід у системі виявляння об'єктів Віоли — Джонса. Підсилювання для багатокласової категоризаціїУ порівнянні з бінарною категоризацією, багатокласова категоризація[en] шукає поширених ознак, які можуть бути спільними одночасно для різних категорій. Вони виявляються загальнішими ознаками на кшталт контурів. Під час навчання, детектори для кожної категорії може бути треновано спільно. У порівнянні з тренуванням окремо, це краще узагальнюється, потребує менше навчальних даних, і вимагає менше ознак для досягнення такої ж ефективності. Основна послідовність алгоритму є подібною до бінарного випадку. Різниця полягає в тім, що міру похибки спільного навчання повинно бути визначено заздалегідь. Під час кожної ітерації алгоритм обирає класифікатор однієї ознаки (заохочуються ознаки, які можуть бути спільними з іншими категоріями). Це можливо здійснювати шляхом перетворення багатокласової класифікації на бінарну (набір категорій проти решти),[16] або шляхом введення штрафної похибки з категорій, які не мають цієї ознаки класифікатора.[17] У праці «Sharing visual features for multiclass and multiview object detection», А. Торральба зі співавторами використали для підсилювання GentleBoost, та показали, що, коли тренувальні дані є обмеженими, навчання через спільні ознаки виконує роботу набагато краще, ніж без спільних ознак, за однакових раундів підсилювання. Також, для заданого рівня ефективності спостерігається, що загальна кількість необхідних ознак (а отже, і витрати часу виконання класифікатором) для детекторів зі спільними ознаками масштабується відносно кількості класів приблизно логарифмічно, тобто повільніше, ніж лінійне[en] зростання у випадку без спільних ознак. Подібні результати показано й у праці «Incremental learning of object detectors using a visual shape alphabet», тільки автори використовували для підсилювання AdaBoost[en]. Опуклі та неопуклі алгоритми підсилюванняАлгоритми підсилювання можуть ґрунтуватися на алгоритмах опуклої та неопуклої оптимізації. Опуклі алгоритми, такі як AdaBoost[en] та LogitBoost[en], може бути «переможено» випадковим шумом таким чином, що вони не зможуть навчатися простих та доступних для навчання комбінацій слабких гіпотез.[18][19] На це обмеження було вказано Лонгом та Серведіо 2008 року. Проте, станом на 2009 рік, декілька авторів показали, що алгоритми підсилювання на основі неопуклої оптимізації, такі як BrownBoost[en], можуть навчатися із зашумлених наборів даних, і можуть навчатися конкретно класифікатора, що лежить в основі набору даних Лонга — Серведіо. Див. також
Втілення
ПриміткиВиноски
До уваги
Посилання
|
Portal di Ensiklopedia Dunia