Alterna · учебный материал
Вход и правило преобразования
Если меняется число на входе, может измениться ответ. Это ещё не означает, что правило обучилось.
Что в этом материале
- Откуда вообще берутся веса?
- Четыре объекта, которые нельзя смешивать
- Геометрия аффинного преобразования
- От скаляра к векторам и shapes
- Зачем нужна нелинейность
- Dataset, target и prediction
- Тот же механизм в коде
Содержание и основные понятия
На предыдущей странице: модель — не вся программа.
Если меняется число на входе, может измениться ответ. Это ещё не означает, что правило обучилось.
Модель рассчитывает ответ по числовым настройкам. Программа вокруг неё готовит вход и может вызывать поиск или инструменты.
Откуда вообще берутся веса?
Вес (weight) — настраиваемый коэффициент модели. Это не номер слова и не ответ нейросети. Веса хранятся в таблицах; одно и то же число может участвовать в расчёте для разных токенов.
При создании модели программе нужны начальные значения. Многие веса задаются автоматически небольшими случайными числами; некоторые множители и смещения начинают с единиц или нулей. Такие настройки ещё не являются полезным знанием.
Как из начальных чисел получается обученная модель
Модель делает прогноз по учебному примеру.
Прогноз сравнивают с известным правильным ответом.
Разницу оценивают числом — ошибкой, или функцией потерь (loss).
Производные показывают, как малые изменения параметров повлияют на ошибку; их набор называют градиентом (gradient).
Правило исправления — оптимизатор — немного меняет параметры, и расчёт повторяют.
После многих таких исправлений значения весов могут стать полезными для задачи. Это не гарантия качества на новых данных: их проверяют отдельно. В следующих главах таблицы E, Wq и U содержат те самые настраиваемые числа.
Для интерактивного эксперимента нужен JavaScript. Теория, модель и ручные расчёты выше доступны без него.
Четыре объекта, которые нельзя смешивать
Рассмотрим семейство функций
y
=
f
(
w
,
b
)
(
x
)
=
w
x
+
b
.
y=f_{(w,b)}(x)=wx+b.
y
=
f
(
w
,
b
)
(
x
)
=
w
x
+
b
.
Здесь
архитектура
— порядок операций «умножить, затем прибавить».
Параметры
θ=(w,b)
выбирают конкретную функцию семейства.
Input
x
относится к текущему примеру.
Activation
y
возникает во время текущего вычисления. Эти объекты могут быть представлены числами, но их роль различна.
При
w=1
,
b=0
,
x=2
получаем
y=2
. Если заменить только
x
на 3, точка перейдёт с
(2,2)
на
(3,3)
вдоль прежней прямой. Если сохранить
x=2
, но заменить
w
на 2, получится новая функция
y=2x
и output 4. В обоих опытах ответ изменён, однако только во втором изменился parameter state.
Состояние
x
w
b
y
Причина изменения
Базовое
2
1
0
2
Нет
Новый пример
3
1
0
3
Другой input
Новый slope
2
2
0
4
Другой parameter
w
Новый offset
2
1
1
3
Другой parameter
b
Геометрия аффинного преобразования
Коэффициент
w
задаёт изменение выхода на единицу изменения входа:
f
(
x
+
Δ
x
)
−
f
(
x
)
=
w
Δ
x
.
f(x+\Delta x)-f(x)=w\Delta x.
f
(
x
+
Δ
x
)
−
f
(
x
)
=
w
Δ
x
.
Bias
b=f(0)
сдвигает прямую. При
b≠0
преобразование строго является аффинным, а не линейным: для линейного отображения требуется
f(0)=0
. Традиционное название «линейная регрессия» при этом сохраняется.
Влияние параметра зависит от input:
∂
y
∂
w
=
x
,
∂
y
∂
b
=
1.
\frac{\partial y}{\partial w}=x,\qquad
\frac{\partial y}{\partial b}=1.
∂
w
∂
y
=
x
,
∂
b
∂
y
=
1.
При
x=0
изменение
w
не изменяет текущий output, хотя сам parameter store меняется. Значит, параметру нельзя навсегда приписать одинаковый видимый эффект на любом примере.
От скаляра к векторам и shapes
Если у объекта два признака, используем вектор
x=[x₁,x₂]
и weights
w=[w₁,w₂]
:
y
=
w
⋅
x
+
b
=
w
1
x
1
+
w
2
x
2
+
b
.
y=w\cdot x+b=w_1x_1+w_2x_2+b.
y
=
w
⋅
x
+
b
=
w
1
x
1
+
w
2
x
2
+
b
.
Например,
[1,2]·[3,4]=1·3+2·4=11
. Совместимость shapes является частью смысла операции: dot принимает два вектора одинаковой длины и возвращает скаляр. Для batch из
n
примеров матрица
X
может иметь shape
[n,d]
, вектор
w
—
[d]
, а predictions —
[n]
.
Большая нейросеть повторяет матричные и покоординатные операции много раз. Это не превращает каждую внутреннюю координату в человеческое понятие. Число внутри activation может участвовать в полезном распределённом представлении, не имея постоянной подписи «животное» или «грамматика».
Зачем нужна нелинейность
Композиция аффинных преобразований без нелинейности снова аффинна:
W
2
(
W
1
x
+
b
1
)
+
b
2
=
(
W
2
W
1
)
x
+
(
W
2
b
1
+
b
2
)
.
W_2(W_1x+b_1)+b_2=(W_2W_1)x+(W_2b_1+b_2).
W
2
(
W
1
x
+
b
1
)
+
b
2
=
(
W
2
W
1
)
x
+
(
W
2
b
1
+
b
2
)
.
Добавление
ReLU(r)=max(0,r)
между слоями ломает это сворачивание. Для вектора правило применяется покоординатно:
ReLU([-2,3])=[0,3]
. Нелинейность расширяет класс функций, но сама по себе не обеспечивает обучение, обобщение или истинность ответа.
Dataset, target и prediction
Dataset — набор примеров для обучения или оценки. В supervised learning запись часто содержит пару
(x,y*)
, где
y*
— известная цель. Prediction
f_θ(x)
вычисляется моделью. Target не является activation, а dataset не является папкой, которую каждый forward обязан читать заново.
Во время inference те же параметры последовательно обрабатывают разные inputs. Временные activations создаются и удаляются, а weights остаются фиксированными, пока отдельная процедура не выполнит update. Нижняя лаборатория позволяет менять
x
,
w
и
b
раздельно: наблюдайте не только новый
y
, но и то, изменилась ли прямая целиком.
Тот же механизм в коде
Сначала умножение, затем сдвиг. Здесь нет обучения и скрытых вспомогательных функций.
x, w, b = 2, 1, 0
y = w * x + b
print(y) # 2
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
При фиксированных w и b это та же функция, применённая к другому примеру. Изменение ответа не доказывает обучения.
Когда модель действительно учится. Как этот вопрос продолжает полученный результат?
Академическая база →