Почему именно 2012 год

После этого урока ты назовёшь три ингредиента, которые сошлись в 2012 году, правильно прочитаешь цифру «top-5 error 15.3 %» и объяснишь, когда deep learning не нужен и почему ChatGPT — тоже он.

Осенью 2012 года нейросеть AlexNet выиграла конкурс по распознаванию изображений ImageNet: её показатель ошибки (top-5 error, о нём ниже) — 15.3 % против 26.2 % у второго места. Обучали её не в дата-центре. Обычный настольный компьютер с двумя игровыми видеокартами пять-шесть дней работал в спальне Алекса Крижевского, в доме его родителей.

Странно здесь другое. Искусственный нейрон описан в 1943 году. Способ обучать многослойные сети — в 1986-м. Сети для изображений — к 1998-му. Чертёж лежал в ящике десятилетиями.

Чего не хватало всё это время? И почему в итоге хватило двух видеокарт из магазина?

Три дорожки и одна точка встречи

В прошлом уроке deep learning получил определение: сеть сама учит и признаки (learned features), и классификатор, от сырых данных до ответа. Идея красивая, но она гораздо старше 2012 года. Поэтому вопрос этого урока — не «что это такое», а «почему это заработало именно тогда».

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

У deep learning эти три вещи называются так: алгоритмы (чертёж: как устроена сеть и как её учить), вычисления (двигатель: на чём считать) и данные (топливо: на чём учиться). В виджете каждая из них — отдельная дорожка на шкале времени.

Шкала: когда был готов каждый ингредиент

Три верхние дорожки — ингредиенты, нижняя — что писали журналы. Кружок — событие: листай их кнопками или нажимай на кружки. Дорожка зеленеет с того года, когда ингредиента хватает для сети масштаба AlexNet. До 2000 года шкала сжата.

  1. Не нажимая кнопок, предскажи: какая из трёх дорожек позеленеет первой? Теперь дойди кнопкой «Дальше» до шага 6.
    Что должно получиться

    Алгоритмы: backpropagation — 1986 год, convolutional networks — 1989–1998. С шага 5 индикатор «алгоритмы» показывает «готово», на шаге 6 зелёная линия уже видна, а две другие дорожки серые. Это главная мысль виджета: чертёж ждал данных и вычислений 14 лет.

  2. Вернись на шаг 5. Что мешает обучить AlexNet уже в 1998 году? Назови недостающее, проверь по индикаторам и найди шаг, с которого зелёные все три дорожки.
    Что должно получиться

    Не хватает данных (ImageNet начнут собирать в 2006-м и разметят к 2010-му, шаг 7) и вычислений (2012 год). Индикатор «хватает для AlexNet?» отвечает «да» начиная с шага 9: все три ингредиента впервые есть одновременно в 2012 году. Последней зеленеет дорожка вычислений, но «последний» не значит «главный»: к этому вернёмся в разделе про MIT и The Economist.

  3. Конспект (стр. 32) объясняет взлёт 2011–2012 годов фреймворками TensorFlow и PyTorch и сетями в сотни слоёв. Прежде чем листать дальше: эти события окажутся левее или правее 2012 года?
    Что должно получиться

    Правее: шаги 14 и 15. TensorFlow — ноябрь 2015, PyTorch — 2016–2017, 152 слоя ResNet — 2015. Причина не может случиться позже следствия. У самой AlexNet 8 обучаемых слоёв и собственный CUDA-код авторов.

  4. Нижняя дорожка — два журнала со слайда 29 лекции 1. Кто высказался раньше и сколько лет между ними? Оба — до или после AlexNet?
    Что должно получиться

    MIT Technology Review — 2013 год (вычисления), The Economist — 2017-й (данные). Между ними четыре года, и оба объясняют взлёт задним числом. Какое объяснение выбирает профессор, разберём ниже.

Что показала шкала. Чертёж был готов раньше всех: backpropagation — в 1986 году, convolutional networks — к 1998-му. Оба слова ещё встретятся (backpropagation — в уроке 14). Сейчас важно одно: к 1998 году было известно, как построить такую сеть. Не было того, на чём её учить и чем считать.

Топливо: данные

В 1936 году хороший набор данных — это Iris: 150 цветков. В 2012-м конкурс ILSVRC даёт 1.2 миллиона размеченных изображений в 1000 классах. Между этими числами — интернет и огромный ручной труд: весь ImageNet (больше 14 миллионов изображений, больше 20 тысяч категорий) почти два года размечали 49 тысяч человек из 167 стран.

100 10 тыс. 1 млн 100 млн Iris, 1936: 150 ImageNet: 14 млн ILSVRC-2012: 1.2 млн 300 записей станка в 8000 раз больше
Рис. 1. Сколько примеров в наборе данных, шкала логарифмическая: каждое деление — в 10 раз больше. От Iris до конкурса ILSVRC-2012 — 8000 раз. «300 записей станка» — пример малых данных из конспекта, он понадобится ниже.

