Rétegsúly-szabályozók

A szabályozók lehetővé teszik a rétegparaméterekre vagy a rétegaktivitásra vonatkozó büntetések alkalmazását az optimalizálás során. Ezeket a büntetéseket a veszteségfüggvény összegzi, amelyet a hálózat optimalizál.

büntetést alkalmaz

A szabályozási büntetéseket rétegenként alkalmazzák. A pontos API a fóliától függ, de sok réteg (pl. Dense, Conv1D, Conv2D és Conv3D) rendelkezik egységes API-val.

Ezek a rétegek 3 kulcsszó argumentumot tárnak fel:

  • kernel_ regularizer: Regularizer büntetést alkalmaz a réteg kerneljére
  • bias_ regularizer: A rendszeresítő büntetést alkalmaz a réteg elfogultságára
  • tevékenység_szabályozó: Rendszeresítő büntetést alkalmaz a réteg kimenetére

Az aktivitás_szabályozó objektum által visszaadott érték el lesz osztva a bemeneti kötegmérettel, így a súlyszabályozók és az aktivitásszabályozók közötti relatív súlyozás nem változik a kötegmérettel együtt.

A fólia szabályozási büntetéseihez úgy férhet hozzá, hogy meghívja a layer.losses-t, miután meghívta a fóliát a bemenetekre:

Rendelkezésre álló szabályozók

A következő beépített szabályozók elérhetők a tf.keras. regularizers modul részeként:

L1 osztály

Olyan szabályozó, aki L1-es szabályozási büntetést alkalmaz.

Az L1 szabályozási büntetés kiszámítása: veszteség = l1 * csökkentési_összeg (abs (x))

Az L1 karakterlánc-azonosítóként átadható egy rétegnek:

Ebben az esetben az alapértelmezett érték l1 = 0,01 .

Attribútumok

  • l1: Úszó; L1 szabályozási tényező.

L2 osztály

Olyan szabályozó, aki L2-es szabályozási büntetést alkalmaz.

Az L2 szabályozási büntetést a következőképpen számoljuk ki: veszteség = l2 * csökkent_összeg (négyzet (x))

Az L2 karakterlánc-azonosítóként átadható egy rétegnek:

Ebben az esetben az alapértelmezett érték l2 = 0,01 .

Attribútumok

  • l2: Úszó; L2 szabályozási tényező.

l1_l2 függvény

Hozzon létre egy szabályozót, amely az L1 és az L2 büntetéseket egyaránt alkalmazza.

Az L1 szabályozási büntetés kiszámítása: veszteség = l1 * csökkentési_összeg (abs (x))

Az L2 szabályozási büntetést a következőképpen számoljuk ki: veszteség = l2 * csökkent_összeg (négyzet (x))

Érvek

  • l1: Úszó; L1 szabályozási tényező.
  • l2: Úszó; L2 szabályozási tényező.

Visszatér

L1L2 Regularizer a megadott szabályozási tényezőkkel.

Egyedi szabályozók létrehozása

Egyszerű hívhatók

A súlyszabályozó bármilyen hívható lehet, amely beveszi egy súlytenzort (pl. Egy Conv2D réteg magja), és skaláris veszteséget ad vissza. Mint ez:

Rendszeresítő alosztályok

Ha különféle argumentumokon keresztül kell konfigurálnia a szabályozót (pl. L1 és l2 argumentumok az l1_l2-ben), akkor azt a tf.keras. regularizers.regularizer alosztályaként kell végrehajtania. .

Íme egy egyszerű példa:

Opcionálisan megvalósíthatja a get_config metódust és a class metódust a_config-ból is a sorosítás támogatása érdekében - akárcsak bármely más Keras-objektum esetében. Példa: