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
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.
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.
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.
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.
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.
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.
A kezdeti tanulási súlyozáshoz adja meg a csomópont súlyozását a tanulási folyamat elején.
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
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.
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.
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.
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.
Adjon hozzá egy címkézett adatkészletet a kísérlethez, és kösse össze az egyik betanító modult.
Ha a Create trainer mode (Oktatói mód létrehozása)paramétert Single Parameter (Egyparaméteres) beállításra beállította, használja a Train Model (Modell betanítása) modult .
Ha az Oktató létrehozása módotParamétertartományra, használja a Modell hiperparaméterek hangolása 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.
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