История ИИ. Дополнения

История ИИ. Дополнения

Claude Opus 4.5

Основной текст:

https://telegra.ph/Ot-tyuring-testa-do-ChatGPT-polnaya-istoriya-II-12-16

Практически полностью совпадает с выдачей Claude Opus 4.5 на запрос об истории ИИ для простого программиста. Только ключевой раздел про DeepLearning я заменил после уточняющих вопросов, т.к. Claude забыл главное -- почему оно deep и ещё некоторые детали. А ниже исходная часть ответа, на мой взгляд более удачная как дополнение.

Глубокое обучение: революция 2006-2012 годов

ImageNet и AlexNet — переломный момент

ImageNet — база из 14 миллионов размеченных изображений в 22,000 категориях, созданная под руководством Фэй-Фэй Ли (Стэнфорд, завершена в 2009). Для соревнования ILSVRC использовался подмножество: 1.2 млн изображений, 1000 классов. Neurohive

В сентябре 2012 года команда «SuperVision» — Алекс Крижевский, Илья Суцкевер, Джеффри Хинтон — представила AlexNet: Pinecone 8 слоёв (5 свёрточных + 3 полносвязных), 60 миллионов параметров. NeurIPS Ошибка top-5 составила 15.3% против 26.2% у второго места Turing Post — разрыв в 10.8 процентных пунктов был беспрецедентным. Pinecone

Три фактора сошлись: большие данные (ImageNet), GPU (две NVIDIA GTX 580), и улучшенные методы обучения (ReLU, dropout, аугментация). IEEE Spectrum После 2012 года все победители ImageNet использовали CNN — символический AI был окончательно вытеснен.

Моё дополнение: количество перешло в качество. Спасибо компьютерным играм за доступные мощные видеокарты (см. про сравнительный рост производительности CPU и GPU и начало судьбоносной NVidia CUDA в паре статей из 2008 года, когда ещё никто не знал, к чему это приведёт). На рубеже 2000-х и 2010-х GPU и нейронки нашли друг друга -- сперва в "родных" для GPU задачах обработки изображений, где лучше всего взлетела свёрточная архитектура: Convolutional Neural Network, CNN.

Свёрточные нейросети (CNN): что такое свёртка

Свёртка — это скользящее окно (kernel/filter) размером, например, 3×3, которое проходит по изображению. В каждой позиции значения фильтра поэлементно умножаются на пиксели под ним и суммируются, давая одно число. Результат — карта признаков (feature map).

Пример edge-detection фильтра:

[-1, -1, -1]
[-1, 8, -1]
[-1, -1, -1]

Ключевая идея: фильтры обучаются автоматически, а не задаются вручную. Ранние слои учатся детектировать края и градиенты, средние — текстуры и формы, глубокие — сложные объекты (глаза, колёса, лица).

Pooling (обычно max pooling 2×2) уменьшает пространственное разрешение в 2 раза, беря максимум из каждого квадрата 2×2. Это даёт инвариантность к сдвигу — кошачье ухо распознаётся независимо от точной позиции.

Почему CNN эффективны для изображений:

  1. Parameter sharing: один и тот же фильтр применяется ко всему изображению (огромная экономия параметров vs полносвязных сетей)
  2. Локальность: каждый нейрон связан только с небольшой областью — соответствует структуре изображений
  3. Иерархия признаков: от простого к сложному, как в зрительной коре

Эволюция архитектур: от 8 до 152 слоёв

VGG (2014, Oxford): очень глубокие сети из однотипных блоков 3×3. VGG-16 имеет 16 слоёв и 138 млн параметров — много, но доказало, что глубина важна.

GoogLeNet/Inception (2014, Google): inception-модули — параллельные пути с фильтрами разных размеров (1×1, 3×3, 5×5), объединяемые конкатенацией. Всего 22 слоя, но только 6.8 млн параметров — в 12 раз меньше VGG при сравнимой точности. Ключевая техника: 1×1 свёртки для уменьшения размерности перед тяжёлыми операциями.

ResNet (2015, Microsoft): революция через skip connections — вход блока добавляется к его выходу: y = F(x) + x. Это позволило обучать сети со 152+ слоями, впервые превзойдя человеческую точность на ImageNet (~3.57% ошибка vs ~5% у людей).

Vanishing gradient и как её решили

