От нейрона к многослойному перцептрону
Один искусственный нейрон умеет проводить только прямую линию. Но стоит поставить нейроны в несколько слоёв и добавить нелинейность — и получается конструктор, способный приблизить почти любую функцию. Это и есть переход от перцептрона к MLP.
Интуиция
Биологическая метафора проста: нейрон в мозге собирает сигналы от соседей через синапсы, каждый вход «весит» по-разному, и если суммарное возбуждение переходит порог — нейрон срабатывает. Искусственный нейрон (artificial neuron) — карикатура на эту идею: он берёт входы, умножает каждый на свой вес (weight), складывает, добавляет сдвиг (bias) и пропускает результат через функцию активации (activation function):
Больше в нём ничего нет. Вся магия нейросетей — в том, что происходит, когда таких элементарных блоков много и они соединены слоями.
Как это работает
Перцептрон (perceptron) Розенблатта — один нейрон с пороговой активацией. Геометрически он проводит в пространстве признаков гиперплоскость: всё по одну сторону — класс 0, по другую — класс 1. Отсюда его фундаментальное ограничение: он решает только линейно разделимые (linearly separable) задачи.
Классический контрпример — XOR: четыре точки (0,0)→0, (1,0)→1, (0,1)→1, (1,1)→0. Никакая одна прямая не отделит два «единичных» угла от двух «нулевых» — попробуй сам в интерактиве ниже. Именно этот пример в книге Минского и Пейперта «Perceptrons» (1969) охладил интерес к нейросетям на годы.
Решение — скрытый слой (hidden layer). Первый слой нейронов строит новые признаки (например, «x1 ИЛИ x2» и «x1 И x2»), а выходной нейрон комбинирует их. В новом пространстве признаков XOR уже линейно разделим. Многослойный перцептрон (MLP, multilayer perceptron) — это просто чередование линейных слоёв и нелинейностей:
Теорема об универсальной аппроксимации (universal approximation theorem) говорит: MLP даже с одним скрытым слоем, если он достаточно широк, может приблизить любую непрерывную функцию с любой точностью. Интуиция: каждый нейрон с нелинейностью — «ступенька» или «изгиб», а из большого набора ступенек можно сложить сколь угодно сложный рельеф. Важно: теорема ничего не говорит о том, как найти такие веса и сколько нейронов понадобится — это вопрос обучения и практики.
Почему нужна глубина, а не только ширина
Раз одного широкого слоя теоретически достаточно, зачем строить глубокие сети? Потому что глубина даёт композицию: первый слой учит простые признаки, второй комбинирует их в более сложные, и так далее. Для многих функций глубокая сеть требует экспоненциально меньше нейронов, чем эквивалентная «плоская». Именно иерархия признаков — края → узоры → объекты — сделала глубокое обучение (deep learning) практичным.
Число параметров растёт быстро: даже крошечная сеть 2-2-1 имеет 9 обучаемых параметров (4 веса + 2 bias в скрытом слое, 2 веса + 1 bias на выходе). Учат их градиентным спуском, а градиенты считает обратное распространение ошибки. В интерактиве выше это можно увидеть вживую: кнопка «Обучить» запускает честный градиентный спуск по девяти параметрам, и на глазах граница решения из прямой превращается в изогнутую «полосу», отделяющую диагональные углы XOR.
- «Почему перцептрон не решает XOR?» — его граница решения — гиперплоскость, а классы XOR линейно неразделимы; нужен скрытый слой, который перестраивает пространство признаков.
- «Что будет, если убрать активации из 10-слойной сети?» — произведение линейных отображений линейно, сеть эквивалентна одному линейному слою.
- «Что гарантирует теорема об универсальной аппроксимации?» — существование приближения непрерывной функции широким MLP; она не гарантирует ни разумный размер сети, ни то, что градиентный спуск эти веса найдёт.
- «Зачем bias?» — без него граница решения обязана проходить через начало координат.