Слайд 27 лекции 1 показывает, откуда берётся сырьё: каждую минуту в интернете появляются больше ста миллионов писем, сотни тысяч поисковых запросов, сотни новых видео. Но сырьё — ещё не топливо. Для supervised learning нужны пары «вход и target», то есть \(\langle x_n, t_n \rangle\). Дорого стоила именно разметка \(t_n\).

Двигатель: вычисления

Обучение сети — это миллионы одинаковых умножений и сложений. Видеокарта (GPU) создана как раз для однотипных операций над большими массивами чисел. 2012 год даёт наглядное сравнение. Команда Google и Stanford учила свою сеть три дня на 1000 машин с 16 000 процессорных ядер. AlexNet обошлась двумя игровыми видеокартами и пятью-шестью днями. Задачи у этих сетей разные, но масштаб железа показателен.

Чертёж: что дорисовали в последний момент

Чертёж тоже не остался прежним. В статье про AlexNet есть три свежие детали: функция активации ReLU (в опыте авторов сеть с ней училась примерно в шесть раз быстрее, чем с tanh), dropout и data augmentation. Первые две ждут в уроках 24 и 23. Так что точная формулировка — не «алгоритмы были готовы», а «основа была готова, несколько важных деталей появились в последний момент».

AlexNet в цифрах и что считает top-5 error

Теперь сама точка встречи: сеть Krizhevsky, Sutskever и Hinton, 2012 год. Её цифры стоит знать: по ним видно, что значит «глубокая сеть на больших данных».

AlexNet на одной странице.
ЧтоСколько
Обучаемых слоёв8: пять convolutional и три fully connected
Параметров (весов)около 60 млн
Нейронов650 000
Выходsoftmax на 1000 классов
Данные1.2 млн изображений, 1000 классов (ILSVRC-2012)
Обучение5–6 дней на двух GPU GTX 580 по 3 ГБ
Результатtop-5 error 15.3 % против 26.2 % у второго места

Два числа отсюда полезно получить самому. Первое: 60 млн параметров на 1.2 млн картинок — это \(60 / 1.2 = 50\) параметров на каждую обучающую картинку. У модели гораздо больше «ручек», чем примеров, и она легко могла бы просто запомнить обучающую выборку. Это overfitting, ему посвящён урок 17. Поэтому авторам и понадобились dropout и data augmentation.

Второе число — насколько AlexNet обогнала соперника. Второе место заняла классическая система из прошлого урока: признаки, придуманные человеком (SIFT и родственные ему), и обученные поверх них классификаторы.

2-е место: hand-crafted features 26.2 % AlexNet: learned features 15.3 % ошибок меньше на 41.6 %
Рис. 2. Top-5 error на конкурсе ILSVRC-2012. Для сравнения: лучший результат 2011 года был около 25 %.
\[ \frac{26.2 - 15.3}{26.2} = \frac{10.9}{26.2} \approx 0.416 \]

Ошибок на 41.6 % меньше, чем у лучшей классической системы того же конкурса, причём без единого признака, придуманного человеком. Осталось понять, что именно здесь называется ошибкой.

Одна догадка или пять

В конкурсе ILSVRC 1000 классов, и многие из них похожи: сеть должна отличить коалу от вомбата, а один вид черепах — от другого. К тому же на фотографии часто несколько предметов сразу. Поэтому на конкурсе модели разрешено назвать пять вариантов. Ответ засчитывается, если правильный класс есть среди этих пяти.

Слайд 30 лекции 1 показывает восемь тестовых картинок и пять самых вероятных ответов AlexNet на каждую. Вот одна из них: на фото морская черепаха loggerhead.

African crocodile Gila monster loggerhead mud turtle leatherback turtle target loggerhead вне окна: ошибка

Top-1: засчитывается одна догадка

African crocodile Gila monster loggerhead mud turtle leatherback turtle target loggerhead в окне: засчитано

Top-5: засчитываются пять догадок

Рис. 3. Одни и те же пять ответов сети, отсортированные по уверенности (длина столбика; снята со слайда 30 лекции 1 на глаз). Меняется только ширина жёлтого окна. Слева черепаха считается ошибкой, справа — попаданием.

Top-k error — доля тестовых примеров, у которых правильного класса нет среди \(k\) классов с наибольшим выходом сети. Top-1 error — обычная доля ошибок: засчитывается только самый вероятный ответ. Результаты на ImageNet принято сообщать как top-5 error.

\[ \mathrm{err}_k = \frac{1}{N} \sum_{n=1}^{N} \big[\, t_n \notin \mathrm{top}_k(x_n) \,\big] \]
\(N\)
число тестовых примеров
\(x_n\)
вход: \(n\)-я картинка
\(t_n\)
target: её правильный класс
\(\mathrm{top}_k(x_n)\)
\(k\) классов с самыми большими выходами сети \(g_c(x_n \mid w)\), \(c = 1, \dots, K\)
\([\,\cdot\,]\)
1, если условие в скобках выполнено, иначе 0

