Този сайт използва бисквитки (cookies). Ако желаете можете да научите повече тук. Разбрах

Новини Технологии и концепции
бр. 3, 2018

Следващата стъпка в изкуствения интелект

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

от , 28 март 2018 0 3569 прочитания,

Следващата стъпка в изкуствения интелект

Джеймс Кобиелус, IDG, САЩ

Затвърждаването на обучението (reinforcement learning, или RL) започва да играе все по-голяма роля в много проекти с изкуствен интелект (AI) през последните години. Неговото предимство се състои в калкулирането на оптимални действия, които агентите могат да предприемат в рамките на сценарии, обусловени от средата.

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

Затвърждаването на обучението лежи също в основата на разработката на автономни периферни приложения за Интернет на нещата. Много от иновативните предложения към промишлеността, транспорта, здравеопазването и потребителските приложения включват изграждането на AI базирана роботика, която може да оперира с различна степен на автономия в динамично променящо се обкръжение.

Как работи RL

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

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

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

Какво е задълбочено обучение със затвърждаване

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

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

Например изследователите използват задълбочено обучение с утвърждение за бързото установяване коя от множеството архитектури на обичайната невронна мрежа (convolutional neural network или CNN) е най-подходяща за различните предизвикателства на функционалното инженерство (feature engineering), компютърното разпознаване, анализа и обработката, както и класификацията на изображенията. След това резултатите, получени от задълбоченото обучение със затвърждаване, могат да се използват в AI инструменти за автоматично генериране на оптимална CNN, с помощта на библиотеки за дълбинно обучение като TensorFlow, MXNet или PyTorch.

Добра новина тук е, че се появяват отворени рамки за разработка и обучение. Когато започнете да изследвате RL, вероятно ще искате да разгледате следните инструменти, които ползват, разширяват и взаимодействат с TensorFlow и други средства за моделиране при дълбинното и машинното обучение:

TensorFlow Agents. TensorFlow Agents предлага инструменти за изграждане и обучение на разнородни интелигенти приложения чрез RL. Рамката, която е продължение на TensorFlow, разширява OpenAI Gym интерфейса към множество паралелни среди и позволява внедряване на агентите в TensorFlow, както и извършване на пакетни изчисления. Интерфейсът за OpenAI Gym среди е напълно интегриран с TensorFlow за ефективно прилагане на алгоритми. Рамката включва BatchPPO, оптимизирано приложение на алгоритъма Proximal Policy Optimization. Ключовите му компоненти са компилатор, който изгражда OpenAI Gym среда във вътрешността на външен процес; пакетна интеграция, която позволява използване на функциите на TensorFlow за графична стъпка и ресетване при обучението със затвърждаване; компонент, който комбинира графичните пакетни процеси на TensorFlow и алгоритмите на RL в единно действие.

Ray RLLib. RLLib предлага гъвкав, основаващ се на задачи модел на програмиране за изграждане на приложения с обучение с утвърждение за най-различни програми. Разработен в Университета в Бъркли, с излязла втора версия, RLLib работи в рамките на Ray, гъвкава, високоефективна рамка за разпределено изпълнение. Сред разработчиците на RLLib е един от създателите на Apache Spark.

RLLib работи в рамките на TensorFlow и PyTorch, като позволява споделянето на модели между алгоритмите. Интегрира се с инструмента за хиперпараметрични настройки Ray Tune. Рамката включва библиотека от стандартни компоненти за обучение със затвърждаване, която може да се допълва и разширява. Всеки RLLib компонент може да бъде приложен паралелно, да бъде разширен, комбиниран и повторно използван в рамките на разпределени приложения.

RLLib включва три алгоритъма на обучение с утвърждение – Proximal Policy Optimization (PPO), Asynchronous Advantage Actor-Critic (A3C) и Deep Q Networks (DQN). Всички могат да бъдат използвани във всеки OpenAI Gym процес на вземане на решение. Налични са и мащабируеми примитиви за разработването на нови алгоритми, Python интерфейс за прилагане на RLLib върху нови проблеми, набор от хиперпараметрични настройки на агенти и стратегии за извършване на разпределено обучение с утвърждаване. Поддържа създаването на персонализирани алгоритми.

Roboschool. Roboschool е отворен софтуер за изграждане и обучение на симулация на роботи чрез RL. Тя улеснява успоредното обучение на множество агенти заедно в една и съща среда. С обучение на множество участници може да "квалифицирате" един и същ агент да играе и за двете страни (т.е. да играе със себе си), да обучавате два агента чрез един и същ алгоритъм или да зададете два алгоритъма един срещу друг.

