Нейрон

Оригинальное название: neuron

Коротко

Простейший вычислительный элемент искусственной нейронной сети: умножает входные числа на веса, складывает, добавляет смещение и пропускает сумму через функцию активации.

Что такое «Нейрон»

Идею подсмотрели у биологии: живой нейрон получает сигналы от соседей и «срабатывает», если их суммарная сила превысила порог. Первую математическую модель предложили Уоррен Мак-Каллок и Уолтер Питтс в 1943 году. В 1958 году Фрэнк Розенблатт описал перцептрон — нейрон, веса которого можно подбирать обучением. С тех пор искусственный нейрон сильно отошёл от биологического прообраза и остался просто удобной формулой.

Формула искусственного нейрона

Нейрон получает несколько входов x₁, x₂… У каждого входа свой вес w — число, показывающее, насколько этот вход важен и в какую сторону влияет. Нейрон считает взвешенную сумму, прибавляет смещение b и применяет функцию активации f:

y = f(w₁·x₁ + w₂·x₂ + … + b)

Веса и смещение — то, что меняется при обучении. Сам нейрон ничего не «знает»: всё знание нейронной сети хранится в миллионах и миллиардах таких чисел.

Пример: считаем один нейрон

import math

def neuron(x, w, b):
    s = sum(xi * wi for xi, wi in zip(x, w)) + b
    return 1 / (1 + math.exp(-s))   # сигмоида

print(neuron([1.0, 0.5], [0.8, -0.4], 0.1))  # 0.668...

Взвешенная сумма: 1·0,8 + 0,5·(−0,4) + 0,1 = 0,7. Сигмоида переводит её в число от 0 до 1, здесь около 0,67. Если бы нейрон решал «спам или нет», это можно было бы прочитать как уверенность в 67%.

Функции активации

Без нелинейной активации любой набор слоёв сводится к одной линейной функции, и сеть не смогла бы описывать сложные зависимости. Распространённые варианты:

  • Сигмоида — сжимает значение в диапазон от 0 до 1; подходит для вероятностей на выходе.
  • Гиперболический тангенс — то же, но от −1 до 1.
  • ReLU — max(0, x): отрицательные значения обнуляются, положительные проходят как есть. Считается быстро и стала стандартом для скрытых слоёв глубокого обучения.
  • Softmax — превращает набор чисел в вероятности, которые в сумме дают единицу; используется на выходе при выборе одного варианта из нескольких.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение