Megosztás a következőn keresztül:


Kétosztályos neurális hálózat

Bináris osztályozót hoz létre egy neurális hálózati algoritmussal

Kategória: Machine Learning / Modell inicializálása / Besorolás

Megjegyzés

A következőkre vonatkozik: Machine Learning Studio (klasszikus)

Hasonló húzással használható modulok érhetők el Azure Machine Learning tervezőben.

A modul áttekintése

Ez a cikk azt ismerteti, hogyan használható a Machine Learning Studio (klasszikus) Kétosztályos neurális hálózat modulja egy neurális hálózati modell létrehozásához, amely egy csak két értékkel rendelkezik egy cél előrejelzéséhez.

A neurális hálózatokkal való besorolás felügyelt tanulási módszer, ezért címkézett adatkészletre van szükség, amely tartalmaz egy címkeoszlopot. Ezzel a neurális hálózati modellel például bináris eredményeket jelezhet előre, például hogy egy beteg beteg-e vagy sem, vagy hogy egy gép várhatóan egy adott időszakon belül hibásodik-e meg.

A modell definiálása után betaníthatja egy címkézett adatkészlet és a modell megadásával a modell betanítása vagy a modell hiperparaméterek hangolása érdekében. A betanított modell ezután felhasználható az új bemenetek értékeinek előrejelzésére.

További információ a neurális hálózatokról

A neurális hálózat egymással összekapcsolt rétegek halmaza. A bemenetek az első réteg, és egy súlyozott élekből és csomópontokból álló aciklikus gráf segítségével kapcsolódnak a kimeneti réteghez.

A bemeneti és kimeneti rétegek között több rejtett réteget is beszúrhat. A legtöbb prediktív feladat egyszerűen elvégezhető csak egy vagy néhány rejtett réteggel. A nemrégiben végzett kutatások azonban kimutatták, hogy a sok réteggel is rendelkezik mély neurális hálózatok (DNN) rendkívül hatékonyak az olyan összetett feladatokban, mint a kép- vagy beszédfelismerés. Az egymást követő rétegek a szemantikai mélység növekvő szintjeit modelleik.

A bemenetek és kimenetek közötti kapcsolat a neurális hálózat bemeneti adatokon való betanításán keresztül van megtanulva. A gráf iránya a bemenettől a rejtett rétegen át a kimeneti réteg felé halad. A réteg összes csomópontját a súlyozott élek csatlakoztatják a következő réteg csomópontjaihoz.

Egy adott bemenet hálózatának kimenetének kiszámításához a rendszer a rejtett rétegek minden csomópontján és a kimeneti rétegben kiszámítja az értéket. Az érték az előző réteg csomópontjainak súlyozott összegének kiszámításával van beállítva. Ezután a rendszer alkalmaz egy aktiválási függvényt a súlyozott összegre.

