През март 2017 г. OpenAI пусна публикация в блога за еволюционните стратегии, техника за оптимизация, която съществува от няколко десетилетия. Новото в тяхната статия беше, че те успяха да приложат техниката към дълбоки невронни мрежи в контекста на проблемите с обучението с подсилване (RL). Преди това оптимизирането на RL модели за дълбоко обучение (с обикновено милиони параметри) обикновено се постигаше с обратно разпространение. Използването на еволюционни стратегии за оптимизиране на дълбоки невронни мрежи (DNN) изглежда отключи вълнуващ нов инструментариум, с който да си играят изследователите на дълбокото обучение.

Тази седмица Uber AI Research публикува набор от пет статии, които са фокусирани върху „невроеволюцията“. Терминът невроеволюция се отнася до оптимизирането на невронни мрежи чрез еволюционни алгоритми. Изследователите твърдят, че генетичните алгоритми са ефективен метод за обучение на дълбоки невронни мрежи за проблеми с обучението за укрепване и че те превъзхождат традиционните RL подходи в някои области.

Преглед

И така, какво означава това? Ще бъдат ли всички DNN, вариращи от контролирани, до неконтролирани, както и RL приложения, оптимизирани с помощта на невроеволюция в близко бъдеще? Дали невроеволюцията е бъдещето на дълбокото обучение? Какво точно е невроеволюцията? В тази публикация в блога ще се опитам да дам въведение в невроеволюцията и да я сравня с традиционния алгоритъм за обратно разпространение. Също така ще се опитам да отговоря на гореспоменатите въпроси и да разположа техниките на невроеволюцията в по-голямата DL картина.

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

След това ще обсъдя обратното разпространение и ще обясня каква е връзката му с невроеволюцията. Като се има предвид, че и OpenAI, и Uber AI Research току-що пуснаха документи за тази техника, имам много теми, с които да се справя. За щастие, тъй като невроеволюцията на дълбокото обучение е в ранните етапи на изследване, механиката на невроеволюцията все още остава доста разбираема.

Проблемът с оптимизацията

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

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

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

За да направим това визуално, нека използваме два примера. И в двата случая сме начертали цел за оптимизация. В изображението на параболата оста x представлява единичния параметър на модела, а оста y представлява целта за оптимизация (напр. върху данни от теста).

На изображението по-долу оста x и y представляват двата параметъра на модела, а оста z представлява целта за оптимизация (напр. върху данните от теста).

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

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

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

Градиентно спускане

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

Общата идея за градиентно спускане е следната:
- Да приемем, че сте в Париж, Франция, и трябва да стигнете до Берлин, Германия. Европа в този случай е оптимизационната повърхност, Париж е произволната начална точка, а Берлин е абсолютният минимум или максимум.
-Като нямаш карта, питаш случайни непознати за посоката към Берлин. Някои от случайните непознати знаят къде е Берлин, но други не знаят, така че въпреки че в повечето случаи вървите в правилната посока, възможно е да тръгнете и в грешни посоки. Докато непознатите са по-правилни, отколкото неверни, трябва да се получи (напр. стохастичен градиентен спускане или градиентен спускане с минипартиди).
-Вървите 5 мили (размерът на стъпката или скоростта на обучение) в посоката, която има непознатият ви посочи. Този процес се повтаря, докато не повярвате, че сте достатъчно близо до Германия. Може да се окаже, че току-що сте влезли в Германия и не сте близо до Берлин (местен оптимум). Няма начин да проверите дали сте постигнали крайната си цел и можете да оцените само въз основа на заобикалящата ви среда (загубата от теста или наградата).

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

Във втория пример ситуацията е по-сложна. Има няколко хълма и долини, които трябва да преодолеете, за да стигнете до абсолютния минимум. Няколко варианта на градиентно спускане, които се опитват да имитират физическо поведение, като топка, търкаляща се надолу по повърхността с инерция (напр. ADAM), за да се избегне блокиране в локалните оптимуми.

Силно препоръчвам тази публикация в блога за варианти на градиентно спускане. Той ясно обяснява и илюстрира разликите между различните варианти и как те решават различните проблеми, с които се сблъсква градиентното спускане. Често има няколко локални оптимума, препятствия и различни пътища в този оптимизационен проблем и различни варианти на градиентно спускане обикновено се опитват да се справят с някои (или всички тези) проблеми. В наши дни оптимизаторът ADAM изглежда най-влиятелният.

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

