4 Perceptrons (критика)
Контекст
К концу 1960-х вокруг перцептронов много шума и мало строгости. Марвин Минский и Сеймур Паперт (MIT) проводят холодный математический анализ: что эти машины могут, а чего — принципиально нет. Книга посвящена... самому Розенблатту: они были одноклассниками и дружески соперничали.
Идея и механизм
Перцептрон проводит одну разделяющую прямую. Этого достаточно для AND и OR, но не для XOR (исключающее ИЛИ), где «свои» классы сидят на противоположных углах квадрата и переплетены по диагоналям. В общем виде Минский и Паперт показали, что предикаты вроде чётности и связности фигуры недостижимы для перцептрона с локальным рецептивным полем.
логика · алгебра Доказательство: XOR не реализуем одним перцептроном
Допустим, перцептрон с весами w1, w2 и порогом θ реализует XOR. Четыре строки таблицы истинности дают четыре неравенства:
Сложим второе и третье: w1 + w2 ≥ 2θ. Но четвёртое требует w1 + w2 < θ. Значит 2θ ≤ w1+w2 < θ, откуда 2θ < θ, то есть θ < 0 — противоречие с первым неравенством θ > 0. ∎
Никакая прямая не разделит точки XOR. А вот скрытый слой (см. код ниже) строит два промежуточных признака — и проблема исчезает.
NumPy Как два слоя решают XOR
import numpy as np
step = lambda z: (z >= 0).astype(float)
X = np.array([[0,0],[0,1],[1,0],[1,1]])
# скрытый слой строит два признака: h1 = OR, h2 = AND
W1 = np.array([[1,1],[1,1]]); b1 = np.array([-0.5, -1.5])
# выход: XOR = OR и НЕ AND → h1 − h2 > 0
W2 = np.array([1,-1]); b2 = -0.5
h = step(X @ W1.T + b1) # [OR, AND] для каждой точки
y = step(h @ W2 + b2) # XOR
print(y) # → [0, 1, 1, 0] ✓
Почему это важно
Книга (плюс то, что обучать многослойные сети тогда не умели) подорвала доверие и финансирование — наступила «первая зима ИИ» примерно на 15 лет; внимание ушло к символьному ИИ. Урок на все времена: авторитетная критика верного направления способна затормозить его на десятилетие — а ограничение, казавшееся фундаментальным, снимается одним скрытым слоем.
Связи
Именно его возможности здесь препарируют до предела. Теорема сходимости перцептрона работает на линейно разделимом — Минский и Паперт показывают границу этого класса на примере XOR.
Скрытый слой решает XOR (см. код), но его нужно уметь обучать. Как только backprop научил многослойные сети, пессимизм Минского–Паперта рухнул, и «зима» кончилась.
Одна из работ, вернувших нейросетям интерес в 1980-х — со стороны физики, в обход «перцептронной» повестки, на которой сфокусировалась критика.
Вопросы пытливого ума
Если XOR решается двумя слоями (вот же код), почему критика так навредила?
Потому что проблема была не в представлении, а в обучении. Руками выставить веса скрытого слоя легко — но в 1969-м не было метода научить их из данных (backprop ещё не был известен/популярен). Перцептрон умел обучаться, многослойная сеть — нет. Плюс строгость книги, авторитет авторов и политика финансирования. Разрыв был именно в алгоритме обучения скрытых слоёв.
Минский и Паперт правда «убили» нейросети — или это упрощение?
Упрощение. Спад вызвал не один источник: были и доклад Лайтхилла, и общее разочарование, и урезание грантов. Книга строго разобрала однослойный случай и лишь предположила (ошибочно), что многослойный тоже бесплоден. Это спекуляция, а не теорема — но в атмосфере 1969-го она прозвучала как приговор.
Есть ли современные «XOR» — задачи, где простая модель так же упирается?
Да, и это поучительно. Любая не-линейно-разделимая структура — это XOR в большом: например, чётность n битов крайне трудна для многих моделей без явной нелинейности. Современное эхо — ограниченность линейных пробов поверх эмбеддингов и недавний феномен «grokking» на модульной арифметике, где сеть долго «не понимает» задачу, а потом внезапно обобщает. Урок XOR — «линейного мало» — никуда не делся.
Что читать в оригинале
Достаточно сути и доказательства XOR (мат-блок). Геометрию предикатов (порядок, диаметр) углублять не нужно, если вы не историк или теоретик. Главное — понять и форму ограничения, и его раздутую интерпретацию.