Свеобухватан водич за појачавање алгоритама машинског учења



Овај блог се у потпуности фокусира на то како подстиче машинско учење и како се може применити како би се повећала ефикасност модела машинског учења.

Са толико напретка на пољу здравства, маркетинга, пословања и тако даље, постало је потребно развијати напредније и сложеније . Појачавање машинског учења је једна таква техника која се може користити за решавање сложених проблема заснованих на подацима из стварног света. Овај блог је у потпуности фокусиран на то како подстиче машинско учење и како се може применити како би се повећала ефикасност модела машинског учења.

Да бисте стекли детаљно знање о вештачкој интелигенцији и машинском учењу, можете се пријавити уживо Едурека са 24/7 подршком и доживотним приступом.





лутка против кувара против ансибла

Ево листе тема које ће бити обрађене у овом блогу:

  1. Зашто се користи појачање?
  2. Шта појачава?
  3. Како ради алгоритам за појачавање?
  4. Врсте појачавања
  5. Демо

Зашто се користи појачање?

За решавање замршених проблема потребне су нам напредније технике. Претпоставимо да је од датог скупа података са сликама које садрже слике мачака и паса затражено да направите модел који може да класификује ове слике у две одвојене класе. Као и свака друга особа, започећете тако што ћете идентификовати слике користећи нека правила, као што је дато у наставку:



  1. Слика има шиљасте уши: Мачка

  2. На слици су очи у облику мачке: Мачка

  3. Слика има веће удове: Пас



  4. Слика има изоштрене канџе: Мачка

  5. Слика има ширу структуру уста: Пас

Сва ова правила помажу нам да идентификујемо да ли је слика пас или мачка, међутим, ако бисмо класификовали слику на основу појединачног (појединачног) правила, предвиђање би било погрешно. Свако од ових правила, појединачно, назива се слабим ученицима, јер та правила нису довољно јака да класификују слику као мачку или пса.

Стога, да бисмо били сигурни да је наше предвиђање тачније, можемо комбинирати предвиђања сваког од ових слабих ученика користећи правило већине или пондерисани просек. Ово чини јак модел ученика.

У горњем примеру смо дефинисали 5 слабих ученика и већина ових правила (тј. 3 од 5 ученика предвиђају слику као мачка) даје нам предвиђање да је слика мачка. Стога је наш коначни резултат мачка.

Дакле, ово нас доводи до питања,

Шта појачава?

Појачавање је техника учења ансамбла која користи скуп алгоритама машинског учења за претварање слабог ученика у јаког ученика како би се повећала тачност модела.

What-Is-Boosting-Boosting-Machine-Learning-Edureka

Шта појачава - појачава машинско учење - Едурека

Као што сам поменуо Појачавање је метод учења ансамбла, али шта је тачно учење ансамбла?

Шта је ансамбл у машинском учењу?

Учење у ансамблу је метода која се користи за побољшање перформанси модела машинског учења комбиновањем неколико ученика. У поређењу са једним моделом, ова врста учења гради моделе са побољшаном ефикасношћу и тачношћу. Управо се због тога методе ансамбала користе за победу на водећим такмичењима на тржишту, попут такмичења за препоруке Нетфлика, такмичења Каггле и тако даље.

Шта је учење ансамбла - појачавање машинског учења - Едурека

Испод сам такође разговарао о разлици између појачавања и додавања вреће.

Појачавање против бега

Учење у ансамблу може се изводити на два начина:

  1. Секвенцијални ансамбл, у народу позната као појачавање , овде се слаби ученици секвенцијално производе током фазе обуке. Перформансе модела побољшавају се додељивањем веће тежине претходним, погрешно класификованим узорцима. Пример појачавања је алгоритам АдаБоост.

  2. Паралелни скуп , у народу познат као врећање , овде се слаби ученици паралелно производе током фазе обуке. Учинак модела може се повећати паралелном обуком одређеног броја слабих ученика на боотстраппед скуповима података. Пример врећа је Случајна шума алгоритам.

На овом блогу ћу се усредсредити на методу појачавања, тако да ћемо у одељку у наставку разумети како алгоритам појачавања функционише.

Како ради алгоритам за појачавање?

Основни принцип рада алгоритма за појачавање је генерирање вишеструких слабих ученика и комбинирање њихових предвиђања у једно јако правило. Ова слаба правила се генеришу применом основних алгоритама за машинско учење на различитим дистрибуцијама скупа података. Ови алгоритми генеришу слаба правила за сваку итерацију. Након вишеструких понављања, слаби ученици се комбинују и формирају снажног ученика који ће предвидети тачнији исход.

Како функционише алгоритам за појачавање - појачавање машинског учења - Едурека

Ево како алгоритам функционише:

Корак 1: Основни алгоритам чита податке и додељује једнаку тежину сваком посматрању узорка.

