AI típusok és Python modulok
Megerősítéses tanulás
A megerősítéses tanulás a gépi tanulás fontos családtagja. Tanulási stílusa olyan, mint egy kicsi csecsemő. Mivel különös a körülötte lév környezetre, a környezetet folyamatosan érintkezve tanulja meg a környezetbõl, így ismeri a környezetet. Nagyon sok módja van, hogy megerősítse a tanulás, mint a Q-tanulás, Sarsa és így tovább, ez alapú vizuális szimuláció, számítógép megtanulja, hogyan kell nézni és értelmezni ezt.Evolúciós algoritmus
Az evolúciós algoritmus a gépi tanulás egyik ága. Az egyik leghíresebb evolúciós algoritmus a genetikai algoritmus. Az evolúciós algoritmust Darwin evolúciós elmélete ihlette. Fő vezérlő elvek és használatuk fejlődése a szerint hogy: "A legmegfelelőbb túlélés, a kellemetlenségek kiküszöbölése" törekvéssel. Az evolúciós algoritmus fő szakaszai: Klasszikus genetikai algoritmus , NeuroEvolution, Evolúciós stratégiaNeurális hálózat: Tensorflow
Neurális hálózat: PyTorch
A PyTorch fejlesztési / felhasználási csapata, beleértve a Facebook-ot, az NVIDIA-t, a Twitter-t, és egyéb nagy márkák, és a Tensorflow egyik legnagyobb versenytársának tekinthető. A PyTorch egyszerű és könnyen használható, azonban minden családnak megvannak a maga előnyei és hátrányai.Neurális hálózat: Theano
Theano hasonló a Tensorflow-hoz, sőt azt is mondhatjuk, hogy Theano a Tensorflow elnöke, azonban mivel tudományos környezetben született, a kutatók többsége használta. A Tensorflow-hoz képest ez is tökéletes. A neurális hálózati modul és az integrált Windows kompatibilitás, tehát a Theano is a legjobb választás a tanuláshoz.Neurális hálózat: Keras
A Keras egy fejlettebb neurális hálózati modul, amely a Tensorflow-ra és a Theano-ra épül, tehát kompatibilis a Windows, a Linux és a MacOS rendszerekkel, és a Keras használata neurális hálózatok létrehozásához könnyebb, mint a Tensorflow és a Theano, mert sokat optimalizált. Általában ha igény a grafikon gyors és egyszerűség, akkor a keras használata helyes. Minden ideghálózati forma kialakítható benne. Használata könnyebbséget jelent azoknak a használata akik már rendelkeznek tapasztalatokkal a Theano vagy a Tensorflow alkalmazásban.Gépi tanulás Általános: SciKit-Learn
A SciKit-Learn, más néven sklearn, egyik kiváló komponens a sok gépi tanulási modul közül, mivel túl sok gépi tanulási módszert hoz össze, mint például a különféle felügyelt tanulás, felügyelet nélküli tanulás és félig felügyelt tanulás. Csakúgy, mint a svájcibicska a gépi tanulás modulok világában.A sklearn alapvető használathoz, kiválasztani a megfelelő gépi tanulási módszert, Általános edzési/tanítási módokat stb.
Számítógépes látás
A számítógépes látás az utóbbi évek egyik fejlődésének fókuszpontja. Itt láthatja, hogy a számítógépek hogyan értik a képeket, hogyan nézhetik meg a dolgokat, és milyen érdekes alkalmazásokat kínálnak .A neurális hálózatok tehát a neuronok különböző összekapcsolásaiból jönnek létre.
Általában egy irányított gráffal reprezentáljuk őket, amelyben a csomópontok az egyes neuronok, míg az irányok a kimenetektől a bemenetek felé mutatnak.
Bonyolultabb esetekben ez a jelölésmód már áttekinthetetlen lehet. A neuron egy hálózaton belül általában csak meghatározott számú neuronnal vannak összekötve, és ez a kapcsolat általában egyirányú, ezért a hálózatokat különböző rétegekre szoktuk bontani az összekötések szerint.
Az egyes rétegekhez tartozó neuronok az előző réteg neuronjainak kimenetével, vagy a bemenettel, illetve a következő réteg bemenetével vannak összekötve.
a. Bemeneti réteg: azok a neuronok találhatók itt, amelyek a bemeneti jel továbbítását végzik a hálózat felé. A legtöbb esetben nem jelöljük kettő külön. Ezek csak jeltovábbítást, a neuronok meghajtását végzik
b. Rejtett réteg: a tulajdonképpeni feldolgozást végző neuronok tartoznak ide. Egy hálózaton belül több rejtett réteg is lehet. Jellemzője, hogy mind a bemeneteik, mind a kimenetük valamely más neuronhoz csatlakozik
c. Kimeneti réteg: az itt található neuronok a külvilág felé továbbítják az információt. A feladatuk ugyanaz, mint a rejtett rétegbeli neuronoké. Ezzel a a külvilág felé továbbítják az információt, jellegükben és feladatukban nem különböznek a többi neurontól
A legtöbb esetben az egyes rétegek között nincs visszacsatolás, ilyenkor előrecsatolt hálózatokról beszélünk, visszacsatolás esetén visszacsatolt hálózatokról. A visszacsatolásnak több esete is lehetséges, aszerint, hogy a visszacsatolás honnan történt.
Eszerint lehetséges egy rejtett réteg valamely neuronjának kimenetét a saját bemenetére (elemi visszacsatolás), egy előző réteg neuronjának bemenetére (rétegek közötti visszacsatolás), vagy egy ugyanabban a rétegben található neuron bemenetére visszacsatolni (laterális visszacsatolás).
Nem ellenőrzött tanulás
Nem állnak rendelkezésünkre összetartozó be- és kimeneti adatpárok. A hálózatnak a bemenetek alapján kell valamilyen viselkedést kialakítani. Általában a hálózatoknak valamilyen összefüggéseket, hasonlóságokat kell felderíteniük a bemeneti adatokban. Ezeket a hálózatokat hívják önszerveződő hálózatoknak is.
A neurális hálózatok esetében leggyakrabban alkalmazott ilyen eljárások a Hebb és a verseng tanulás.
Hebb tanulás
Az eljárás biológiai analógián alapszik, két processzáló elem közötti súlytényez értéke a processzáló elemek kiemenetének szorzatával arányosan növekszik. A probléma az eljárással, hogy a súlyok a végtelenségig nhetnének, ezért általában valamilyen normalizált változatát használják a gyakorlatban.
Verseng tanulás
A verseng tanulás esetén a processzáló elemek közül egyet valamilyen szempont szerint kiválasztunk győztesnek, például a győztes kimenete 1 értéket vesz fel, míg a többié 0-t. A verseng tanulás célja a bemeneti mintatér tartományokra osztása úgy, hogy minden egyes tartományhoz tartozó bemenet esetén egy processzáló elem aktiválódjon. A kiválasztás történhet automatikusan is, ilyenkor a processzáló elemek között oldalirányú kapcsolatok vannak.
Analitikus tanulás
A megfelel viselkedés hálózatok kialakítása elméleti úton, a feladatból meghatározható, tehát valójában nem is tanulás történik ebben az esetben. Ilyenkor a tanító pontokból közvetlenül, analitikus összefüggéseken keresztül határozzuk meg a hálózat súlyait. Némely esetben valamilyen energiafüggvény képezi a súlyok meghatározásának alapját.
Többréteg perceptron hálózatok (MLP - multi-layer perceptrons)
A gyakorlatban legtöbbször alkalmazott struktúra. A neurális hálózatok újrafelfedezése akkor kezdődött, amikor a 80-as évek elején felfedezték a tanítására alkalmas hibavisszaterjesztéses algoritmust. A többrétegű perceptron hálózatokban perceptronokat kötünk össze, azonban az alkalmazott nemlinearitás valamilyen folytonosan differenciálható függvény (pl. szigmoid típusú). A súlymódosítást ebben az esetben szintén az LMS algoritmussal végezzük. A többrétegű hálózatok egyes rétegeiben egyszer perceptronok vannak összekötve.
A perceptronok kimenete, mint említettük, folytonos, mindenütt diferenciálható nemlinearitás. A többrétegű hálózatok rétegeinek neuronszáma eltér lehet.
A hálózat méretének megválasztása A rétegek számának, az egyes rétegeken belüli neuronok számának meghatározására nincs egyértelmű módszer. Általánosan elmondható, hogy a több réteg alkalmazása könnyítheti a feladat megoldását, illetve rétegenként kevesebb processzáló elem is elegendő lehet. Kétféle módszer terjedt el a hálózat méretének meghatározására. Az első szerint egy nagyobb hálózatból kiindulva próbáljuk meg csökkenteni annak méretét, a másik szerint egy kisebb hálózat bővítésével próbálunk eljutni a megfelel megoldásig.
A tanulási aránytényező megválasztása Nagyobb értékek választásakor a tanulás konvergenciája gyorsabb lehet, de a minimumhely közelében problémák mutatkozhatnak, st egyes esetekben divergenciához is juthatunk. Kisebb aránytényez választása esetén a konvergencia lassabb, de a minimumhely megtalálása pontosabban lehetséges. Általában célszer adaptív megoldásokat alkalmazni, ahol a tanulási aránytényez lépésenként változik, sőt akár rétegről rétegre is.
A kezdeti súlyok megállapítása Amennyiben rendelkezünk a problémáról valamilyen előzetes ismerettel, úgy a kiindulási súlyokat érdemes ennek megfelelően megválasztani. Általában azonban ilyen ismereteink nincsenek, így a legmegfelelőbb a kezdeti súlyok véletlenszerű meghatározása. Amennyiben a tanítás sikertelen, célszer más súlyokkal megpróbálni.
A tanító lépések száma A tanító lépések száma nem határozható meg előre, azonban figyelnünk kell arra, hogy a hálózat túltanulhatja magát, ami az általánosítóképesség rovására megy.
A megtanított hálózat minősítése A megtanított hálózat minősítése a hálózat ismeretlen adatokra adott hibája alapján lehetséges. Amennyiben a hiba elfogadható a tanítás (a struktúra megválasztása) sikeres volt.
A tanító mintahalmaz A hálózat tanításához szükséges minták száma természetesen függ a feladattól, de elmondható, hogy a legtöbb esetben kevés minta áll rendelkezésre. A tanító mintakészletet több részre szokták osztani, amelyek a hálózat tanításánál, és a tanítás sikerességének minősítésénél lehetnek fontosak. A tanító készletet használjuk a tanításra, míg a kiértékel mintakészletet a tanítás kiértékelésére.
A hálózat általánosítóképessége miatt várható, hogy ezeket a mintákra is helyes választ ad. A kiértékel mintakészlet felhasználása is lehetséges a tanítás során. Szokás még egy teszt mintakészlet meghatározása is, amelyet a tanításnál egyáltalán nem használunk fel. Kevés adat esetén a csoportok elemeit cseréljük (cross validation), és minden mintát felhasználunk tanításra és kiértékelésre is.
Backpropagation változatok A tanítási algoritmus előbb bemutatott változata viszonylag lassú konvergenciát biztosít . A konvergencia gyorsítására, a lokális minimumba való beragadás elkerülésére különböző módszereket dolgoztak ki.
Megjegyzések
Megjegyzés küldése