Roboschool е разработена от нестопанския OpenAI, сред спонсорите на който се нареждат Илън Мъск, Сам Алтман, Рид Хофман и Питър Тил. Интегрирана е с OpenAI Gym, който е инструмент с отворен код за разработване и оценка на алгоритми за обучение с утвърждение. OpenAI Gym е съвместим с TensorFlow, Theano и други библиотеки за задълбочено обучение. OpenAI Gym включва код за цифрови изчисления, игри и физични двигатели.

Основава се на Bullet Physics Engine, библиотека с отворен код и възможност за лиценз, която се използва от други софтуери за симулация като Gazebo и Virtual Robot Experimentation Platform (V-REP). Тя включва няколко алгоритъма за обучение със затвърждаване: Asynchronous Methods for Deep Reinforcement Learning, Actor-Critic with Experience Replay, Actor-Critic using Kronecker-Factored Trust Region, Deep Deterministic Policy Gradients, Proximal Policy Optimization и Trust Region Policy Optimization.

Machine Learning Agents. Все още в бета версия, Machine Learning Agents на Unity Technology поддържа разработване и обучение чрез на интелигентни агенти за игри, симулации, управление на автомобили и роботи. ML-Agents поддържа разнообразни сценарии на обучение с утвърждение, които включват различни конфигурации и взаимодействия между агенти, мозъци и награди. Поддържа сценарии с един или множество агенти, както и обособени и непрекъснати пространства за действие. Прилага Python API за достъп до обучението с утвърждение, невроеволюция и други методи за машинно обучение.

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

Освен това всяка ML-Agents среда съдържа една „академия“, която определя обхвата на средата по отношение на конфигурацията на двигателя (скорост и качество на рендиране на игровия двигател в режим и на обучение, и на изводи), пропускане на кадри (колко стъпки да се пропуснат между вземането на ново решение от всеки агент) и глобална дължина на епизода (каква да е дължината на епизода).

Един от режимите, на които може да бъде настроен мозъкът, е външен, в който решенията за действия се извършват от TensorFlow или друга библиотека за машинно обучение чрез комуникация през отворен контакт с Python API на ML-Agent. Има и вътрешен режим, при който решенията за действие на агента се правят чрез използването на обучителен модел, вграден в проекта чрез вграден ensorFlowSharp агент.

Nervana Coach на Coach Intel е рамка с отворен код за обучение с утвърждение, създадена за моделиране, обучение и оценка на интелигентни агенти за игри, роботика и други интелигентни приложения, базирани на агенти.

Coach предлага модулен тестов „пясъчник“ (sandbox), компоненти за многократна употреба и Python API за съставяне на нови алгоритми за обучение с утвърждение и обучение на нови интелигентни приложения в най-различни области. Рамката използва OpenAI Gym като основен инструмент за взаимодействие с различните среди за обучение с утвърждение. Поддържа също външни разширения като Roboschool, gym-extensions, PyBullet и ViZDoom. Компилаторът на среда на Coach позволява добавянето на други персонализирани среди за обучение с утвърждение за решаване на различни проблеми.

Рамката дава възможност за ефективно обучение на агенти на настолни компютри и използва многоядрени CPU процеси. Възможно е единично или множествено използване на някои алгоритми на обучение с утвърждение, сред които Asynchronous Advantage Actor-Critic, Deep Deterministic Policy Gradient, Proximal Policy Optimization, Direct Future Prediction и Normalized Advantage Function. Алгоритмите се прилагат чрез оптимизирана за Intel TensorFlow, а някои са достъпни и чрез Neon, рамката на Intel за дълбинно обучение.

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

Какви умения за обучение с утвърждение трябва да има AI разработчикът
За да се развиват, AI разработчиците трябва да изучат задълбочено множеството алгоритми за обучение с утвърждение, прилагани от тези и други рамки. Трябва да задълбочат познанията си за архитектурите на обучение с утвърждение с множество агенти, много от които използват изследванията в областта на теория на игрите. Трябва също да се запознаят със задълбоченото обучение с утвърждение като инструмент за идентифициране на уязвимите места в сигурността при приложенията за компютърното разпознаване, анализ и обработка на изображения, свързани с атаки от типа "автоматизирано отвличане" (fuzzing).

Превод и редакция Юлия Уршева

КОМЕНТАРИ ОТ  

Полезни страници
    За нас | Аудитория | Реклама | Контакти | Общи условия | Декларация за поверителност | Политика за бисквитки |
    Действителни собственици на настоящото издание са Иво Георгиев Прокопиев и Теодор Иванов Захов