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

Источник: https://www.youtube.com/watch?v=pdqofxJeBN8
Канал: Stanford Online
Опубликовано: 02.09.2025

---

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

## 🖼️ Суть задачи и семантический разрыв
[[JUMP:01:43]]

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

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

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

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

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

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

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

*   **L1 (Manhattan distance):** сумма абсолютных разностей значений каждого пикселя [19:19].
*   **L2 (Euclidean distance):** корень из суммы квадратов разностей [30:34].

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

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

*   Если $k=1$, модель чувствительна к шуму и аутлайрам [27:14].
*   Увеличение $k$ делает границы принятия решения более плавными и устойчивыми к выбросам [28:00].

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

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

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

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

*   $x$ — входное изображение (вытянутое в вектор).
*   $W$ — веса (параметры), которые определяют важность каждого пикселя для конкретного класса [48:04].
*   $b$ — вектор смещения (bias), позволяющий сдвигать решающие границы без привязки к началу координат [49:13].

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

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

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

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

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

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

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