Проблема затухающих градиентов: при backpropagation градиенты перемножаются послойно. Если каждое умножение даёт число <1 (производная sigmoid максимум 0.25), то к ранним слоям приходит почти ноль — они не обучаются.

Решения:

  • ReLU (max(0, x)) вместо sigmoid: производная = 1 для положительных входов, градиенты не затухают Nature
  • Batch Normalization (2015): нормализует активации внутри мини-батча к нулевому среднему и единичной дисперсии, затем обучает масштаб и сдвиг. Позволяет использовать более высокий learning rate
  • Skip connections (ResNet): градиенты могут течь напрямую через «шоссе», минуя слои

GPU и роль NVIDIA

Нейросети — это в основе матричные умножения, идеально параллелизуемые. CPU имеет ~10 мощных ядер для последовательных задач; GPU — тысячи слабых ядер для параллельных. CUDA (2006) позволила программировать GPU общего назначения, а cuDNN — оптимизированная библиотека для свёрток, pooling, активаций — дала ещё 2-3× ускорения. AlexNet обучался 6 дней на двух GTX 580; на CPU это заняло бы месяцы.

Computer Vision: от R-CNN к Stable Diffusion

Claude не пояснил ни разу, а я поясню и второй раз (повторенье -- мать ученья): бум "глубоких" (deep learning) нейросетей начался с задач обработки изображений. LLM случились позже. Буква "R-" в "R-CNN" означает "recursive", то бичь нейросеть с т.н. "памятью". В первой половине 2010-х это был bleeding edge of progress, в задачах обработки текстов тоже, но об этом в следующем разделе.

Object detection: эволюция скорости

R-CNN (2014): генерация ~2000 «кандидатных областей» алгоритмом Selective Search → каждая область прогоняется через CNN → классификация SVM. Результат: 47 секунд на изображение — CNN запускается 2000 раз.

Fast R-CNN (2015): CNN запускается один раз на всё изображение, затем признаки для каждой области извлекаются из общей карты признаков. Скорость: ~2 секунды (25× быстрее).

Faster R-CNN (2015): вместо Selective Search — нейросеть Region Proposal Network (RPN), предсказывающая области. Скорость: ~0.2 секунды.

YOLO (You Only Look Once, 2015): радикально другой подход — изображение делится на сетку S×S, каждая ячейка предсказывает bounding boxes и вероятности классов за один проход. Результат: 45+ FPS — реальное время! Точность ниже, чем у Faster R-CNN, но для видеонаблюдения и автономных машин скорость критичнее.

GANs: генератор vs дискриминатор

В 2014 году Иан Гудфеллоу представил Generative Adversarial Networks — две конкурирующие нейросети:

  • Генератор (G): принимает случайный шум z, выдаёт изображение. Цель — обмануть дискриминатор
  • Дискриминатор (D): отличает реальные изображения от сгенерированных. Цель — не дать себя обмануть

Это игра с нулевой суммой: G и D итеративно улучшаются, пока G не научится генерировать изображения, неотличимые от реальных (в теории D угадывает с вероятностью 50%).

Mode collapse — главная проблема: генератор может «застрять», производя только несколько типов изображений, которые обманывают дискриминатор, игнорируя разнообразие данных.

StyleGAN (NVIDIA, 2018-2021) достиг фотореалистичной генерации лиц через «style-based» архитектуру: случайный вектор z преобразуется в промежуточное пространство w, которое через Adaptive Instance Normalization (AdaIN) контролирует стиль на каждом уровне разрешения.

Diffusion models: почему победили GANs

Диффузионные модели (DDPM, Ho et al., 2020) работают иначе:

  1. Прямой процесс: постепенно добавляем гауссовский шум к изображению за T шагов, пока не получим чистый шум
  2. Обратный процесс: обучаем нейросеть предсказывать и удалять шум на каждом шаге, итеративно восстанавливая изображение из шума

Почему лучше GANs:

  • Стабильность обучения: нет adversarial динамики, простая MSE-loss для предсказания шума
  • Разнообразие: лучшее покрытие распределения, меньше mode collapse
  • Теоретическая обоснованность: чёткая вероятностная формулировка

Latent Diffusion (2022): диффузия в сжатом латентном пространстве (после VAE-энкодера) вместо пиксельного — в 10-100 раз быстрее при том же качестве.

CLIP, DALL-E, Stable Diffusion — текст-в-изображение

