Az első mesterséges neuron
Az egyik legelső kísérlet arra, hogy a modern neurális hálókhoz hasonló rendszert építsenek, Frank Rosenblatt nevéhez fűződik, aki 1957-ben a Cornell Aeronautical Laboratoryban dolgozott. Az általa épített hardvereszközt Mark 1 néven ismerték, és arra tervezték, hogy egyszerű geometriai alakzatokat, például háromszögeket, négyzeteket és köröket ismerjen fel.
A bemeneti képet egy 20x20-as fotocella mátrix érzékelte, tehát a hálózatnak 400 bemenete és egyetlen bináris kimenete volt. Ez az egyszerű hálózat valójában egyetlen neuronból állt, amit küszöblogikai egységnek is neveztek. A hálózat súlyai fizikailag potenciométerek voltak, ezeket a tanítási fázis során kézzel kellett állítani, egyenként. A New York Times akkoriban azt írta a perceptronról, hogy egy olyan elektronikus számítógép embriója, amelyről a haditengerészet azt reméli, hogy egyszer majd járni, beszélni, látni, írni és önmagát reprodukálni is képes lesz, sőt, tudatában lesz saját létezésének. Ez a lelkesedés jól mutatja, mekkora várakozás övezte a korai AI kutatást, még mielőtt a valódi korlátok kiderültek volna.
Hogyan működik a perceptron modell
Képzeljük el, hogy egy problémánkat N darab jellemzővel írjuk le, ilyenkor a bemeneti adat egy N méretű vektor. A perceptron egy bináris osztályozó modell, vagyis két osztály közötti különbségtételre képes. Minden egyes bemeneti vektorhoz a perceptron kimenete vagy plusz egy, vagy mínusz egy lesz, aszerint, hogy az adott bemenet melyik osztályba tartozik.
A kimenetet úgy számítjuk ki, hogy a bemeneti vektort megszorozzuk a súlyok vektorával, majd az eredményt egy úgynevezett lépcsős aktivációs függvényen vezetjük át. Ez a függvény roppant egyszerű, ha a bemenet összege nagyobb vagy egyenlő nullával, a kimenet plusz egy, egyébként mínusz egy. Ez a szigorú, éles döntés az, ami a perceptront alkalmassá teszi arra, hogy két, egymástól lineárisan elválasztható osztályt szétválasszon, de egyben ez a korlátja is, hiszen nem lineárisan szeparálható problémákra önmagában nem alkalmas.
A perceptron tanítása
A perceptron tanításának célja, hogy megtaláljuk azt a súlyvektort, amely a lehető legtöbb bemenetet helyesen osztályozza, vagyis a lehető legkisebb hibát eredményezi. Ezt a hibát az úgynevezett perceptron kritérium definiálja, amely a hibásan osztályozott pontokra összegzi a súlyvektor és a bemenet szorzatát, a helyes címkével megszorozva.
Ezt a hibafüggvényt a súlyok függvényeként tekintjük, és a célunk a minimalizálása. Erre a leggyakrabban használt módszer a gradiens csökkentés, amelynek lényege, hogy véletlenszerű kezdeti súlyokból indulunk, majd minden lépésben a hibafüggvény gradiensének irányával ellentétesen módosítjuk a súlyokat, egy előre meghatározott tanulási ráta mértékében. A gyakorlatban ez azt jelenti, hogy minden téves osztályozás után egy kicsit elmozdítjuk a döntési határt a helyes irányba, és ezt sokszor megismételve a modell fokozatosan egyre jobban illeszkedik az adatokra.
Fontos megjegyezni, hogy a perceptron tanítási szabálya garantáltan konvergál, ha a két osztály valóban lineárisan elválasztható egymástól. Ha nem az, a modell soha nem fog tökéletesen illeszkedni, függetlenül attól, hány iterációt futtatunk. Ez volt az egyik oka annak, hogy a kutatás később a többrétegű hálózatok felé fordult, amelyekről a következő leckében lesz szó.
Miért fontos ma is ez az egyszerű modell
A perceptron önmagában ma már ritkán jelenik meg éles alkalmazásokban, mégis kulcsfontosságú, mert minden mai neurális hálózat, a legkisebb klasszifikátortól a legnagyobb nagy nyelvi modellig, ugyanazon az alapelven épül fel. Egy súlyozott összeg, majd egy nemlineáris átalakítás, sok ilyen egység egymásra rétegezve, és egy tanulási algoritmus, amely a hibából kiindulva fokozatosan finomítja a súlyokat. Ha valaki érti a perceptront, könnyebben érti meg, miért van szüksége egy modern hálózatnak több rétegre, aktivációs függvényekre és nagy mennyiségű tanítóadatra.
Gyakorlati anyag
Ehhez a leckéhez tartozik egy Jupyter notebook, amelyben lépésről lépésre felépíthető és kipróbálható egy valódi perceptron implementáció. A notebook kód formában mutatja be a fenti tanítási algoritmust, valós adatokon.
Notebook megnyitása GitHubon →Forrás
Ez a lecke a Microsoft nyílt forráskódú, MIT licenc alatt elérhető "AI For Beginners" tananyagának magyar adaptációja. Eredeti angol lecke. GitHub. Felhasznált magyar gépi fordítás. GitHub.
Workshop
AI Transformation Day
Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.
Érdekel a program →