К учење: Све што требате знати о учвршћивању учења



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

и је неколико домена који су међу најбољим модним речима у индустрији и са добрим разлогом. АИ ће до 2020. створити 2,3 милиона радних места с обзиром на то да је њен главни циљ омогућити машинама да опонашају људско понашање. Чудно зар не? Дакле, данас ћемо разговарати о К Леарнингу, градивном елементу Арматурног учења по следећем редоследу:

Шта је учвршћивање учења?

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





Кључна подручја интересовања:

  • Животна средина
  • поступак
  • Награда
  • Стање

појачање учење - к учење



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

Процес К-учења

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

Аналогија фабрике аутомобила:



Налазимо се у фабрици аутомобила пуној робота. Ови роботи помажу радницима Фабрике преносећи потребне делове потребне за састављање аутомобила. Ови различити делови налазе се на различитим локацијама у фабрици у 9 станица. Делови укључују шасију, точкове, контролну таблу, мотор и тако даље. Фацтори Мастер је дао приоритет локацији на којој се поставља шасија. Погледајмо подешавање овде:

Државе:

Локација на којој је робот присутан у одређеној инстанци назива се његово стање. Пошто га је лако кодирати, а не памтити по именима. Мапирајмо локацију у бројеве.

Акције:

Акције нису ништа друго до покрети које роботи повуку на било коју локацију. Узмите у обзир да се робот налази на локацији Л2, а директне локације на које се може преселити су Л5, Л1 и Л3. Хајде да ово боље разумемо ако ово визуализујемо:

Награде:

преоптерећење вс надјачавање у јави

Награда ће добити робот за прелазак директно из једног стања у друго. На пример, можете доћи до Л5 директно са Л2 и обрнуто. Дакле, награда од 1 ће бити обезбеђена у оба случаја. Погледајмо табелу награда:

Сетите се када је Фацтори Мастер дао приоритет локацији шасије. Био је Л7, па ћемо уградити ову чињеницу у своју табелу награда. Дакле, доделићемо врло велики број (999 у нашем случају) на локацији (Л7, Л7).

Белманова једначина

Сада претпоставимо да робот треба да иде од тачке А до Б. Он ће одабрати пут који ће донети позитивну награду. Зато претпоставимо да обезбедимо награду у смислу отиска да би то следило.

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

