1 of 52

Adatbányászat alapjai

Mesterséges neurális hálózatok

Prof. Dr. Kovács László diái alapján

Kunné Dr. Tamás Judit�2025/26/2

2 of 52

Mesterséges neurális hálók

  • A mesterséges neurális hálók (Artificial Neural Networks, ANN) a biológiai neurális hálók modellezésével létrehozott, erőteljes elosztott párhuzamos feldolgozást, kollektív számítást megvalósító rendszerek.
  • Gráf alapú modell, melyben rétegekbe rendezett mesterséges neuronok kommunikálnak egymással aktivációs függvényeken keresztül

3 of 52

Mesterséges neuron

  •  

4 of 52

5 of 52

Aktivációs függvények

  • Az aktivációs függvény egy matematikai függvény, amely meghatározza, hogy egy adott neuron milyen mértékben legyen aktív (azaz milyen kimenetet adjon) a bemeneti jelek alapján.
  • Ez a függvény beépíti a nemlinearitást a hálózatba, ami elengedhetetlen a komplex mintázatok megtanulásához.

6 of 52

Lineáris aktivációs függvény

  • Képlete:
    • oi=f(ai)=α*ai, ahol α egy valós szám
  • Ha α=1, akkor az identitás függvény
  • A kimenet arányos a bemenettel, nincs benne torzítás vagy görbület
  • Nincs felső vagy alsó korlát
  • Vannak vele problémák, mivel a deriváltja konstans, így nem annyira szokták használni

7 of 52

Küszöb aktivációs függvény

  •  

8 of 52

Szignum aktivációs függvény

  •  

9 of 52

Darabonként-lineáris aktivációs függvény

  •  

10 of 52

ReLU aktivációs függvény�Rectified linear unit

  •  

11 of 52

Leaky ReLu aktivációs függvény�Szivárgó ReLU�

  •  

12 of 52

Gauss aktivációs függvény

  •  

13 of 52

Szigmoid/logisztikus aktivációs függvény

  •  

14 of 52

Swish

  •  

15 of 52

16 of 52

Tangens-hiperbolikus aktivációs függvény�(tanh)

  •  

17 of 52

Exponential linear unit aktivációs függvény�ELU�

  •  

18 of 52

Softmax aktivációs függvény

  •  

19 of 52

Aktivációs függvény választása

  • Rejtett rétegekhez:
    • ReLU, Szivárgó ReLU, ELU
  • Kimeneti réteghez:
    • Bináris osztályozás: Sigmoid
    • Több osztályos osztályozás: Softmax
    • Regresszió: Lineáris aktiváció

20 of 52

Mesterséges neurális hálózatok topológiája

  • A hálózat topológiáján a neuronok összeköttetési rendszerét és a hálózat bemeneteinek és kimeneteinek helyét értjük.
  • A neuronokat egymáshoz kapcsolják, és a rendszer általános viselkedését ezen kapcsolatok struktúrája és erőssége (wij) adja meg.
  • A neuronokat csoportokba, vagy rétegekbe rendezik el. Az egyetlen réteget alkotó, egymással kapcsolódó neuronok hálózatát gyakran tartalom által címezhető memóriának (CAM, Content Addressable Memory) nevezik.
  • A neurális hálók eltérő működéséért elsősorban az eltérő topológia a felelős