Формула просто считает промахи и делит на число примеров. Проверь её на тех самых восьми картинках.

Top-k на восьми картинках со слайда 30 лекции 1

В каждой строке точка стоит на том месте, которое правильный класс занял в списке ответов AlexNet. Жёлтое окно — места, которые засчитываются при выбранном \(k\). Точка вне окна — ошибка. Ниже — пять ответов сети для выбранной картинки (нажми на строку или выбери в списке); длины столбиков сняты со слайда на глаз.

  1. Сейчас \(k = 1\): засчитывается только первая догадка. Не глядя на индикаторы, посчитай по точкам, на скольких из восьми картинок сеть ошиблась.
    Что должно получиться

    На трёх: koala (первым назван wombat), loggerhead (African crocodile) и wallaby (hare). Top-1 error \(= 3/8 = 37.5\,\%\).

  2. Предскажи top-5 error для этих восьми картинок и только потом веди ползунок к \(k = 5\). Какая картинка «спасается» последней?
    Что должно получиться

    Ошибка падает ступеньками: \(3/8 \to 2/8 \to 1/8 \to 1/8 \to 0/8\). Последней спасается коала: её правильный класс стоял пятым. Top-5 error \(= 0\,\%\), хотя первая догадка была неверной в 37.5 % случаев.

  3. Включи два трудных примера и снова пройди \(k\) от 1 до 5. Может ли ошибка вырасти, когда \(k\) растёт?
    Что должно получиться

    Нет. Окно только расширяется: что попало в него при \(k\), останется внутри и при \(k + 1\). Поэтому top-5 error никогда не больше top-1 error. С двумя трудными примерами выходит \(5/10 = 50\,\%\) и \(2/10 = 20\,\%\). Главная мысль виджета: top-5 error считает ошибкой только те картинки, где правильного класса нет даже в пятёрке.

Что стало возможным

Выученные признаки пригодились не только для классификации. На слайдах 31–35 те же сети подписывают каждый пиксель сцены: дорога, небо, машина (semantic segmentation). Выделяют каждый объект отдельно (instance segmentation). Переносят манеру художника на фотографию (style transfer). Дорисовывают детали в размытом снимке (super-resolution). Рисуют картинку по текстовому описанию (text-to-image). Заучивать список не нужно. Нужно видеть общее: ни в одной из пяти задач признаки не придуманы человеком.

MIT против The Economist: что писать на экзамене

На слайде 29 лекции 1 рядом лежат две журнальные страницы. Каждая отвечает на вопрос «что стоит за deep learning» по-своему.

Список «10 Breakthrough Technologies 2013». Заметка о deep learning объясняет успех огромной вычислительной мощностью.

Ингредиент: вычисления.

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

Ингредиент: данные.

Страницу MIT профессор показывает трижды. Первый раз — на слайде 17, рядом со стеной логотипов компаний под штампом «OUTDATED»: список игроков устаревает быстрее, чем слайды. На слайдах 28–29 к ней добавлена подпись: по версии MIT всё дело в massive computational power.

Ничью профессор не объявляет. Вторая подпись на слайде 29: прав The Economist, «it is all about (Big) Data». А вопрос, которым лекция заканчивается, — «But which data?» — превращается в план всего курса.

На вопрос «что стоит за deep learning» сначала называй данные (так на слайде), затем вычисления и доработки алгоритмов.

Почему акцент именно на данных? Вспомни 50 параметров на картинку. Сеть с миллионами весов можно обсчитать и на медленном железе: это вопрос терпения. Но обучить её с нуля на 150 примерах нельзя ничем: она их запомнит и ничего не обобщит. Вычисления определяют, сколько времени займёт обучение. Данные определяют, получится ли оно вообще.

Когда deep learning не нужен

Из истории 2012 года легко сделать неверный вывод: раз deep learning победил, им надо решать всё. Возьми два случая. Первый: 300 записей с датчиков промышленного станка, нужно предсказать поломку. Второй: миллион фотографий с подписями. В первом случае сеть с миллионами весов запомнит все 300 записей и ошибётся на новых. Во втором она на своём месте.

сырые данные, мало transfer learning: чужие готовые признаки сырые данные, много deep learning признаки учит сама сеть таблица с готовыми признаками деревья, линейные модели обычно хватает сотни примеров миллионы
Рис. 4. Грубая карта, а не закон. Deep learning на своём месте, когда данные сырые (пиксели, звук, текст) и размеченных примеров много. Пунктир — обходной путь при малых данных: взять сеть, уже обученную кем-то на больших.

