A neurális hálózatok figyelemre méltó előrelépést tettek a képfeldolgozás, osztályozás és a beszédfelismerés terén. Ezek a nagyon hasznos eszközök jól ismert matematikai módszereken alapulnak, mégis meglepően keveset tudunk arról, hogy miért működnek bizonyos modellek, mások pedig nem. A következőekben egy olyan technikát mutatunk be, amellyel a hálózatok belsejébe tekinthetünk, vagy akár művészként képeket generálhatunk.
A neurális hálózatokat az elvégezendő feladat, illetve a bemeneti adat típusa szerint különböző architektúrákba csoportosíthatóak (FC, RNN, CNN, stb.). A képfeldolgozás terén kiemelkedő struktúra, a CNN, különböző szűrőkkel végzett konvolúció eredményeképpen képes a képekből információkat kinyerni. Az ilyen hálózatok jellemzően 10-30 egymásra illesztett neuron rétegből állnak, az elvégezendő feladat komplexitásának függvényében. A képeket egyesével betápláljuk a bemeneti rétegbe, melyet a különböző rétegek követnek, így végül elérünk a kimeneti réteghez, amely reprezentálja az elvégezendő feladat szerinti döntést.
Az AiCAN a fenti architektúrával végezte kutatását, melynek eredménye a videón látható. [1]
A hálózat tanítása, és ezáltal a szűrők paramétereinek az állítása, milliónyi tanító példa segítségével történik, fokozatosan addig módosítva a hálózat súlyait, ameddig el nem érjük a kívánt osztályozási minőséget.
Azt tudjuk, hogy a hálózatunk pontosan klasszifikál egy állatot a képen, azonban azt nem ismerjük, hogy ezt a döntést milyen jellemzők segítségével hozza meg (ez a mesterséges intelligencia sajátossága, mivel a logikai kapcsolatot önállóan fejti meg, nem mi definiáltuk azt). A hálózat működésének megértéséért szükségünk van ezekre az információkra. Az egyik lehetséges mód, amellyel ezen információkat kinyerhetjük, az a háló „kifordítása”. Ahelyett hogy egy bemeneti kép alapján a hálóval egy döntést hoznánk, azt vizsgáljuk, hogy milyen kép esetén lesz az adott réteg, adott szűrője maximális értékű. Ezt a gradiens módszer (gradient ascent) iterálása segítségével érhetjük el (a bemeneti réteg felé haladva).
A módszer segítségével létrehozott képek által könnyedén megbizonyosodhatunk arról, hogy a hálózat mit szűrt le lényegnek az egyes osztályokhoz tartozóan.
KONVOLÚCIÓS NEURÁLIS HÁLÓK JELLEMZŐINEK VIZUALIZÁLÁSA, GRADIENS MÓDSZERREL
- Egy tetszőleges képet helyezünk a bemenetre (lehet egyszínű fehér is).
- Optimalizáljuk a képet: gradiens megmászással maximalizáljuk a választott neurális háló réteget.
- Kiszámítjuk a választott neuron réteg aktivációját, amelyet maximalizálni szeretnénk.
- Meghatározzuk az adott aktiváció gradiensét a maximális értékre való tekintettel.
- A gradienst propagáljuk a bemeneti réteg felé (backpropagation), azonban ezúttal nem a súlyokra való tekintettel, hanem a bemenet pixeleire vonatkozóan (pont ellentétesen a hagyományos tanítással)
- A gradienseket felhasználva módosítjuk a képet. Az így elkészült kép erősen zajos, nagyfrekvenciájú komponenseket tartalmaz, a pixelek között kevés a kapcsolat.
- Regularizáljuk a képet, ezáltal csökkenthető a gradienssel való frissítés hatása.
- A képet kiindulópontként használjuk, így ugrunk az első lépésre egészen addig, ameddig a kívánt eredményt nem értük el.
A végigterjesztett képeket megvizsgálva az is megállapítható, hogy a háló rétegeiben egyre mélyebbre haladva fokozatosan egyre komplexebb jellemzők értékelődnek ki. A bemenethez közeli réteg széleket vagy sarkokat detektál, a közbenső rétegek értelmezik az alapvető jellemzőket, általános alakokat vagy összetevőket (kerék, szélvédő). Az utolsó néhány réteg összeállítja ezeket egy konkrét objektummá- ezek a neuronok igen összetett dolgokra reagálnak, mint például egy autó.
DEEP DREAM
AZ ALGORITMUS RÖVIDEN:
A DEEPDREAM a Google által fejlesztett, a feljebb található vizualizációt felhasználó algoritmus, amely művészi képek sorozatát állítja elő. Ebből a képsorozatból későbbiekben videó generálható, amelyen halucinogén effektusok jelennek meg.
Az eredeti algoritmus kiegészítésének oka, hogy a hagyományos technikával előállított képek zajosak.
A REKÚRZÍV FOLYAMAT LÉPÉSEKBEN (OKTÁV)
- Bemenetre helyezünk egy képet
- Gauss szűrővel elhomályosítjuk a képet, hogy elkerüljük az artifaktokat.
- Kicsinyítjük a képet az előre megadott mérték szerint (KILÉPÉSI PONT)
- Pixelenként összeadjuk a képet előző képekkel (BELÉPÉSI PONT)
- A fentebb leírt algoritmust elvégezzük a képen
- Nagyítjuk a képet az eredeti méretűre
Biztosak vagyunk abban, hogy az Ön vállalkozásában is vannak mesterséges intelligenciával automatizálható munkafolyamatok: amennyiben szeretné élvezni a mesterséges intelligencia használatával járó előnyöket, úgy jelentkezzen ingyenes, személyes konzultációnkra elérhetőségeink valamelyikén.
FORRÁSOK
[1] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, ArXiv, 2014
[2] https://ai.googleblog.com/2015/06/inceptionism-going-deeper-into-neural.html