Корак 2: Идентификују се лажна предвиђања основног ученика. У следећој итерацији, ова лажна предвиђања додељују се следећем основном ученику са већом тежином ових нетачних предвиђања.

Корак 3: Понављајте корак 2 док алгоритам не може правилно класификовати излаз.

Стога је главни циљ појачања да се више усредсредимо на предвиђања погрешно класификованих.

Сада када знамо како алгоритам појачавања функционише, хајде да разумемо различите врсте техника појачања.

Врсте појачавања

Постоје три главна начина на која се може извршити појачавање:

  1. Адаптиве Боостинг или АдаБоост

  2. Појачавање градијента

  3. КСГБоост

Разговараћу о основама сваке од ових врста.

Адаптиве Боостинг

  • АдаБоост је имплементиран комбиновањем неколико слабих ученика у једног јаког ученика.

  • Слаби ученици у АдаБоосту узимају у обзир једну особину уноса и извлаче једно подељено стабло одлуке названо пањ одлуке. Свако запажање се једнако вага док се извлачи први пањ одлуке.

  • Резултати првог пања одлуке се анализирају и ако су нека запажања погрешно класификована, додељују им се веће тежине.

  • Након овога, извлачи се нова одлука што се запажања са већим тежинама сматра значајнијим.

  • Ако се било која запажања погрешно класификују, опет им се даје већа тежина и овај процес се наставља све док сва запажања не спадају у праву класу.

  • Адабоост се може користити и за класификацију и за проблеме засноване на регресији, међутим, чешће се користи за сврхе класификације.

Појачавање градијента

Појачавање градијента такође се заснива на узастопном учењу ансамбла. Овде се основни ученици генеришу секвенцијално на такав начин да је садашњи основни ученик увек ефикаснији од претходног, тј. Укупни модел се секвенцијално побољшава са сваком итерацијом.

Разлика у овом типу појачавања је у томе што се пондери погрешно класификованих исхода не повећавају, већ метода Градиент Боостинг покушава да оптимизује функцију губитка претходног ученика додавањем новог модела који додаје слабе ученике како би се смањила функција губитка.

ц ++ програм за сортирање низа у растућем редоследу

Главна идеја овде је превазилажење грешака у предвиђањима претходног ученика. Ова врста појачања има три главне компоненте:

  1. Функција губитка то треба побољшати.

  2. Слаб ученик за рачунање предвиђања и формирање јаких ученика.

  3. Ан Адитивни модел то ће регулисати функцију губитка.

Попут АдаБоост-а, Градиент Боостинг се такође може користити и за проблеме класификације и регресије.

КСГБоост

КСГБоост је напредна верзија Градиент боостинг методе, што дословно значи еКстреме Градиент Боостинг. КСГБоост који је развио Тианки Цхен спада у категорију Дистрибуиране заједнице за машинско учење (ДМЛЦ).

Главни циљ овог алгоритма је повећати брзину и ефикасност израчунавања. Алгоритам Градиент Десцент Боостинг израчунава излаз спорије, јер они секвенцијално анализирају скуп података, па се КСГБоост користи за појачавање или изузетно побољшање перформанси модела.

КСГБоост - Појачавање машинског учења - Едурека

КСГБоост је дизајниран да се фокусира на рачунску брзину и ефикасност модела. Главне карактеристике које пружа КСГБоост су:

  • Паралелно ствара стабла одлучивања.

  • Примена дистрибуираних рачунарских метода за процену великих и сложених модела.

  • Коришћење рачунарског рачунара за анализу огромних скупова података.

  • Имплементација оптимизације кеш меморије ради најбољег коришћења ресурса.

Па то су билиразличите врсте појачања алгоритама машинског учења. Да би ствари биле занимљиве, у одељку испод ћемо покренути демонстрацију како бисмо видели како се алгоритми за појачавање могу применити у Питхону.

Појачавање машинског учења у Питхону

Кратка изјава о одрицању одговорности: Користићу Питхон за покретање ове демонстрације, па ако не знате Питхон, можете да прођете кроз следеће блогове:

  1. Како научити Питхон 3 из огреботина - водич за почетнике

Сада је време да упрљате руке и почнете да кодирате.

Изјава о проблему: Проучити скуп података о гљивама и изградити модел машинског учења који може класификовати гљиву или отровну или не, анализом њених карактеристика.

Опис скупа података: Овај скуп података даје детаљан опис хипотетичких узорака у складу са 23 врсте шампињона. Свака врста је класификована или као јестиве печурке или као нејестиве (отровне).

Логика: Да се ​​изгради модел машинског учења коришћењем једног од алгоритама за подстицање како би се предвидело да ли је печурка јестива или не.

Корак 1: Увезите потребне пакете