Конспект (стр. 28) называет три условия, при которых deep learning — лучший инструмент: много разнообразных данных, много вычислений и задача на восприятие или распознавание закономерностей (perception, pattern recognition). Если условия не выполнены, классические методы могут оказаться проще, быстрее и не хуже.

Дальше конспект (стр. 28–29) перечисляет семь причин выбрать что-то другое. Причины верные, но несколько формулировок слишком категоричны. Ниже — причины вместе с поправками.

  1. Нужно много данных. Миллионы весов на сотнях примеров дают overfitting. Ориентир из учебника курса (Goodfellow и соавторы, «Deep Learning», 2016): около 5000 размеченных примеров на класс для приемлемого качества и от 10 млн, чтобы сравняться с человеком. Поправка: «только на огромных размеченных наборах» — слишком сильно. Transfer learning, data augmentation и self-supervised pre-training позволяют обойтись малым числом меток.
  2. Нужны вычисления. GPU, время, электричество; классические методы работают на ноутбуке. Поправка: «недели на GPU» — не правило. AlexNet училась 5–6 дней, маленькие сети учатся за минуты.
  3. Чёрный ящик. Трудно объяснить, почему сеть решила именно так. В медицине, праве и финансах объяснение бывает обязательным.
  4. Трудно обучать и настраивать. Много hyperparameters (урок 21), обучение может расходиться или застревать (урок 24). Поправка: learning rate и dropout конспект относит к «архитектуре», но это настройки обучения и регуляризации.
  5. Не тот тип задачи. Таблицы: деревья (XGBoost, random forest) часто не хуже или лучше. Логический вывод по правилам. Причинность: вопрос «что будет, если мы сделаем X», а не «что обычно бывает при X».
  6. Нужны хорошие данные. Ошибки разметки, перекосы в выборке, сдвиг между данными обучения и применения: garbage in, garbage out. Поправка: «классические методы устойчивее к шуму» — правило большого пальца, а не установленный факт.
  7. Распознавание — не понимание. Сеть находит закономерности, но не обязана «знать», что такое кошка. Отсюда исследования гибридных систем, где сеть соединяют с логическим выводом (neuro-symbolic AI). Поправка: «не понимает» — философская позиция, а не измеренный результат. На экзамене подавай её как мнение.

Пункт про таблицы знаком по Applied Statistics. В таблице каждый столбец — уже осмысленный признак: масса, радиус, период. Учить представление там незачем, его дало само измерение. Поэтому PCA, регрессия и деревья справляются на сотнях строк, а глубокой сети негде развернуться. Есть и прямое подтверждение: на 45 табличных наборах среднего размера (порядка 10 тысяч строк) ансамбли деревьев остались впереди нейросетей (Grinsztajn и соавторы, 2022).

Три вопроса перед тем, как брать deep learning. Сколько у меня размеченных примеров: сотни или сотни тысяч? Данные сырые или это таблица с готовыми признаками? Придётся ли объяснять каждое решение? Ответы «сотни», «таблица», «да» — три довода за классический метод. Они же — готовый ответ на экзаменационный вопрос «When would you not use deep learning?».

ChatGPT — это тоже deep learning

Может показаться, что ChatGPT, LLaMA, Gemini или Claude — уже что-то другое, «после» deep learning. Нет. Все они — Large Language Models (LLM, большие языковые модели): глубокие сети с архитектурой Transformer, которую в 2017 году описали Vaswani и соавторы в статье «Attention Is All You Need». Сверим это с определением из прошлого урока.

learned features learned classifier текст слово embeddings Transformer × N слоёв softmax сигнал ошибки идёт назад
Рис. 5. LLM в тех же двух блоках, что и на слайде 36 лекции 1: learned features плюс learned classifier. На выходе — следующее слово (точнее, token). Все блоки учатся вместе, одной функцией ошибки.

Сырые данные — текст. Признаки никто не задаёт: сеть сама учит, каким вектором чисел представить каждое слово (embedding) и как слой за слоем уточнять его с учётом соседей. Последний слой — классификатор: он раздаёт вероятности всем словам словаря, и по ним выбирается следующее слово. Правил грамматики модели никто не сообщает. Определение выполнено по всем пунктам.

Масштаб для ориентира. GPT-2 small, маленькая по нынешним меркам модель, — это 12 Transformer-блоков, 124 млн параметров, а каждый token внутри представлен вектором из 768 чисел. А вот цифру конспекта «100+ слоёв в GPT-4» (стр. 30) проверить нельзя: архитектура GPT-4 не опубликована.

Чему именно учат LLM

Задача звучит почти по-детски: угадай следующее слово. Точнее — следующий token: слово, часть слова или знак препинания. Клавиатура телефона занята тем же, когда подсказывает продолжение фразы.

Начнём с самой простой модели такого рода. Она помнит только одно последнее слово и знает, что обычно идёт после него. Называется bigram model, и «обучить» её можно подсчётом на пальцах.

Модель, которая угадывает следующее слово