21 of 52

  • A hálózat topológiáját általában irányított gráffal reprezentáljuk.
  • A gráf csomópontjai a neuronoknak felelnek meg, míg a kapcsolatokat a kimenetek és bemenetek között a gráf élei reprezentálják a neuron-bemenettől a kimenet felé irányítva. (Az élekhez értelemszerűen hozzárendelhetjük a megfelelő wij bemeneti súlytényezőket s

22 of 52

Topológia

  • Jelek lekérése korábbi neuronoktól�jeleket generál (vagy nem) a bemenetek szerint�jelek továbbítása a következő neuronoknak�Bemenet: jellemző vektor�Kimenet: címkevektor�Az élek súlyértékkel rendelkeznek�A betanítás optimalizálja a súlyértékeket

23 of 52

Előrecsatolt hálózat

  • Működése nem időfüggő
  • A jelek áthaladnak a hálón a bemeneti réteg irányából a kimeneti réteg felé
  • A rejtett rétegek száma alapján van:
    • Egyrétegű (single layer)- száma 0
    • Többrétegű (multilayer)- száma 1+
  • A kimenet függ:
    • A bemenettől
    • A neuronok aktivációs jellemzőitől
    • Súlymátrixtól

24 of 52

Hátracsatolt hálózat

  • Visszacsatoltnak nevezünk egy neurális hálót, ha a topológiáját reprezentáló irányított gráf tartalmaz hurkot, egyébként a neurális háló előrecsatolt
  • Visszacsatolás fajtái:
    • Globális: a hálózat kimenetét csatoljuk vissza a bemenetére
    • Lokális
      • Elemei visszacsatolás: ha egy réteg neuronjának kimenete közvetlenül egyik saját bemenetére van visszacsatolva
      • Laterális: valamely réteg(ek) neuronjainak kimenetei ugyanazon réteg neuronjainak bemeneteire kapcsolódnak, de nem értjük ide a neuron önmagára való visszacsatolását
      • Rétegközi visszacsatolás: több réteget tartalmazó hurkot hoznak létre a gráfon

25 of 52

26 of 52

Rosenblatt perceptron

  • Az első, és legegyszerűbb mesterséges neurális hálózat
  • Képes arra megfelelő beállítás/betanulás után, hogy két lineárisan szeparálható bemeneti mintahalmazt szétválasszon
    • Kétosztályos esetekben lineáris osztályozási feladatok ellátására alkalmas
  • A későbbiekben továbbfejlesztették több-elemű, illetve többrétegű hálózatokká, amelyek képességei az egyszerű perceptront messze felülmúlják
  • Lineáris kombinációt megvalósító hálózat, amelynek a kiementén egy küszöbfüggvény-nemlinearitás szerepel, vagyis valójában egyetlen memória nélküli processzáló elem

27 of 52

  •  

28 of 52

Perceptron jellemzők

  • A látást, a retinát modellezte
  • A retina-modell mátrix alakban elrendezett fényszenzorai képezték az inputot
  • A szenzorkimeneteket mesterséges neuronok csoportjába vezették, mely csoport elemi különböző mintákat ismertek fel
  • Az output réteg neuronja addig tüzel, amíg egy adott gerjesztési szint, azaz egy adott típusú inputmintázat nem jelentkezik
  • Azon a megfigyelésen alapszik, hogy a hasonló összetettségű alakzatok közül egyesek könnyebben megtanulhatók és felidézhetők, mint mások
  • Működik folyamatos értékű és bináris inputtal egyaránt

29 of 52

Perceptron tanulása

  • A tanítás során a megfelelő elválasztó felület meghatározása a cél, vagyis azon w súlyvektor meghatározása, kialakítása, amely mellett az egyik osztálybeli bemeneti adatokra a lineáris kombináció eredménye pozitív, míg a másik osztálybeli pontokra negatív.
  • Az elválasztó felület a bemeneti mintatérben egy, az origón átmenő, a súlyvektorra (w) merőleges sík (hipersík)
    • Ha nem választhatóak szét lineáris felülettel, akkor semmilyen tanító eljárással sem kaphatunk olyan hálózatot, amely az osztályozási feladatot tökéletesen megoldja

30 of 52

  •  

31 of 52

Widrow-Hoff delta szabály a perceptron vonatkozásában

  •  

32 of 52

Perceptron hibája

  •  

33 of 52

34 of 52

Többrétegű perceptron (Multilayer Perceptron MLP)

  • Teljesen összekötött (fully connected) neurális háló, amely bővebb értelemben bármely előrecsatolt neurális hálót jelent, szűkebb értelemben több rétegbe szervezett perceptronokat (küszöb aktivációs függvénnyel)
  • Célja a lineárisan szeparálhatatlan inputok megkülönböztethetőségének elérése
  • Megoldása:
    • Perceptron kettő, vagy több rétegben
  • Az első réteg neuronjai alkalmasak az inputminta kisebb, egyenessel elszeparálható részeinek megkülönböztetésére, a második réteg neuronjai pedig alkalmasak az első réteg neuronjaitől jövő kétféle osztályba tartozó jelek megkülönböztetésére

35 of 52

  • Az u1 neuron észleli a (0,1) bemenetet, az u2 pedig az (1,0) bemenet esetén ad 1-et.
  • Az u3 neuronnak csak egy vagy függvényt kell realizálnia
  • Jelen formában a háló nem képes tanulni, a súlyok csak megadással állíthatóak be

36 of 52

Többrétegű perceptron tanulási hibája

  • Oka: a lépcsős átviteli függvény
  • Emiatt a második rétegre nem jut el információ a bemenetek tényleges értékéről
  • Mivel a tanulás megfelel az aktív inputok és az aktív neuronok közötti kapcsolat erősítésének, lehetetlen a háló megfelelő részét erősíteni, mivel az aktuális inputok el vannak vágva az outputtól a közbenső réteg által
  • A kétállapotú neuron, lévén tüzel vagy nem tüzel állapotban, nem ad semmi jelzést a súlyok módosításának mértékéről
  • A küszöbhöz közeli, a neuront éppen csak tüzelésre késztető inputok súlyait nem kellene ugyanolyan mértékben módosítani, mint azokét, amelyek hatására a neuron aktiváltsága messze esik a küszöbtől
  • Megoldása: A küszöb közelében átmenettel bíró átviteli függvényt alkalmazzunk
  • Tanítására új tanulási szabályok: általánosított delta szabály vagy hibavisszaterjesztés (backpropagation)

37 of 52

Visszafelé terjesztéses NN (Backpropagation)

  • Előrecsatoló neurális hálózatként működik1 rejtett réteggel�Speciális képzési mechanizmussal rendelkezik az élsúlyértékek optimalizálására�Paramétertér: súlyok�Gradiens optimalizálási módszer�Réteges optimalizálás�hatékony tanítási mechanizmus

38 of 52

Súlyok optimalizálása

  • célfüggvény: az előrejelzések hibája (E)
  • A cél a hibafüggvény minimalizálása
  • Hiba függvény: Aggregált négyzetes eltérés
  • Globális optimum: nulla érték
  • Összetett függőség

39 of 52

gradiens módszer

Részleges deriváltak vektora

a célfüggvény legnagyobb csökkenése

E = E(w1,w2,w3,..., wM)

- ∆W = -(dE/dw1,dE/dw2,...)

lánc deriválás

- E(w) = E(y1(x2(y3(x4(...(w))))

Összetett képletek

40 of 52

Belső és kimeneti réteg közötti kapcsolatokhoz

41 of 52

Bemeneti és rejtett rétegek közötti kacsolatokhoz

42 of 52

Backpropagation neural networks

Python Keras framework

from keras.models import Sequential

from keras.layers import Dense

model = Sequential()

model.add(Dense(units=64, activation='relu', input_dim=100)) model.add(Dense(units=10, activation='softmax'))

model.compile(loss='categorical_crossentropy',

optimizer='sgd', metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5, batch_size=32) model.train_on_batch(x_batch, y_batch)

classes = model.predict(x_test, batch_size=128)

43 of 52

from keras.models import Sequential from keras.layers import Dense

from keras.utils import np_utils import numpy

import pandas as pd

training_dataset = pd.read_csv('iris_training.csv', names=COLUMN_NAMES, header=0)

train_x = training_dataset.iloc[:, 0:4].values train_y = training_dataset.iloc[:, 4].values

test_dataset = pd.read_csv('iris_test.csv', names=COLUMN_NAMES, header=0) test_x = test_dataset.iloc[:, 0:4].values

test_y = test_dataset.iloc[:, 4].values

44 of 52

Python Keras framework

encoding_train_y = np_utils.to_categorical(train_y)

encoding_test_y = np_utils.to_categorical(test_y)

model = Sequential()

model.add(Dense(10, input_dim=4, activation='relu')) model.add(Dense(10, activation='relu')) model.add(Dense(3, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

model.fit(train_x, encoding_train_y, epochs=300, batch_size=10)

scores = model.evaluate(test_x, encoding_test_y) print("\nAccuracy: %.2f%%" % (scores[1]*100))

45 of 52

Deep Learning

  • összetettebb függőségek
  • összetett objektumok, nem csak egyszerű jellemzővektorok
  • Képbemenetek
  • Szekvencia bemenetek
  • Több rejtett réteg
  • további NN komponensek
  • CNN
  • RNN

46 of 52

Konvolúciós neurális halózat (Convolutional neural network (CNN))

47 of 52

Konvolúció :

  • funkcionális operátor
  • képfeldolgozás�minta észlelése
  • Kernel mátrixok

48 of 52

49 of 52

Convolutional neural network (CNN)

50 of 52

Convolutional neural network (CNN)

51 of 52

Convolutional neural network (CNN)

52 of 52

Convolutional neural network (CNN)

BPN