A neurális Two-Class konfigurálása

  1. Adja hozzá a kétosztályos neurális hálózat modult a (klasszikus) Studióban található kísérlethez. Ezt a modult az Inicializálás Machine Learninga Besoroláskategóriában találja.

  2. Az Oktatói mód létrehozása beállítással adhatja meg, hogyan szeretné betanítni a modellt.

    • Egyetlen paraméter: Válassza ezt a lehetőséget, ha már tudja, hogyan szeretné konfigurálni a modellt.

    • Paramétertartomány: Válassza ezt a lehetőséget, ha nem biztos a legjobb paraméterekben. Ezután adjon meg egy értéktartományt, és használja a Modell hiperparaméterek hangolása modult a kombinációk iterálására, és keresse meg az optimális konfigurációt.

  3. A Rejtett réteg specifikációja mezőben válassza ki a létrehozni kívánt hálózati architektúra típusát.

    • Teljesen csatlakoztatott eset: Az alapértelmezett neurális hálózati architektúrát használja, amely a következő kétosztályos neurális hálózatokhoz van definiálva:

      • Egy rejtett rétege van.

      • A kimeneti réteg teljesen csatlakoztatva van a rejtett réteghez, a rejtett réteg pedig teljesen a bemeneti réteghez.

      • A bemeneti réteg csomópontjainak száma megegyezik a betanítás adatainak jellemzőivel.

      • A rejtett rétegben lévő csomópontok számát a felhasználó adja meg. Az alapértelmezett érték 100.

      • A csomópontok száma megegyezik az osztályok számmal. Kétosztályos neurális hálózat esetén ez azt jelenti, hogy minden bemenetnek a kimeneti réteg két csomópontja egyikére kell leképezve lennie.

    • Egyéni definíciós szkript: Ezzel a beállítással egyéni neurális hálózati architektúrát hozhat létre a Net#-nyelv használatával. Ezzel a beállítással meghatározhatja a rejtett rétegek számát, kapcsolataikat és a rétegek közötti leképezéseket.

    Az egyéni szkript lehetőség kiválasztása után a Neurális hálózat definíciója szövegmezőbe írja vagy illessze be a hálózatot meghatározó Net#-utasításokat. Példákért lásd : Útmutató a Net# neurális hálózatok specifikációs nyelvhez.

  4. Ha nem használja a szkriptet, használja a Rejtett csomópontok száma lehetőséget, és írja be a rejtett csomópontok számát. Az alapértelmezett egy rejtett réteg 100 csomóponttal.

  5. A Tanulás a javítás előtt határozza meg az egyes iterációk során tett lépés méretét. A tanulási sebesség nagyobb értéke gyorsabb konvergálhat, de túlterhelést okozhat a helyi minimumok esetében.

  6. A Tanulási iterációk száma beállításnál adja meg azt a maximális számot, a hányszor kell az algoritmusnak feldolgoznia a betanítási eseteket.

  7. A kezdeti tanulási súlyozáshoz adja meg a csomópont súlyozását a tanulási folyamat elején.

  8. A the the fogahoz adjon meg egy súlyt, amely a korábbi iterációkból származó csomópontok tanulása során lesz alkalmazva

  9. A Normalizáló típusa mezőben válassza ki a funkció normalizálására használni kívánt metódust. A következő normalizálási módszerek támogatottak:

    • Tároló normalizálója: A kitűzés normalizálója egyenlő méretű tárolókat hoz létre, majd az egyes tárolókban lévő összes értéket normalizálja, osztódva az összes lomtár számmal.

    • Gauss-normalizáló: A Gauss-normalizáló átmérete az egyes funkciók értékeit a 0 és az 1 közötti eltérésre skáláz. Ez az egyes funkciók átlagos és varianciájának számítása alapján történik. A rendszer minden példányhoz kivonja a átlagértéket, az eredményt pedig elosztja a variancia négyzetgyökével (a szórás).

    • Min-max normalizer: A minimális normalizáló lineárisan újraméretez minden jellemzőt a [0,1] intervallumra.

      A [0,1] intervallumra való átméretezés úgy történik, hogy az egyes funkciók értékeit úgy osztjuk meg, hogy a minimális érték 0 legyen, majd osztjuk el az új maximális értékkel (ami az eredeti maximális és minimális értékek közötti különbség).

    • Ne normalizáljon: Nem történik normalizálás.

  10. Válassza a Példák osztása lehetőséget az esetek iterációk közötti osztáshoz. Ha nem választja ki ezt a beállítást, az esetek feldolgozása a kísérlet minden futtatásakor pontosan ugyanabban a sorrendben történik.

  11. A Véletlenszám-kezdőérték mezőben adjon meg egy értéket, amely kezdőértékként lesz használva.

    A kezdőérték megadása akkor hasznos, ha biztosítani szeretné az ismételhetőséget ugyanazon kísérlet futtatásai között. Ellenkező esetben a rendszeróra értéket használ kezdőértékként, amely a kísérlet minden futtatásakor némileg eltérő eredményeket okozhat.

  12. Válassza az Ismeretlen kategorikus szintek engedélyezése lehetőséget, hogy a betanítás és az ellenőrzési készlet ismeretlen értékeinek csoportosítását hozza létre. Előfordulhat, hogy a modell kevésbé pontos az ismert értékek esetében, de jobb előrejelzéseket biztosít az új (ismeretlen) értékekről.

    Ha nem választja ki ezt a beállítást, a modell csak a betanítás adataiban szereplő értékeket tudja elfogadni.

  13. Adjon hozzá egy címkézett adatkészletet a kísérlethez, és kösse össze az egyik betanító modult.

    Megjegyzés

    Ha paramétertartományt ad át a Modell betanítása számára, az csak az első értéket használja a paramétertartományok listájában.

    Ha egyetlen paraméterérték-készletet ad át a Modell hiperparaméterek hangolása modulnak, és az egyes paraméterekhez egy beállítástartományt vár, az figyelmen kívül hagyja az értékeket, és az alapértelmezett értékeket használja a tanuló számára.

    Ha a Paramétertartomány lehetőséget választja, és egyetlen értéket ad meg bármely paraméterhez, akkor a rendszer ezt az értéket használja a teljes tartományban, még akkor is, ha más paraméterek változnak egy értéktartományban.

  14. Futtassa a kísérletet.

Results (Eredmények)

A betanítás befejezése után:

  • A modell paramétereinek összegzését, valamint a betanításból tanult jellemzősúlyokat és a neurális hálózat egyéb paramétereit a jobb gombbal a Modell betanítása vagy a Modell hiperparaméterének hangolása kimenetére kattintva, majd válassza a Képi megjelenítés lehetőséget.

  • A betanított modell pillanatképének mentéshez kattintson a jobb gombbal a Betanított modell kimenetére, és válassza a Mentés betanított modellként lehetőséget. Ez a modell nem frissül ugyanazon kísérlet egymást követő futtatásaikor.

  • Ha keresztellenőrzést szeretne végrehajtani egy címkézett adatkészleten, csatlakoztassa a nem képezett modellt a Modell keresztellenőrzése hez.

Példák

A tanulási algoritmus használatára vonatkozó példákért lásd a Azure AI Gallery. Ezek a kísérletek egyetlen dokumentumban kapcsolódnak egymáshoz, és egyetlen dokumentumban vannak leírva, amely az alapszintűtől a speciális konfigurációkig halad:

Technikai megjegyzések

Ez a szakasz az implementáció részleteit, tippeket és válaszokat tartalmazza a gyakori kérdésekre.

További információ a Netről #

A Machine Learning Studio (klasszikus) használatával testre szabhatja egy neurális hálózati modell architektúráját a Net#-nyelv használatával. A Net# nyelv által támogatott testreszabások a következők:

  • A rejtett rétegek számának és az egyes rétegekben lévő csomópontok számának megadása
  • Rétegek közötti leképezések megadása
  • Konvolúciók és súlymegosztási csomagok meghatározása
  • Az aktiválási függvény kiválasztása

A neurális hálózati modellt a gráf szerkezete határozza meg, amely a következő attribútumokat tartalmazza:

  • A rejtett rétegek száma
  • Az egyes rejtett rétegekben lévő csomópontok száma
  • A rétegek összekapcsolása
  • Melyik aktiválási függvényt használja?
  • Súlyok a gráféleken

Fontos

A felhasználó megszabadhatja a gráf teljes struktúráját, valamint az aktiválási függvényt. Az éleken azonban nem lehet megadni a súlyokat, és meg kell tanulniuk, amikor betanítják a neurális hálózatot a bemeneti adatokon.

A hálózat alapértelmezései általában a következőek:

  • Az első réteg mindig a bemeneti réteg.
  • Az utolsó réteg mindig a kimeneti réteg.
  • A kimeneti rétegben a csomópontok számának egyenlőnek kell lennie az osztályok számával.

Bármilyen számú köztes réteget definiálhat (ezeket rejtett rétegeknek is nevezik, mert a modell tartalmazza őket, és nem közvetlenül végpontként vannak elérhetővé téve).

A Net# referencia-útmutatója ismerteti a szintaxist, és minta hálózati definíciókat biztosít. Ismerteti, hogyan használhatja a Net# használatával rejtett rétegeket, és hogyan definiálhatja, hogyan kommunikálnak egymással a különböző rétegek.

A következő szkript auto például a kulcsszót használja, amely automatikusan beállítja a funkciók számát a bemeneti és kimeneti rétegekhez, és az alapértelmezett értékeket használja a rejtett réteghez.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

További példaszkreteket a Guide to the Net# Neural Networks Specification Language (Útmutató a Net# neurális hálózatok specifikációs nyelvhez) tartalmaz.

Tipp

A neurális hálózatok számítási szempontból költségesek lehetnek számos hiperparaméter és az egyéni hálózati topológiák bevezetése miatt. Bár sok esetben a neurális hálózatok jobb eredményeket hoznak, mint más algoritmusok, az ilyen eredmények beszerzése jelentős mennyiségű túl sok ismétlést (iterációt) okozhat a hiperparaméterek felett.

Modulparaméterek

Name Tartomány Típus Alapértelmezett Description
Rejtett réteg specifikációja Lista Neurális hálózati topológia Teljesen csatlakoztatott eset A rejtett réteg vagy rétegek architektúrája
A kezdeti tanulási súlyok >=double. Epsilon Float 0.1 A csomópont súlyozásának megadása a tanulási folyamat elején
Tanulási sebesség [double. Epsilon;1.0] Float 0.1 A tanulási folyamat egyes lépési méretének megadása
A 3. [0.0;1.0] Float 0,0 Adjon meg egy súlyt, amely a korábbi iterációkból származó csomópontokra való tanulás során alkalmazandó
Neurális hálózat definíciója Bármelyik StreamReader Ha az Egyéni definíciós szkript lehetőséget választja, minden sorba írjon be egy érvényes szkriptkifejezést az egyéni neurális hálózatok rétegeinek, csomópontjainak és viselkedésének meghatározásához
A normalizáló típusa Lista Normalizálási módszer Min-Max normalizáló Válassza ki a tanulási példákra alkalmazni kívánt normalizálási típust
Tanulási iterációk száma >=1 Egész szám 100 A tanulás során végrehajtott iterációk számának megadása
Példák az osztásra Bármelyik Logikai true Ezzel a lehetőséggel módosíthatja a példányok sorrendjét a tanulási iterációk között
Véletlenszerű szám kezdőszáma Bármelyik Egész szám Adjon meg egy numerikus kezdőértéket, amely véletlenszerű szám generáláshoz használható. Hagyja üresen az alapértelmezett kezdőérték használatát.
Ismeretlen kategorikus szintek engedélyezése Bármelyik Logikai Igaz Jelezve, hogy létre kell-e hoznunk egy további szintet az ismeretlen kategóriákhoz. Ha a tesztadatkészlet olyan kategóriákat tartalmaz, amelyek nincsenek jelen a betanítás adatkészletében, akkor a rendszer erre az ismeretlen szintre leképezi őket.

Kimenet

Név Típus Description
Nem korlátozott modell ILearner interfész Nem korlátozott bináris besorolási modell

Lásd még

Osztályozás
Neurális hálózat típusú regresszió
Többosztályos neurális hálózat
A–Z modullista