lemorzsolódás neurális hálózati réteg Keras magyarázata
Posted on
a gépi tanulást végül arra használják, hogy megjósolják az eredményeket adott funkciók. Ezért mindent, amit tehetünk, hogy általánosítsuk modellünk teljesítményét, nettó nyereségnek tekintjük. A lemorzsolódás egy olyan technika, amelyet a modell túlzott felszerelésének megakadályozására használnak. A lemorzsolódás úgy működik, hogy véletlenszerűen beállítja a rejtett egységek (a rejtett rétegeket alkotó neuronok) kimenő széleit 0-ra az edzési szakasz minden frissítésekor. Ha megnézi a keras dokumentációját a lemorzsolódási rétegről, látni fog egy linket egy Geoffrey Hinton és barátai által írt fehér könyvhöz, amely a lemorzsolódás mögött álló elméletbe megy.
a folyamatban lévő példában Keras-t fogunk használni egy neurális hálózat felépítéséhez azzal a céllal, hogy felismerjük a kézzel írt számjegyeket.
from keras.datasets import mnist from matplotlib import pyplot as plt plt.style.use('dark_background') from keras.models import Sequential from keras.layers import Dense, Flatten, Activation, Dropout from keras.utils import normalize, to_categorical
a Keras segítségével importáljuk az adatokat a programunkba. Az adatok már fel vannak osztva a képzési és tesztelési készletekre.
miután befejeztük a modell kiképzését, képesnek kell lennie arra, hogy felismerje az előző képet ötösként.
van egy kis előfeldolgozás, amelyet előzetesen el kell végeznünk. A képpontokat (funkciókat) úgy normalizáljuk, hogy azok 0-tól 1-ig terjedjenek. Ez lehetővé teszi a modell számára, hogy sokkal gyorsabban közelítsen egy megoldás felé. Ezután egy adott minta mindegyik célcímkéjét 1s és 0s tömbvé alakítjuk, ahol az 1-es szám indexe azt a számjegyet jelzi, amelyet a kép képvisel. Ezt azért tesszük, mert különben modellünk A 9-es számjegyet úgy értelmezi, hogy nagyobb prioritású, mint a 3-as szám.
mielőtt egy 2 dimenziós mátrixot betáplálnánk egy neurális hálózatba, egy simító réteget használunk, amely átalakítja azt 1 dimenziós tömbvé azáltal, hogy minden következő sort hozzáfűz az azt megelőző sorhoz. Két rejtett réteget fogunk használni, amelyek egyenként 128 neuronból állnak, és egy kimeneti réteget, amely 10 neuronból áll, mindegyik a 10 lehetséges számjegy egyikéhez. A softmax aktiválási függvény visszaadja annak valószínűségét, hogy egy minta egy adott számjegyet képvisel.