# Кион Катон-Фу из Stanford: «Глубокое обучение — это прежде всего инженерная дисциплина»

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

---

Вторая лекция курса Stanford CS230 под руководством Киона Катон-Фу (Keon Katon-Fu) посвящена переходу от теории нейронных сетей к практическому применению ИИ в индустрии. Кион, будучи соавтором курса вместе с Эндрю Ыном и генеральным директором компании Warera, делает упор не на академическую абстракцию, а на принятие инженерных решений: как выбирать архитектуру, собирать данные и проектировать функции потерь для реальных задач — от распознавания лиц до создания мультимодальных систем.

## 🛠 Основы глубокого обучения: архитектура и параметры
[[JUMP:03:10]]

В традиционном обучении с учителем (supervised learning) процесс строится вокруг преобразования входных данных ($X$) в выходные ($Y$). По мнению Киона Катон-Фу, любую модель, развернутую «в дикой природе» (например, ChatGPT), можно свести к двум файлам в облаке: один описывает архитектуру (чертеж), другой — обученные параметры (веса) [04:27]. 

Процесс обучения модели включает в себя:

*   **Прямой проход (Forward pass):** данные проходят через слои нейронов, где вычисляются линейные функции ($W^T X + b$) и применяются функции активации (например, Sigmoid) [09:31].
*   **Функция потерь (Loss function):** механизм сравнения предсказания модели с «земной истиной» (ground truth). Кион утверждает, что проектирование хороших функций потерь — это настоящее искусство, требующее креативности [08:00].
*   **Градиентный спуск (Gradient descent):** корректировка параметров на основе обратной связи от функции потерь, чтобы минимизировать ошибку [05:22].

Одной из ключевых концепций курса является «емкость» (capacity) модели. Кион поясняет, что слишком глубокая сеть на маленьком наборе данных просто «зазубрит» примеры (переобучится), в то время как слишком простая сеть не сможет уловить сложные закономерности данных [13:57].

## 🌓 Кейс-стади 1: Классификация «День-Ночь»
[[JUMP:18:47]]

Первый практический пример — создание системы, которая определяет по фотографии время суток. Это классическая задача бинарной классификации.

**Технический процесс реализации:**

1.  **Определение задачи:** Нужно четко ограничить область применения. Одно дело — распознавать время суток в конкретном парке, другое — в любой точке планеты, включая помещения [22:15].
2.  **Выбор разрешения:** Вместо использования тяжелых HD-кадров, Кион рекомендует метод «человека-прокси».
    *   Исследователи распечатывают фото в разных разрешениях и проверяют, на каком этапе человек перестает понимать, день это или ночь.
    *   Для этой задачи оптимальным оказалось разрешение **64x64x3** [27:47].
3.  **Параметры модели:**
    *   **Вход:** Векторизованное изображение (RGB каналы).
    *   **Выход:** Число от 0 до 1 (Sigmoid).
    *   **Функция потерь:** Binary Cross-Entropy (логистическая потеря) [31:57].

## 🗣 Кейс-стади 2: Детекция триггерного слова (Trigger Word Detection)
[[JUMP:35:56]]

Разработка систем вроде Alexa или Siri требует каскадного подхода для экономии энергии. Сначала работает очень легкая модель детекции активности (наличие звука), затем — модель триггерного слова (например, "Activate"), и только потом — тяжелая модель понимания речи [35:11].

**Инструменты и методы сбора данных:**

*   **Синтез данных:** Вместо ручной разметки миллионов часов аудио, Кион описывает следующий алгоритм [51:23]:
    1.  Записать 1000 примеров слова «Activate» (положительные).
    2.  Записать тысячи примеров других слов и шумов (отрицательные).
    3.  Скачать фоновый шум (метро, кафе) — это «бесплатные» данные из сети.
    4.  Написать **Python-скрипт**, который случайно накладывает целевое слово на фоновый шум и автоматически генерирует метки времени (labels).
*   **Стратегия разметки:** Кион делится «инженерным хаком» — вместо одной единицы в момент произнесения слова, лучше ставить серию единиц на протяжении небольшого интервала. Это помогает сбалансировать данные, чтобы сеть не привыкла выдавать всегда «ноль» из-за редкости триггера [47:20].

## 👤 Кейс-стади 3: Верификация и идентификация лиц
[[JUMP:55:12]]

Существует разница между верификацией (сравнение 1:1, как при проверке ID) и идентификацией (сравнение 1:N, как в камерах безопасности) [1:13:22]. 

**Алгоритм обучения через Triplet Loss:**

Для обучения модели распознавания лиц используется концепция энкодинга (преобразование лица в вектор из 128 чисел). Чтобы векторы одного человека были близки, а разных — далеки, применяется **Triplet Loss** [1:12:13]:

1.  **Anchor (Якорь):** Фотография человека А.
2.  **Positive (Положительный):** Другое фото того же человека А.
3.  **Negative (Отрицательный):** Фото человека Б.

Цель функции потерь — минимизировать расстояние между Anchor и Positive и максимизировать между Anchor и Negative. 

Для поиска по базе используется алгоритм **K-Nearest Neighbors (KNN)**: при входе человека система вычисляет его вектор и ищет «ближайших соседей» в базе данных векторов [1:16:35]. По словам Киона, именно так работают функции группировки лиц в современных смартфонах: они используют алгоритм кластеризации (K-Means) на основе обученных энкодингов [1:18:12].

## 🧠 Self-Supervised Learning и возникновение смыслов
[[JUMP:1:20:25]]

Поскольку разметка данных стоит дорого, индустрия переходит к самообучению (self-supervised learning). Здесь модель учится на самих данных без явных меток.

**Методы самообучения:**

*   **Для изображений (Contrastive Learning):** Мы берем фото собаки, поворачиваем его на 90 градусов или обрезаем. Мы заставляем нейросеть понимать, что это все еще одна и та же собака, создавая похожие векторы для разных вариаций одного изображения (проект **SimCLR**) [1:25:50].
*   **Для текста (Next Token Prediction):** В основе GPT лежит предсказание следующего слова. Кион утверждает, что простая задача «угадай следующее слово» заставляет модель неявно учить факты о мире, логику и грамматику [1:27:36].

**Примеры эмерджентного (внезапно возникшего) поведения:**

*   Фраза «Я налил себе чашку...» заставляет модель понять свойства жидкостей (чай, кофе) [1:28:18].
*   Фраза «Столица Франции — ...» заставляет модель запоминать географические факты [1:29:54].
*   Условие «Если идет дождь, я возьму...» учит модель причинно-следственным связям [1:31:30].

## 🔗 Мультимодальность и слабо контролируемое обучение
[[JUMP:1:38:14]]

Weakly supervised learning (слабо контролируемое обучение) использует уже существующие в мире пары данных. Например, посты в Instagram с подписями или видео на YouTube с субтитрами. Это позволяет связывать разные модальности (звук, текст, изображение) в едином векторном пространстве [1:34:47].

Кион приводит в пример проект **ImageBind** от Meta. Благодаря тому, что текст является связующим звеном, модель может найти звук барабанов по текстовому запросу или сопоставить тепловое изображение с обычной фотографией, даже если она никогда не видела их в одной паре во время обучения [1:38:01]. Это открывает путь к созданию ИИ-агентов, которые воспринимают мир так же целостно, как человек.