logo

GBM в машинното обучение

Машинното обучение е една от най-популярните технологии за изграждане на прогнозни модели за различни сложни задачи за регресия и класификация. Машина за усилване на градиента (GBM) се счита за един от най-мощните алгоритми за повишаване.

GBM в машинното обучение

Въпреки че има толкова много алгоритми, използвани в машинното обучение, усилващите алгоритми се превърнаха в мейнстрийм в общността за машинно обучение по целия свят. Техниката за усилване следва концепцията за ансамбълно обучение и следователно комбинира множество прости модели (слаби обучаеми или базови оценители), за да генерира крайния резултат. GBM се използва и като метод на ансамбъл в машинното обучение, който превръща слабите учащи се в силни учащи се. В тази тема, „GBM в машинното обучение“ ще обсъдим градиентни алгоритми за машинно обучение, различни алгоритми за усилване в машинното обучение, историята на GBM, как работи, различни терминологии, използвани в GBM и т.н. Но преди да започнете, първо разберете концепцията за усилване и различните алгоритми за усилване в машинното обучение.

Какво е усилване в машинното обучение?

Повишаването е една от популярните техники за моделиране на ансамбъл за обучение, използвани за изграждане на силни класификатори от различни слаби класификатори. Започва с изграждането на първичен модел от наличните набори от данни за обучение, след което идентифицира грешките, присъстващи в базовия модел. След идентифициране на грешката се изгражда вторичен модел и по-нататък в този процес се въвежда трети модел. По този начин този процес на въвеждане на повече модели продължава, докато не получим пълен набор от данни за обучение, чрез който моделът прогнозира правилно.

AdaBoost (Адаптивно усилване) беше първият алгоритъм за усилване, който комбинира различни слаби класификатори в един силен класификатор в историята на машинното обучение. Основно се фокусира върху решаването на задачи за класификация като двоична класификация.

Стъпки в алгоритмите за усилване:

Има няколко важни стъпки за усилване на алгоритъма, както следва:

  • Помислете за набор от данни с различни точки от данни и го инициализирайте.
  • Сега дайте еднакво тегло на всяка от точките с данни.
  • Приемете това тегло като вход за модела.
  • Идентифицирайте точките от данни, които са неправилно класифицирани.
  • Увеличете теглото за точките от данни в стъпка 4.
  • Ако получите подходящ резултат, прекратете този процес, в противен случай следвайте стъпки 2 и 3 отново.

Пример:

Да предположим, че имаме три различни модела с техните прогнози и те работят по напълно различни начини. Например моделът на линейна регресия показва линейна връзка в данните, докато моделът на дървото на решенията се опитва да улови нелинейността в данните, както е показано на изображението по-долу.

GBM в машинното обучение

Освен това, вместо да използваме тези модели поотделно, за да прогнозираме резултата, ако ги използваме под формата на серия или комбинация, тогава получаваме резултатен модел с правилна информация от всички базови модели. С други думи, вместо да използваме индивидуалната прогноза на всеки модел, ако използваме средна прогноза от тези модели, тогава ще можем да уловим повече информация от данните. Нарича се ансамбълно обучение и усилването също се основава на ансамблови методи в машинното обучение.

Подобряване на алгоритмите в машинното обучение

В машинното обучение има предимно 4 алгоритъма за усилване. Те са както следва:

    Машина за усилване на градиента (GBM) Машина за усилване на екстремен градиент (XGBM) Лек GBM CatBoost

Какво е GBM в машинното обучение?

Gradient Boosting Machine (GBM) е един от най-популярните ансамбълни методи за напредващо обучение в машинното обучение. Това е мощна техника за изграждане на прогнозни модели за задачи за регресия и класификация.

GBM ни помага да получим прогнозен модел под формата на ансамбъл от слаби модели за прогнозиране, като дървета на решенията. Всеки път, когато дървото на решенията се представя като слаб обучаем, тогава полученият алгоритъм се нарича градиентно-подсилени дървета.

Позволява ни да комбинираме прогнозите от различни модели на обучаеми и да изградим окончателен прогнозен модел с правилната прогноза.

javascript

Но тук може да възникне един въпрос, ако прилагаме един и същ алгоритъм, тогава как множество дървета на решения могат да дадат по-добри прогнози от едно дърво на решения? Освен това, как всяко дърво на решенията улавя различна информация от едни и същи данни?

GBM в машинното обучение

И така, отговорът на тези въпроси е, че различно подмножество от характеристики се взема от възлите на всяко дърво на решенията, за да се избере най-доброто разделяне. Това означава, че всяко дърво се държи различно и следователно улавя различни сигнали от едни и същи данни.