CLIP (OpenAI, январь 2021): обучен на 400 млн пар изображение-текст из интернета. Два энкодера (текстовый и визуальный) проецируют входы в общее embedding-пространство. CLIP позволяет zero-shot классификацию: опишите любые категории текстом — CLIP найдёт, какое изображение к какой ближе.

DALL-E 2 (апрель 2022): CLIP-эмбеддинги текста → prior-модель → диффузионный декодер. Драматический скачок качества.

Stable Diffusion (август 2022, Stability AI): первая open-source text-to-image модель. Архитектура: CLIP-энкодер текста + VAE + U-Net в латентном пространстве (860 млн параметров). Работает на consumer GPU (8GB+ VRAM), породила экосистему из тысяч fine-tuned моделей, LoRA-адаптеров, расширений. Stable Diffusion 3 (2024) перешёл на Transformer-архитектуру (DiT).

NLP: от bag-of-words к трансформерам

LLM это, если что, тоже NLP (Natural Language Processing, т.е. текстовые задачи). Вот тут-то мы к этим вашим ChatGPT (и тому самому Claude Opus 4.5, что сгенерил этот самый текст) и подберёмся.

Ранние подходы и их ограничения

Bag-of-words: документ = неупорядоченный набор слов. Теряет порядок: «собака кусает человека» = «человек кусает собаку». Результат — разреженный вектор размерности |словарь| (~100,000+).

TF-IDF улучшает BoW: слова взвешиваются по TF × IDF, где IDF = log(всего_документов / документов_со_словом). «The» получает низкий вес, редкие термины — высокий. Но семантика по-прежнему отсутствует: «автомобиль» и «машина» — разные, несвязанные слова.

N-граммы частично восстанавливают порядок: биграммы [«the cat», «cat sat»], триграммы… Но словарь взрывается экспоненциально, большинство n-грамм встречается редко (проблема разреженности).

Word embeddings — семантика в векторах

Word2Vec (Миколов и др., Google, 2013): каждое слово представляется плотным вектором (100-300 измерений), где семантически близкие слова имеют близкие векторы.

Знаменитый пример: king - man + woman ≈ queen. Векторная арифметика работает, потому что измерения неявно кодируют атрибуты: [royalty=0.8, male=0.9] для king, [royalty=0.8, female=0.9] для queen.

Две архитектуры:

  • CBOW: по контексту предсказываем центральное слово («The ___ sat on the mat» → «cat»)
  • Skip-gram: по центральному слову предсказываем контекст («cat» → «the», «sat», «meow»)

GloVe (Стэнфорд) строит эмбеддинги из глобальной матрицы совстречаемости слов. Практически взаимозаменяем с Word2Vec.

RNN и проблема долгосрочных зависимостей

Recurrent Neural Networks обрабатывают последовательности, сохраняя скрытое состояние (hidden state) — «память» о прочитанном:

h_t = f(W_h × h_{t-1} + W_x × x_t)

Аналогия для программиста: функция (previousState, currentInput) → newState, применяемая итеративно.

Проблема: при backpropagation через 100 шагов градиенты затухают (или взрываются). Информация от начала предложения теряется к концу.

LSTM: ворота для управления памятью

Long Short-Term Memory (Хохрайтер, Шмидхубер, 1997) решает проблему через cell state — отдельный канал памяти, управляемый тремя воротами:

  • Forget gate: «что забыть из долгосрочной памяти?» (значения 0-1 для каждой ячейки)
  • Input gate: «что добавить из текущего входа?»
  • Output gate: «что выдать на выход?»

Аналогия: база данных с операциями DELETE, INSERT, SELECT. Cell state — это конвейер, по которому информация может течь неизменённой через множество шагов; ворота выборочно её модифицируют.

GRU (2014) — упрощённый вариант с двумя воротами (update, reset), часто сравнимый по качеству, но быстрее в обучении.

Attention: прорыв 2014-2015

Проблема bottleneck: в encoder-decoder архитектурах (например, машинный перевод) всё входное предложение сжимается в один вектор фиксированной длины — как пересказать книгу одним предложением, а потом по нему писать перевод.

Attention (Бахданау и др., 2014) позволяет декодеру «смотреть назад» на все состояния энкодера и фокусироваться на релевантных частях для каждого выходного слова.

Интуиция Query-Key-Value (как запрос к базе данных):

  • Query (Q): «что я ищу?» — текущее состояние декодера
  • Key (K): «индекс» — состояния энкодера
  • Value (V): «данные» — тоже состояния энкодера