Текст для обучения, 27 токенов (точка — тоже token): the network learns features . the network learns a classifier . the classifier reads the features . data feed the classifier . the network needs data . Столбики — вероятность каждого слова словаря оказаться следующим после выбранного контекста. Target можно выбрать в списке или нажатием на строку. Loss — штраф за один пример; сумму таких штрафов по всем примерам профессор называет error function.

  1. Контекст — the. Не глядя на столбики, найди в тексте все шесть the и посчитай, какие слова идут следом. Потом сверь.
    Что должно получиться

    network — 3 раза, classifier — 2, features — 1. Вероятности: \(3/6\), \(2/6\), \(1/6\). Вся «обученная модель» — таблица таких долей. Главная мысль виджета: метки для обучения никто не ставил, target — это следующее слово самого текста.

  2. При контексте the сравни loss для target = network и target = features. Сначала реши, какой больше. Затем поставь target = data.
    Что должно получиться

    \(-\ln(1/2) \approx 0.69\) против \(-\ln(1/6) \approx 1.79\): чем меньше модель ждала настоящее слово, тем больше штраф. Для data вероятность нулевая и loss бесконечен: модель считала это слово невозможным. У настоящих сетей такого не бывает: они заканчиваются слоем softmax, а он никогда не выдаёт ровно ноль.

  3. Нажми «Сначала», затем 12 раз «Дописать слово». Получились два предложения. Какое из них модель придумала сама и что с ним не так?
    Что должно получиться

    Выйдет: the network learns features . the classifier reads the network needs data . Второго предложения в тексте нет: оно склеено из начала одного и конца другого, и в нём два сказуемых. Каждая пара соседних слов законна, а целое развалилось, потому что модель видит только одно последнее слово.

  4. Найди контексты, после которых модель уверена на все 100 %. Можно ли такой уверенности доверять?
    Что должно получиться

    features, a, reads, feed, needs. Доверять нельзя: после features точка идёт «всегда» только потому, что слово встретилось два раза. Это overfitting на 27 токенах. Настоящим моделям нужны триллионы слов.

От игрушки до настоящей модели один шаг. LLM смотрит не на одно последнее слово, а на весь текст до него:

\[ P(w_t \mid w_1, w_2, \dots, w_{t-1}) \]
\(w_t\)
token на позиции \(t\): его модель и угадывает
\(w_1, \dots, w_{t-1}\)
контекст: всё, что было раньше
\(P\)
вероятности, которые модель раздаёт всем словам словаря; в сумме 1

Запоминать такие длинные контексты в таблице невозможно. Уже для игрушечного словаря из 11 слов и контекста в три слова понадобилась бы \(11^3 = 1331\) строка, а в настоящем словаре десятки тысяч токенов. Поэтому таблицу заменяют сетью: она не хранит все контексты, а учит представление, по которому можно предсказывать и для контекстов, которых в данных не было.

вход: всё, что было раньше target the the network the network learns the network learns features network learns features . метки бесплатно
Рис. 6. Одно предложение из пяти токенов даёт четыре обучающих примера. Жирным выделено слово, которое видит bigram model; LLM видит всю строку. Target берётся из самого текста.

Посмотри, откуда взялись ответы. Никто ничего не размечал: target для каждой позиции — следующее слово самого текста. Такое обучение называют self-supervised learning: метки есть, но их поставляют сами данные. Конспект (стр. 30) считает его разновидностью unsupervised learning: человек ничего не размечал. При этом функция ошибки у него та же, что у обычной classification. Вот вывод.

Функция ошибки для следующего слова

  1. Чего мы хотим от модели с параметрами \(\theta\): чтобы настоящий текст \(w_1, \dots, w_T\) казался ей вероятным.

    \[ P_\theta(w_1, \dots, w_T) \to \max \]
  2. Вероятность целого текста раскладывается в произведение по правилу умножения вероятностей (chain rule). Это тождество, приближений нет. Запись \(w_{\lt t}\) — сокращение для \(w_1, \dots, w_{t-1}\).

    \[ P_\theta(w_1, \dots, w_T) = \prod_{t=1}^{T} P_\theta(w_t \mid w_{\lt t}) \]
  3. Произведение тысяч чисел меньше единицы неудобно, поэтому берём логарифм: произведение становится суммой. Тот же приём, что в maximum likelihood (урок 15).

    \[ \ln P_\theta = \sum_{t=1}^{T} \ln P_\theta(w_t \mid w_{\lt t}) \]
  4. Максимизировать сумму — то же, что минимизировать её с обратным знаком. Получается error function:

    \[ E(\theta) = -\sum_{t=1}^{T} \ln P_\theta(w_t \mid w_{\lt t}) \]

    Каждое слагаемое — тот самый loss из виджета: \(-\ln\) вероятности, которую модель дала настоящему следующему слову.

  5. Узнай в слагаемом знакомую задачу. Пронумеруем позиции текста буквой \(n\), чтобы номер позиции \(t\) не путался с target \(t_n\). Вход \(x_n\) — контекст \(w_{\lt t}\). Target \(t_n\) — следующее слово, записанное как one-hot вектор. Классов \(K\) столько, сколько слов в словаре. Выход сети \(g(x_n \mid \theta)\) — softmax по словарю.

    \[ E(\theta) = -\sum_{n} t_n\T \ln g(x_n \mid \theta) \]

    Это cross-entropy для многоклассовой classification из урока 11.

