Перцептрон и полносвязная сеть

Линейные комбинации и нелинейности.

Что такое перцептрон

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

Если убрать всю математику, перцептрон отвечает на очень простой вопрос:

"Если я сложу все аргументы с учетом их важности – достаточно ли их, чтобы принять решение?"

Представьте, что банк решает, выдавать ли кредит. Он учитывает:

  • доход клиента

  • стаж работы

  • кредитную историю

  • текущую долговую нагрузку

Каждый фактор имеет свою "важность". Доход может быть важнее стажа, просрочки – сильным отрицательным фактором. Все эти факторы складываются, и если итоговый "балл" превышает некоторый порог – кредит одобряется.

Перцептрон делает ровно это же, только в математической форме.

Исторический контекст

Перцептрон был предложен в 1957 году Фрэнком Розенблаттом. Это была одна из первых моделей, вдохновленных нейронами мозга.

Идея была простой: нейрон получает сигналы от других нейронов, суммирует их, и если сигнал превышает определенный порог – "выстреливает". В противном случае – молчит.

Математический нейрон делает то же самое:

  1. Получает входы

  2. Умножает каждый вход на вес

  3. Складывает

  4. Сравнивает с порогом

Если сумма достаточно велика – выдает 1. Если нет – выдает 0.

Это и есть вся логика. Но в этой простоте скрыта огромная сила.

Формальное определение

Пусть есть входной вектор:

x=(x1,x2,,xn)x = (x_1, x_2, \dots, x_n)

У перцептрона есть параметры:

  • веса w1,w2,...,wnw_1, w_2, ..., w_n

  • смещение bb

Он вычисляет:

z=i=1nwixi+bz = \sum_{i=1}^{n} w_i x_i + b

Это линейная комбинация признаков.

После этого применяется пороговая функция:

