Коротко
Лекция ставит общий каркас supervised learning для нелинейных моделей: датасет из пар вход-выход, модель h_θ, лосс на каждом примере, усреднение и минимизация по θ. Нелинейность важна именно в параметрах, а не в данных: нелинейность по данным сводится заменой переменной обратно к линейной модели. Оптимизируют стохастическим градиентным спуском мини-батчами: полный градиент по триллиону токенов невычислим, а SGD в среднем совпадает с полным градиентом и работает лучше на невыпуклых функциях, где, по рабочей гипотезе сообщества, в высокой размерности почти нет плохих локальных минимумов. Нейросеть строится из примитива ReLU (max(t,0)), стека слоёв «матрица + вектор смещения + активация», а поверх идут residual-блоки (учат разницу y−z, а не сам таргет) и layer-norm/RMSNorm ради масштабной инвариантности и устойчивости обучения. Свёрточные сети упомянуты бегло как умножение на тёплицеву матрицу с общими весами, но объявлены почти вытесненными трансформерами даже в зрении.
Главный тезис
Обучение нейросети это тот же каркас, что и линейная регрессия (лосс на пример → усреднение → градиентный спуск), с одним принципиальным отличием: h_θ теперь нелинейная композиция слоёв. Вся «магия» архитектур (активации, residual, нормализации) держится в основном на эмпирике, а не на доказательствах.
Ключевые идеи
- 3:12 - интересна нелинейность по параметрам: нелинейность по данным фиктивна, потому что
θ₁x₁²заменойz₁=x₁²возвращается к линейной модели и обучению тех жеθ. - 9:41 - для регрессии лосс это квадрат ошибки
(y − h_θ(x))², усреднённый по примерам, и это же негативная логарифмическая правдоподобность при гауссовом шуме. - 12:30 - для мультиклассовой классификации модель выдаёт логиты, softmax превращает их в вероятности классов.
- 15:08 - негативный лог правдоподобия по softmax это кросс-энтропийная потеря, равная кросс-энтропии между предсказанным
p_θи истиннымp*распределением. - 13:33 - среднеквадратичная ошибка выводится как лог-правдоподобие гауссовой модели
y = h_θ(x) + ε; масштаб1/2σ²не влияет на точку минимума. - 21:19 - метод Ньютона не применим: функция невыпуклая. Гарантий на невыпуклых нет ни у одного метода, но SGD работает хорошо.
- 23:45 - градиент по одному примеру в среднем равен полному градиенту, поэтому SGD это несмещённая шумная оценка полного шага.
- 26:16 - SGD берут потому, что полный градиент по огромным датасетам невычислим, а отдельные градиенты сильно коррелированы, так что подвыборки хватает.
- 29:47 - рабочая гипотеза: в высокой размерности плохих локальных минимумов мало или нет, потому что условие «Гессиан положительно полуопределён вдобавок к нулевому градиенту» почти невыполнимо.
- 33:25 - батчи нужны не только против шума, но и чтобы не простаивали GPU: один пример на 10 000 GPU оставляет их праздными.
- 39:32 - ReLU
max(t,0)это ключевой примитив, естественно обрезающий отрицательное (цена жилья не бывает отрицательной) и грубо имитирующий порог возбуждения нейрона. - 53:12 - один слой это
σ(Wz + b): умножение на матрицу, прибавление смещения, поэлементная активация; число слоёв = число матричных умножений. - 1:00:15 - при стекировании важна только совместимость размерностей: выход одного слоя задаёт входную размерность матрицы следующего.
- 1:06:33 - residual-блок
z + σ(W σ(Wz+b))учит поправкуy−z, а не сам таргет; эмпирически лучше всего два-три слоя внутри блока. - 1:14:48 - layer-norm/RMSNorm нормируют активации, дают масштабную инвариантность и не дают значениям разрастаться до
10²⁰и взрываться. - 1:19:11 - свёртка это умножение на тёплицеву матрицу с общим сдвигаемым фильтром и разделяемыми весами; почти не используется вне хардкорного зрения.
Почему это важно
Это фундамент всего дальнейшего курса: диффузии, большие языковые модели, трансформеры вырастают из этого же каркаса «лосс → усреднение → SGD → композиция слоёв». Лектор тянет линию от 20-летнего примера с ценами на жильё и миллиона примеров 2015 года к триллиону токенов 2026-го, показывая, что инженерные решения (мини-батчи, нормализации, residual) продиктованы вычислительной реальностью GPU-флота, а не красивой теорией. Выигрывают те, кто понимает: архитектурные приёмы это набор эмпирически отобранных примитивов с несколькими конкурирующими объяснениями, а не выведенных из первых принципов. Упомянуты ResNet (2015) как поворотная точка и сдвиг от свёрток к трансформерам даже в зрении, что фиксирует, куда сместился центр тяжести области.
Идеи
- Замена
x₁²наz₁сохраняет функциональность модели, но позволяет переиспользовать все линейные техники, поэтому такая «нелинейность» неинтересна. - Error, loss и cost это одно и то же; лектор предлагает всюду говорить «loss», хотя в конспектах осталось «cost».
- Модель без индекса примера (
x,yвместоx⁽ⁱ⁾) работает так же, просто рассматривается один пример, и это упрощает запись. - В PyTorch кросс-энтропия это готовый модуль
CrossEntropyLoss, но под капотом та самая ручная формула. - SGD в среднем точно совпадает с полным шагом за один шаг, но ошибка на траектории может как гаситься, так и усиливаться: «отслеживание» зависит от шага и тонких деталей.
- Аналогия со спуском на лыжах: в 2D легко застрять в котловине, в высокой размерности почти всегда найдётся долина вниз.
- Нулевой градиент это уже
dжёстких ограничений; добавление положительной полуопределённости Гессиана делает число таких точек ничтожным. - Число локальных минимумов в отдельных случаях считают формулой Кэца из дифференциальной геометрии, и часто их оказывается ровно столько же, сколько глобальных.
- Слово «активация» пришло из биологии: нейрон возбуждается нелинейно от стимула, изначально порог моделировали сигмоидой.
- Позже выяснилось, что сигмоида плоха для сетей по вычислительным причинам, и перешли к ReLU.
- ReLU при этом «недостаточно гладкая», поэтому появились GELU, leaky ReLU и прочие, слегка проваливающиеся ниже нуля перед подъёмом.
- Выбор конкретной активации это отчасти магия и метод проб и ошибок; гладкость помогает, но точного «почему» нет.
- Промежуточные переменные (walkability, качество школ) это скрытые фичи, которых нет в сырых данных, но которые определяют цену дома.
- Рисунки-«кружочки с рёбрами» полезны тем, кто уже понимает, что за ними стоит, и путают тех, кто не понимает.
- Веса лучше держать столбцовыми векторами, а транспонировать в строки при сборке в матрицу, и полезно всегда отслеживать, где строка, где столбец.
- Входная размерность фиксирована данными (250K словарь для языка, RGB 256×256 для зрения), дальше её ужимают и держат стабильной (например, до 2K).
- MLP (multi-layer perceptron) инкапсулирует один-два слоя «матрица + активация», и что именно под ним подразумевают, плавает.
- В residual-блоке
zможет быть не сырым входом, а промежуточным слоем, и таких блоков стекают очень много. - ResNet в начале и в конце меняет размерность, а в середине это просто длинная цепочка одинаковых residual-блоков.
- У residual есть и оптимизационное объяснение: добавление
zделает задачу лучше обусловленной, но какое объяснение «настоящее», неизвестно. - Layer-norm сначала нормирует к среднему 0 и норме 1, а потом возвращает гибкость через обучаемые
β(сдвиг) иγ(масштаб). - RMSNorm проще: не вычитает среднее, только делит на корень из среднего квадрата, оставляя обучаемую
γ. - Масштабная инвариантность прямого прохода не переносится на градиент: проблема просто перекладывается в оптимизацию.
- Свёрточная матрица хранит один фильтр, сдвигаемый по данным, все прочие элементы нули, веса разделяются.
- Лектор ведёт лекцию у доски намеренно: слайды не дают «памяти» и заставляют его тараторить после многих лет преподавания.
Инсайты
- Нелинейность имеет смысл только там, где её нельзя устранить заменой переменных: обучаемость параметров, а не форма признаков, отделяет глубокое обучение от линейного.
- Квадратичная и кросс-энтропийная потери это не отдельные рецепты, а негативные лог-правдоподобия под разными предположениями о распределении шума.
- Стохастичность в обучении оправдана экономикой вычислений и корреляцией градиентов, а не мистической пользой шума; вера в «выпрыгивание из локальных минимумов» в сообществе не разделяется.
- Геометрия высокой размерности сама по себе решает проблему локальных минимумов: чем больше измерений, тем строже условие минимума и тем реже оно выполняется.
- Архитектурные приёмы это инженерные примитивы, отобранные эмпирически; на каждый есть несколько правдоподобных теорий и ни одной решающей.
- Абстракция в записи (от индексов к матрицам к блокам-коробкам) это способ управлять когнитивной нагрузкой, а не свойство самой модели.
- Хороший архитектурный трюк переформулирует трудную задачу в лёгкую (учить поправку вместо таргета), а не добавляет мощности в лоб.
- Нормализация покупает устойчивость обучения ценой переноса сложности в градиент: инвариантность прямого прохода не бесплатна.
- Проектные ограничения (память GPU, фиксированная входная размерность, взрыв активаций) формируют архитектуру не меньше, чем математика.
- Честное признание границ знания («мы фундаментально не понимаем, почему два-три слоя лучше») это часть зрелого инженерного изложения, а не пробел.
Цитаты
«this is not sufficient nonlinear to be interesting because you can just define new data», 3:34 этого недостаточно для интересной нелинейности, потому что можно просто определить новые данные
«Actually, there's no way, just fundamentally.», 6:36 На самом деле никак, просто фундаментально.
«By the way, error and loss and cost is the same.», 9:07 Кстати, error, loss и cost это одно и то же.
«no methods can guarantee to work for all non-convex functions», 21:25 ни один метод не гарантирует работу на всех невыпуклых функциях
«In 2026 now, I think it's kind of like, like one trillion tokens, right?», 26:32 В 2026-м сейчас это что-то вроде триллиона токенов, да?
«there's no chance you can compute all the gradients», 26:33 нет никаких шансов посчитать все градиенты
«why you have to compute all of them. You just need a subset of them.», 27:17 зачем считать их все. Достаточно подмножества.
«I don't think people believe that stochastic descent can help you to jump out of a local minimum.», 29:42 Не думаю, что люди верят, будто стохастический спуск помогает выпрыгнуть из локального минимума.
«All the local minimum are at the global minimum.», 30:21 Все локальные минимумы находятся на уровне глобального.
«local minimum means your hashing at that point is just in all directions positive semi-definite. That's a very hard thing to satisfy.», 31:41 локальный минимум значит, что Гессиан в точке положительно полуопределён по всем направлениям. Это очень трудно выполнить.
«But for us, we just call this ReLU.», 39:25 А мы просто называем это ReLU.
«when it's passing some threshold, the neurons got fired up», 40:45 когда переходит некоторый порог, нейроны возбуждаются
«exactly why you use any of this is kind of like a little kind of like a magic», 57:53 почему именно это используешь, немного похоже на магию
«you probably shouldn't use the right works to model the only differences», 1:08:15 вероятно, не стоит заставлять сеть моделировать только разницу... вернее, стоит моделировать именно разницу
«So this is just a story. It's not like there's any formal proof there.», 1:09:08 Это просто история. Никакого формального доказательства тут нет.
«it's very hard to know exactly which one is the right explanation», 1:10:53 очень трудно понять, какое объяснение верное
«then suddenly everything just blows up», 1:18:31 и тогда внезапно всё взрывается
«convolutional network is not used that much, except for very hardcore vision cases», 1:20:06 свёрточные сети используются мало, кроме совсем хардкорных задач зрения
Факты
- Курс: Stanford CS229 Machine Learning, весна 2026, лекция 7, «Neural Networks 1 (Architecture)», канал Stanford Online.
- Линейные модели в предыдущих лекциях вёл преподаватель по имени Chris; текущий лектор ссылается на его нотацию.
- Обратное распространение (backpropagation / auto-differentiation) вынесено в лекцию среды.
- Масштаб данных: около 1 миллиона примеров в 2015, порядка 1 триллиона токенов в 2026 (оценка лектора).
- ReLU =
max(t, 0); сигмоида использовалась на раннем этапе глубокого обучения. - Упомянутые активации: sigmoid, tanh, leaky ReLU, GELU (лектор отмечает, что GELU «немного проваливается ниже нуля»).
- Residual network введён в 2015 «очень известной статьёй» про residual-сети; эмпирически два-три слоя на блок оптимальны.
- Эксперименты «7-10 лет назад» проверяли число слоёв в блоке (2, 3, L) и сошлись на двух-трёх.
- Пример размерностей для языка: словарь ~250K, сжатие до ~2K; для зрения RGB-изображение 256×256, три канала.
- RMSNorm проще layer-norm: не вычитает среднее, делит на
√(1/M · Σzᵢ²), сохраняет обучаемый параметрγ. - Взрыв активаций при многократном применении слоёв доходит «до
10²⁰и всё взрывается» (пример лектора). - Число параметров одного слоя:
m·d + m, гдеdвходная,mвыходная размерность. - Свёрточная матрица описана как тёплицева (Toeplitz) с разделяемым фильтром.
- Лектор говорит, что был вовлечён в разработку части теории про локальные минимумы и обусловленность residual-сетей («в одной из моих статей»), но подчёркивает, что «никто точно не знает, правы ли они».
Источники
- CS229 lecture notes - упоминаются как место, где есть точные уравнения активаций, кросс-энтропии, свёрточных сетей и одноклассовой классификации.
- Residual Network paper (ResNet), 2015 - источник идеи residual-блоков.
- PyTorch - модуль
CrossEntropyLoss. - Лекции преподавателя Chris по линейным моделям (тот же курс).
- Собственные статьи лектора по подсчёту локальных минимумов (формула Кэца, дифференциальная геометрия) и по оптимизационным свойствам residual-сетей.
Итог
Нейросеть это линейная регрессия, у которой предсказатель заменён на композицию нелинейных слоёв, а всё, что делает её работающей на практике, отобрано опытом GPU-эпохи, а не выведено из теорем.


