Deep Dream

Deep Dream

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

  1. Egy tetszőleges képet helyezünk a bemenetre (lehet egyszínű fehér is).
  2. Optimalizáljuk a képet: gradiens megmászással maximalizáljuk a választott neurális háló réteget.
    1. Kiszámítjuk a választott neuron réteg aktivációját, amelyet maximalizálni szeretnénk.
    2. Meghatározzuk az adott aktiváció gradiensét a maximális értékre való tekintettel.
    3. 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)
    4. 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.
  3. Regularizáljuk a képet, ezáltal csökkenthető a gradienssel való frissítés hatása.
  4. 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)

  1. Bemenetre helyezünk egy képet
  2. Gauss szűrővel elhomályosítjuk a képet, hogy elkerüljük az artifaktokat.
  3. Kicsinyítjük a képet az előre megadott mérték szerint (KILÉPÉSI PONT)
  4. Pixelenként összeadjuk a képet előző képekkel (BELÉPÉSI PONT)
  5. A fentebb leírt algoritmust elvégezzük a képen
  6. Nagyítjuk a képet az eredeti méretűre
Egy oktáv rekurzív ágyazása

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

Close Menu