Alterna · учебный материал

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

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

Что в этом материале

Содержание и основные понятия

Мы знаем, как измерять ошибку и менять настройки.
Есть точки, и нужно приблизить их прямой. Меняя наклон и сдвиг, уменьшаем ошибку на учебных точках.
Подбор прямой и разделение точек позволяют увидеть процесс обучения на простых данных. Проверочные ответы не участвуют в исправлениях.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Обучение начинается с данных и критерия
Пусть наблюдаются пары(x,y). Мы выбираем семейство прогнозов ŷ=wx+b и ищем параметры, уменьшающие среднюю ошибку. x и y — данные; w,b — результат настройки. Ручное движение ползунка тоже меняет функцию, но только алгоритмический fit по dataset является описанной процедурой обучения. N01.
MSE
⁡
(
w
,
b
)
=
1
N
∑
i
=
1
N
(
w
x
i
+
b
−
y
i
)
2
.
\operatorname{MSE}(w,b)=\frac1N\sum_{i=1}^N(wx_i+b-y_i)^2.
MSE
(
w
,
b
)
=
N
1
​
i
=
1
∑
N
​
(
w
x
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
(
x
i
−
x
ˉ
)
(
y
i
−
y
ˉ
)
∑
i
(
x
i
−
x
ˉ
)
2
,
b
=
y
ˉ
−
w
x
ˉ
.
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.
w
=
∑
i
​
(
x
i
​
−
x
ˉ
)
2
∑
i
​
(
x
i
​
−
x
ˉ
)
(
y
i
​
−
y
ˉ
​
)
​
,
b
=
y
ˉ
​
−
w
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
Академическая база →

Структурная карта учебников