Кейс 5. Обучение модели как минимизация ошибки

Обучение «в лоб»: минимизация loss вручную

Сценарий Мы обучаем линейную модель y = wx, перебирая значения w и считая MSE.

Цель кейса

Связать loss-функцию и обучение без градиентного спуска – интуитивно.

$x = [1, 2, 3, 4];
$y = [2, 4, 6, 8];

function predict(array $x, float $w): array {
    return array_map(fn($xi) => $w * $xi, $x);
}

$bestW = null;
$bestLoss = INF;

for ($w = 0; $w <= 3; $w += 0.01) {
    $yHat = predict($x, $w);
    $loss = mse($y, $yHat);

    if ($loss < $bestLoss) {
        $bestLoss = $loss;
        $bestW = $w;
    }
}

echo "Best w = $bestW, loss = $bestLoss";

Почему это важно

Читатель буквально видит:

минимизация loss = обучение модели.

То же самое, но с библиотекой (Rubix ML)

Сценарий

Показать, что библиотеки делают то же самое, но скрывают детали.

Связь с главой

Под капотом происходит минимизация MSE, даже если мы её не видим.

Last updated