2019 02 AlphaZero

 

Преди няколко седмици група изследователи от Дийп Майнд – дъщерната фирма на Гугъл, която се специализира в областта на изкуствения интелект [ИИ], публикува статия в списание Science, в която описва специфичния вид ИИ, който е разработила в областта на интелектуалните игри. Макар че системата им е достатъчно обща, за да може да функционира при много игри с двама участници, изследователите са я адаптирали специално за [трите царици на интелектуалните игри]: Го, шах и шоги („японски шах“). Общото и при трите е, че на алгоритъма не са били дадени никакви предварителни знания извън правилата на всяка от игрите. Отначало той правел случайни ходове. След това започнал да се учи чрез игри срещу самия себе си. В продължение на девет часа, с помощта на масивна група от специализиран хардуер на Гугъл, шахматната версия на програмата изиграла четиридесет и четири милиона партии срещу самата себе си. След два часа алгоритъмът започнал да се представя по-добре от човешките играчи; след четири, той вече бил по-силен най-добрата шахматна програма в света.

Програмата на Дийп Майнд, наречена Алфа Зеро, произхожда от Алфа Го – онзи алгоритъм за изкуствен интелект, който стана известен през март 2016 с победата над Ли Седол, най-добрия играч на Го в света. Поражението на Седол беше зашеметяващо и объркващо. В „Алфа Го“, един документален филм, публикуван по-рано тази година в Netflix, режисьорите следват както отбора, който е разработил програмата, така и неговите човешки опоненти – хора, които са посветили живота си на играта. Ние наблюдаваме как тези хора преминават през етапите на един нов вид скръб. Първоначално те не виждат как могат да загубят от една машина: „Вярвам, че човешката интуиция все още е твърде напреднала, за да може да бъде настигната от изкуствения интелект“, казва Седол, ден преди мача си от пет партии с Алфа Го. Малко след това, когато машината най-неочаквано започва да печели, настъпва нещо като паника. В един особено остър момент, Седол, който се намира под силно напрежение, след като е изгубил първата партия, става от масата и, оставяйки часовника си да отмерва игровото време, излиза навън за цигара. Камерата ни показва как той гледа към покривите на Сеул. (В Корея, където Го е нещо като национален култ, повече от петдесет милиона души са гледали мача по Интернет.) Междувременно програмата, която разбира се не знае, че противникът ѝ е отишъл някъде, играе напълно неочакван ход, който коментаторите, след първоначалното изумление, ще нарекат по-късно ​​творчески, изненадващ и красив. В края на краищата, Седол загуби с 1-4, [но след като сам беше изненадал и надвил програмата с напълно неочакван ход]. Преди да може да приеме неизбежността на резултата той преминава през кратка фаза на депресия. „Искам да се извиня, че съм толкова безсилен“, каза той по време на пресконференцията. Но в крайна сметка Седол, заедно с останалата част от общността на Го, започва да оценява машината по достойнство. „Мисля, че това ще доведе до нова парадигма в играта Го“, казва той. Фан Хюи, европейският шампион, се съгласява с него. „Може би това ще покаже на хората нещо, което никога не сме открили. Може би то е красиво.“

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

Резултатът от този подход – нов вид програма за създаване на изкуствен интелект, наречена този път Алфа Го Зеро, е описан подробно в статия, публикувана през октомври 2017 г., и е наречен така [нула], защото в началото не е имал никакви други познания освен самите правила на играта. Тази нова програма беше много по-малко известна; в края на краищата вниманието на света може да бъде привличано не чак толкова много пъти. Но по някакъв начин това се оказва по-забележителното постижение, което вече няма много общо с Го. Всъщност, по-малко от два месеца по-късно, Дийп Майнд публикува предпечатна версия на една трета статия, в която се показва, че алгоритъмът зад Алфа Го Зеро може да бъде обобщен за всяка игра с двама участници и с нулева сума [тоест или печалба, или загуба], основаваща се на перфектна информация. (Това трябва да бъде е игра, в която няма скрити елементи, като например карти с лицето надолу, както е в покера). Дийп Майнд премахнал частицата „Го“ от името и кръстил новата си система Алфа Зеро. В основата ѝ се намира толкова мощен алгоритъм, че е достатъчно да му предоставите правилата дори на най-богатите и най-много изучавани игри на човечеството, а малко по-късно, същия ден, той вече ще бъде най-добрият играч, който някога е съществувал. Може би по-изненадващо е, че тази версия на системата е и най-простата, като компютърна програма [тя се състои буквално само от няколко реда код].

Типичната шахматна програма [машина] от наши дни представлява специфична смесица от хитрости и прийоми, създавани в продължение на десетилетия, в хода на многократни проби и грешки. Най-добрата шахматна машина в света, Stockfish, е с отворен код и се подобрява непрекъснато с помощта на един вид дарвинова селекция: някой програмист предлага идея; между версията с идеята и онази без нея се играят десетки хиляди игри; накрая печели най-добрата версия. В резултат на това програмата не е особено елегантна и е трудна за разбиране дори и за самите програмисти Много от промените, които са направени в кода на Stockfish в хода на годините, са формулирани от гледната точка на шаха, а не на компютърните науки. Те се занимават най-вече с това как да се оценява конкретната ситуация на дъската: Трябва ли конят да струва колкото 2.1 пешки или колкото 2.2? Ами ако е на третата линия, а противникът има офицер с противоположен цвят? За да илюстрира тази гледна точка, Дейвид Силвър, ръководител на изследователския отдел в Дийп Майнд, изброява различните под-програми на Stockfish. Те са повече от петдесет, и всяка от тях изисква значително количество кодиране, всяка е буквално извоювана с огромни усилия. Ето названията на само някои от тях: Евристика за насрещни ходове; бази данни на известните ендшпили; модули за оценка на дублирани пешки, залостени фигури, топове на (полу) отворени вертикали и т.н. Освен това има множество стратегии за търсене [в разклоненията на] дървото на възможните ходове, със странни названия като „аспирационни прозорци“ и „итеративно задълбочаване“.


Small Ad GF 1

Алфа Зеро, напротив, се състои от само две части: невронна мрежа и алгоритъм, наречен Monte Carlo Tree Search [MCTS]. (В жест на лека закачка с Меката на хазарта, математиците обозначават подходите на алгоритмично търсене, които включват елементи на случайност, като „методи на Монте Карло“.) Идеята зад „Монте Карло“, както е добре известно, е, че една игра като шаха е по същество [силно разклонено] дърво от различни възможности. Ако преместя топа си на d8, вие можете да го вземете или да го оставите на дъската, в който момент аз пък бих могъл да придвижа пешка или да преместя офицера си, или да защитя дамата си. Проблемът е, че това дърво придобива невероятно големи размери, невероятно бързо. Никакво количество изчислителна мощност не би било достатъчно, за да се претърси то изчерпателно. Експертният човешки играч е експерт точно защото неговият или нейният ум автоматично идентифицира основните части на дървото и фокусира вниманието си върху тях. Компютрите, ако искат да се конкурират, трябва по някакъв начин да правят същото.

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

В началната фаза [на процеса на самообучение], невронната мрежа е доста глупава: тя прави предсказанията си повече или по-малко въз основа на случайности. В резултат на това, алгоритъмът върши доста лоша работа при претърсването на важните части от дървото. Но гениалността на Алфа Зеро е в това как той се учи. Той взима тези две полу-работещи части и ги кара да се подобряват взаимно. Дори когато една все още „глупава“ невронна мрежа прави само лоши предсказания кои ходове ще работят, то все пак е полезно да се гледа напред в разклоненията на играта: в края на конкретната партия, например, MCTS все още може да научи кои позиции евентуално водят до победа, поне в някои случаи А това знание може да бъде използвано за подобряване на невронната мрежа. Когато една партия е свършила и резултатът е известен, алгоритъмът гледа какво точно е предсказала мрежата за всяка позиция (да речем, че има 80.2% шанс, рокадата да е най-добрият ход) и го сравнява с онова, което се е случило реално (да речем, че процентът е всъщност 60.5); след това той може да „коригира“ мрежата си, като настрои синаптичните ѝ връзки така, че тя да предпочита реално печелившите ходове. По същество, цялото търсене на MCTS се състои във все по-фина дестилация на нови мерки [weights] за невронната мрежа.

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

Когато бяха публикувани статиите за Алфа Го Зеро и Алфа Зеро, една малка армия от ентусиасти започна да описва двете системи в блогове и видеоклипове в YouTube, а заедно с това и да създава свои собствени версии. По-голямата част от тази работа беше обяснителна – тя произтичаше от аматьорския стремеж за учене и споделяне, който е залегнал в основата на целия Интернет. Но няколко от тези опити доведоха да резултати, при които работата [на екипа от Дийп Майнд] беше повторена в голям мащаб. Статиите на Дийп Майнд просто бяха описали двете най-добри програми за Го и шах в света – те не съдържаха изходния софтуерен код и компанията не беше направила самите програми достъпни за ентусиастите. След като обявиха победа, нейните инженери просто бяха напуснали бойното поле.

Бюлетин „Либерален преглед в неделя“

