Глубокое обучение: продвинутое компьютерное зрение GAN, SSD и другое
О чём курс
О чём курс
Lazy Programmer Inc. разбирает современные задачи компьютерного зрения на основе свёрточных нейронных сетей: перенос обучения, обнаружение объектов, перенос стиля и генерацию изображений. Вы переходите от базовой архитектуры CNN к VGG, ResNet и Inception, а затем применяете эти сети к изображениям клеток крови. Этот пример используется для работы с классификацией изображений; заявления автора о превосходстве такой системы над врачом остаются его оценкой.
Обнаружение объектов и генерация изображений
В части об обнаружении объектов вы рассматриваете, как определить положение объекта на изображении и предсказать его класс. Разбираются локализация, проблемы масштаба и формы, алгоритм SSD и его применение к видео. Автор связывает эту задачу с системами, которым нужно распознавать автомобили, пешеходов, велосипеды и светофоры.
Для переноса стиля используются изображение с содержимым и изображение с образцом стиля: сеть создаёт новый вариант на их основе. Отдельные темы — карты активации классов и GAN, с помощью которых генерируют изображения. В практическом проекте вы последовательно реализуете локализацию объектов.
Подготовка и инструменты
Перед продвинутыми темами курс повторяет машинное обучение, искусственные нейронные сети и основы CNN. Вы работаете с классификацией и регрессией, функциями активации, аугментацией данных и батч-нормализацией. Уроки по Google Colab охватывают настройку среды, загрузку данных и работу с GPU или TPU; отдельно рассматриваются Keras и TensorFlow 2.
В материалах есть код, ноутбуки и данные, а также справочные разделы по установке среды и написанию кода на Python. Курс идёт на английском языке. Среди заявленных тем также названы основы технологий ChatGPT, GPT-4, DALL-E, Midjourney и Stable Diffusion; основное содержание программы сосредоточено на компьютерном зрении.
Программа обучения
- Введение: Введение
- Обзор и перспективы
- Как успешно пройти этот курс
- Google Colab и настройка: Где получить код, ноутбуки и данные
- Введение в Google Colab, как бесплатно использовать GPU или TPU
- Загрузка собственных данных в Google Colab
- Где изучить Numpy, Scipy, Matplotlib, Pandas и Scikit-Learn?
- Временные ошибки 403
- Обзор основ машинного обучения: Что такое машинное обучение?
- Подготовка к коду (теория классификации)
- Введение в код для начинающих
- Ноутбук по классификации
- Подготовка к коду (теория регрессии)
- Ноутбук по регрессии
- Нейрон
- Как модель «учится»?
- Составление прогнозов
- Сохранение и загрузка модели
- Ящик предложений
- Обзор искусственных нейронных сетей (ANN): Введение в раздел по искусственным нейронным сетям
- Прямое распространение
- Геометрическое представление
- Функции активации
- Многоклассовая классификация
- Как представлять изображения
- Пояснение к смешиванию цветов
- Подготовка к коду (ANN)
- ANN для классификации изображений
- ANN для регрессии
- Обзор свёрточных нейронных сетей (CNN): Что такое свёртка? (часть 1)
- Что такое свёртка? (часть 2)
- Что такое свёртка? (часть 3)
- Свёртка на цветных изображениях
- Архитектура CNN
- Подготовка к коду CNN
- CNN для Fashion MNIST
- CNN для CIFAR-10
- Аугментация данных
- Батч-нормализация
- Улучшение результатов CIFAR-10
- VGG и трансферное обучение: Введение в раздел VGG
- Что особенного в VGG?
- Трансферное обучение
- Связь с жадным послойным предобучением
- 2 подхода к трансферному обучению
- Код трансферного обучения (часть 1)
- Код трансферного обучения (часть 2)
- Итоги раздела VGG
- ResNet (и Inception): Введение в раздел ResNet
- Архитектура ResNet
- Трансферное обучение с ResNet в коде
- Датасет изображений клеток крови
- Как построить ResNet в коде
- Свёртки 1x1
- Дополнительно: Inception
- Изображения разного размера в одной сети
- Итоги раздела ResNet
- Обнаружение объектов (SSD / RetinaNet): Введение в раздел SSD
- Локализация объектов
- Что такое обнаружение объектов?
- Как найти объект на изображении?
- Проблема масштаба
- Проблема формы
- SSD Tensorflow Object Detection API (часть 1)
- SSD Tensorflow Object Detection API (часть 2)
- SSD для обнаружения объектов в видео
- Дополнительно: Intersection over Union и Non-max Suppression
- Итоги раздела SSD
- Перенос стиля: Введение в раздел переноса стиля
- Теория переноса стиля
- Оптимизация функции потерь
- Код (часть 1)
- Код (часть 2)
- Код (часть 3)
- Итоги раздела переноса стиля
- Карты активации классов: Карты активации классов (теория)
- Карты активации классов (код)
- GAN (генеративно-состязательные сети): Теория GAN
- Код GAN
- Проект: локализация объектов: Введение и обзор локализации
- Набросок кода локализации (часть 1)
- Код локализации (часть 1)
- Набросок кода локализации (часть 2)
- Код локализации (часть 2)
- Набросок кода локализации (часть 3)
- Код локализации (часть 3)
- Набросок кода локализации (часть 4)
- Код локализации (часть 4)
- Набросок кода локализации (часть 5)
- Код локализации (часть 5)
- Набросок кода локализации (часть 6)
- Код локализации (часть 6)
- Набросок кода локализации (часть 7)
- Код локализации (часть 7)
- Обзор основ Keras и Tensorflow 2: (Обзор) Основы Tensorflow
- (Обзор) Нейронная сеть на Tensorflow в коде
- (Обзор) Обсуждение Keras
- (Обзор) Нейронная сеть на Keras в коде
- (Обзор) Функциональный API Keras
- (Обзор) Как легко конвертировать код Keras в Tensorflow 2.0
- Заключение курса: Что изучать дальше
- Введение в приложение / FAQ: Что такое приложение?
- Настройка среды (FAQ по запросу студентов): Проверка перед установкой
- Настройка среды Anaconda
- Как установить Numpy, Scipy, Matplotlib, Pandas, IPython, Theano и TensorFlow
- Дополнительная помощь с кодом на Python для начинающих (FAQ по запросу студентов): Как писать код самостоятельно (часть 1)
- Как писать код самостоятельно (часть 2)
- Доказательство того, что использование Jupyter Notebook равнозначно его неиспользованию
- Python 2 vs Python 3
- Как использовать Github и дополнительные советы по коду (дополнительно)
- Эффективные стратегии обучения машинному обучению (FAQ по запросу студентов): Как успешно пройти этот курс (расширенная версия)
- Это для начинающих или экспертов?
- Академический или практический?
- Быстрый или медленный темп?
- Дорожная карта предварительных требований по машинному обучению и ИИ (часть 1)
- Дорожная карта предварительных требований по машинному обучению и ИИ (часть 2)
- Финал приложения / FAQ: Бонус
Теги курса
Другие материалы автора 2
LP Lazy Programmer Inc. Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.