Attention(Q, K, V) = softmax(Q × K^T / √d) × V

Softmax нормализует «похожести» Q·K в веса (сумма = 1), затем эти веса взвешивают Values.

Уточнение по RNN, LSTM и GRU

Вот этого в исходном ответе Claude уже не было, дополнил после наводящего вопроса.

Иерархия рекуррентных архитектур:

RNN (Recurrent Neural Networks)

├── Vanilla RNN (простейший вариант)

│ └── Проблема: vanishing/exploding gradients

│ └── На практике почти не использовался для длинных последовательностей

│

├── LSTM (Long Short-Term Memory) — 1997, Hochreiter & Schmidhuber

│ └── Решение: cell state + 3 ворот (forget, input, output)

│ └── Де-факто стандарт для NLP до трансформеров

│

└── GRU (Gated Recurrent Unit) — 2014, Cho et al.

└── Упрощённый LSTM: 2 ворот (update, reset)

└── Сравнимое качество, быстрее обучается

Vanilla RNN — это простейшая формула:

h_t = tanh(W_h × h_{t-1} + W_x × x_t + b)

Проблема в том, что при backpropagation через 100 шагов градиенты умножаются 100 раз. Если множители < 1 — градиент затухает до нуля (ранние слои не обучаются). Если > 1 — взрывается до infinity.

LSTM добавляет отдельный «канал памяти» (cell state), который может передавать информацию через произвольно длинные последовательности почти без изменений. Ворота (gates) — это sigmoid-слои, выдающие числа 0-1, которые контролируют что забыть, что добавить, что выдать.

На практике до 2017 года: LSTM использовался почти везде в NLP — машинный перевод (seq2seq), sentiment analysis, language modeling, speech recognition. GRU — как более быстрая альтернатива с похожим качеством. Vanilla RNN — только в учебных примерах.

После 2017 (трансформеры) LSTM быстро вытеснился из большинства NLP-задач, но остаётся актуальным для некоторых временных рядов и edge-устройств с ограниченной памятью.

Если хотите разобраться, как все эти архитектуры устроены (там в принципе несложно... по меркам высшей математики) -- можете глянуть мой конспект 2021 года (не смотрите, что он опубликован в 2023, для 2023 он уже подотстал от жизни, об веяниях 2020-х будет ниже тут).

А ниже другие дополнения Claude после моих наводящих вопросов.

Self-Supervised Learning: ключ к масштабированию трансформеров

Узкое место supervised learning

До 2018 года машинное обучение упиралось в разметку данных. Supervised learning требует пар (вход, правильный ответ): для ImageNet 14 миллионов изображений размечали через Amazon Mechanical Turk годами. Для NLP — ещё сложнее: sentiment analysis требует читать тексты, NER — выделять сущности вручную, машинный перевод — параллельные корпуса от профессиональных переводчиков.

Масштабирование упиралось в человеческий труд: чтобы удвоить качество, нужно было удвоить размеченные данные — время, деньги, ошибки разметчиков.

Self-supervised learning: превращение интернета в датасет

Self-supervised learning (SSL) — парадигма, где модель сама генерирует «метки» из структуры данных:

  • Языковое моделирование (GPT): задача — предсказать следующий токен. Метка — просто следующее слово в тексте. Весь интернет становится размеченным датасетом бесплатно
  • Masked Language Modeling (BERT): скрыть 15% токенов, предсказать их. Метка — скрытые слова из самого текста
  • Contrastive learning (CLIP, SimCLR): разные аугментации одного изображения должны быть близки в embedding-пространстве, разные изображения — далеки

Почему это революция: объём доступных данных вырос на порядки. CommonCrawl содержит петабайты текста; YouTube — миллиарды часов видео с субтитрами. Узкое место сместилось от данных к compute.

Ключевые вехи SSL-эры (2018-2023)

Сюда же все достижения LLM 2024-2025: всего этого бы не было без SSL

Почему SSL + трансформеры = взрывной рост

Три фактора сошлись:

  1. Данные: SSL устранил bottleneck разметки — доступны триллионы токенов
  2. Архитектура: трансформеры параллелизуются на GPU лучше RNN (все позиции обрабатываются одновременно)
  3. Scaling laws: предсказуемое улучшение качества с ростом compute — можно планировать инвестиции