В (с) = мак (Р (с, а) + & # 120632В (с ’))

Где:

  • с = одређено стање
  • а = акција
  • с '= стање у које робот прелази из с
  • & # 120632 = фактор попуста
  • Р (с, а) = функција награде која узима стање (стања) и радњу (а) и даје вредност награде
  • В (с) = вредност боравка у одређеном стању

Сад ће блок испод одредишта добити награду 1, што је највиша награда, али шта је са другим блоком? Па, ту долази фактор попуста. Претпоставимо фактор попуста од 0,9 и попунимо све блокове један по један.

Марков Процес одлучивања

Замислите да је робот на наранџастом блоку и треба да стигне на одредиште. Али чак и ако постоји мала дисфункција, робот ће се збунити којим путем да крене, а не да иде горе.

Зато морамо да изменимо процес доношења одлука. То мора Делимично случајно и Делимично под контролом робота . Делимично случајно, јер не знамо када ће робот имати дисфункције, а делимично под контролом, јер је то и даље одлука робота. И ово чини основу за поступак одлучивања о Маркову.

Марков процес одлучивања (МДП) је дистанцирани временски стохастички процес контроле. Пружа математички оквир за моделирање доношења одлука у ситуацијама када су исходи делом случајни, а делимично под контролом доносиоца одлуке.

како то учинити снагом ин Јава

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

В (с) = мак (Р (с, а) + & # 120632 В (с ’))

В (с) = мак (Р (с, а) + & # 120632 & Сигмас ’П (с, а, с ’) В (с '))

П (с, а, с ’): Вероватноћа преласка из државе с до с ’ са акцијом до

& Сигмас ’П (с, а, с ’) В (с): Случајна очекивања од робота

В (с) = мак (Р (с, а) + & # 120632 ((0.8В (собагоре)) + (0,1 В (собадоле) +….))

Сада, пређимо на К учење. К-Леарнинг поставља идеју да се процени квалитет радње која се предузима за прелазак у неко стање, уместо да се утврди могућа вредност стања у које се премешта.

То добијамо ако уградимо идеју процене квалитета акција за прелазак у одређено стање. Из ажуриране Беллман-ове једначине ако их уклонимо макс компонента, претпостављамо само један отисак могуће акције који није ништа друго до Квалитет акције.

К (с, а) = (Р (с, а) + & # 120632 & Сигмас ’П (с, а, с ’) В (с '))

У овој једначини која квантификује квалитет деловања, можемо претпоставити да је В (с) максимум свих могућих вредности К (с, а). Дакле, заменимо в (с ’) функцијом К ().

К (с, а) = (Р (с, а) + & # 120632 & Сигмас ’П (с, а, с ’) макс. К (с ’, а’))

Само смо један корак близу наше коначне Једначине К учења. Увешћемо а Привремена разлика за израчунавање К-вредности с обзиром на промене у окружењу током времена. Али како да посматрамо промену у К?

ТД (с, а) = (Р (с, а) + & # 120632 & Сигмас ’П (с, а, с ’) макс. К (с ’, а’)) - К (с, а)

Израчунавамо нови К (с, а) са истом формулом и од њега одузимамо претходно познати К (с, а). Дакле, горња једначина постаје:

Кт(с, а) = Кт-1(с, а) + α ТДт(с, а)

Кт(с, а) = Тренутна К-вредност

Кт-1(с, а) = Претходна К-вредност

Кт(с, а) = Кт-1(с, а) + α (Р (с, а) + & # 120632 макс. К (с ’, а’)-Кт-1(с, а))

К Демонстрација учења: НумПи

Користићу НумПи да демонстрира како К учење функционише.

Корак 1: Увоз, параметри, стања, акције и награде

увоз нумпи као нп гама = 0,75 # Фактор попуста алфа = 0,9 # Стопа учења лоцатион_то_стате = {'Л1': 0, 'Л2': 1, 'Л3': 2, 'Л4': 3, 'Л5': 4, ' Л6 ': 5,' Л7 ': 6,' Л8 ': 7,' Л9 ': 8} акције = [0,1,2,3,4,5,6,7,8] награде = нп.арраи ( [[0,1,0,0,0,0,0,0,0], [1,0,1,0,0,0,0,0,0]], [0,1,0,0, 0,1,0,0,0], [0,0,0,0,0,0,1,0,0], [0,1,0,0,0,0,0,0,1,0] , [0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,0,1,0], [0,0,0,0, 1,0,1,0,1], [0,0,0,0,0,0,0,0,1,0]])

Корак 2: Мапирање индекса на локације

шта је појо час у јави са примером
стате_то_лоцатион = дицт ((стање, локација) за локацију, стање у лоцатион_то_стате.итемс ())

Корак 3: Дођите до оптималне руте користећи К процес учења

деф гет_оптимал_роуте (старт_лоцатион, енд_лоцатион): ревардс_нев = нп.цопи (ревардс) ЕНД_СТАТЕ = лоцатион_то_стате [енд_лоцатион] ревардс_нев [ЕНД_СТАРТ, ЕНД_СТАТЕ] = 999 К = нп.арраи (нп.зерос ([9,9]))] Процес учења за и ин ранге (1000): # Преузимање случајног стања цуррент_стате = нп.рандом.рандинт (0,9) # Питхон искључује горњу границу плаиабле_ацтион = [] # Итерација кроз нову наградну матрицу за ј у опсегу ( 9): иф ревардс_нев [цуррент_стате, ј]> 0: плаиабле_ацтионс.аппенд (ј) # Изаберите случајну акцију која ће нас довести до следећег стања нект_стате = нп.рандом.цхоице (плаиабле_ацтионс) # Израчунавање привремене разлике ТД = ревардс_нев [цуррент_стате , нект_стате] + гама * К [нект_стате, нп.аргмак (К [нект_стате,])] - К [цуррент_стате, нект_стате] # Ажурирање К-вредности помоћу Беллман-ове једначине К [цуррент_стате, нект_стате] + = алпха * ТД # Иницијализујте оптималну руту са почетном локацијом роуте = [старт_лоцатион] #Инитиализе нект_лоцатион са почетном локацијом нект_лоцатион = стар т_лоцатион # Не знамо тачан број итерација потребних за постизање коначне локације, па ће вхиле петља бити добар избор за итерацију док (нект_лоцатион! = енд_лоцатион): # Дохвата почетно стање старт_стате = лоцатион_то_стате [старт_лоцатион] # Дохватите највећу К-вредност која се односи на почетно стање нект_стате = нп.аргмак (К [старт_стате,]) # Добили смо индекс следећег стања. Али треба нам одговарајуће писмо. нект_лоцатион = стате_то_лоцатион [нект_стате] роуте.аппенд (нект_лоцатион) # Ажурирајте почетну локацију за следећу итерацију старт_лоцатион = нект_лоцатион ретурн роуте

Корак 4: Одштампајте руту

испис (гет_оптимал_роуте ('Л1', 'Л9'))

Излаз:

Овим смо дошли до краја К-учења. Надам се да сте упознали рад К учења заједно са разним зависностима које постоје попут временске разлике, Белманове једначине и још много тога.

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