Ugrás a fő tartalomra

AI MI típusok és python modulok

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égia


 Neurális hálózat: Tensorflow



A Tensorflow, a Google csapat által kifejlesztett neurális hálózati modul, születése miatt sok figyelmet kapott, és néhány év alatt sok frissítés történt. Ennek használatba vétele a Tensorflow infrastruktúrájával megismerkedéssel kezdődik. Az analógia miatt taníthatja az első ideghálózat felépítését. Nagyon jól modellezhető a Tensorflow használatával konvolúciós neurális hálózat CNN felépítésére a képek azonosítására. Ebben érdemes létrehozni az RNN ciklikus neurális hálózatot az állandóan változó helyzet előrejelzésére.


 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