Итог: обучение LLM — это classification, повторённая на каждой позиции текста. Тот же softmax, та же cross-entropy, тот же backpropagation. Меняется масштаб: по словам конспекта (стр. 31), сотни миллиардов параметров и триллионы слов.

Чем LLM отличаются от прежних сетей. Раньше под каждый тип данных строили свою архитектуру. Механизм attention позволяет каждому токену напрямую учитывать все токены контекста, а не только соседние. Одну обученную модель потом донастраивают под перевод, пересказ или код. Отсюда название foundation models. Способности, которые проявляются только на таком масштабе (связный текст, перевод, арифметика), конспект называет emergent behaviors. Способ обучения при этом прежний: предсказание по закономерностям в данных. Есть ли за этим «понимание» — вопрос открытый. Конспект отвечает «нет» (стр. 31), и это мнение, а не измеренный факт.

Разгадка и карта курса

Вернёмся к загадке из начала урока. Чего не хватало с 1986 года? Ответ в одну строку:

Deep learning взлетел в 2012 году, когда к старому чертежу (backpropagation, convolutional networks) добавились большие размеченные данные, GPU и несколько новых деталей (ReLU, dropout).

А почему хватило двух видеокарт из магазина? Потому что железо оказалось самым дешёвым из трёх ингредиентов. Видеокарта делает параллельно те самые однотипные умножения, из которых состоит обучение сети, и купить её можно было в магазине. Миллионы размеченных картинок купить было нельзя: ImageNet почти два года размечали вручную 49 тысяч человек. С этим согласуется и выбор профессора: слово «data» у него первое.

Итог главы 1

Вся первая глава — про одну мысль: качество машинного обучения ограничено качеством представления данных. В классическом ML представление придумывает человек (hand-crafted features). В deep learning его учит сама сеть, слой за слоем и вместе с классификатором. Формула профессора: Deep Learning is about learning data representation from data. На слайде 36 лекции 1 такой конвейер из выученных признаков и выученного классификатора подписан «Deep Learning (2012 – ...)»: тот самый год из названия урока.

Deep learning — не конкретная архитектура (CNN, RNN, Transformer) и не отдельный алгоритм. Это подход с четырьмя приметами:

«Deep learning — четвёртая парадигма обучения». Нет. Парадигм три: supervised, unsupervised и reinforcement learning, а deep learning применяется внутри каждой. Конспект сам себе противоречит: на стр. 23 пишет, что это не новая парадигма, а на стр. 34 называет его «the paradigm where…». Читай второе как «подход». И стрелку «Success of ML ⇒ Success of its feature representation» со стр. 34 читай не как «успех ML приводит к хорошему представлению», а как «успех ML требует хорошего представления»: оно — необходимое условие успеха, а не его следствие.

But which data?

Последний слайд лекции спрашивает: какие именно данные? И сам отвечает: этому и учит курс. У каждого типа данных своя структура: в картинке важны соседние пиксели, в тексте — порядок слов. Архитектура сети заранее «зашивает» такое предположение, поэтому под разные данные строят разные сети.

Карта курса по типам данных (конспект, стр. 34). Порядок тем сверяй с программой курса: perceptron и feed-forward сети, backpropagation и обучение, практика обучения, recurrent architectures, autoencoders и LSTM, затем CNN.
ДанныеАрхитектураГде в курсе
Таблицы, числовые признакиPerceptron, Feed Forward Neural Networksэта тетрадь, модули 2 и 3
ИзображенияConvolutional Neural Networks (CNN)вторая половина курса, проф. Boracchi
Последовательности: текст, временные рядыRecurrent Neural Networks, LSTM, Transformerлекции проф. Matteucci после глав 1–3
Данные без метокAutoencoders, word embeddingsтам же

Модуль 1 закончен. Теперь известно, что такое deep learning и почему он заработал. Осталось самое интересное: как. Модуль 2 начинает с самой маленькой детали чертежа — одного нейрона.

В формате экзамена

Artificial neurons date back to the 1940s and backpropagation to 1986. Explain why deep learning took off only around 2012. Support your answer with the facts of the ImageNet 2012 result.

Show model answer

