Пример 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