alterna ai
ALTERNA AI / ГЛАВА 06 · 01

06.1 Подбираем прямую по данным

Мы знаем, как измерять ошибку и менять настройки.

Есть точки, и нужно приблизить их прямой. Меняя наклон и сдвиг, уменьшаем ошибку на учебных точках.

Подбор прямой и разделение точек позволяют увидеть процесс обучения на простых данных. Проверочные ответы не участвуют в исправлениях.

Обучение начинается с данных и критерия

Пусть наблюдаются пары(x,y). Мы выбираем семейство прогнозов ŷ=wx+b и ищем параметры, уменьшающие среднюю ошибку. x и y — данные; w,b — результат настройки. Ручное движение ползунка тоже меняет функцию, но только алгоритмический fit по dataset является описанной процедурой обучения. N01.

MSE⁡(w,b)=1N∑i=1N(wxi+b−yi)2.\operatorname{MSE}(w,b)=\frac1N\sum_{i=1}^N(wx_i+b-y_i)^2.

Возьмём x=[−1,0,1], y=[−1,1,3]. При w=1,b=0 predictions[−1,0,1], ошибки[0,−1,−2], MSE=5/3. Для affine regression одного признака можно вывести оптимум из двух уравнений нулевого gradient. Если variance x ненулевая:

w=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2,b=yˉ−wxˉ.w=\frac{\sum_i(x_i-\bar x)(y_i-\bar y)}{\sum_i(x_i-\bar x)^2},\qquad b=\bar y-w\bar x.

В примере средние0и1, numerator4, denominator2, поэтому w=2,b=1, MSE=0. Это точный fit трёх учебных точек, не гарантия правильного закона на любых новых x.

Эксперимент. Сначала настройте линию вручную, затем нажмите «Найти fit». Сравните сумму квадратов до/после. Если все x одинаковы, slope и intercept невозможно однозначно разделить: знаменатель равен0. Для многомерной regression нужны rank/conditioning-проверки, а не слепой inverse.

Под капотом. Для d признаков linear layer содержит d+1 параметров. При batchN дизайн-матрица имеет shape[N,d], weights[d,1], output[N,1]. Полиномиальные признаки могут менять зависимость от x, сохраняя линейность по обучаемым коэффициентам.

x,y = [-1,0,1],[-1,1,3]
mx,my = sum(x)/3,sum(y)/3
w = sum((a-mx)*(b-my) for a,b in zip(x,y))/sum((a-mx)**2 for a in x)
b = my-w*mx
assert (w,b)==(2,1)

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Минимизируется выбранная training objective, а не доказывается перенос.

От оценки к решению о классе. Как этот вопрос продолжает полученный результат?

Python-примеры главы 06 Академическая база →