Искусственный нейрон: что у него общего с настоящим (почти ничего, и это нормально)
Слово «нейрон» в нейросетях звучит так, будто внутри компьютера живёт кусочек мозга. На самом деле искусственный нейрон — это короткая формула, и понять её можно за пять минут.
Внутри нейросети нет мозга — там миллионы крошечных калькуляторов, каждый из которых считает одну простую сумму.
Искусственный нейрон не «думает». Он берёт несколько чисел, складывает их с весами и решает: молчать или подать сигнал.
Откуда вообще взялась идея
В 1943 году нейрофизиолог Уоррен Маккалок и математик Уолтер Питтс задали наивный вопрос: можно ли описать нервную клетку формулой? Биологический нейрон устроен так: к нему через отростки-дендриты приходят сигналы от других клеток, они накапливаются, и если суммарное возбуждение превышает порог — нейрон «выстреливает» импульс дальше по аксону. Маккалок и Питтс выкинули из этой картины всю химию и оставили только арифметику. Получилась модель, которую сегодня знает каждый студент.
Из чего состоит искусственный нейрон
У него есть несколько входов — это просто числа. Например, нейрон, который распознаёт, стоит ли брать зонт, может получать на вход «вероятность дождя», «облачность» и «сила ветра». У каждого входа есть свой вес — число, которое говорит, насколько этот вход важен. Вероятность дождя важнее ветра, значит, её вес больше.
Нейрон умножает каждый вход на его вес и всё складывает. К сумме добавляется ещё одно число — смещение (bias), оно сдвигает порог срабатывания. Если обозначить входы как $x_1, x_2, x_3$, а веса как $w_1, w_2, w_3$, то вся работа нейрона до последнего шага — это одна строчка:
$$z = w_1 x_1 + w_2 x_2 + w_3 x_3 + b$$
Зачем нужен последний шаг
Само по себе число $z$ может быть каким угодно — хоть минус тысяча, хоть плюс миллион. Чтобы получить осмысленный ответ, его пропускают через функцию активации. Самая простая идея: если $z \gt 0$ — нейрон выдаёт единицу («да, бери зонт»), иначе ноль. В современных сетях чаще используют плавные функции, но суть та же — превратить сумму в управляемый сигнал.
Посчитаем руками
Пусть нейрон решает, голоден ли кот: вход «часов с последней кормёжки» с весом 1, вход «громкость мяуканья» с весом 2, смещение минус 5.
def neuron(hours, meow):
w1, w2, bias = 1, 2, -5
z = w1 * hours + w2 * meow + bias
return 1 if z > 0 else 0
print(neuron(hours=2, meow=1)) # 2 + 2 - 5 = -1 -> 0, терпит
print(neuron(hours=4, meow=3)) # 4 + 6 - 5 = 5 -> 1, кормить!Вот и весь «интеллект» одного нейрона. Магия начинается, когда таких нейронов миллиарды и они соединены в слои.
Так где же биология
Сходство есть, но оно поверхностное. И настоящий, и искусственный нейрон накапливают входы и срабатывают по порогу — на этом аналогия заканчивается. Живая клетка работает на электрохимии, общается импульсами во времени, перестраивает свои связи сама и потребляет в миллионы раз меньше энергии. Искусственный нейрон — это статичная формула, которую обучает внешний алгоритм. Поэтому правильнее думать о нём не как о клетке мозга, а как о настраиваемом фильтре. И именно из таких простых фильтров, сложенных слоями, вырастают системы, которые переводят языки и рисуют картинки.
Главное в двух строчках
Искусственный нейрон — это взвешенная сумма входов плюс порог. Он не хранит знаний и не понимает смысла; всё «понимание» сети спрятано в значениях весов, которые подбираются при обучении. О том, как именно их подбирают, — в следующих статьях.