из склеарн.енсембле импорт АдаБоостЦлассифиер фром склеарн.препроцессинг импорт ЛабелЕнцодер фром склеарн.трее импорт ДецисионТрееЦлассифиер импорт пандас ас пд # Импорт траин_тест_сплит фунцтион фром склеарн.модел_селецтион импорт траин_тест_сплит #Импорт сцикит-леарн метрицс модул за прецизност метрике метрике метрика модула за израчунавање метрике метрике метрике метрике метрике

Корак 2: Увезите скуп података

# Учитај у скуп података = пд.реад_цсв ('Ц: //Усерс//НеелТемп//Десктоп//мусхроомсдатасет.цсв')

Корак 3: Обрада података

# Утврдите називе колона сет података.цолумнс = ['таргет', 'цап-схапе', 'цап-сурфаце', 'цап-цолор', 'модрице', 'одор', 'гилл-аттацхмент', 'гилл-спацинг ',' величина шкрге ',' боја шкрге ',' облик стабљике ',' корен стабљике ',' површина стабљике-изнад-прстена ',' површина стабљике-испод-прстена ',' боја стабљике -над-прстен ',' боја дршке-испод-прстена ',' тип вела ',' боја вела ',' број прстена ',' тип прстена ',' боја спора-отисак ',' популација ',' хабитат '] за ознаку у скупу података.цолумнс: скуп података [лабел] = ЛабелЕнцодер (). фит (скуп података [лабел]). трансформ (скуп података [лабел]) # Приказати информације о испису скупа података (дата.инфо ( )) Инт64Индек: 8124 уноса, 6074 до 686 колоне података (укупно 23 колоне): циљ 8124 не-нулл инт32 облик капице 8124 не-нулл инт32 цап-сурфаце 8124 нон-нулл инт32 цап-цолор 8124 нон-нулл инт32 модрице 8124 нон-нулл инт32 мирис 8124 нон-нулл инт32 гилл-аттацхмент 8124 нон-нулл инт32 гилл-спацинг 8124 нон-нулл инт32 гилл-сизе 8124 нон-нулл инт32 гилл-цолор 8124 нон-нулл инт32 стабљика 8124 нон-нулл инт32 роот-роот 8124 нон-нулл инт32 дршка-површина-изнад-прстена 8124 не-нулл инт32 дршка-површина-испод-прстена 8124 не-нулл инт32 боја стабљике-изнад-прстена 8124 не-нулл инт32 стабљика-боја-испод-прстена 8124 не-нулл инт32 вео- тип 8124 нон-нулл инт32 боја вела 8124 нон-нулл инт32 број прстена 8124 нон-нулл инт32 прстен тип 8124 нон-нулл инт32 споре-принт-цолор 8124 нон-нулл инт32 популација 8124 нон-нулл инт32 станиште 8124 нон- нулл инт32 дтипес: инт32 (23) употреба меморије: 793,4 КБ

Корак 4: Спајање података

Кс = скуп података.дроп (['таргет'], акис = 1) И = скуп података ['таргет'] Кс_траин, Кс_тест, И_траин, И_тест = траин_тест_сплит (Кс, И, тест_сизе = 0.3)

Корак 5: Изградите модел

модел = ДецисионТрееЦлассифиер (критеријум = 'ентропија', мак_дептх = 1) АдаБоост = АдаБоостЦлассифиер (басе_естиматор = модел, н_естиматорс = 400, леарнинг_рате = 1)

У горњи исечак кода применили смо алгоритам АдаБоост. Функција „АдаБоостЦлассифиер“ узима три важна параметра:

  • басе_естиматор: Основни процењивач (слаб ученик) је подразумевано Дрвеће одлука
  • н_естиматор: Ово поље одређује број основних ученика који ће се користити.
  • леарнинг_рате: Ово поље специфицира брзину учења коју смо поставили на подразумевану вредност, тј. 1.
# Одговара моделу са моделом боост дата података тренинга = АдаБоост.фит (Кс_траин, И_траин)

Корак 6: Евалуација модела

# Процените тачност модела и_пред = боостмодел.предицт (Кс_тест) предвиђања = метрике.тачност_резултата (И_тест, и_пред) # Израчунавање тачности у процентима штампе ('Тачност је:', предвиђања * 100, '%') Тачност је: 100,0%

Добили смо тачност од 100% што је савршено!

Тако смо овим дошли до краја овог блога за појачавање машинског учења. Ако желите да сазнате више о машинском учењу, можете прочитати ове блогове:

Ако желите да се упишете на комплетан курс о вештачкој интелигенцији и машинском учењу, Едурека има посебно курираног то ће вас оспособити за технике попут учења под надзором, учења без надзора и обраде природног језика. Обухвата обуку о најновијим достигнућима и техничким приступима у вештачкој интелигенцији и машинском учењу као што су дубоко учење, графички модели и учење ојачања.