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

07.1 Один нейрон по шагам

Матрица создаёт суммы произведений, а параметры можно обучать.

Входы умножаются на веса, вклады складываются и дополняются смещением. Только после этого применяется функция выхода.

Он собирает вклады входов, добавляет смещение и применяет нелинейное правило. Все части этого расчёта уже доступны школьной арифметике.

Из входов в один score

Нейрон здесь — математическая функция, а не биологическая клетка. Вектор входа x содержит признаки, веса w определяют их вклад, bias b сдвигает результат. После суммы применяется активация φ. Опора: N02.

z=wTx+b=∑i=1dwixi+b,a=ϕ(z).z=w^Tx+b=\sum_{i=1}^{d}w_ix_i+b,\qquad a=\phi(z).

Для x=[1,2], w=[1,−1], b=.5 попарные произведения равны 1 и −2, их сумма −1, поэтому z=−.5. Перцептрон с правилом «1 при z≥0, иначе 0» выдаёт 0. ReLU тоже выдаёт 0, но функции различны: при z=2 порог даёт 1, а ReLU — 2.

Эксперимент. Измените один вход, затем соответствующий вес. Если xᵢ=0, изменение wᵢ не влияет на текущий z. Bias влияет на сумму независимо от входа. Ручная настройка меняет выбранную функцию, но не является автоматическим обучением по данным.

Легко ошибиться. Параметры и текущие активации имеют разное время жизни. Скаляры w и b остаются общими для разных примеров, а z пересчитывается. Bias в аффинной функции и статистическое смещение оценки — разные понятия.

Под капотом. Нейрон с d входами содержит d+1 параметров. На один пример нужны d умножений, d−1 сложений и прибавление b, затем вычисление активации. Увеличение batch не создаёт отдельные веса для каждого примера.

x,w,b=[1,2],[1,-1],.5
z=sum(a*c for a,c in zip(x,w))+b
assert z==-.5 and int(z>=0)==0

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

Bias задаёт аффинный сдвиг.

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

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