Обычно на глубокое обучение смотрят с ужасом, считая, что только доктор математических наук или ботан, работающий в крутой айтишной корпорации, могут разобраться в этой теме. Отбросьте стереотипы: любой программист, знакомый с Python, может добиться впечатляющих результатов. Как? С помощью fastai — библиотеки, предоставляющей комфортный интерфейс для решения наиболее популярных задач.
Создатели fastai доказали, что самые модные и актуальные приложения можно делать быстро и не засыпать над скучными теоретическими выкладками и зубодробительными формулами.
Author(s): Джереми Ховард, Сильвейн Гуггер
Series: Бестселлеры O’Reilly
Edition: 1
Publisher: Питер
Year: 2022
Language: Russian
Commentary: Vector PDF
Pages: 624
City: СПб.
Tags: Machine Learning; Neural Networks; Deep Learning; Natural Language Processing; Decision Trees; Computer Vision; Ethics; Python; Convolutional Neural Networks; Recurrent Neural Networks; Gradient Descent; NumPy; Jupyter; Long Short-Term Memory; PyTorch; Image Classification; Random Forest; Collaborative Filtering; ResNet; fastai
Отзывы о книге
Введение
Для кого эта книга
Что нужно знать
Чему вы научитесь
Предисловие
От издательства
Часть I Глубокое обучение на практике
Глава 1. Путешествие в мир глубокого обучения
Глубокое обучение для всех
Нейронные сети: краткая история
Кто мы
Как изучать глубокое обучение
Ваши проекты и мышление
ПО: PyTorch, fastai и Jupyter (почему это важно)
Ваша первая модель
Настройка сервера глубокого обучения на GPU
Запуск первого блокнота
Что такое машинное обучение
Что такое нейронная сеть
Немного терминологии глубокого обучения
Характерные для ML ограничения
Как работает наш распознаватель изображений
Чему научился наш распознаватель изображений
Распознаватели изображений для других задач
Обобщение терминов
Глубокое обучение подходит не только для классификации изображений
Контрольные и тестовые выборки
Создавайте тестовую выборку обдуманно
Момент выбора собственного приключения
Вопросник
Дополнительные задания
Глава 2. От модели к продакшену
Практика глубокого обучения
Начало проекта
Текущий уровень глубокого обучения
Подход Drivetrain
Сбор данных
От данных к DataLoaders
Аугментация данных
Обучение модели и ее использование для чистки данных
Превращение модели в онлайн-приложение
Использование модели для вывода
Создание в блокноте приложения на основе модели
Превращение блокнота в реальное приложение
Развертывание приложения
Как избежать катастрофы
Непредвиденные последствия и петли обратной связи
Записывайте!
Вопросник
Дополнительные задания
Глава 3. Этика данных
Ключевые примеры этики данных
Баги и оказание помощи: неисправный алгоритм, распределявший медицинские льготы
Петли обратной связи: рекомендательная система YouTube
Предвзятость: «Арест» профессора Латаньи Суини
Почему это важно?
Тесное взаимодействие процессов ML и дизайна продукта
Темы этики данных
Защита прав и ответственность
Петли обратной связи
Необъективность
Дезинформация
Выявление этических проблем и их решение
Анализ проекта
Какие процессы нужно реализовать
Сила разнообразия
Справедливость, ответственность и прозрачность
Роль политики
Эффективность регулирования
Права и политика
Автомобили: исторический прецедент
Резюме
Вопросник
Дополнительные задания
Глубокое обучение на практике: итог!
Часть II Понимание приложений на базе fastai
Глава 4. Обучение классификатора цифр: взгляд изнутри
Пиксели: основа компьютерного зрения
Первая попытка: сходство пикселей
Массивы NumPy и тензоры PyTorch
Вычисление метрик с помощью бродкастинга (Broadcasting)
Стохастический градиентный спуск
Вычисление градиентов
Определение шагов скорости обучения
Сквозной пример SGD
Подведение итогов темы градиентного спуска
Функция потерь MNIST
Сигмоида
SGD и мини-пакеты
Собрать все вместе
Создание оптимизатора
Добавление нелинейности
Углубляемся
Сводка терминов
Вопросник
Дополнительные задания
Глава 5. Классификация изображений
От собак и кошек к породам домашних животных
Подготовка размера
Проверка и отладка DataBlock
Перекрестная энтропия
Активации и метки
Softmax
Логарифмическая функция правдоподобия
Применение логарифма
Интерпретация модели
Улучшение модели
Поиск скорости обучения
Разморозка и перенос обучения
Дискриминативные скорости обучения
Выбор количества эпох
Углубленные архитектуры
Резюме
Вопросник
Дополнительные задания
Глава 6. Другие задачи компьютерного зрения
Классификация по нескольким меткам
Данные
Построение DataBlock
Бинарная перекрестная энтропия
Регрессия
Сборка данных
Обучение модели
Резюме
Вопросник
Дополнительные задания
Глава 7. Обучение современной модели
Imagenette
Нормализация
Прогрессивное изменение размера
Аугментация во время тестирования
Mixup
Сглаживание меток
Резюме
Вопросник
Дополнительные задания
Глава 8. Коллаборативная фильтрация
Первый взгляд на данные
Обучение скрытых факторов
Создание DataLoaders
Коллаборативная фильтрация с нуля
Сокращение весов
Создание собственного модуля вложений
Интерпретация вложений и смещений
Использование fastai.collab
Расстояние между вложениями
Бутстрэппинг модели коллаборативной фильтрации
Глубокое обучение для коллаборативной фильтрации
Резюме
Вопросник
Дополнительные задания
Глава 9. Табличное моделирование
Категориальные вложения
За гранью глубокого обучения
Датасет
Соревнования Kaggle
Знакомство с данными
Деревья решений
Обработка дат
Использование TabularPandas и TabularProc
Создание дерева решений
Категориальные переменные
Случайные леса
Создание случайного леса
Ошибка Out-of-Bag
Интерпретация модели
Дисперсия деревьев для уверенного прогнозирования
Важность признаков
Удаление переменных с низкой важностью
Удаление лишних признаков
Частичная зависимость
Утечка данных
Интерпретатор деревьев
Экстраполяция и нейронные сети
Проблема экстраполяции
Поиск несоответствующих области данных
Использование нейронной сети
Ансамблирование
Бустинг
Совмещение вложений с другими методами
Резюме
Вопросник
Дополнительные задания
Глава 10. Погружение в NLP: рекуррентные нейронные сети
Предварительная обработка текста
Токенизация
Токенизация слов с помощью fastai
Токенизация подслов
Нумеризация с помощью fastai
Разделение текстов на пакеты
Обучение классификатора текста
Создание языковой модели с помощью DataBlock
Тонкая настройка языковой модели
Сохранение и загрузка моделей
Генерация текста
Создание DataLoaders классификатора
Тонкая настройка классификатора
Дезинформация и языковые модели
Резюме
Вопросник
Дополнительные задания
Глава 11. Преобразование данных с помощью Mid-Level API
Знакомство с многослойным API
Преобразования
Написание собственного преобразования
Pipeline
TfmdLists и датасеты: преобразованные коллекции
TfmdLists
Datasets
Использовнаие промежуточного API: SiamesePair
Резюме
Вопросник
Дополнительные задания
Сферы применения fastai: обобщение
Часть III Основы глубокого обучения
Глава 12. Языковая модель с нуля
Данные
Первая языковая модель с нуля
Языковая модель в PyTorch
Первая рекуррентная нейронная сеть
Улучшение RNN
Управление состоянием RNN
Создание дополнительного сигнала
Многослойные RNN
Модель
Взрывающиеся или исчезающие активации
LSTM
Создание LSTM с нуля
Обучение языковой модели с помощью LSTM
Регуляризация LSTM
Dropout
Регуляризация активаций и регуляризация временных активаций
Обучение регуляризованной LSTM со связанными весами
Резюме
Вопросник
Дополнительные задания
Глава 13. Сверточные нейронные сети
Магия сверток
Отображение ядра свертки
Свертки в PyTorch
Штрихи и заполнение
Понимание сверточных уравнений
Первая сверточная нейронная сеть
Создание CNN
Разъяснение арифметики сверток
Рецептивные поля
О Twitter
Цветные изображения
Повышение стабильности обучения
Базовая модель
Увеличение размера пакета
Обучение 1cycle
Пакетная нормализация
Резюме
Вопросник
Дополнительные задания
Глава 14. ResNet
Возвращение к Imagenette
Построение современной CNN: ResNet
Пропускающие соединения
Актуальная ResNet
Зауженные слои
Резюме
Вопросник
Дополнительные задания
Глава 15. Архитектуры приложений
Компьютерное зрение
cnn_learner
unet_learner
Сиамская сеть
Обработка естественного языка
Табличные модели
Резюме
Вопросник
Дополнительные задания
Глава 16. Процесс обучения
Создание базовой модели
Универсальный оптимизатор
Импульс
RMSProp
Adam
Раздельное сокращение весов
Обратные вызовы
Создание обратного вызова
Упорядочивание обратных вызовов и исключения
Резюме
Вопросник
Дополнительные задания
Основы глубокого обучения: итог
Часть IV Глубокое обучение с чистого листа
Глава 17. Продвинутые основы нейронной сети
Создание слоя нейронной сети с нуля
Моделирование нейрона
Матричное умножение
Поэлементная арифметика
Уширение (broadcasting)
Соглашение Эйнштейна
Прямой и обратный проход
Определение и инициализация слоя
Градиенты и обратный проход
Рефакторинг модели
Переходим в PyTorch
Резюме
Вопросник
Дополнительные задания
Глава 18. Интерпретация CNN с помощью CAM
CAM и хуки
CAM градиентов
Резюме
Вопросник
Дополнительные задания
Глава 19. Класс Learner с нуля
Данные
Dataset
Module и Parameter
Простая CNN
Функция потерь
Learner
Обратные вызовы
Планирование скорости обучения
Резюме
Вопросник
Дополнительные задания
Глава 20. Итоги
Приложения
Приложение A. Создание блога
Блоггинг на GitHub Pages
Создание репозитория
Настройка домашней страницы
Создание публикаций
Синхронизация GitHub и компьютера
Блоггинг из Jupyter
Приложение Б. Схема подготовки проекта по аналитике данных
Специалисты по данным
Стратегия
Данные
Аналитика
Реализация
Обслуживание
Ограничения
Об авторах
Благодарности
Об обложке