The core algorithms existed, but two ingredients were missing. (1) Data: deep networks have millions of parameters and need very large labelled datasets; these became available with the Internet and ImageNet (ILSVRC-2012: 1.2M labelled images, 1000 classes). This is the main point of the slides: it is all about (big) data. (2) Computational power: GPUs made it feasible to train such networks in days. In addition, a few algorithmic improvements (ReLU, dropout, data augmentation) completed the picture.

Evidence: AlexNet (Krizhevsky, Sutskever, Hinton, 2012), 8 learned layers and about 60M parameters, trained for 5–6 days on two GPUs, reached 15.3% top-5 error on ILSVRC-2012 against 26.2% for the second-best entry, which used hand-crafted features.

В полном ответе три вещи: названы данные (и названы первыми, как на слайде 29 лекции 1), названы вычисления, и есть хотя бы один факт про AlexNet с правильным словом «top-5». Ответ «появились GPU» без данных неполон: на слайде главным ингредиентом названы именно данные.

A classifier is tested on 10 images. For each image, the rank of the true class in the list of classes sorted by decreasing predicted probability is: 5, 1, 1, 3, 1, 1, 1, 2, 7, 12. Compute the top-5 error (in %).

Show model answer

An image is a top-5 error only if the rank of its true class is greater than 5. This happens for ranks 7 and 12.

\[ \mathrm{err}_5 = \frac{2}{10} = 20\,\% \]

For comparison, the top-1 error counts every rank greater than 1: \(5/10 = 50\,\%\).

Ловушка — посчитать «не первые места» (5 из 10) и ответить 50. Картинка с рангом 5 в top-5 засчитывается: окно включает пятое место.

Which statements about the top-5 error of a 1000-class classifier are correct? Select all that apply.

  • It is the fraction of test images whose true class is not among the five classes with the highest predicted probability. Это определение.
  • On the same test set it can never exceed the top-1 error. Окно из пяти мест включает первое место: попадание в top-1 всегда попадание в top-5.
  • A top-5 error of 15.3% means that the most probable class is correct for 84.7% of the images. 84.7 % — доля картинок, где правильный класс входит в пятёрку. Первая догадка верна реже.
  • A classifier that ranks the 1000 classes at random has an expected top-5 error of 99.5%. Правильный класс попадает в случайную пятёрку с вероятностью \(5/1000 = 0.5\,\%\).
  • It can be computed only if the network has exactly five output units. Выходов \(K = 1000\). Пять — это сколько самых вероятных классов берётся в расчёт.
Show model answer

Correct: the definition, the inequality top-5 error ≤ top-1 error, and the random baseline \(1 - 5/1000 = 99.5\,\%\). A top-5 error says nothing exact about the first guess, and it does not constrain the number of outputs.

Случайный уровень полезно уметь считать: он показывает, что 15.3 % на 1000 классах — это очень далеко от угадывания.

Give a one-sentence definition of deep learning and describe three situations in which you would not use it. Justify each.

Show model answer

Deep learning is about learning data representation from data: a hierarchy of features and the final classifier are learned jointly, end-to-end, from raw inputs, instead of hand-crafting the features.

I would not use it (i) with little data, e.g. a few hundred samples: a model with millions of parameters overfits; (ii) on tabular data whose columns are already meaningful features, where tree ensembles or linear models perform as well or better and train on a laptop; (iii) when each decision must be explained (medicine, finance, law), because deep networks are hard to interpret. A limited computational budget is a fourth reason.

В вопросе стоит «justify each»: нужен не список, а обоснование каждого пункта. «Мало данных» без слова overfitting и «таблицы» без «признаки уже готовы» выглядят заученными.

Large Language Models such as ChatGPT are pre-trained to predict the next token. (a) Write the quantity the model estimates and the error function minimised on a text \(w_1, \dots, w_T\). (b) Why is this called self-supervised learning? (c) Why are LLMs still deep learning?

Show model answer

(a) The model estimates \(P(w_t \mid w_1, \dots, w_{t-1})\). Training minimises the negative log-likelihood of the text, i.e. a cross-entropy over the vocabulary at every position:

\[ E(\theta) = -\sum_{t=1}^{T} \ln P_\theta(w_t \mid w_1, \dots, w_{t-1}) \]

(b) The target at each position is the next token of the text itself, so no human labelling is needed: the supervision comes from the data.

(c) They are deep neural networks (Transformers) that learn the representation (embeddings refined by many layers) and the final classifier (the next-token predictor) jointly from raw text, with no hand-crafted linguistic features.

В пункте (c) нужна связка с определением: learned features плюс learned classifier из сырых данных. Просто «потому что там нейросеть» — неполный ответ. Тема LLM есть только в конспекте, на слайдах лекции её нет.

A bigram model is estimated by counting on a small corpus. The word "the" is followed by "network" 3 times, by "classifier" 2 times and by "features" once. Compute the loss \(-\ln P(\text{features} \mid \text{the})\).

