Egy előzetesen betanított neurális hálót tudok tovább tanítani úgy hogy az eddigi tudása megmarad? (részletek! )
Ha hajlandó vagy kissé mélyebben belemerülni a témában, akkor ajánlom figyelmedbe az ún. Elastic Weight Consolidation technológiát. Annyira friss az ötlet, hogy az ezt részletező dokumentumokat most januárban tették közzé.
A lényege, hogy miután betanítottuk a neurális hálót, minden súly esetén megvizsgáljuk, hogy az mennyi információt tartalmaz. A további tanításnál pedig azokat a súlyokat/paramétereket, amik sok információt tárolnak erősebben rögzítjük, nem hagyjuk, hogy sokat változhassanak. Ezzel tovább tudnád tanítani úgy, hogy zömmel megtartja az eddigi tudását.
Sikeresen tanítottak így meg egyszerre több feladatot is neurális hálóknak. Esetedben elég lenne egyszer kiszámítani az információtartalmat (súlyok Fisher információs mátrixának a főátlóját), és az alapján rögzíteni a súlyokat a további tanulás során.
Levezetés nélkül így lehetne megoldani:
Ha van egy korábban készre betanított súlyod: W0_i, a hozzá tartozó információ F_i és a jelenlegi súly (épp most tanított súly) W_i, akkor a súlyok gradienséhez kéne egy újabb tagot adni:
deltaW_i += -learningRate ( lambda * F_i(W_i - W0_i) )
lambda egy hyperparaméter, kb olyan mint az L2-regularizáció értéke, minél nagyobb annál jobban kötődik a régi formájához a neurális háló.
Ha van lehetőséged ilyen mélységben változtatni a neurális hálód update szabályán, akkor érdemes lenne kipróbálnod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!