Як збільшується градієнт, як градієнтний спуск?


9

Я читаю корисну запис у Вікіпедії щодо збільшення градієнта ( https://en.wikipedia.org/wiki/Gradient_boosting ) і намагаюся зрозуміти, як / чому ми можемо наблизити залишки найкрутішим кроком спуску (також званий псевдоградієнтом ). Чи може хтось дати мені інтуїцію щодо того, як найкрутіший спуск пов’язаний / схожий на залишки? Допомога високо оцінена!

введіть тут опис зображення

Відповіді:


11

Припустимо, ми опинилися в такій ситуації. У нас є деякі дані{хi,уi}, де кожен хi може бути числом чи вектором, і ми хотіли б визначити функцію f що наближає відносини f(хi)уi, в тому сенсі, що найменша помилка квадрата:

12i(уi-f(хi))2

невеликий.

Тепер постає питання про те, що б нам хотілося домену fбути. Вибір вибору для домену - це лише моменти наших навчальних даних. У цьому випадку ми можемо просто визначитисьf(хi)=у, що охоплює весь бажаний домен, і робити це з ним. Окружний спосіб досягти цієї відповіді - це спуск градієнта з цим дискретним простором як домен. Це потребує певних змін у точці зору. Давайте розглянемо втрату як функцію істинної точкиуі передбачення f (в дану хвилину, f це не функція, а лише значення передбачення)

L(f;у)=12(у-f)2

а потім прийняти градієнт щодо прогнозування

fL(f;у)=f-у

Потім оновлення градієнта, починаючи з початкового значення у0 є

у1=у0-f(у0,у)=у0-(у0-у)=у

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

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

Велика ідея полягає у слабкому наближенні L.

Start з початковою здогадкою на f, майже завжди проста константна функція f(х)=f0, це визначено скрізь. Тепер генеруйте новий робочий набір даних, оцінюючи градієнт функції втрат на даних тренувань, використовуючи початкову здогадку дляf:

W={хi,f0-у}

Now approximate L шляхом пристосування слабкого учня до W. Скажімо, ми отримаємо наближенняЖL. Ми отримали розширення данихW по всьому домену у вигляді Ж(Х), хоча ми втратили точність у навчальних балах, оскільки ми підходимо до маленького учня.

Finally, використовувати Ж замість L в оновленні градієнта f0 для всього домену:

f1(х)=f0(х)-Ж(х)

Ми виходимо f1, нове наближення f, трохи краще, ніж f0. Почніть зf1, і повторіть, поки не задоволені.

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


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

Дякую Метью. Одне, що я намагаюся обвести головою. У літературі часто зазначається, що оновлення моделі - F (m + 1) = F (m) +αмгод(м), де h (m) - слабкий учень. Якщо я замислююся над деревовою моделлю - чи означає це, що і для регресії, і для класифікації ми фактично практично оновлюємо своє передбачення для даної точки даних простим додаванням результатів двох моделей? це також працює, якщо ми намагаємось бинарне класифікувати це? чи знак + не слід тлумачити так буквально?
Wouter

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

1
@MatthewDrury Я думаю, що в багатьох літературах ми не є безпосереднім оновленням f1 з f0-Ж(х), але с f0-αЖ(х), де αвід 0 до 1 - рівень навчання.
Хайтао Ду

@ hxd1011 Так, це абсолютно правильно та вирішальне значення для успішного використання градієнтного збільшення.
Меттью Друрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.