Като се има предвид, че градиентите в обучението за подсилване не винаги са с добро качество, еволюционните алгоритми наскоро бяха използвани от Uber и OpenAI за подобряване на обучението.

Невроеволюция

Невроеволюцията, генетичните алгоритми, еволюционните стратегии се въртят около концепцията за генетична еволюция.

Когато правите генетична оптимизация в контекста на DNN оптимизация, започвате от първоначална популациямодели. Обикновено един модел се инициализира на случаен принцип и няколко потомствасе извличат въз основа на този първоначален модел. В случай на DNN, вие инициализирате модел (както правите обикновено) и добавяте малки произволни вектори, взети от просто разпределение на Гаус, към параметрите. Това води до облак от модели, които всички се намират някъде на оптимизационната повърхност. Имайте предвид, че това е първото важно разграничение с градиентно спускане. Започвате (и продължавате да работите) с популация от модели, вместо с един (точков) модел.

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

Първо се извършваоценка на годността. Оценката на годността съответства на проверка къде се намират моделите в повърхността за оптимизиране и определяне кой от моделите се представя най-добре (напр. са най-подходящи). Някои модели ще се представят по-добре от други само поради начина, по който са били инициализирани.
След това се извършва изборвъз основа на оценката на годността. В стратегиите за еволюция, (псевдо) потомството се свежда до един модел, претеглен от оценката на годността. За DNN годността се определя като загуба или награда. По същество вие се движите около оптимизационната повърхност и използвате потомството, за да стигнете в правилната посока. Забележете, че това е втората основна разлика с градиентното спускане. Вместо да изчислявате градиентите, вие поставяте множество „антени“ и се движите в посоката, която изглежда най-добре. В известен смисъл това е подобно на „структурирано произволно“ търсене. Крайният резултат от фазата на подбор е, че имате един модел.
След това се извършва възпроизвеждане и комбиниране. По-конкретно, повтаря се същият процес, както в началната фаза. Въз основа на новоизбрания „основен“ модел се извлича нов набор от потомци. След това процесът продължава с това потомство.
Обикновено при генетична оптимизация мутация също се извършва, за да се подобри разнообразието на потомството. Един пример за мутация е да се промени начина, по който се създава различното потомство (т.е. различни нива на шум за различните параметри).

Едно от предимствата на ES е, че оценката на годността на различните модели в популацията може да бъде изчислена на различни ядра (изчисление извън ядрото). Единствената информация, която трябва да бъде споделена след оценка на годността, е тяхната производителност (скаларна стойност), както и произволната начална стойност, която е използвана за генериране на модела. В резултат на това вече не е необходимо да споделяте цялата мрежа с всички машини. И OpenAI, и Uber използваха буквално стотици и хиляди машини, за да направят своите експерименти. С нарастването на облачните изчисления провеждането на тези експерименти става много мащабируемо и е ограничено само от изчислителната мощност.

Изображението по-долу представя две от основните разлики между ES и градиентно спускане. За придвижване се използват множество модели и градиентите не се изчисляват, а по-скоро различните модели се осредняват въз основа на тяхното представяне. Оптимизирането върху популация вместо върху единичен модел води до по-високи характеристики на устойчивост, както е показано в изследването на Uber, и показва прилики с байесовите подходи към оптимизирането на DNN.

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

Заключение

Изследователите от OpenAI и Uber са в състояние да покажат, че „градиентното приближение“ на еволюционните стратегии води до задоволителни (но не непременно нови най-съвременни) решения в сценариите за контролирано обучение. От друга страна, те са в състояние да покажат висока производителност на своите методи в сценарии за учене за укрепване (сравними с най-съвременните в някои области).

Ще бъде ли невроеволюцията бъдещето на дълбокото обучение? Вероятно не, но вярвам, че показва големи обещания за трудни проблеми с оптимизацията, като например сценарии за учене с подсилване. В допълнение, аз вярвам, че комбинацията от методи на невроеволюция и градиентно спускане ще доведе до значително подобрение в RL производителността. Един недостатък на невроеволюцията е огромното количество изчислителна мощност, която е необходима, за да се обучат тези системи, което може да ограничи демократизацията на тези техники.

Като се има предвид, че видни изследователски групи се фокусират върху тези проблеми, аз все още съм развълнуван да видя какво крие бъдещето!