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

Уобичајени проблем са којим се сви суочавамо током рада на пројектима дубоког учења је одабир нивоа учења и оптимизатора (хипер-параметара). Ако сте попут мене, погађате оптимизатор и брзину учења, а затим проверавате да ли раде (и нисмо сами).

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

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

Експериментална поставка

Обучио сам основну револуционарну неуронску мрежу из ТенсорФлов-ове туториал серије, која учи да препознаје МНИСТ цифре. Ово је релативно мала мрежа, са два увојна слоја и два густа слоја, укупно око 3.400 тегова за тренинг.За сваки тренинг користи се исто случајно семе.

Треба напоменути да се резултати у наставку односе на један одређени модел и скуп података. Идеални хипер-параметри за друге моделе и скупове података ће се разликовати.

(Ако желите да поклоните време ГПУ-у за покретање веће верзије овог експеримента на ЦИФАР-10, контактирајте).

Која стопа учења најбоље делује?

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

Модел је обучен са 6 различитих оптимизатора: Градиент Десцент, Адам, Адаград, Ададелта, РМС Проп и Моментум. За сваки оптимизатор је обучен са 48 различитих стопа учења, од 0,000001 до 100 у логаритамским интервалима.

У свакој вожњи мрежа се увежбава док не постигне најмање 97% тачности воза. Максимално дозвољено време је било 120 секунди. Експерименти су вођени на Нвидији Тесла К80, чији је домаћин био ФлоидХуб. Изворни код је доступан за преузимање.

Ево времена обуке за сваки избор нивоа учења и оптимизатора:

Горњи графикон је занимљив. То можемо видети:

  • За сваки оптимизатор, већина стопа учења не успева да обучи модел.
  • За сваки оптимизатор постоји облик долине: прениска стопа учења никада не напредује, а превисока стопа учења узрокује нестабилност и никада се не конвергира. Између тога постоји опсег „управо тачних“ стопа учења које успешно тренирају.
  • Не постоји стопа учења која одговара свим оптимизаторима.
  • Стопа учења може утицати на време тренинга за ред величине.

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

Да бисмо илустровали како се сваки оптимизатор разликује у својој оптималној брзини учења, ево најбржег и најспоријег модела за обуку за сваку брзину учења, међу свим оптимизаторима. Приметите да је максимално време 120 с (на пример, мрежа није успела да се обучи) на целом графикону - не постоји јединствена стопа учења која одговара сваком оптимизатору:

Погледајте широк опсег стопа учења (од 0,001 до 30) који постижу успех са најмање једним оптимизатором из горњег графикона.

Који оптимизатор има најбоље резултате?

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

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

Неколико запажања:

  • Сви оптимизатори, осим РМСПропа (види завршну тачку) , успевају да се конвергирају у разумном времену.
  • Адам учи најбрже.
  • Адам је стабилнији од осталих оптимизатора и не трпи значајнија смањења тачности.
  • РМСПроп је покренут са подразумеваним аргументима из ТенсорФлов-а (стопа распадања 0,9, епсилон 1е-10, замах 0,0) и може бити случај да они не раде добро за овај задатак. Ово је добар случај за аутоматизовану претрагу хиперпараметара (погледајте последњи одељак за више о томе).

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

Како величина модела утиче на време тренинга?

Погледајмо сада како величина модела утиче на то како се тренира.

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

Истражићемо два аспекта:

  1. Како се време тренинга мења како модел расте, за фиксни оптимизатор и стопу тренинга?
  2. Која стопа учења тренира најбрже за сваку величину модела, за фиксни оптимизатор?

Како се време тренинга мења како модел расте?

Испод је приказано време потребно за постизање 96% тачности тренинга на моделу, повећавајући његову величину са 1к на 10к. Користили смо један од наших најуспешнијих хипер-параметара из раније:

  • Време за тренинг линеарно расте са величином модела.
  • Иста стопа учења успешно обучава мрежу у свим величинама модела.

(Напомена: на следеће резултате се може поуздати само у скупу података и моделима који су овде тестирани, али може бити вредно тестирања за ваше експерименте.)

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

Ово такође показује да, како мрежа постаје већа, она не подлеже било каквом О (н²) раду на конвергенцији модела (линеарни раст у времену може се објаснити додатним операцијама које су предузете за сваки тренинг са теговима).

Овај резултат је додатно умирујући јер показује да се наш оквир за дубоко учење (овде ТенсорФлов) ефикасно скалира.

Која стопа учења има најбоље резултате за различите величине модела?

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

  • Стопе учења 0,0005, 0,001, 0,00146 су се најбоље показале - оне су такође имале најбоље резултате у првом експерименту. Овде видимо исти бенд „слатке тачке“ као у првом експерименту.
  • Време сваке обуке за учење расте линеарно са величином модела.
  • Учинак брзине учења није зависио од величине модела. Исте стопе које су се најбоље показале за 1к величину најбоље су се показале за величину од 10к.
  • Изнад 0,001, повећање стопе учења повећало је време за тренирање и такође повећало одступање у времену тренинга (у поређењу са линеарном функцијом величине модела).
  • Време за тренинг може се приближно моделирати као ц + кн за модел са н пондера, фиксним трошковима ц и константом учења к = ф (стопа учења) .

Укратко, најбржи степен учења за величину 1к био је и најбоља стопа учења за величину 10к.

Аутоматизација избора стопе учења

Као што показују ранији резултати, пресудно је за тренинг модела да имају добар избор оптимизатора и стопе учења.

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

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

Претрага мреже

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

Претраживање мреже је врло лако применити и разумети. Такође је лако потврдити да сте претражили довољно широк одељак претраге параметара. Из ових разлога је веома популаран у истраживању.

Обука заснована на становништву

Обука заснована на популацији (ДеепМинд) је елегантна примена коришћења генетског алгоритма за избор хипер-параметара.

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

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

Следећи кораци

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

Обавестите ме ако постоји одређена тема или додатак који желите да видите. Такође, ако сте заинтересовани за донирање ГПУ времена за покретање много веће верзије овог експеримента, волео бих да разговарамо.

Ови радови су део једногодишњег истраживања тема архитектуре уметничке интелигенције. Пратите ову публикацију (и дајте овом чланку аплауз!) Да бисте добијали новости када изађу следећи комади.