Коннекционизм.
Лекция 3. Первое и Второе поколение: от XOR к Deep Learning.
- 18.10.26 г.
- 9772225665000 26020
Общие положения
В предыдущей лекции мы разобрали базовый элемент – искусственный нейрон. Мы увидели, что он умеет: принимает входы, умножает их на веса, складывает, сравнивает с порогом и выдает результат. Мы также увидели, что у модели Мак-Каллока–Питтса есть ограничения: бинарный выход, недифференцируемая пороговая функция, отсутствие обучения.
Теперь настало время задать главный вопрос: что происходит, когда мы соединяем много таких нейронов в сеть? И что происходит, когда сеть пытается решить задачу, которая не сводится к одной прямой линии?
Эта лекция – о первом большом взлете коннекционизма, о его первом крахе и о том, как он возродился. Мы разберем, почему однослойный перцептрон не может решить задачу XOR, как это ограничение было доказано математически, что такое «первая зима» нейросетей и как нелинейные функции активации, алгоритм обратного распространения ошибки и новые вычислительные мощности привели к эпохе глубокого обучения.
1. Перцептрон Розенблатта (1958)
В 1958 году Ф.Розенблатт, американский психолог и инженер, представил перцептрон – одну из первых обучаемых нейросетей, получившую широкую известность. (Стоит уточнить: перцептрон не был единственной обучаемой сетью того времени. Параллельно развивались другие модели – например, Adaline (Adaptive Linear Neuron), предложенная Б.Уидроу и Т.Хоффом в 1960 году, и ее многослойная версия Madaline (1962). Но именно перцептрон Розенблатта стал сенсацией.)
Это было не просто техническое изобретение. Газеты писали о «машине, которая учится», о «первом шаге к искусственному мозгу». Военные выделяли финансирование. Казалось, еще немного – и мы получим универсальный интеллект.
Перцептрон Розенблатта – это простая сеть. Он состоит из:
- входного слоя – нейроны, которые принимают данные (например, пиксели изображения),
- выходного слоя – нейроны, которые выдают результат.
Между ними нет скрытых слоев. Каждый входной нейрон соединен с каждым выходным. Это простейшая возможная архитектура.
Важно подчеркнуть: перцептрон был задуман не как программа, а как машина. Первая реализация действительно была программной (для IBM 704), но затем Розенблатт и его команда построили Mark I Perceptron – аппаратное устройство размером с шкаф, в котором веса хранились в потенциометрах, а корректировались с помощью электромоторов. Входной слой состоял из 400 фотоэлементов (сетка 20×20 пикселей), случайным образом соединенных с промежуточным слоем ассоциативных нейронов. Машина была предназначена для распознавания изображений и стала первой физической реализацией обучаемой нейросети.
Главное новшество Розенблатта – алгоритм обучения: веса больше не задавались вручную. Они корректировались автоматически на основе ошибки.
Как это работало:
- сеть получает пример (например, изображение буквы «А»),
- выдает предсказание (например, «это буква Б»),
- оно сравнивается с правильным ответом («это буква А»),
- если предсказание совпало с правильным ответом – веса не меняются,
- если предсказание не совпало – веса корректируются.
Формально правило выглядит так: w ← w + η·(y − ŷ)·x,
где:
- w – вес,
- η – скорость обучения (learning rate) – размер шага, с которым мы корректируем веса,
- y – правильный ответ,
- ŷ – предсказание сети,
- x – вход.
Проще говоря: если нейрон должен был выдать 1, а выдал 0 – увеличиваем веса. Если должен был выдать 0, а выдал 1 – уменьшаем. Скорость обучения определяет, насколько сильно мы меняем веса за один шаг.
Розенблатт сформулировал идею теоремы сходимости: если задача линейно разделима, перцептрон обязательно научится ее решать за конечное число шагов. Строгое доказательство этой теоремы дал А.И.Новиков (A.B.Novikoff) в 1962 году. Теорема утверждает, что число коррекций весов ограничено сверху величиной R²/γ², где R – максимальная норма входного вектора, а γ – зазор (margin) между классами.
Перцептрон показал впечатляющие результаты:
- распознавание простых образов (буквы, цифры),
- классификация простых символов,
- различение простых геометрических фигур.
Казалось, что найден универсальный решатель. Военные хотели использовать перцептрон для распознавания вражеской техники. Психологи – для моделирования мозга. Инженеры – для автоматизации.
Но у перцептрона была ахиллесова пята, о которой в то время мало кто догадывался.
2. Крах: задача XOR (1969)
XOR, «исключающее ИЛИ» – это логическая функция от двух входов. Она выдает 1, только если входы разные:
- (0, 0) → 0
- (0, 1) → 1
- (1, 0) → 1
- (1, 1) → 0
Это одна из базовых логических операций. Она используется в компьютерах, в криптографии, в шифровании. Человек решает ее за секунду.
Но для однослойного перцептрона она оказалась непреодолимой.
Давайте посмотрим на точки XOR на плоскости. По оси X – первый вход, по оси Y – второй вход. Точки:
- (0, 0) – выход 0
- (0, 1) – выход 1
- (1, 0) – выход 1
- (1, 1) – выход 0
Если нарисовать эти точки, они образуют две диагонали. Точки (0,1) и (1,0) – одного цвета (выход 1). Точки (0,0) и (1,1) – другого (выход 0).
Их невозможно разделить одной прямой линией.
Представьте квадрат 2×2: черные точки на одной диагонали, белые – на другой. Любая прямая разделит их неправильно: либо обе диагонали попадут в одну область, либо разделение будет неполным.
А однослойный перцептрон умеет только проводить прямые. Он строит линейную границу решения. Однослойный перцептрон не может создать изогнутую границу. Это и есть фундаментальное ограничение однослойных сетей: они решают только линейно разделимые задачи.
В 1969 году М.Мински и С.Пейперт опубликовали книгу «Перцептроны». В ней они математически доказали: однослойный перцептрон принципиально не способен решать нелинейно разделимые задачи.
Это был не просто научный результат. Книга показала, что эйфория вокруг перцептрона была преждевременной. Что сеть, которая не может решить XOR, не может быть основой для универсального интеллекта.
Важно подчеркнуть: теоретически многослойные сети могли бы решить задачу XOR уже тогда. Проблема заключалась не в отсутствии идеи многослойности, а в отсутствии практического способа обучать скрытые слои. Именно этот пробел и стал критическим – и именно его предстояло заполнить в следующие два десятилетия.
При этом книга Мински и Пейперта содержала и конструктивные идеи. Они показали, что многослойные сети могут решать более сложные задачи, но указали, что для них нет алгоритма обучения. Это стимулировало поиск такого алгоритма.
Результат публикации был разрушительным:
- финансирование схлопнулось. Военные и научные фонды перестали вкладываться в нейросети,
- исследователи ушли. Многие переключились на символьный ИИ – экспертные системы, логический вывод, ибо там были деньги и признание,
- нейросети стали непопулярны. О них писали в прошедшем времени. Считалось, что это тупиковое направление.
Наступила «первая зима» нейросетей. Она продолжалась с конца 1960-х – начала 1970-х до середины 1980-х годов.
Пока перцептрон переживал крах, параллельно развивались другие модели.
Adaline (Adaptive Linear Neuron), предложенная Б.Уидроу и Т.Хоффом в 1960 году, использовала непрерывную функцию активации и обучалась по правилу LMS (Least Mean Squares). Это позволяло ей работать с непрерывными значениями, а не только с бинарными.
Madaline (Multiple Adaline, 1962) – многослойная версия Adaline – была одной из первых попыток построить многослойную сеть. Однако и она не решала проблему эффективного обучения скрытых слоев. Эти работы показали, что нейросети – не тупик, а область с множеством нерешенных вопросов.
3. Спасение: нелинейные функции активации
Почему однослойный перцептрон не может решить XOR? - потому что он линейный.
Каждый нейрон вычисляет взвешенную сумму входов и сравнивает с порогом. Это линейная операция. Если сложить несколько линейных операций, результат все равно остается линейным.
Сколько бы слоев вы ни добавили, если в каждом слое только взвешенная сумма, вся сеть сводится к одной линейной функции.
А линейная функция не может создать изогнутую границу решения. Она может только провести прямую.
Чтобы решить XOR, нужна нелинейность. Нужна функция, которая «изгибает» пространство, создает нелинейные границы.
И такая функция была найдена – нелинейные функции активации.
Вместо пороговой функции (0 или 1) стали использовать:
- Sigmoid – S-образная кривая, выдает значения от 0 до 1. Использовалась еще в 1950-е, но стала популярной в 1980-е с распространением Backpropagation,
- Tanh (гиперболический тангенс) – от -1 до 1. Также стала популярной в 1980-е годы,
- ReLU (Rectified Linear Unit) – max(0, x). Популяризирована в 2010 году (Nair & Hinton), стала стандартом после AlexNet (2012). ReLU особенно важна тем, что значительно смягчает проблему затухающих градиентов по сравнению с Sigmoid и Tanh.
Позже появились Leaky ReLU, ELU, GELU, Swish и др. – каждая решает свои задачи.
Но почему эти функции оказались ключом к решению? Ответ – в их свойствах.
Нелинейные функции активации дифференцируемы. Это означает, что можно вычислить градиент – а значит, можем обучать сеть через градиентный спуск.
Ключевой принцип: один скрытый слой с нелинейной активацией уже позволяет аппроксимировать любую непрерывную функцию. Это называется теоремой об универсальной аппроксимации.
4. Теорема об универсальной аппроксимации
Теорема об универсальной аппроксимации гласит: многослойный перцептрон с хотя бы одним скрытым слоем и нелинейной функцией активации может аппроксимировать любую непрерывную функцию на компактном множестве с любой заданной точностью.
Проще говоря: нейросеть может выучить любую зависимость между входом и выходом, если у нее достаточно нейронов в скрытом слое.
Представьте, что вы хотите нарисовать любую кривую на листе бумаги. Вы можете использовать множество маленьких прямых отрезков. Чем больше отрезков, тем точнее кривая.
Нейросеть делает то же самое. Каждый нейрон в скрытом слое – это «отрезок». Чем больше нейронов, тем точнее аппроксимация.
Теорема была сформулирована в конце 1980-х годов:
- Дж.Цыбенко (1989) – для сигмоидных функций,
- К.Хорник, М.Стинчкомб и Х.Уайт (1989) – независимо.
Но ее истоки восходят к работе А.Колмогорова (1957) о суперпозиции функций.
Теорема говорит о возможности, но не об обучаемости. Она утверждает, что решение существует, но не гарантирует, что мы его легко найдем.
Для практики нужны
- достаточно данных,
- достаточно вычислений,
- правильная архитектура,
- хороший алгоритм обучения.
Именно поэтому теорема была сформулирована в 1989 году, а настоящий практический прорыв случился только в 2010-е.
5. Алгоритм обратного распространения ошибки
Итак, стало понятным, что многослойные сети с нелинейной активацией могут решать XOR. Но как их обучать?
В однослойном перцептроне все просто: есть вход, есть выход, есть ошибка. Корректируем веса по правилу Розенблатта.
Однако в многослойной сети есть скрытые слои. Не известно, какой нейрон в скрытом слое должен был выдать какой результат. Известна только ошибка на выходе. Как ее «протолкнуть» обратно, в скрытые слои?
Эта проблема казалась неразрешимой.
Но в 1974 году П.Вербос предложил метод, который позже был популяризирован Д.Румельхартом, Дж.Хинтоном и Р.Уильямсом в 1986 году. Метод называется обратным распространением ошибки (Backpropagation).
Стоит уточнить: идея обратного распространения ошибки восходит к работам К.Келли (1960) и А.Брайсона (1961), которые использовали ее для оптимального управления. Вербос применил ее к нейросетям, а Румельхарт, Хинтон и Уильямс – популяризировали.
Идея:
- сеть делает предсказание (прямой проход),
- вычисляется ошибка (разница между предсказанием и правильным ответом),
- ошибка распространяется обратно от выходного слоя к входному,
- на каждом слое вычисляется, какой вклад внес каждый вес в ошибку,
- веса корректируются пропорционально их вкладу.
Математическая основа Backpropagation – цепное правило дифференцирования (Chain Rule). Оно позволяет вычислить производную сложной функции через производные ее частей.
Или если вы хотите понять, как изменение одного параметра влияет на конечный результат, вы «разматываете» цепочку зависимостей назад.
Аналогия с пирогом: представьте, что вы печете пирог, и он получился невкусным. Вы не знаете, что именно пошло не так: мука, сахар, масло, температура? Backpropagation – это способ выяснить, какой ингредиент внес какой вклад в неудачу, и скорректировать рецепт.
Backpropagation – это ключевой алгоритм современного глубокого обучения. Без него не было бы ни CNN, ни RNN, ни трансформеров.
Он позволил обучать глубокие сети – с десятками и сотнями слоев. Он сделал возможным то, что казалось невозможным: автоматическую настройку миллионов параметров.
Но у Backpropagation есть и проблемы:
- затухающие градиенты. В глубоких сетях градиенты становятся очень маленькими, и ранние слои почти не обучаются. Решение: ReLU смягчает проблему, а ResNet использует остаточные связи (skip-connections), чтобы градиент мог «перепрыгивать» через слои,
- взрывающиеся градиенты. Градиенты могут стать очень большими, что приводит к нестабильности обучения. Решение: нормализация, обрезка градиентов (gradient clipping),
- локальные минимумы. Градиентный спуск может застрять в локальном минимуме, не найдя глобальный. Решение: адаптивные оптимизаторы вроде Adam, случайный шум (SGD), правильная инициализация,
- медленная сходимость. Обучение глубоких сетей может занимать дни и недели. Решение: GPU/TPU, батч-нормализация, эффективные оптимизаторы.
Эти проблемы решались постепенно.
6. Эволюция данных
Нейросеть учится на примерах. Чем больше примеров, тем лучше она учится. Это очевидно, но масштаб этого фактора стал понятен только в 2010-е.
Рост данных стал возможен благодаря цифровизации: Интернет, социальные сети, цифровые камеры, открытые репозитории кода. Мир стал производить данные быстрее, чем когда-либо в истории.
Вывод: успех глубокого обучения – это не только новые алгоритмы, но и огромные массивы данных. Без них сеть не могла бы выучить сложные зависимости.
Но успех глубокого обучения – это не только алгоритмы и данные, но и вычислительные мощности. GPU, TPU, нейроморфные чипы – все это сделало возможным то, что казалось фантастикой.
7. Аппаратная эволюция
Нейросеть – это огромное количество умножений и сложений. Обучить глубокую сеть на CPU – это годы. Нужны специализированные процессоры.
Этапы их появления и внедрения:
- 1970–2000-е гг.: CPU. Центральные процессоры. Последовательные вычисления. Медленно для нейросетей,
- 2006 г.: GPU (NVIDIA CUDA). Графические процессоры. Массовая параллелизация. Ускорение в сотни раз. Именно GPU сделали возможным обучение глубоких сетей,
- 2016 г.: TPU (Google). Тензорные процессоры. Специализированные чипы для нейросетей. Еще быстрее для обучения,
- 2018 г.: нейроморфные чипы (Intel Loihi). Энергоэффективные чипы для спайковых сетей. Потребляют милливатты вместо десятков ватт.
8. Scaling Laws
Scaling Laws (законы масштабирования) – это эмпирические законы, которые описывают, как качество модели зависит от трех факторов:
- количество параметров (размер модели),
- объем данных,
- вычислительные ресурсы.
Качество модели предсказуемо растет при увеличении этих трех факторов. Это не линейная зависимость, но она устойчива и предсказуема.
Это означает: если вы хотите улучшить модель, вы можете просто сделать ее больше, дать ей больше данных и больше вычислений. И она станет лучше.
Примеры:
- GPT-2 (2019): 1,5 млрд параметров,
- GPT-3 (2020): 175 млрд параметров,
- GPT-4 (2023): предположительно более триллиона параметров.
Каждое увеличение давало качественный скачок. Но не только GPT: Claude, Gemini, Llama – все они следуют Scaling Laws.
Scaling Laws объясняют, почему компании инвестируют миллиарды в обучение все более крупных моделей. Они верят, что масштабирование приведет к новым прорывам.
Но это также ставит вопросы: достаточно ли простого масштабирования для достижения AGI? Или наступит плато из-за конечности данных и энергии?
10. Переломный момент 2012 г.: AlexNet
ImageNet – это база данных из 14 миллионов изображений, разделенных на 1000 классов. На ее основе проводится соревнование ILSVRC (ImageNet Large Scale Visual Recognition Challenge), в котором используется подмножество: 1,2 миллиона изображений для обучения, 50 000 для валидации, 100 000 для тестирования.
Задача: определить, что изображено на картинке (кошки, собаки, машины, цветы...).
До 2012 года лучшие результаты показывали методы компьютерного зрения, основанные на ручном извлечении признаков. Ошибка (top-5, то есть ошибка на пяти наиболее вероятных предсказаниях) составляла около 26%.
В 2012 году команда А.Крижевского (под руководством Дж.Хинтона) представила AlexNet – сверточную нейронную сеть с 8 слоями, обученную на GPU.
А.Крижевский – ученик Хинтона, который в то время был студентом. AlexNet стала его дипломной работой, которая перевернула мир.
Результат: ошибка (top-5) снижена с 26% до 15%. Это был шок. Впервые глубокая нейросеть уверенно превзошла традиционные методы компьютерного зрения на крупном бенчмарке.
Почему это сработало
- большие данные: ImageNet – 14 млн изображений,
- мощные GPU: NVIDIA, обучение на двух GPU,
- ReLU: быстрее, чем Sigmoid, и лучше борется с затухающими градиентами,
- Dropout: борьба с переобучением.
После AlexNet интерес к нейросетям взлетел лавинообразно. Компании начали инвестировать в глубокое обучение.
Появились новые архитектуры:
- VGG (2014) – 19 слоев, показала важность глубины,
- GoogLeNet/Inception (2014) – 22 слоя, использовала «инцепшн-модули»,
- ResNet (2015) – 152 слоя, использовала «остаточные связи» (skip-connections) для борьбы с затуханием градиента.
Все эти архитектуры увеличивали глубину и количество параметров – и это соответствовало Scaling Laws: чем больше модель, тем лучше результат. Началась эпоха глубокого обучения.
11. Вторая зима и конкуренты
После второго рождения коннекционизма в 1980-е годы казалось, что нейросети победили. Но в конце 1980-х – 1990-е годы интерес к ним снова снизился.
Причины:
- успехи символьного ИИ. Экспертные системы, LISP-машины, японский проект «Компьютеры пятого поколения» – все это оттягивало финансирование,
- проблемы Backpropagation. Затухающие градиенты, локальные минимумы, медленная сходимость – все это ограничивало применение нейросетей,
- появление SVM. Метод опорных векторов (Support Vector Machines) был предложен В.Вапником и А.Червоненкисом еще в 1963 году (линейная версия), но широкую известность и современную форму (с мягким зазором и ядрами) получил в 1995 году. SVM был математически строг, имел гарантии сходимости и хорошо работал на малых выборках – то есть именно там, где нейросети испытывали трудности.
Некоторые исследователи называют этот период «тихой фазой», а не «зимой», поскольку нейросети продолжали развиваться, хотя и менее заметно. Она продлилась до конца 2000-х.
Возрождение началось с работ Дж.Хинтона по Deep Belief Networks (2006) и автокодировщикам. Они показали, что глубокие сети можно обучать послойно.
А в 2012 году AlexNet доказала, что глубокие сети могут побеждать на реальных задачах. С этого момента началась эпоха глубокого обучения.
12. Пример
Нарисуйте квадрат 2×2 (или представьте его, если не можете нарисовать). В левом нижнем углу – черная точка. В правом верхнем – черная. В левом верхнем – белая. В правом нижнем – белая.
Соедините черные точки – это одна диагональ. Соедините белые – другая.
Теперь попробуйте провести прямую, которая разделит черные и белые. Не получится: нужна изогнутая линия.
Именно ее создают многослойные сети с нелинейной активацией.
Это важно потому, что XOR – это не просто логическая задача. Это символ фундаментального ограничения однослойных сетей. И символ того, как многослойность и нелинейность преодолевают это ограничение.
Можно сказать и по-другому.
Представьте, что вы учитесь готовить:
- однослойный перцептрон – это как если бы вы знали только один рецепт. Вы можете приготовить одно блюдо, но не можете импровизировать,
- многослойная сеть – это как если бы вы знали много рецептов и умели их комбинировать. Вы можете решать сложные задачи, потому что у вас есть глубина.
Глубина – это способность комбинировать простые правила в сложные стратегии. Именно она отличает глубокое обучение от «мелкого»…
13. Заключение
Мы прошли путь от первого перцептрона до эпохи глубокого обучения. Мы увидели, как простая идея – обучаемая сеть – столкнулась с фундаментальным ограничением, как это ограничение было преодолено через нелинейность и многослойность, и как алгоритм обратного распространения ошибки сделал возможным обучение глубоких сетей.
Мы также увидели, что успех глубокого обучения – это не только математика. Это данные, вычисления и инженерная мощь. ImageNet, GPU, AlexNet – все это вместе создало перелом 2012 года.
Итак, мы увидели, что история нейросетей – это не прямая линия. Были взлеты и падения, «зимы» и возрождения. Но каждый кризис приводил к новым идеям, которые в итоге двигали область вперед.