y^={1,z>00,z0\hat{y} = \begin{cases} 1, & z > 0 \\ 0, & z \le 0 \end{cases}

Геометрическая интерпретация

Очень важно понять, что перцептрон – это не просто формула, а геометрический объект.

Когда он складывает признаки и сравнивает результат с нулем, он фактически строит границу в пространстве признаков.

В двумерном случае это прямая.

В трехмерном – плоскость.

В n-мерном – гиперплоскость.

Эта граница делит пространство на две части:

  • по одну сторону – класс 1

  • по другую сторону – класс 0

Перцептрон не "угадывает" ответ. Он проводит разделяющую поверхность.

И если данные можно разделить одной плоской границей – перцептрон способен это сделать.

25.1 Разделение гиперплоскостей

Почему это линейный классификатор

Если переписать условие:

wTx+b>0w^T x + b > 0

это означает: мы делим пространство линейной границей.

Никакой кривизны.

Никаких сложных форм.

Только плоская поверхность.

Поэтому перцептрон может решить:

  • AND

  • OR

  • простую линейную классификацию

Но не может решить XOR.

Перцептрон как алгоритм обучения

Важно понимать: перцептрон – это не только формула, но и правило обновления весов.

Если модель ошиблась:

w=w+η(yy^)xw = w + \eta (y - \hat{y}) x

где:

  • η\eta – learning rate

  • yy – правильный ответ

  • y^\hat{y} – предсказание

Если предсказание верное – веса не меняются.

Если ошибка – веса сдвигаются в сторону правильного класса.

Интуитивно это похоже на корректировку линии на графике так, чтобы она лучше разделяла точки разных классов.

С каждым проходом по данным граница постепенно "подстраивается".

Линейная комбинация – фундамент

Пусть у нас есть объект с признаками:

x=(x1,x2,,xn)x = (x_1, x_2, \dots, x_n)

Перцептрон сначала вычисляет линейную комбинацию:

z=w1x1+w2x2+...+wnxn+bz = w_1 x_1 + w_2 x_2 + ... + w_n x_n + b

или в векторной форме:

z=wTx+bz = \mathbf{w}^T \mathbf{x} + b

где:

  • ww – вектор весов

  • bb – bias (смещение)

  • xx – входной вектор

Это обычная гиперплоскость в n-мерном пространстве.

Если же у нас два признака, то это просто прямая:

w1x1+w2x2+b=0w_1 x_1 + w_2 x_2 + b = 0
25.2 Граница принятия решений

Линейная комбинация – это та же идея, что и в линейной регрессии и логистической регрессии. Разница начинается дальше.

Перцептрон

Классический перцептрон использует ступенчатую функцию:

y^={1,если z>00,иначе\hat{y} = \begin{cases} 1, & \text{если } z > 0 \\ 0, & \text{иначе} \end{cases}

То есть:

  1. Считаем линейную комбинацию

  2. Применяем порог

Геометрически – разделяем пространство гиперплоскостью.

Ограничение

Перцептрон умеет решать только линейно разделимые задачи.

Например, XOR (как было упомянуть выше) он решить не может.

25.3 Проблема XOR

XOR требует нелинейности. И здесь начинается история многослойных сетей.

Перцептрон на чистом PHP

Для начала, для более полного понимания, давайте реализуем перцептрон в минимальной форме:

Это реализация классического правила обучения Розенблатта.

Почему нужна нелинейность

Представим, что мы делаем два слоя:

h=W1x+b1y=W2h+b2h = W_1 x + b_1 \\ y = W_2 h + b_2

Если нет активации, то:

y=W2(W1x+b1)+b2y=(W2W1)x+(W2b1+b2)y = W_2 (W_1 x + b_1) + b_2 \\ y = (W_2 W_1)x + (W_2 b_1 + b_2)

Это снова линейная модель.

Следовательно:

Несколько линейных слоев без нелинейности эквивалентны одному линейному слою.

Именно поэтому активация – не "декорация", а математическая необходимость.

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

Самые распространенные:

1. Sigmoid

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

Диапазон: (0, 1)

2. ReLU

ReLU(z)=max(0,z)ReLU(z) = \max(0, z)

3. Hyperbolic Tangent

tanh(x)=exexex+ex\tanh(x)={\frac {e^{x}-e^{-x}}{e^{x}+e^{-x}}}
25.4 Функции активации

ReLU стал стандартом в глубоких сетях благодаря простоте и отсутствию насыщения на положительной части.

Полносвязная сеть (MLP)

MLP (Multi-Layer Perceptron) – это несколько слоев перцептронов:

h=ϕ(W1x+b1)y=ϕ(W2h+b2)h = \phi(W_1 x + b_1) \\ y = \phi(W_2 h + b_2)

Каждый нейрон связан со всеми нейронами предыдущего слоя – отсюда "полносвязная".

25.5 Диаграмма MLP

Один скрытый слой может всё

Теорема универсальной аппроксимации утверждает:

Сеть с одним скрытым слоем и нелинейной активацией может аппроксимировать любую непрерывную функцию с произвольной точностью.

Это фундаментальная причина, почему MLP – не просто игрушка.

Минимальный MLP на PHP

Пример с одним скрытым слоем:

Это только forward-pass. Для обучения нужен backpropagation – мы разберем его в следующей главе.

Геометрическая интуиция MLP

Скрытый слой делает следующее:

  1. Берет линейные комбинации

  2. Применяет нелинейность

  3. Создает новые признаки

Каждый нейрон – это новая проекция пространства.

Композиция таких преобразований позволяет:

  • "сгибать" пространство

  • строить сложные границы решений

  • разделять нелинейные классы

Связь с логистической регрессией

Логистическая регрессия – это перцептрон с sigmoid и обучением по log loss.

То есть:

y^=σ(wTx+b)\hat{y} = \sigma(w^T x + b)

Перцептрон – исторический предок логистической регрессии.

Главная идея главы и итог

Вся современная нейросетевая архитектура строится на трех вещах:

  1. Линейная комбинация

  2. Нелинейная активация

  3. Композиция слоев

Глубина – это повторение этих трех шагов.

Итого, перцептрон – это:

  • линейная модель

  • с пороговой функцией

  • способная разделять только линейные классы

MLP – это:

  • композиция линейных преобразований

  • с обязательной нелинейностью

  • способная строить сложные поверхности решений

Именно добавление нелинейности превращает простую линейную алгебру в универсальный аппроксиматор.

В следующей главе мы подробно разберем backpropagation – механизм, который позволяет этим сетям обучаться эффективно.

Last updated