Mesterséges intelligenciát tett a zsebünkbe a Google
További Tech cikkek
- Hatalmas bejelentéssorozatra készül az Apple
- Új válság fenyeget: a B-vitamin-hiány már itt van a sarkon, az italpolcok is kiürülhetnek
- Fontos változás jön a Google keresőjében, érdemes résen lenni
- Beperelték a YouTube-ot, súlyos vádakat fogalmaztak meg
- Háborognak a játékosok, órákra leállt a PlayStation szolgáltatása
Nagyot okosodott múlt héten a Google Fordító magyar kiadása. Ahogy mi is megírtuk, most már elég a telefon kameráját egy idegen nyelvű feliratra irányítani, és a program ezentúl magyarra is azonnal lefordítja a szöveget, ráadásul az eredeti stílusában jeleníti meg a fordítást. Mindezt internetkapcsolat nélkül, magában a telefonban bonyolítja le az app. Eddig hét nyelvvel tudta ezt, miután a Google felvásárolta és beépítette a Word Lens nevű appot a saját szolgáltatásába. A magyarral együtt most 20 új nyelvvel bővült a valós idejű vizuális fordítás. (Offline csak a magyar-angol és angol-magyar megy, netkapcsolattal összesen 35 nyelv vált átjárhatóvá.)
Mindez azonban iszonyatosan számításigényes munka. Hogyan sikerült az egészet beleszuszakolni egy offline mobilappba? Hát úgy, hogy
Hogy mit?
A képfelismerés hatékonysága az utóbbi években radikálisan megnőtt. Öt éve még azt se tudták megmondani a gépek, hogy egy kutyát vagy egy macskát látnak, ma már jó eséllyel a pontos fajtájukat is meg tudják maguktól határozni. Ez a mesterséges neurális hálózatoknak köszönhető, amelyek az idegrendszer biológiai modelljén alapulnak. A hálózatok a műveleteket végző neuronokból állnak, az ezek közötti kapcsolatok változtatásával lehet a rendszert valamilyen feladatra hangolni. A rendszer része valamilyen tanulóalgoritmus, amely a számára bemutatott minták alapján képes fejlődni és egyre ügyesebben elvégezni a feladatát.
Ezt a tanulási folyamatot egyre fejlettebb mélytanulási (deep learning) algoritmus vezérli. Ez a különböző típusú adatokat külön rétegekben dolgozza fel, amelyek egymásra épülnek és egymással átfedésben állnak. A Google algoritmusa például több mint 30 réteggel dolgozik, és így
Ennek segítségével tudja megállapítani például azt is, hogy a Google Képek szolgáltatásba feltöltött képeinken mi látható (és vét néha nagyon vicces hibákat). De ugyanez teszi lehetővé, hogy állóképek elemzésével képes legyen újraalkotni azt a háromdimenziós teret, amelyben azok készültek. A képfelismerést visszafordítva pedig szürreális képeket alkothat. És persze a mélytanulás nemcsak képfelismerésre alkalmas, maga a Google – által felvásárolt Deepmind – például profi videojátékost nevelt egy algoritmusból, anélkül, hogy előre megadta volna neki a játékszabályokat.
A mélytanulás ezért a mesterséges intelligencia kutatásának egyik sarokköve. Maga a technológia nem is annyira új, de csak az utóbbi években társult hozzá elég adat, amiből tanulhat a rendszer, és elég számítási kapacitás, amivel mindez elvégezhető. Vagyis mostanra jött össze az, hogy a gépeknek van miből, mivel és hogyan tanulni és fejlődni.
Képfordítás Google-módra
A Google egy blogbejegyzésben írja le, hogyan működik az a folyamat, amellyel magát a vizuális fordítást kidolgozták és gyengébb telefonokon is működésre bírták. A folyamat négy fő lépésből áll:
- Az algoritmusnak először meg kell találnia a lefordítandó szöveget. Ez nyilvánvalónak tűnik, pedig ahhoz, hogy dolgozni tudjon vele, az appnak először el kell választania a betűket a háttértől és más elemektől. Először tehát olyan pixelfoltokat keres, amelyek hasonló színűek, és más hasonló színű foltok mellett állnak. Nagy valószínűséggel itt fogja megtalálni a betűket, amelyekből aztán azonosítani tudja az összefüggő szöveget.
- A második lépésben meg kell határozni, hogy a megtalált foltok pontosan milyen betűknek felelnek meg. Itt jön a képbe a mélytanulás, amely során a neurális hálózatot a programozók megtanítják arra, melyik betű hogy néz ki. De ha túl steril betűkön edzenék az algoritmust, akkor félő, hogy a valóságban előforduló, gyűrött, koszos, tükröződő, elforgatott és mindenféle más elképzelhető módon torzított betűket nem ismerné fel. Adná magát, hogy akkor a valóságból összegyűjtött mintákat használjanak, ez viszont egyáltalán nem lenne hatékony, hiszen elég macerás lenne minden nyelvből az éppen szükséges módon torzított mintát beszerezni. A kutatók ezért inkább összeraktak egy betűgenerálót, amellyel pontosan a tanulási folyamathoz leginkább megfelelő mértékben lehet a való világ zajosságát szimulálni.
- Ha megvannak a betűk, így a szöveg, már csak a fordítást kell kinézni a szótárból. Persze ez is bonyolódik azzal, hogy képről felismert szöveget kell lefordítani, hiszen egyetlen hiba, és máris értelmetlen a szó. Ezért a szótárazást úgy állították be, hogy legyen benne valamennyi mozgástér, rugalmasan felismerje például az app, ha egy szónak csak akkor van értelme, ha az eredetileg 5-ös számnak nézett karaktert kicseréli S betűre.
- Végül már csak a lefordított szöveget kell ráírni az eredeti felületre. Mivel a betűket és a hátterüket már meghatározta az algoritmus, mindössze annyi a teendő, hogy a háttérszínnel kitörölje az eredeti szöveget, és annak színével kiírja a törölt felületre a fordítás során generált új feliratot. (Ez az a pont, amivel a Bing hasonló, csak Windows Phone-ra elérhető szolgáltatása nem szöszöl, inkább csak simán ráírja a képre a szöveget.)
Felhő helyett a zsebben
Mindez szép és jó, ha a felhőn keresztül az embernek rendelkezésére állnak a Google városméretű adatközpontjai. Az igazi feladat viszont éppen az, hogy a fenti folyamatot internet nélkül, a telefonba zárt appal is el lehessen végezni. Ez pedig már csak azért se könnyű, mert ugyan nyilván egyik okostelefon se mérhető a cég szervereihez, még a mobilok között is óriási különbségek vannak. Márpedig az offline elérhetőség valószínűleg éppen nem a csúcstelefonok, hanem a gyengébb eszközök gazdáinak lehet fontos.
Ezért a fejelsztők nagyon kicsi neurális hálót építettek, és elkezdtek kísérletezni a pontosság és hatékonyság közötti egyensúllyal. Úgy próbálták az algoritmus kiképzéséhez összeállítani a gyakorlóadatokat, hogy semmi nélkülözhetővel ne kelljen bajlódnia, viszont az életszerű szituációk megoldásához szükséges minimális tudást el tudja belőlük sajátítani, majd addig tekergették-csavargatták a paramétereket, amíg úgy nem látták, hogy működőképes az eredmény. Ezért mondjuk egy étterem menüjével biztosan nem lesz gondja az algoritmusnak, extrém szituációkkal, szélsőségesen torz szövegekkel viszont nem biztos, hogy meg fog tudni birkózni. Persze mindehhez még a háttérben futó számításokat is optimalizálni kellett, hogy a telefon hardverét minél jobban ki tudják használni, és tényleg valós időben fusson a szolgáltatás.
A dolog persze mérsékelten lenne érdekes, ha csak néhány tábla lefordítására használható, ügyes trükk lenne. A jelentősége abban áll, hogy a jövőben egyre több olyan app érkezhet, amely neurális hálózatokat költöztet az eszközeinkbe, net nélkül is sokkal okosabbá és hatékonyabbá téve őket. A Qualcomm már tervezi is az új csipjeit, amelyek megkönnyítik majd mindezt.