Show model answer
\[ P(\text{features} \mid \text{the}) = \frac{1}{3 + 2 + 1} = \frac{1}{6} \] \[ -\ln \frac{1}{6} = \ln 6 \approx 1.79 \]

Две типичные ошибки: поделить на 3 (число разных продолжений) вместо 6 (число случаев) и взять десятичный логарифм вместо натурального.

Проверь себя

У сети на тестовом наборе top-5 error равен 15.3 %. Что можно утверждать про её top-1 error?

  • Он не меньше 15.3 % Каждый промах в top-5 — это и промах в top-1, а обратное неверно. У AlexNet top-1 error был около 37–40 %.
  • Он равен 15.3 % Так было бы, только если бы правильный класс всегда стоял либо первым, либо вне пятёрки.
  • Он меньше 15.3 % Окно в одно место уже окна в пять мест, промахов может стать только больше.
  • Он равен 84.7 % 84.7 % — доля картинок, где правильный класс вошёл в пятёрку. К top-1 это число не относится.

Что из перечисленного уже существовало до победы AlexNet в 2012 году?

  • Backpropagation 1986 год: за 26 лет до AlexNet.
  • Convolutional networks 1989–1998 годы. Чертёж был готов.
  • Размеченный ImageNet Проект начат в 2006-м, разметка шла в 2008–2010 годах.
  • TensorFlow Ноябрь 2015 года. Конспект на стр. 32 ошибочно ставит его в причины взлёта.
  • Сети в 152 слоя ResNet, 2015 год. У AlexNet 8 обучаемых слоёв.

Картинка для памяти: шкала из первого виджета. Всё, что правее 2012 года, — следствия, а не причины.

Сеть AlexNet и видеокарты оставили прежними, но для обучения дали 10 000 картинок вместо 1.2 млн. Что произойдёт вероятнее всего?

  • Обучение пойдёт быстрее, качество на тесте останется прежним Быстрее — да. Но качество на новых картинках держалось именно на объёме данных.
  • Сеть запомнит обучающие картинки, а на новых будет ошибаться гораздо чаще Теперь на одну картинку приходится \(60\,000\,000 / 10\,000 = 6000\) параметров вместо 50. Это overfitting.
  • Сеть не сможет запомнить даже обучающие картинки Наоборот: при таком избытке параметров запомнить 10 000 примеров легко.
  • Ничего не изменится: важны только вычисления Это «взгляд MIT». Профессор на слайде 29 лекции 1 выбирает данные.

Есть таблица: 300 строк, в каждой показания датчиков станка и отметка, сломался ли он. Что разумнее попробовать первым?

  • Глубокую сеть с миллионами параметров На 300 строках она запомнит выборку. Данных слишком мало.
  • Логистическую регрессию или ансамбль деревьев Данных мало, столбцы уже осмысленные признаки, модель будет легко объяснить. Три довода сразу.
  • Large Language Model LLM учится предсказывать токены текста. Таблица показаний датчиков — не её задача.
  • Сначала собрать миллион строк Иногда данных больше взять негде. Метод выбирают под имеющиеся данные.

Почему обучение предсказанию следующего слова называют self-supervised?

  • Потому что у него нет функции ошибки Есть: \(-\ln\) вероятности настоящего следующего слова, то есть cross-entropy.
  • Потому что target для каждой позиции берётся из самого текста, без разметки человеком Метки есть, но их поставляют сами данные: следующее слово уже написано.
  • Потому что модель сама оценивает свои ответы Оценивает не модель: ответ сравнивают с настоящим следующим словом.
  • Потому что модель получает награду за удачные ответы Награда — это reinforcement learning. Он появляется позже, при дообучении чат-ассистента.

В тексте после слова X идёт A три раза и B один раз. Модель обучена подсчётом. Какой loss она получит на примере «после X идёт B»?

  • 0.25 Это вероятность \(P(B \mid X) = 1/4\), а не loss.
  • \(\ln 4 \approx 1.39\) \(-\ln(1/4) = \ln 4\). Редкое продолжение штрафуется сильнее частого.
  • \(\ln(4/3) \approx 0.29\) Это loss для примера «после X идёт A»: \(-\ln(3/4)\).
  • 0 Ноль был бы при \(P = 1\), то есть если бы после X всегда шло B.

Какие утверждения о deep learning верны?

  • Это не конкретная архитектура: CNN, RNN и Transformer — его частные случаи Общее у них одно: представление данных выучено, а не придумано.
  • Его применяют и в supervised, и в unsupervised, и в reinforcement learning Поэтому это не четвёртая парадигма, а подход внутри трёх.
  • Он избавляет от любых решений человека Человек по-прежнему выбирает архитектуру, функцию ошибки и данные. Уходит только ручное придумывание признаков.
  • «Глубокий» значит «с большим числом параметров» «Глубокий» значит много последовательных выученных преобразований, то есть слоёв представления.

Унести с собой

Что посмотреть и почитать