Stanford: «Линейные классификаторы — это фундамент всего глубокого обучения»

Stanford Online 79,1 тыс. 1 ч 6 мин 3 мин 02.09.2025
Главное

Классификация изображений — это фундаментальный вызов для компьютерного зрения, который служит отправной точкой для понимания работы современных нейросетей. В рамках курса Stanford CS231N (весна 2025) лекция Стэндфордского университета посвящена переходу от простейших алгоритмов к линейным классификаторам, которые являются «кирпичиками» глубокого обучения.

🖼️ Суть задачи и семантический разрыв 1:43

Image Classification заключается в присвоении одного лейбла из заранее определенного набора (например, «собака», «кошка», «грузовик») входному изображению . Для человеческого мозга это тривиальная операция, но для машины изображение — это просто тензор чисел. Например, цветная картинка 800x600 пикселей представляется как массив данных размером 800x600x3, где каждое значение (от 0 до 255) отражает интенсивность красного, зеленого и синего каналов (RGB) .

Основная сложность заключается в «семантическом разрыве» между человеческим восприятием и программным кодом. Различия в освещении, деформация объектов (особенно котов), окклюзия (перекрытие частей объекта), изменение ракурса камеры и внутриклассовая вариативность (разные породы собак) полностью меняют значения пикселей в тензоре . При этом алгоритм должен уметь распознать, что перед ним один и тот же объект.

Попытки «захардкодить» правила распознавания по краям или углам не увенчались успехом из-за плохой масштабируемости . Поэтому индустрия перешла к data-driven approach (подходу, основанному на данных), состоящему из трех шагов:

  1. Сбор набора данных (изображения + метки).
  2. Обучение классификатора.
  3. Оценка модели на новых (тестовых) изображениях .

📊 Алгоритм k-Nearest Neighbor (k-NN) 16:55

Самый простой метод классификации — поиск «ближайшего соседа». В процессе «обучения» алгоритм просто запоминает все тренировочные данные . На этапе предсказания он сравнивает новое изображение со всеми сохраненными и находит наиболее похожее.

Для оценки схожести используются метрики расстояния:

Проблема вычислительной сложности

Главный недостаток Nearest Neighbor — асимметрия нагрузки. Обучение происходит мгновенно ($O(1)$), но предсказание требует сравнения со всеми $N$ примерами в базе ($O(N)$) . В реальных задачах, вроде ChatGPT или поиска по картинкам, это неприемлемо: мы готовы тратить недели на обучение офлайн, но предсказание должно быть быстрым .

Гиперпараметры и их настройка

В k-NN есть две переменные, которые выбирает человек: значение $k$ (число соседей) и метрика расстояния .

Для выбора этих параметров используется валидация. Спикер подчеркивает: никогда нельзя настраивать гиперпараметры по тестовым данным — это «читерство», так как модель не покажет реальной способности к обобщению на новых данных . Рекомендуется метод Cross-validation (кросс-валидация), при котором данные разбиваются на $F$ частей (фолдов), и модель тестируется на каждом из них по очереди .

📏 Линейные классификаторы: фундамент нейросетей 46:19

Линейная классификация — это параметрический подход, который лежит в основе почти всех архитектур глубокого обучения . В отличие от k-NN, здесь нам не нужно хранить все изображения. Мы обучаем матрицу весов $W$.

Суть метода описывается формулой $f(x, W) = Wx + b$, где:

Визуальная и геометрическая интерпретации

С визуальной точки зрения каждая строка в матрице $W$ является «шаблоном» класса. При визуализации обученных весов датасета CIFAR-10 в строке «автомобиль» можно увидеть очертания лобового стекла и капота .

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

📉 Функция потерь и Softmax 55:20

Чтобы понять, насколько «плохо» работает классификатор с текущими весами $W$, вводится функция потерь (Loss function) . Один из самых популярных классификаторов — Softmax (мультиномиальная логистическая регрессия) .

Алгоритм работы Softmax следующий:

  1. Вычисляются «логиты» (сырые оценки классов) через $Wx+b$.
  2. Проводится экспоненциирование, чтобы получить положительные числа.
  3. Проводится нормализация, чтобы сумма всех оценок равнялась 1 .

Результатом являются вероятности принадлежности к классу. Наша цель — минимизировать отрицательный логарифм вероятности правильного класса (Negative Log Likelihood) . Это эквивалентно максимизации вероятности того, что модель выберет верный ответ. В глубоком обучении этот подход также называют кросс-энтропией (Cross Entropy) .

💬 Цитаты

«Для нас это очень легкая задача, но когда дело доходит до кодирования того, как компьютер понимает изображение, — это совершенно другая история.»

Преподаватель Stanford 03:18

«Мы хотим строить классификаторы, которые работают быстро во время предсказания. Обучение может быть долгим, но тест должен быть мгновенным.»

Преподаватель Stanford 25:34
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Семантический разрыв
Различие между сырыми данными (пикселями) и смысловой интерпретацией объекта человеком.
Гиперпараметры
Настройки алгоритма (например, число k), которые не обучаются сами, а задаются разработчиком.
L1 расстояние
Манхэттенское расстояние, вычисляемое как сумма абсолютных разностей координат.
Softmax
Функция, преобразующая вектор чисел в вектор вероятностей, сумма которых равна единице.
Кросс-энтропия
Мера разницы между двумя распределениями вероятностей, используемая как функция потерь.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Linear Classifier Softmax k-Nearest Neighbor CIFAR-10 Cross-validation