Пример 3. Плато и почти нулевой градиент

Почти нулевой градиент и эффект плато

Теперь покажем ситуацию, где градиент есть, но он очень маленький.

Это имитация плато.

Используем искусственную функцию ошибки:

L(w) = (w - 3)^4

Производная:

\frac{dL}{dw} = 4 (w - 3)^3

$w = 0.0;
$lr = 0.05;

echo "epoch\tw\t\tgradient\tloss\n";

for ($epoch = 1; $epoch <= 25; $epoch++) {

    $loss = ($w - 3) ** 4;
    $gradient = 4 * ($w - 3) ** 3;

    echo $epoch . "\t" .
         round($w, 5) . "\t" .
         round($gradient, 5) . "\t\t" .
         round($loss, 5) . PHP_EOL;

    $w -= $lr * $gradient;
}

Что здесь происходит:

– далеко от минимума шаги большие;

– ближе к оптимуму градиент стремится к нулю;

– обучение визуально «замирает».

Это естественный мостик к идее momentum и Adam, но пока без их введения.

Last updated