Mi az a stochastic depth és miért használják az EfficientNet-ben?
sobes.tech MI
Válasz az MI-től
Stochastic Depth egy regularizációs technika, amelyet mély neurális hálózatokban, beleértve az EfficientNet-et is, alkalmaznak. Az ötlet az, hogy véletlenszerűen kihagyunk (kikapcsolunk) bizonyos rétegeket vagy blokkokat a hálózatban az edzés során, egy adott valószínűséggel.
Ennek miért van szüksége?
- Lehetővé teszi nagyon mély hálózatok tanítását, csökkentve a túlillesztést.
- Javítja a modell általánosító képességét.
- Gyorsítja a tanulást, mivel egyes rétegek nem kerülnek kiszámításra minden lépésben.
Az EfficientNet-ben a stochastic depth a maradék blokkokra alkalmazott: minden tanulási lépésben a blokk vagy átugorható (közvetlen átmenet változtatások nélkül), vagy normál módon használható. Az inferenciában minden blokk aktív.
Ez segít az EfficientNet-nek magas minőséget elérni kevesebb paraméterrel és számítási erőforrással.
Ezt így lehet elképzelni:
if training:
if random() < drop_prob:
# blokk kihagyása
output = input
else:
output = block(input)
else:
output = block(input)
Így a stochastic depth egy módszer arra, hogy a tanulást stabilabbá és hatékonyabbá tegyük.