Искусственный нейрон: из чего он сделан
Урок объясняет, что такое искусственный нейрон и как он превращает входы в выход.
Искусственный нейрон — это маленькая функция: он берёт несколько чисел на вход, считает их взвешенную сумму, добавляет смещение и пропускает результат через функцию активации.
Биологическая аналогия
Живой нейрон получает сигналы от других нейронов через отростки-дендриты. Если суммарный сигнал превышает порог, нейрон «срабатывает» и передаёт импульс дальше по аксону. Искусственный нейрон — это сильно упрощённая математическая модель этой идеи. Не стоит понимать аналогию буквально: мозг устроен в тысячи раз сложнее. Но одна мысль перенеслась в математику точно — нейрон взвешивает входы и решает, насколько сильно реагировать.
Три части нейрона
Любой искусственный нейрон состоит из трёх шагов:
- Веса (
weights) — по одному числу на каждый вход. Вес показывает, насколько этот вход важен. Большой положительный вес усиливает сигнал, отрицательный — подавляет. - Смещение (
bias) — одно число, которое сдвигает порог срабатывания. Без него нейрон всегда проходил бы через начало координат. - Функция активации — превращает взвешенную сумму в итоговый выход, добавляя нелинейность (про неё подробно — во втором разделе).
Формула одного нейрона словами: выход = активация(w1*x1 + w2*x2 + ... + wn*xn + b). Часть w1*x1 + ... + b называют взвешенной суммой или предактивацией.
Считаем нейрон руками
Реализуем нейрон с двумя входами. Веса и смещение пока зададим вручную — обучать их мы научимся позже. В роли активации возьмём sigmoid, которая сжимает любое число в диапазон от 0 до 1 (удобно трактовать как «уверенность»).
import math
def sigmoid(x):
return 1.0 / (1.0 + math.exp(-x))
def neuron(inputs, weights, bias):
s = 0.0
for x, w in zip(inputs, weights):
s += x * w
s += bias
return sigmoid(s)
inputs = [1.0, 2.0]
weights = [0.5, -0.3]
bias = 0.1
out = neuron(inputs, weights, bias)
weighted_sum = inputs[0]*weights[0] + inputs[1]*weights[1] + bias
print("Взвешенная сумма:", round(weighted_sum, 4))
print("Выход нейрона:", round(out, 4))
Вывод:
Взвешенная сумма: 0.0 Выход нейрона: 0.5
Взвешенная сумма получилась ровно 0, поэтому sigmoid(0) = 0.5 — нейрон «не уверен». Поменяйте веса или входы и запустите снова: вы почувствуете, как нейрон реагирует на сигналы.
Почему это уже полезно
Один нейрон — это линейный классификатор с порогом. Подобрав веса, он умеет проводить прямую границу между двумя группами точек: с одной стороны выход ближе к 1, с другой — к 0. Этого хватает для простых задач. А чтобы решать сложное, мы соединим много нейронов в слои — и каждый научится узнавать свой кусочек закономерности.
Итог
- Нейрон = взвешенная сумма входов + смещение, пропущенные через активацию.
- Веса задают важность входов, смещение сдвигает порог.
- Один нейрон проводит линейную границу; сила нейросетей — в их объединении.