Вторая лекция курса Stanford CS230 под руководством Киона Катон-Фу (Keon Katon-Fu) посвящена переходу от теории нейронных сетей к практическому применению ИИ в индустрии. Кион, будучи соавтором курса вместе с Эндрю Ыном и генеральным директором компании Warera, делает упор не на академическую абстракцию, а на принятие инженерных решений: как выбирать архитектуру, собирать данные и проектировать функции потерь для реальных задач — от распознавания лиц до создания мультимодальных систем.
🛠 Основы глубокого обучения: архитектура и параметры 3:10
В традиционном обучении с учителем (supervised learning) процесс строится вокруг преобразования входных данных ($X$) в выходные ($Y$). По мнению Киона Катон-Фу, любую модель, развернутую «в дикой природе» (например, ChatGPT), можно свести к двум файлам в облаке: один описывает архитектуру (чертеж), другой — обученные параметры (веса) .
Процесс обучения модели включает в себя:
- Прямой проход (Forward pass): данные проходят через слои нейронов, где вычисляются линейные функции ($W^T X + b$) и применяются функции активации (например, Sigmoid) .
- Функция потерь (Loss function): механизм сравнения предсказания модели с «земной истиной» (ground truth). Кион утверждает, что проектирование хороших функций потерь — это настоящее искусство, требующее креативности .
- Градиентный спуск (Gradient descent): корректировка параметров на основе обратной связи от функции потерь, чтобы минимизировать ошибку .
Одной из ключевых концепций курса является «емкость» (capacity) модели. Кион поясняет, что слишком глубокая сеть на маленьком наборе данных просто «зазубрит» примеры (переобучится), в то время как слишком простая сеть не сможет уловить сложные закономерности данных .
🌓 Кейс-стади 1: Классификация «День-Ночь» 18:47
Первый практический пример — создание системы, которая определяет по фотографии время суток. Это классическая задача бинарной классификации.
Технический процесс реализации:
- Определение задачи: Нужно четко ограничить область применения. Одно дело — распознавать время суток в конкретном парке, другое — в любой точке планеты, включая помещения .
- Выбор разрешения: Вместо использования тяжелых HD-кадров, Кион рекомендует метод «человека-прокси».
- Параметры модели:
🗣 Кейс-стади 2: Детекция триггерного слова (Trigger Word Detection) 35:56
Разработка систем вроде Alexa или Siri требует каскадного подхода для экономии энергии. Сначала работает очень легкая модель детекции активности (наличие звука), затем — модель триггерного слова (например, "Activate"), и только потом — тяжелая модель понимания речи .
Инструменты и методы сбора данных:
- Синтез данных: Вместо ручной разметки миллионов часов аудио, Кион описывает следующий алгоритм :
- Записать 1000 примеров слова «Activate» (положительные).
- Записать тысячи примеров других слов и шумов (отрицательные).
- Скачать фоновый шум (метро, кафе) — это «бесплатные» данные из сети.
- Написать Python-скрипт, который случайно накладывает целевое слово на фоновый шум и автоматически генерирует метки времени (labels).
- Стратегия разметки: Кион делится «инженерным хаком» — вместо одной единицы в момент произнесения слова, лучше ставить серию единиц на протяжении небольшого интервала. Это помогает сбалансировать данные, чтобы сеть не привыкла выдавать всегда «ноль» из-за редкости триггера .
👤 Кейс-стади 3: Верификация и идентификация лиц 55:12
Существует разница между верификацией (сравнение 1:1, как при проверке ID) и идентификацией (сравнение 1:N, как в камерах безопасности) .
Алгоритм обучения через Triplet Loss:
Для обучения модели распознавания лиц используется концепция энкодинга (преобразование лица в вектор из 128 чисел). Чтобы векторы одного человека были близки, а разных — далеки, применяется Triplet Loss :
- Anchor (Якорь): Фотография человека А.
- Positive (Положительный): Другое фото того же человека А.
- Negative (Отрицательный): Фото человека Б.
Цель функции потерь — минимизировать расстояние между Anchor и Positive и максимизировать между Anchor и Negative.
Для поиска по базе используется алгоритм K-Nearest Neighbors (KNN): при входе человека система вычисляет его вектор и ищет «ближайших соседей» в базе данных векторов . По словам Киона, именно так работают функции группировки лиц в современных смартфонах: они используют алгоритм кластеризации (K-Means) на основе обученных энкодингов .
🧠 Self-Supervised Learning и возникновение смыслов 1:20:25
Поскольку разметка данных стоит дорого, индустрия переходит к самообучению (self-supervised learning). Здесь модель учится на самих данных без явных меток.
Методы самообучения:
- Для изображений (Contrastive Learning): Мы берем фото собаки, поворачиваем его на 90 градусов или обрезаем. Мы заставляем нейросеть понимать, что это все еще одна и та же собака, создавая похожие векторы для разных вариаций одного изображения (проект SimCLR) .
- Для текста (Next Token Prediction): В основе GPT лежит предсказание следующего слова. Кион утверждает, что простая задача «угадай следующее слово» заставляет модель неявно учить факты о мире, логику и грамматику .
Примеры эмерджентного (внезапно возникшего) поведения:
- Фраза «Я налил себе чашку...» заставляет модель понять свойства жидкостей (чай, кофе) .
- Фраза «Столица Франции — ...» заставляет модель запоминать географические факты .
- Условие «Если идет дождь, я возьму...» учит модель причинно-следственным связям .
🔗 Мультимодальность и слабо контролируемое обучение 1:38:14
Weakly supervised learning (слабо контролируемое обучение) использует уже существующие в мире пары данных. Например, посты в Instagram с подписями или видео на YouTube с субтитрами. Это позволяет связывать разные модальности (звук, текст, изображение) в едином векторном пространстве .
Кион приводит в пример проект ImageBind от Meta. Благодаря тому, что текст является связующим звеном, модель может найти звук барабанов по текстовому запросу или сопоставить тепловое изображение с обычной фотографией, даже если она никогда не видела их в одной паре во время обучения . Это открывает путь к созданию ИИ-агентов, которые воспринимают мир так же целостно, как человек.