ai.vostman.fi
← Tekoälysanasto

Tekoälyn tietosanakirja

Dropout: opeta verkko toimimaan puuttuvilla aktivaatioilla

Dropout poistaa aktivaatioita satunnaisesti koulutuksen aikana. Verkko ei voi luottaa täsmälleen samojen aktivaatioiden läsnäoloon joka askeleella, mikä voi vähentää ylisovittamista.

Tavallisessa käänteisen dropoutin käytännössä säilyvät aktivaatiot jaetaan säilymistodennäköisyydellä. Niiden odotusarvo säilyy, mutta yksittäisen otoksen summa ei välttämättä säily.

Maski muuttuu koulutuskierrosten välillä

NumPy-toteutus näyttää operaation. Sama syöte saa kahdella ajokerralla eri maskit.

import numpy as np

rng = np.random.default_rng(7)
def dropout(hidden, rate):
    keep = rng.random(hidden.shape) >= rate
    return hidden * keep / (1 - rate)

hidden = np.ones((4, 8))
first = dropout(hidden, 0.25)
second = dropout(hidden, 0.25)

Tavallisessa ajossa dropout poistetaan käytöstä ja aktivaatio kulkee muuttumatta läpi. Kirjaston koulutus- tai arviointitila vaikuttaa siksi toimintaan, vaikka painot ovat samat.

Dropout ei vähennä tallennettujen parametrien määrää eikä tarkoita verkon pysyvää karsimista. Poistotodennäköisyys on koulutusvalinta: liian suuri arvo voi estää hyödyllisten piirteiden oppimisen. Sopiva arvo riippuu mallista, aineistosta ja muusta regularisoinnista.

Lähteet