Джан-Карло Паскуто – компютърен програмист, който работи в Mozilla Corporation, вече е имал определен опит в изграждането на конкурентни игрови програми, първо в шаха, а след това и в Го. Той се заел с изучаване на публикуваната информация. И тъй като комбинацията от търсене чрез алгоритъма Монте Карло и невронна мрежа вече отдавна беше се превърнала в последна дума на програмирането на системи за ИИ в Го, на Паскуто се удало да създаде за много кратко време някои от най-успешните световни програми с отворен код – първо Leela, а след това LeelaZero – които се базират на постиженията на Дийп Майнд. Основният проблем, основната разлика при тяхното функциониране се състои в това, че докато Дийп Майнд е имал достъп до огромните компютърни мощности на Гугъл, Паскуто не е имал на разположение нищо подобно. За да обучи своята програма за Го, екипът на Дийп Майнд е използвал пет хиляди от т. нар. „Tensor Processing Units“ на Гугъл – а това са чипове, специално проектирани за изчисления на невронни мрежи – в продължение на тринадесет дни. За да извърши същата работа на своя лаптоп, Паскуто би се нуждаел от хиляда и седемстотин години!

За да компенсира липсата на изчислителна мощ, Паскуто решил да разпредели работата. LeelaZero е „федерална система“: всеки човек, който иска да участва, може да изтегли най-новата версия, да дари част от мощността на компютъра си, и да качи в облака данните, които са били генерирани в резултат на това, така че системата да може да бъде постоянно подобрявана. Общността от феновете на LeelaZero е дала възможност на системата да изиграе повече от десет милиона игри срещу себе си. Сега това е една от най-силните съществуващи компютърни програми за Го.

Не след дълго идеята беше приложена и при шахмата. През декември миналата година [т. е. 2017], когато беше публикувана статията за Алфа Зеро, „това беше като бомба, която падна върху шахматната общност“, казва един от създателите на Stockfish, Гари Линскот. В резултат на това Линскот запретва ръкави и, като използва вече съществуващата кодова база на LeelaZero [програмата за Го], както и новите идеи от статията за Алфа Зеро, създава шах-програмата Leela Chess Zero. Разбира се, наложило му се е да изобретява множество части от алгоритъма, както и да прави собствени нововъведения, тъй като екипът на Дийп Майнд естествено не се е впускал в най-големи подробности, но в рамките само на няколко месеца новата невронна мрежа вече започнала да се подобрява. Проектът Lc0, както Leela Chess Zero стана известна сред феновата си база, привлече стотици доброволци. И тъй като те даряват доста голяма компютърна мощност, а също и подобрения в изходния код, то програмата започва да се подобрява с много голяма бързина. Днес вече се твърди, че Leela Chess Zero е само на няколко месеца разстояние от изпреварването на Stockfish [всъщност в момента Лийла вече води в окончателния двубой със Stockfish – един мач от сто партии, чийто край се очаква някъде около 20 февруари 2019, бел. пр.]. Не след дълго тя може да стане по-добра и от самия Алфа Зеро.

Когато разговаряхме по телефона, Линскот изказа възхищението си от факта, че проект като неговия, който до неотдавна би отнел като минимум няколко години за някой докторант, днес вече може да бъде осъществен от един образован аматьор в хода на няколко месеца. Софтуерните библиотеки за невронни мрежи позволяват много бързо възпроизвеждане на най-добрия в света дизайн, чрез използване само на няколко десетки реда код; налице са и инструментите за разпределяне на [инак непосилната планина от] изчисления сред множество доброволци, а производителите на чипове като Nvidia са поставили в ръцете на милиони обикновени компютърни потребители евтини и мощни графични процесори – а именно това са процесорите, които са идеални за обучение на невронни мрежи. Един алгоритъм като MCTS е достатъчно прост, за да бъде реализиран в течение на един-два следобеда. Дори не е нужно да сте експерт в играта, за която изграждате програмата. Когато е създал Leela Zero, Паскуто не е играл Го повече от двадесет години.

Дейвид Силвър, ръководителят на изследователския отдел на Дийп Майнд, изтъква един очебиен парадокс, който лежи в ядрото на работата с игрите: колкото по-просто се получават програмите – от Алфа Го през Алфа Го Зеро, до Алфа Зеро – толкова по-добре. „Може би един от принципите, които следват от всичко това“, каза той, когато говорихме през декември 2017, „е идеята, че като премахваме сложността на алгоритъма, това ни позволява да ставаме все по-всеобхватни.“ Като са премахнали предварителните знания за Го от програмата си, те са направили по-добра машина за Го – и в същото време машина, която може да играе шоги и шах.