Критический инсайт: предсказание следующего токена заставляет модель неявно моделировать всё — грамматику, факты, логику, стиль, намерения авторов. Это компрессия знаний интернета в веса нейросети. Модель не «запоминает» тексты — она учится паттернам, из которых тексты состоят.

Почему трансформеры масштабируются лучше RNN

Честно говоря, этот подраздел не до конца понял. У меня есть подозрения, что здесь Claude имел в виду ванильный RNN, а не использовавшийся на практике (и широко, я сам использовал в бою) LSTM. Так что есть шанс, что это галлюцинация ИИ -- но если так, то пусть будет как демонстрация, что его возможности пока небезграничны... хотя скорее всё-таки неправ тут я. Это неважно -- в любом случае сейчас LSTM передал эстафету трансформероподобному (т.е. основанному на "внимании") как в больших, так и в не очень больших моделях. Поэтому я отправил этот подраздел в дополнения, хотя это часть исходного ответа.

RNN делает O(n) последовательных операций; трансформер — O(n²) параллельных операций, что на GPU гораздо быстрее для типичных длин.

Нейросети vs ансамбли: кто победил?

Раздел для тех, кто застал классический ML. Для входящих сразу в LLM/VLM (VLM = подвид LLM, работающий не только на тексте, но и, например, на изображениях) эпоху, наверное, неинтересен... хотя, как видим, нейросети ещё не везде победили.

Состояние на 2024-2025

Короткий ответ: нейросети победили на неструктурированных данных (изображения, текст, аудио, видео). На табличных данных — ничья или преимущество ансамблей.

Неструктурированные данные: безоговорочная победа нейросетей

Здесь нейросети выигрывают с огромным отрывом. Причина: они сами извлекают признаки из сырых данных (пиксели, токены), а для ансамблей нужен ручной feature engineering, который не масштабируется.

Табличные данные: ансамбли держатся

Типичная задача Kaggle на табличных данных:

  • Данные: CSV с числовыми и категориальными признаками
  • Размер: тысячи — миллионы строк
  • Задача: классификация или регрессия

Что побеждает в 2024:

  • XGBoost / LightGBM / CatBoost: табличные данные < 1M строк, смешанные типы признаков, интерпретируемость важна
  • Нейросети (MLP, TabNet, FT-Transformer): очень большие датасеты, когда есть GPU, задачи с temporal/sequential структурой
  • Ансамбли нейросетей + бустинга: соревнования, когда нужен последний 0.1% качества

Почему бустинг до сих пор силён на таблицах

  1. Эффективность на малых данных: XGBoost хорошо работает на 10K строк; нейросети требуют больше
  2. Устойчивость к гиперпараметрам: дефолтные параметры LightGBM часто дают 95% от оптимума; нейросети чувствительнее
  3. Скорость обучения: минуты vs часы на GPU
  4. Интерпретируемость: feature importance встроен; для нейросетей нужны отдельные методы (SHAP, LIME)
  5. Категориальные признаки: CatBoost обрабатывает их нативно; для нейросетей нужен embedding

Попытки нейросетей завоевать таблицы

TabNet (Google, 2019): attention-механизм для выбора признаков на каждом шаге. Сравним с бустингом, но не превосходит.

FT-Transformer (2021): трансформер где каждый признак — токен. На некоторых бенчмарках лучше бустинга, но не универсально.

TabPFN (2022): трансформер, предобученный на синтетических табличных задачах. Хорош для малых датасетов (<1000 строк), но не масштабируется.

Вывод: на табличных данных среднего размера XGBoost/LightGBM остаются default choice. Нейросети стоит пробовать на больших датасетах или когда есть специфическая структура (временные ряды, графы).

Интересный факт: ансамбли внутри нейросетей

Современные LLM используют идеи из ансамблевого обучения:

  • Mixture of Experts (MoE): GPT-4, Mixtral — разные «эксперты» активируются для разных токенов. Это форма ансамблирования. В GPT-5 это ещё более развито.
  • Dropout: случайное «выключение» нейронов при обучении — эквивалент усреднения экспоненциально многих подсетей.
  • Ensemble of checkpoints: несколько сохранений модели с разных эпох усредняются для улучшения качества.

Так что граница размылась: лучшие нейросети заимствуют идеи ансамблей, а бустинг-библиотеки используют GPU-ускорение из мира deep learning.


Report Page