Как работи GBM?

Като цяло повечето контролирани алгоритми за обучение се основават на единичен прогнозен модел като линейна регресия, наказан регресионен модел, дървета на решенията и т.н. Но има някои контролирани алгоритми в ML, които зависят от комбинация от различни модели заедно чрез ансамбъла. С други думи, когато множество базови модели дават своите прогнози, средната стойност на всички прогнози се адаптира чрез алгоритми за усилване.

Машините за усилване на градиента се състоят от 3 елемента, както следва:

  • Функция на загуба
  • Слаби учащи
  • Адитивен модел

Нека разберем подробно тези три елемента.

1. Функция на загубата:

Въпреки това, има голямо семейство функции за загуба в машинното обучение, които могат да се използват в зависимост от вида на задачите, които се решават. Използването на функцията на загубата се оценява чрез търсенето на специфични характеристики на условното разпределение, като устойчивост. Докато използваме функция на загуба в нашата задача, трябва да посочим функцията на загуба и функцията за изчисляване на съответния отрицателен градиент. След като получим тези две функции, те могат лесно да бъдат внедрени в машини за усилване на градиента. Има обаче няколко функции за загуба, които вече са предложени за GBM алгоритми.

Класификация на функцията на загубата:

Въз основа на типа променлива на отговор y, функцията на загубата може да бъде класифицирана в различни типове, както следва:

git статус -s
    Непрекъснат отговор, y ∈ R:
    • Гаусова L2 функция на загубите
    • Функция на загубите на Лаплас L1
    • Функция на загубите на Huber, посочено δ
    • Функция на загуба на квантил, посочена α
    Категоричен отговор, y ∈ {0, 1}:
    • Биномна функция на загуба
    • Функция за загуба на Adaboost
    Други групи от променливи на отговор:
    • Функции на загуба за модели на оцеляване
    • Функции за загуба на данни
    • Персонализирани функции за загуба

2. Слаб обучаем:

Слабите обучаеми са основните модели на обучаеми, които се учат от минали грешки и помагат за изграждането на силен предсказуем дизайн на модела за усилване на алгоритмите в машинното обучение. Като цяло, дърветата на решенията работят като слаби обучаеми в алгоритмите за усилване.

Повишаването се определя като рамка, която непрекъснато работи за подобряване на изхода от базовите модели. Много приложения за повишаване на градиента ви позволяват да „включвате“ различни класове слаби учащи на ваше разположение. Следователно дърветата на решенията най-често се използват за слаби (базови) обучаеми.

Как да обучаваме слаби учащи:

Машинното обучение използва набори от данни за обучение, за да обучава базови учащи се и въз основа на прогнозата от предишния учащ, подобрява производителността, като се фокусира върху редовете от данните за обучение, където предишното дърво е имало най-големите грешки или остатъци. напр. плитките дървета се считат за слаби обучаеми дървета за вземане на решения, тъй като съдържат няколко разделяния. Като цяло в алгоритмите за усилване най-често се срещат дървета с до 6 разделяния.

По-долу е дадена последователност от обучение на слабия обучаем, за да подобри представянето си, където всяко дърво е в последователността с остатъците от предишното дърво. Освен това въвеждаме всяко ново дърво, за да може да се учи от грешките на предишното дърво. Те са както следва:

  1. Помислете за набор от данни и поставете дърво на решенията в него.
    F1(x)=y
  2. Поставете следващото дърво на решенията с най-големите грешки от предишното дърво.
    h1(x)=y?F1(x)
  3. Добавете това ново дърво към алгоритъма, като добавите и двете в стъпки 1 и 2.
    F2(x)=F1(x)+h1(x)
  4. Отново напаснете следващото дърво на решенията с остатъците от предишното дърво.
    h2(x)=y?F2(x)
  5. Повторете същото, което направихме в стъпка 3.
    F3(x)=F2(x)+h2(x)

Продължете този процес, докато някакъв механизъм (т.е. кръстосано валидиране) ни каже да спрем. Крайният модел тук е поетапно адитивен модел на b отделни дървета:

f(x)=B∑b=1fb(x)

Следователно дърветата се изграждат алчно, като се избират най-добрите точки на разделяне въз основа на резултати за чистота като Gini или минимизиране на загубата.

3. Адитивен модел:

Адитивният модел се определя като добавяне на дървета към модела. Въпреки че не трябва да добавяме няколко дървета наведнъж, трябва да се добави само едно дърво, така че съществуващите дървета в модела да не се променят. Освен това можем да предпочетем метода на градиентно спускане, като добавим дървета, за да намалим загубата.

