Ebben a cikkben bemutatom, hogyan lehet megvalósítani egy alapvető Neurális hálózatot a Keras használatával.

A Keras egy nagyon felhasználóbarát Deep learning könyvtár, amely egyszerű és gyors prototípuskészítést tesz lehetővé. Konzisztens és egyszerű API-kat kínál, és minimálisra csökkenti a gyakori használati esetekhez szükséges felhasználói műveletek számát, valamint egyértelmű és használható visszajelzést ad felhasználói hibák esetén.

A bináris osztályozási feladathoz a „Pima indiánok cukorbetegségének adatkészletét” fogom használni. Az adatkészlet célja az adatkészletben szereplő bizonyos diagnosztikai mérések alapján diagnosztikailag megjósolni, hogy a páciens cukorbeteg-e vagy sem. 768 megfigyelés van 8 bemeneti változóval és 1 kimeneti változóval.

Először importáljuk az adatkészletet a .txt fájlból, és NumPy tömbbé konvertáljuk. Ez a következő módon történik:

Az adatkészlet importálása után el kell végeznünk az adatok előfeldolgozását, mielőtt végigfutnánk egy modellen. Az első nyolc oszlop X_dataként, az utolsó oszlop pedigY_data néven kerül tárolásra.

Az X_data tartalmazza a különböző minták nyolc jellemzőjét, az Y_data pedig a célváltozót tartalmazza. Ezek a változók tovább vannak osztva X_train, X_test, y_train, y_testa train_test_split függvény segítségével egy sci-kit-learn könyvtárból.

Az előfeldolgozás után az adatok készen állnak.

Most egy egyszerű neurális hálózatot építünk a Keras segítségével. Itt a szekvenciális modellt használtam.

A modell első rétegei 16 neuront tartalmaznak, amelyek az adatokból veszik a bemenetet, és alkalmazzák a szigmoidaktiválást. A második réteg egyetlen neuront tartalmaz, amely átveszi az előző réteg bemenetét, kemény szigmoid aktiválást végez, és az osztályozás kimenetét 0 vagy 1 értékre adja.

Most a modell készen áll; összeállítjuk. Itt a 'bináris keresztentrópia veszteség' és az SGD ("Stochastic gradient descent") optimalizálót használtam a fordításhoz. Az SGD tanulási rátája 0,5, lendülete 0,9.

Most az X_train és az y_train függvényeket használjuk a modell betanításához, és 100 korszakon keresztül futtatjuk. A képzés befejezése után a modellt X_test és y_test értékeli.

A modell kiértékelésekor veszteség = 0,57 és pontosság = 0,73

A legelterjedtebb osztály előrejelzésének alapteljesítménye körülbelül 65%-os osztályozási pontosság. A legjobb eredmények megközelítőleg 77%-os osztályozási pontosságot érnek el.

Viszonylag jobb hatékonyságot értünk el egy egyszerű neurális hálózattal, ha összehasonlítjuk az adatkészlet átlagos eredményeivel. Mélyebb hálózattal nagyobb pontosság érhető el.

Github link a notebookhoz: Intro_to_Keras_Basic.ipynb

Készítette a Google Colabban, Kaustubh Atey ([email protected])