Никога не е било очевидно, че нещата ще се развият по този начин. През 1953 Алън Туринг, един от пионерите в създаването на модерни компютърни системи, е написал кратка статия, озаглавена „Цифровите компютри, приложени към игрите“. В нея той полага принципните положения на компютърна програма, която да играе шах, „основаваща се на интропсективен анализ на собствените ми мисли, докато играя“. Програмата на Туринг е много проста, но в неговия случай простотата не се оказва добродетел: също като Туринг, който не е бил особено добър шахматист, програмата е пропускала голяма част от дълбочината на играта и не е играела много добре. Въпреки това Туринг счита идеята, че „човек не може да програмира машина, която играе по-добре от създателя си“, за „доста мътна и неубедителна“. Макар и твърдението „Никое животно не може да погълне друго животно, което е по-тежко от самото него“, да звучи интуитивно вярно, в природата съществуват множество такива животни. По подобен начин, смята Туринг, може би няма противоречие в това един лош шахматист да създаде шахматна програма, която играе блестящо. Един от най-очевидните начини да се направи това е да се накара програмата да се учи сама.

Успехът на Алфа Зеро изглежда потвърждава това. Тя има проста структура, но е способна да демонстрира изненадващо дълбоки аспекти на игрите, които играе. В един раздел на статията за Алфа Го Зеро екипът на Дийп Майнд обяснява как техният изкуствен интелект, след определен брой цикли на обучение, самостоятелно е откривал стратегии, добре познати за майсторите на играта, но само за да ги отхвърли, няколко цикъла по-късно. Странно и малко тревожно е да наблюдаваме как някои от най-добрите хрумвания на човечеството биват отхвърляни с лекота, за да се проправи път към нещо по-добро; по някакъв начин всичко това създава усещания, които не създават всички останали машини, които ни превъзхождат – примерно булдозерите, които с лекота изместват огромни количества пръст. В една скорошна уводна статия за списание Science Гари Каспаров, бившият световен шампион по шахмат, който загуби от Deep Blue на IBM през 1997, твърди, че Алфа Зеро играе шахмат НЕ по начини, които биха отразявали предполагаемите системни „приоритети и предразсъдъци на програмистите си“. Вместо това – въпреки че претърсва много по-малко позиции от традиционните шахматни програми – той играе в открит, агресивен стил и изглежда мисли по-скоро стратегически, отколкото тактически, като човек с гениална способност за предвиждане. „И тъй като Алфа Зеро се програмира сам“, пише Каспаров, „то бих казал, че стилът му отразява истината.“

Да играеш шах като човек, разбира се, не е същото като да мислиш за шаха като човек или да учиш като такъв. Има една стара поговорка, че сферата на игрите е Дрозофилата в сферата на ИИ: онова, което плодовата мушица е за биолозите, игрите като Го и шах са за компютърните учени, изучаващи механизмите на интелигентността [с други думи, нещо сравнително просто в сравнение с общата област на интелигентността, бел. пр.]. Това е добра аналогия. И все пак може да се окаже, че задачата да се играе шах, след като е била превърната в задача да се претърсват с мълниеносна бързина десетки хиляди възли в дървото на играта, предпоставя и упражнява един по-различен вид интелигентност от онази, която е най-важна за нас. Игран по този начин, шахматът може би наистина е по-скоро нещо като много бързо копаене на земя, отколкото самите ние предполагаме. Казано с по-малко думи, може би това е дейност, която в края на краищата не е точно нашата най-голяма сила, така че [превъзходството на компютъра] не би трябвало да ни смущава. За да се научи да играе по този начин, Алфа Зеро е трябвало да изиграе много милиони игри повече, отколкото може да го направи който и да е човек, дори и в хода на стотици животи, но пък когато го направи, той играе като Бог. Програмата разчита на способност за търсене, която е милиони пъти по-бърза от човешката, а след това използва невронна мрежа, за да превърне резултатите от търсенето си в нещо, което пък за нас прилича на интуиция. Със сигурност всичко това ни учи на нещо ново, що се отнася до интелигентността изобщо. Но успехът на Алфа Зеро само подчертава до каква степен най-добрите човешки играчи могат да постигнат нещо подобно чрез един много по-различен процес – такъв, който се основава на четене, говорене и чувства, в допълнение към самия процес на играта. Може би най-изненадващото във всичко това е, че ние, хората, все пак сме успели да се справим толкова добре в една толкова специфична област, каквато са интелектуалните игри – една област, която в светлината на най-новия ни опит изглежда като направена само за машини.

Източник

 

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