Курс
ИИ 10 класса: глубокое обучение и мультимодальный ИИ
Собирай и обучай нейросети в PyTorch для изображений, текста и звука.
Иди по урокам по порядку. В конце ты умеешь считать выход нейрона, сравнивать активации ReLU, sigmoid и softmax и писать прямой проход маленькой сети на NumPy. Ты умеешь выбрать потери, объяснить градиентный спуск и обратное распространение и написать скрипт с полным циклом обучения и теста в PyTorch. Ты умеешь обучить классификатор изображений на CNN, обучить классификатор тональности отличать положительные отзывы от отрицательных, объяснить, как внимание взвешивает другие токены, и классифицировать короткие звуковые клипы. Ты умеешь уменьшать переобучение, дообучить предобученную модель на новых классах, группировать ошибки и находить их причину и представить умный монитор дикой природы, проверенный на невиденных изображениях.
Как пользоваться этими уроками
- Начни с урока, где написано Сделай это. Иди дальше, когда сам делаешь строку под названием.
- Сначала играй: Игры. Потом сделай: Проверка. 8 из 10 верно для зачёта. Листы на бумаге. Ответы внизу.
- Каждый урок опирается на предыдущий. Записывай каждый запуск обучения: настройки, кривую потерь и балл теста.
- Уроки с кодом идут на Python и PyTorch в бесплатном онлайн-блокноте с GPU. Хватит маленьких моделей и маленьких наборов данных. Бери только открытые наборы, которые тебе можно использовать. Никогда не обучай на фото людей без их разрешения.
В каждом уроке есть игры, проверка и листы.
0 из 36
Основы нейросетей
- 1НейроныСчитай выход нейрона из входов, весов и смещения.
- Запиши взвешенную сумму плюс смещение.
- Посчитай её от руки для трёх входов.
- Посчитай её в коде скалярным произведением.
- 2АктивацииСравни активации ReLU, sigmoid и softmax.
- Построй график каждой активации.
- Объясни, зачем сети нужна нелинейная активация.
- Используй softmax, чтобы превратить оценки в вероятности.
- 3Слои и сетиСкладывай слои в сеть.
- Запиши слой как умножение матриц.
- Следи за формой данных в каждом слое.
- Посчитай параметры сети.
- 4Маленькая сетьНапиши прямой проход маленькой сети на NumPy.
- Собери сеть из двух слоёв на NumPy.
- Прогони через неё батч входов.
- Проверь форму выхода.
Обучение нейросетей
- 5ПотериВыбери потери для задачи и посчитай их.
- Используй среднеквадратичную ошибку для регрессии.
- Используй перекрёстную энтропию для классификации.
- Скажи, что значит, когда потери падают.
- 6Градиентный спускОбъясни, как градиентный спуск двигает веса вниз.
- Найди наклон кривой потерь.
- Делай шаги со скоростью обучения.
- Посмотри, что будет, если скорость слишком большая или слишком маленькая.
- 7Обратное распространениеПроследи обратное распространение ошибки назад по сети.
- Примени цепное правило к крошечной сети.
- Посчитай один градиент от руки.
- Сверь его с автоматическим дифференцированием.
- 8Обучи сетьОбучи маленькую сеть и построй график потерь.
- Обучай мини-батчами.
- Построй график потерь обучения и валидации.
- Остановись, когда потери валидации перестают улучшаться.
Фреймворки глубокого обучения
- 9ТензорыСоздавай тензоры PyTorch и меняй их форму.
- Создай тензоры и проверь форму и тип.
- Меняй форму, складывай и нарезай их.
- Перенеси тензоры на GPU.
- 10МодулиСобери модель модулями torch.nn.
- Сделай подкласс nn.Module.
- Используй слои Linear и активации.
- Выведи модель и число её параметров.
- 11ОптимизаторыОбучай оптимизаторами SGD и Adam.
- Используй zero_grad, backward и step.
- Сравни SGD и Adam на одной задаче.
- Используй расписание скорости обучения.
- 12Скрипт обученияНапиши скрипт с полным циклом обучения и теста.
- Загрузи данные через DataLoader.
- Обучи, проверь на валидации и протестируй.
- Сохрани лучшую модель.
Компьютерное зрение
- 13Изображения как тензорыЗагружай изображения как тензоры и нормализуй их.
- Загрузи изображение как каналы, высоту и ширину.
- Измени размер и нормализуй его.
- Покажи батч сеткой.
- 14СвёрткиОбъясни, как фильтр свёртки находит края.
- Проведи фильтр 3×3 по изображению от руки.
- Примени фильтры краёв в коде.
- Объясни stride, padding и pooling.
- 15CNNСобери свёрточную нейросеть, CNN.
- Сложи слои свёртки, активации и pooling.
- Разверни и добавь голову классификатора.
- Следи за формами по сети.
- 16Классификатор изображенийОбучи классификатор изображений на CNN.
- Обучи на маленьком наборе изображений.
- Сообщи точность на тесте.
- Покажи изображения, которые он классифицировал неверно.
Обработка естественного языка
- 17ТокенизацияСделай токенизацию: преврати текст в токены и ID.
- Сравни токены слов и подслов.
- Собери словарь.
- Дополни последовательности до одной длины.
- 18ЭмбеддингиОбъясни, как эмбеддинги ставят похожие слова рядом.
- Используй слой эмбеддингов.
- Найди ближайшие слова к слову.
- Построй график эмбеддингов в двух измерениях.
- 19Модели текстаСобери модель текста, которая читает последовательность токенов.
- Усредни эмбеддинги в один вектор.
- Используй простой рекуррентный слой.
- Сравни оба способа.
- 20Классификатор тональностиОбучи классификатор тональности отличать положительные отзывы от отрицательных.
- Обучи на наборе отзывов.
- Сообщи долю верных, точность и полноту.
- Найди отзывы, которые его обманывают, например сарказм.
Трансформеры
- 21ВниманиеОбъясни, как внимание взвешивает другие токены.
- Объясни запросы, ключи и значения.
- Посчитай веса внимания для короткого предложения.
- Скажи, почему внимание помогает смыслу на большом расстоянии.
- 22Блоки трансформераНазови части блока трансформера.
- Назови многоголовое внимание, слой feed-forward и слои нормализации.
- Объясни остаточные связи.
- Объясни позиционные кодировки.
- 23Предобученные моделиИспользуй предобученную модель-трансформер для задачи.
- Загрузи предобученную модель и токенизатор.
- Классифицируй им текст.
- Сравни его со своей моделью тональности.
- 24Карты вниманияЧитай карту внимания.
- Построй веса внимания как тепловую карту.
- Найди, на какие слова смотрит токен.
- Скажи, почему внимание — не полное объяснение.
Звук и мультимодальный ИИ
- 25Звук как данныеПревращай звук как данные в волну и спектрограмму.
- Загрузи звук и построй график волны.
- Объясни частоту дискретизации.
- Сделай спектрограмму.
- 26Классификатор звукаКлассифицируй короткие звуковые клипы классификатором звука.
- Смотри на спектрограммы как на изображения.
- Обучи на них CNN.
- Проверь с фоновым шумом.
- 27Мультимодальные входыОбъясни, как модель соединяет мультимодальные входы: изображения и текст.
- Объясни отдельные энкодеры для каждого входа.
- Объясни общее пространство эмбеддингов.
- Назови три мультимодальных приложения.
- 28Изображение и текстСопоставь изображение и текст: свяжи изображения с подписями предобученной моделью.
- Сделай эмбеддинги изображений и подписей.
- Ранжируй подписи для каждого изображения.
- Ищи изображения текстовым запросом.
Улучшение модели
- 29РегуляризацияУменьшай переобучение регуляризацией: dropout и затухание весов.
- Добавь dropout.
- Добавь затухание весов.
- Сравни кривые валидации.
- 30Аугментация данныхСделай аугментацию данных: добавь отражённые и обрезанные изображения в обучающий набор.
- Применяй отражения, обрезки и смену цвета.
- Аугментируй только обучающий набор.
- Измерь изменение точности на тесте.
- 31Перенос обученияПереносом обучения дообучи предобученную модель на новых классах.
- Заморозь предобученные слои.
- Замени голову и обучи её.
- Разморозь и дообучи с маленькой скоростью обучения.
- 32Разбор ошибокСделай разбор ошибок: сгруппируй ошибки и найди их причину.
- Прочитай матрицу ошибок для многих классов.
- Разложи ошибки по группам.
- Выбери исправление для самой большой группы.
Проект по глубокому обучению
- 33Данные о дикой природеВыбери и раздели открытый набор изображений дикой природы.
- Выбери открытый набор фотоловушек или дикой природы.
- Выбери от 5 до 10 видов.
- Дели по месту, чтобы тест был честным.
- 34Дообучи модельДообучи модель-классификатор изображений на классах дикой природы.
- Дообучи предобученную модель.
- Следи за точностью на валидации.
- Сохрани лучший чекпоинт.
- 35Демо-интерфейсСобери демо-интерфейс, который показывает предсказания по загруженным изображениям.
- Прими загруженное изображение.
- Покажи три лучших вида и их оценки.
- Покажи «не уверен», когда уверенность низкая.
- 36Умный монитор дикой природыПредставь умный монитор дикой природы: точность на невиденных изображениях и главные ошибки.
- Сообщи точность на невиденных изображениях.
- Покажи главные ошибки и их причины.
- Скажи, что изменишь дальше.