Some Alt Text

Синтетични изображения с висока резолюция, генерирани през 2018г. чрез GAN мрежа, разработена от екип на NVIDIA. Снимка: arXiv.org.

MORE GANish

Яна Илиева, юни 2020

Част I

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

 

В средата на миналия век инженерът от Intel Гордън Мур формулира познатия Закон на Мур за възходящата времева линия при усъвършенстването на компютърните микропроцесори. Предвиждането е, че на всеки 24 месеца производителността на процесорите ще се увеличава двойно. На всеки две години ще има по-малък по размер, но по-мощен хардуер. Според този закон ръстът не е безкраен, но логиката на безапелационното нарастване се преповтаря при технологиите за машинно обучение. Те чертаят бързо нови траектории в света на цифровото съдържание, мултимедията и дигиталното развлечение, развиват се прогресивно и очевидно ще са тук за дълго. Вече влизат в съприкосновение с желанията на публиката - едновременно ги провокират, формират и изпреварват, но и плътно ги следват.

 

Едно от приложенията на невронните мрежа, което ще има все по-голямо влияние върху това, което ще виждаме от екран, дисплей или холограма, е популярно със съкращението GAN. Генеративните състезателни мрежи (или Generative Adversarial Networks) са архитектура на невронна мрежа за генеративно моделиране, основано на дълбоко машинно обучение. Те са едно от най-масово ползваните и бързо развивани технологии за изкуствен интелект. Наричат ги генеративни, защото те обобщават дистрибуцията от входни данни, с които са били захранени, за да генерират нови. Състезателни са поради логиката си на функциониране, базирана на два съперничещи си модела и силно повлияна от теорията на игрите като дял от приложната математика.

 

Архитектурата на GAN е описана за първи път през 2014 г. от Иън Гудфелоу и екип в научноизследователската работа Генеративни състезателни мрежи. От този момент са минали само шест години, но вариациите на GAN и прилагането им за създаване на дигитално съдържание растат в мащаб, който ни кара да мислим за Закона на Мур, но в много по-забързана версия. Цялото произведено съдържание за това време далеч не стои върху тестовите лавици в tech лабораториите. Обратното е – бързо се качва върху масовата поточна линия, за да захрани медиите, социалните мрежи, бизнес приложенията и вкусовете на масовата публика към все по-софистицирано онлайн забавление. Ако човек е публикувал своя снимка във Фейсбук, за да види как ще изглежда лицето му след 30 години, то най-вероятно е имал взаимоотношения с GAN. За шестте си години GAN е млада технология със силно експоненциална природа, която ѝ обещава добро бъдеще във визуалното съдържание. Добър пример е и за иновация с голямо въздействие, чийто потенциал е оценен на мига, а приложението ѝ е почти светкавично.

 

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

 

Как работи GAN?

Архитектурата им е базирана на два основни, състезаващи се помежду си модула. Така нареченият генератор използва първоначално подадени данни, с които се захранва невронна мрежа, за да създаде модел, въз основа на който репликира нови, максимално правдоподобни примери на оригиналния обект. Без да навлизаме в Гаусови теории, векторно изчисляване, латентни векторни пространства и т.н., процесът може да бъде обяснен на високо ниво като изучаване на оригиналния обект и извличане на неговия концептуален модел. Или още по-опростено казано, ако покажем на машината обекта „къща“, тя научава, че това е нещо с квадратна основна форма, триъгълен покрив, завършващ с правоъгълен комин. (Така я рисува и 3-годишно дете въз основа на първични наблюдения.)

 

След като вече има основната  матрица за това, което е изучил, генераторът е в състояние да го създаде отново и отново, като се стреми да го наподоби най-правдоподобно в детайлите. Тук се намесва вторият модел - дискриминаторът, чиято роля е да верифицира като истински или фалшиви примерите, които генераторът е произвел и му подава. Дискриминаторът също взема под внимание изходните, оригиналните данни и разполага с двоичен клас, етикиращ генерираните обекти като true или false. GAN е игра за двама. Двата модела, генератор и дискриминатор, се обучават синхронно и двустранно. Единият се учи да наподобява по-добре оригинала, а другият - да разпознава по-ефективно фалшификатите. Доста популярно е сравнението на този принцип на дълбоко машинно обучение с отношението престъпник-закон. Целта на генератора е да "задобрее" в измамата, а задачата на дискриминатора е да усъвършенства разкриването ѝ.

 

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

 

Можете да обучавате генеративните състезателни мрежи чрез т.нар. неконтролирано машинно обучение, като им подавате само входни променливи, а мрежата извлича от тях типични модели. Не се изискват намеса и непрекъснати корекции на данните, както и мапинг на набор от двойки входно-изходни параметри, каквото се случва при контролираното машинно обучение. Това са само технически варианти (далеч не единствени) на генералната логика на невронните мрежи и по-специално на GAN. Фокусът обаче е един и същ - създаване на максимално достоверен изкуствен продукт, който да бъде възприет от човешка аудитория като неразличим от оригиналния. Семантично погледнато, това е своеобразен момент на синхронизация между машина и човек, когато и двата субекта комуникират с общ визуален език и интерпретират обект от предметния свят по напълно идентичен начин.

Логиката на GAN вече е онагледена и за неспециалисти чрез браузър базирани инструменти от типа на Tensorflow или GAN Lab, разработен от Georgia Tech & Google Brain. Целта на това GUI в общия случай е да помогне на изучаващите принципите на машинното обучение (а и не само те) да си представят визуално как работят нещата. Приятният и разбираем потребителски интерфейс показва ясно как невронната мрежа се учи във времето. Много ясно се вижда разделението между истински и фалшиви проби, как се те променят в различните цикли на обучение и как генераторът и дискриминаторът си актуализират параметрите. Цветните диаграми визуализират ефективността на дискриминатора и как се класифицират генерираните примери. Наблюдаването на този процес в браузър с цвят и графика дава добро разбиране на това, което Иън Годфелоу описва в изследователския си документ. Натиснете бутона Play, изберете някоя от примерните фигури (кръг, права линия, три отделни кръга и т.н.) и се позабавлявайте.

На фона на този „човешки“ изглеждащ интерфейс от GAN Lab е редно да се уточни, че в зората си машинното обучение е мислено и разработвано от едни академични умове за други академични умове. Затова и теорията зад тази технология е толкова…math-heavy. Прилагането ѝ в практиката обаче разчита на добре познати езици за програмиране – най-често Python, C++ , Julia и други. Разработчиците вече имат на разположение готови библиотеки от типа на OpenCV с отворен код, дори базирани на Java Script, цялостни платформи за стартиране на машинно обучение, улесняващи живота на програмистите инструменти за дефиниране параметри на генератор и дискриминатор и API-та като Keras, TensorFlow и т.н. С други думи, това вече далеч не е лабораторно занимание. Знанието за технологията на машинното обучение се масовизира и разширява, помощните инструменти се роят, както и специализираните курсове и уъркшопи за разработчици, докато популярността на други технологии се измества на заден план. А това е индикация, че потенциалът на машинното обучение е взет под внимание от индустрията и в следващите години светът ни ще бъде една идея по-GANish от днешния момент. За това близко бъдеще изглежда днес се обучават и хората, и софтуерът.

Copyright 2020 | Liberal Arts