През последните няколко години методът на градиентно спускане беше използван за минимизиране на набора от параметри като коефициента на регресионното уравнение и теглото в невронна мрежа. След изчисляване на грешката или загубата параметърът тегло се използва за минимизиране на грешката. Но напоследък повечето експерти по машинно обучение предпочитат подмодели на слаби обучаеми или дървета на решенията като заместител на тези параметри. В което трябва да добавим дърво в модела, за да намалим грешката и да подобрим производителността на този модел. По този начин прогнозата от новодобавеното дърво се комбинира с прогнозата от съществуващата поредица от дървета, за да се получи окончателна прогноза. Този процес продължава, докато загубата достигне приемливо ниво или вече не е необходимо подобрение.

Този метод е известен също като функционално градиентно спускане или градиентно спускане с функции.

МАШИНА ЗА ПОВИШАВАНЕ НА ЕКСТРЕМЕН ГРАДИЕНТ (XGBM)

XGBM е най-новата версия на машини за усилване на градиента, която също работи много подобно на GBM. В XGBM дърветата се добавят последователно (едно по едно), които се учат от грешките на предишни дървета и ги подобряват. Въпреки че алгоритмите XGBM и GBM са подобни на вид и усещане, но все пак има няколко разлики между тях, както следва:

  • XGBM използва различни техники за регулиране, за да намали недостатъчното или прекомерното прилягане на модела, което също така увеличава производителността на модела повече от машините за усилване на градиента.
  • XGBM следва паралелна обработка на всеки възел, докато GBM не, което го прави по-бърз от машините за усилване на градиента.
  • XGBM ни помага да се отървем от приписването на липсващи стойности, тъй като по подразбиране моделът се грижи за това. Той сам научава дали тези стойности трябва да бъдат в десния или в левия възел.

Машини за усилване на светъл градиент (Light GBM)

Light GBM е по-модернизирана версия на машината за усилване на Gradient поради нейната ефективност и бърза скорост. За разлика от GBM и XGBM, той може да обработва огромно количество данни без никаква сложност. От друга страна, той не е подходящ за онези точки от данни, които са по-малко на брой.

Вместо растеж по нива, Light GBM предпочита растеж по листа на възлите на дървото. Освен това, при лек GBM, първичният възел се разделя на два вторични възела и по-късно избира един вторичен възел, който да бъде разделен. Това разделяне на вторичен възел зависи от това кой между два възела има по-висока загуба.

GBM в машинното обучение

Следователно, поради листовото разделяне, алгоритъмът на машината за усилване на светлинен градиент (LGBM) винаги е предпочитан пред други, където се дава голямо количество данни.

CATBOOST

Алгоритъмът catboost се използва предимно за обработка на категориалните характеристики в набор от данни. Въпреки че алгоритмите GBM, XGBM и Light GBM са подходящи за набори от числови данни, Catboost е проектиран да обработва категориални променливи в числови данни. Следователно алгоритъмът catboost се състои от съществена стъпка на предварителна обработка за преобразуване на категорични характеристики в числови променливи, които не присъстват в никой друг алгоритъм.

Предимства на алгоритмите за усилване:

  • Алгоритмите за усилване следват обучението на ансамбъла, което позволява на модела да даде по-точна прогноза, която не може да бъде преодоляна.
  • Алгоритмите за усилване са много по-гъвкави от другите алгоритми, тъй като могат да оптимизират различни функции за загуба и предоставят няколко опции за настройка на хиперпараметъра.
  • Не изисква предварителна обработка на данни, защото е подходящ както за числови, така и за категорични променливи.
  • Не изисква приписване на липсващи стойности в набора от данни, той обработва липсващите данни автоматично.

Недостатъци на алгоритмите за усилване:

По-долу са дадени няколко недостатъка на алгоритмите за усилване:

  • Алгоритмите за усилване могат да причинят пренастройване, както и прекалено подчертаване на извънредните стойности.
  • Алгоритъмът за усилване на градиента непрекъснато се фокусира, за да сведе до минимум грешките и изисква множество дървета, следователно е скъп от изчислителна гледна точка.
  • Това е алгоритъм, който отнема много време и памет.
  • По-малко интерпретативен по природа, въпреки че това лесно се решава с различни инструменти.

Заключение:

По този начин научихме алгоритми за усилване за прогнозно моделиране в машинното обучение. Също така обсъдихме различни важни алгоритми за усилване, използвани в ML, като GBM, XGBM, лек GBM и Catboost. Освен това видяхме различни компоненти (функция на загуба, слаб обучаем и адитивен модел) и как GBM работи с тях. Как алгоритмите за усилване са изгодни за внедряване в сценарии от реалния свят и т.н.