Искусственный интеллект и компьютерное зрение. Реальные проекты на Python, Keras и TensorFlow

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Кем бы вы ни были — инженером-программистом, стремящимся войти в мир глубокого обучения, опытным специалистом по обработке данных или любителем, мечтающим создать «вирусное» приложение с использованием ИИ, — наверняка задавались вопросом: с чего начать? Практические примеры из этой книги научат вас создавать приложения глубокого обучения для облачных, мобильных и краевых (edge) систем. Если вы хотите создать что-то необычное, полезное, масштабируемое или просто классное — эта книга для вас. Многолетний опыт исследований в области глубокого обучения и разработки приложений позволяют авторам научить каждого воплощать идеи в нечто невероятное и необходимое людям в реальном мире.

Author(s): Анирад Коул, Сиддха Ганджу, Мехер Казам
Series: Бестселлеры O’Reilly
Edition: 1
Publisher: Питер
Year: 2023

Language: Russian
Commentary: Publisher's PDF
Pages: 624
City: СПб.
Tags: Google Cloud Platform;Cloud Computing;Artificial Intelligence;Machine Learning;Deep Learning;Reinforcement Learning;Computer Vision;Python;JavaScript;Convolutional Neural Networks;Classification;iOS;Transfer Learning;Keras;TensorFlow;Scalability;High Availability;Hyperparameter Tuning;Best Practices;Flask;Android;Raspberry Pi;Amazon Rekognition;Arduino;Performance Tuning;Image Classification;Embedded Systems;Performance Analysis;Self-Driving Cars;Data Pipelines;Mobile Applications

Вступление
Разработчикам
Специалистам по данным
Студентам
Преподавателям
Энтузиастам робототехники
Обзор глав
Условные обозначения
Использование исходного кода примеров
Благодарности
Коллективные благодарности
Личные благодарности
Глава 1. Обзор ландшафта искусственного интеллекта
Извинения
Настоящее вступление
Что такое ИИ?
Мотивирующие примеры
Краткая история ИИ
Захватывающее начало
Холодные и мрачные дни
Проблеск надежды
Как глубокое обучение вошло в моду
Рецепт идеального решения задачи глубокого обучения
Датасеты
Архитектура модели
Фреймворки
Ответственный ИИ
Предвзятость
Прозрачность и объяснимость
Воспроизводимость
Устойчивость
Конфиденциальность
Итоги
Часто задаваемые вопросы
Глава 2. Что на картинке: классификация изображений с помощью Keras
Введение в Keras
Классификация изображений
Исследование модели
Датасет ImageNet
Зоопарк моделей
Карты активации классов
Итоги
Глава 3. Кошки против собак: перенос обучения с помощью Keras в 30 строках кода
Адаптация предварительно обученных моделей к новым задачам
Неглубокое погружение в сверточные нейронные сети
Перенос обучения
Тонкая настройка
Сколько слоев выбрать для тонкой настройки
Создание специального классификатора методом переноса обучения с использованием Keras
Организация данных
Создание пайплайна обработки данных
Количество классов
Размер пакета
Аугментация данных
Определение модели
Обучение модели
Настройка параметров обучения
Запуск обучения
Тестируем модель
Анализ результатов
Для дальнейшего чтения
Итоги
Глава 4. Создание механизма обратного поиска изображений. Эмбеддинги
Сходство изображений
Извлечение признаков
Поиск сходств
Визуализация кластеров изображений с помощью t-SNE
Увеличение скорости поиска сходств
Длина векторов признаков
Уменьшение длины векторов признаков с помощью метода главных компонент
Масштабирование поиска сходства с помощью метода приблизительных ближайших соседей
Бенчмарк метода приблизительных ближайших соседей
Какую библиотеку выбрать?
Создание синтетического датасета
Полный перебор
Annoy
NGT
Faiss
Повышение точности с помощью тонкой настройки
Тонкая настройка без полносвязных слоев
Сиамские сети для распознавания лица однократным (one-shot) обучением
Примеры из практики
Flickr
Pinterest
Двойники знаменитостей
Spotify
Описание изображений
Итоги
Глава 5. От новичка до мастера прогнозирования: увеличение точности сверточной нейронной сети
Что понадобится для работы
TensorFlow Datasets
TensorBoard
Инструмент What-If
tf-explain
Стандартные приемы для экспериментов с машинным обучением
Проверка данных
Разбиение данных на обучающую, проверочную и контрольную выборки
Ранняя остановка
Воспроизводимость экспериментов
Пример сквозного пайплайна глубокого обучения
Простой пайплайн переноса обучения
Простой пайплайн создания сети
Влияние гиперпараметров на точность
Сравнение переноса обучения и обучения с нуля
Влияние количества слоев для тонкой настройки при переносе обучения
Влияние объема данных на перенос обучения
Влияние скорости обучения
Влияние оптимизатора
Влияние размера пакета
Влияние изменения размеров
Влияние изменения соотношения сторон на перенос обучения
Инструменты автоматизации настройки моделей для достижения максимальной точности
Keras Tuner
AutoAugment
AutoKeras
Итоги
Глава 6. Увеличение скорости и эффективности TensorFlow: удобный чек-лист
Голодание GPU
nvidia-smi
Профилировщик TensorFlow + TensorBoard
Как использовать этот чек-лист
Чек-лист настроек производительности
Подготовка данных
Чтение данных
Аугментация данных
Обучение
Инференс
Подготовка данных
Сохраните данные в формате TFRecord
Уменьшите размеры исходных данных
Используйте TensorFlow Datasets
Чтение данных
Используйте tf.data
Организуйте предварительное извлечение данных
Организуйте параллельную обработку на CPU
Организуйте параллельный ввод/вывод и обработку
Разрешите недетерминированный порядок следования данных
Кэшируйте данные
Включите экспериментальные оптимизации
Автоматическая настройка значений параметров
Аугментация данных
Используйте GPU для аугментации
Обучение
Используйте автоматическую смешанную точность
Используйте пакеты большого размера
Используйте значения, кратные восьми
Определите оптимальную скорость обучения
Используйте tf.function
Переобучите и научите обобщать
Установите оптимизированный программный стек для поддержки оборудования
Оптимизируйте количество потоков, выполняющихся на CPU параллельно
Используйте более производительное оборудование
Используйте распределенное обучение
Изучите отраслевые бенчмарки
Инференс
Используйте эффективную модель
Используйте квантование модели
Прореживайте модели
Используйте совмещенные операции
Включите сохранение состояния GPU
Итоги
Глава 7. Практические инструменты, советы и приемы
Установка
Обучение
Модель
Данные
Защищенность
Обучение и исследования
Последний вопрос
Глава 8. Облачные API для компьютерного зрения: установка и запуск за 15 минут
Ландшафт API распознавания образов
Clarifai
Microsoft Cognitive Services
Google Cloud Vision
Amazon Rekognition
IBM Watson Visual Recognition
Algorithmia
Сравнение API для распознавания образов
Предлагаемые услуги
Стоимость
Точность
Предвзятость
Подготовка и использование облачных API
Обучение собственного классификатора
Основные причины плохой работы классификатора
Сравнение качества работы собственных классификаторов в разных API
Настройка производительности облачных API
Влияние изменения разрешения на API разметки изображений
Влияние сжатия на API разметки изображений
Влияние сжатия на API оптического распознавания символов
Влияние изменения разрешения на API оптического распознавания символов
Примеры
New York Times
Uber
Giphy
OmniEarth
Photobucket
Staples
InDro Robotics
Итоги
Глава 9. Масштабируемый инференс в облаке с помощью TensorFlow Serving и KubeFlow
Ландшафт услуг прогнозирования с помощью ИИ
Flask: создание собственного сервера
Создание REST API с помощью Flask
Развертывание модели Keras в Flask
Плюсы использования Flask
Минусы использования Flask
Желаемые качества системы производственного уровня
Высокая доступность
Масштабируемость
Низкая задержка
Географическая доступность
Обработка сбоев
Мониторинг
Управление версиями модели
A/B-тестирование
Поддержка нескольких библиотек машинного обучения
Google Cloud ML Engine: управляемый стек облачных услуг ИИ
Плюсы использования Cloud ML Engine
Минусы использования Cloud ML Engine
Создание API классификации
TensorFlow Serving
Установка
KubeFlow
Пайплайны
Инструменты управления
Установка
Соотношение цены и производительности
Анализ затрат на управляемый стек Inference-as-a-Service
Анализ затрат на создание собственного стека
Итоги
Глава 10. ИИ в браузере с TensorFlow.js и ml5.js
Библиотеки машинного обучения на JavaScript: краткая история
ConvNetJS
Keras.js
ONNX.js
TensorFlow.js
Архитектура TensorFlow.js
Использование предварительно обученных моделей с TensorFlow.js
Преобразование модели для использования в браузере
Обучение в браузере
Извлечение признаков
Сбор данных
Обучение
Нагрузка на GPU
ml5.js
PoseNet
pix2pix
Сравнительный анализ и практические рекомендации
Размер модели
Время инференса
Примеры
Дирижер
TensorSpace
Metacar
Классификация фотографий в Airbnb
GAN Lab
Итоги
Глава 11. Классификация объектов в реальном времени в iOS с Core ML
Жизненный цикл разработки искусственного интеллекта для мобильных устройств
Краткая история Core ML
Альтернативы фреймворку Core ML
TensorFlow Lite
ML Kit
Fritz
Архитектура машинного обучения Apple
Предметно-ориентированные фреймворки
ML Framework
Оптимизированные примитивы ML
Приложение для распознавания объектов в реальном времени
Конвертация моделей в формат Core ML
Конвертация из формата Keras
Конвертация из формата TensorFlow
Развертывание динамической модели
Обучение на устройстве
Федеративное обучение
Анализ качества моделей
Бенчмарк моделей на iPhone
Оценка энергопотребления
Оценка нагрузки
Уменьшение размера приложения
Не внедряйте модели в приложение
Используйте квантование
Используйте Create ML
Примеры приложений
Magic Sudoku
Seeing AI
HomeCourt
InstaSaber + YoPuppet
Итоги
Глава 12. Not Hotdog на iOS с Core ML и Create ML
Сбор данных
Подход 1: поиск готового или создание своего датасета
Подход 2: загрузка изображений с помощью расширения Fatkun для браузера Chrome
Подход 3: загрузка с помощью Bing Image Search API
Обучение модели
Подход 1: с помощью инструментов с веб-интерфейсом
Подход 2: с помощью Create ML
Подход 3: тонкая настройка с использованием Keras
Конвертация модели с использованием Core ML Tools
Создание приложения для iOS
Что можно сделать дальше
Итоги
Глава 13. Шазам для еды: разработка приложений для Android с помощью TensorFlow Lite и ML Kit
Цикл разработки приложения для классификации блюд
Обзор TensorFlow Lite
Архитектура TensorFlow Lite
Конвертация модели в формат TensorFlow Lite
Создание приложения для распознавания объектов
ML Kit + Firebase
Классификация объектов в ML Kit
Использование своих моделей в ML Kit
Модели, размещенные в облаке
A/B-тестирование моделей, размещенных в облаке
Использование эксперимента в коде
TensorFlow Lite в iOS
Оптимизация производительности
Квантование с помощью TensorFlow Lite Converter
Набор инструментов TensorFlow для оптимизации моделей
Fritz
Целостный взгляд на цикл разработки мобильных приложений ИИ
Как собирать данные?
Как размечать данные?
Как обучить модель?
Как конвертировать модель в формат для мобильных устройств?
Как оптимизировать производительность модели?
Как повысить привлекательность для пользователей?
Как развернуть модель?
Как оценить успешность модели?
Как совершенствовать модель?
Как обновить модель на телефонах пользователей?
Самосовершенствующаяся модель
Примеры из практики
Lose It!
Режим портретной съемки на телефонах Pixel 3
Распознавание голоса от Alibaba
Определение контуров лица с помощью ML Kit
Сегментация видео в реальном времени в YouTube Stories
Итоги
Глава 14. Создание приложения Purrfect Cat Locator с помощью TensorFlow Object Detection API
Виды задач компьютерного зрения
Классификация
Локализация
Обнаружение
Сегментация
Способы обнаружения объектов
Использование готовых облачных API обнаружения объектов
Использование предварительно обученных моделей
Получение модели
Тест-драйв модели
Развертывание на устройстве
Создание своей модели обнаружения объектов без программирования
Развитие технологии обнаружения объектов
Вопросы производительности
Ключевые термины в обнаружении объектов
Intersection over Union
Mean Average Precision
Non-Maximum Suppression
Создание своих моделей с помощью TensorFlow Object Detection API
Сбор данных
Разметка данных
Предварительная обработка данных
Исследование модели
Обучение
Конвертация модели
Сегментация изображений
Примеры из практики
Умный холодильник
Подсчет толпы
Распознавание лиц в приложении Seeing AI
Беспилотные автомобили
Итоги
Глава 15. Как стать творцом: ИИ в краевых устройствах
Обзор краевых устройств ИИ
Raspberry Pi
Intel Movidius Neural Compute Stick
Google Coral USB Accelerator
NVIDIA Jetson Nano
FPGA + PYNQ
Arduino
Сравнение краевых устройств для ИИ
Raspberry Pi
Ускорение с помощью Google Coral USB Accelerator
NVIDIA Jetson Nano
Сравнение производительности краевых устройств
Примеры из практики
JetBot
Билеты на проезд в метро за приседания
Сортировщик огурцов
Что изучать дальше
Итоги
Глава 16. Моделирование беспилотного автомобиля методом сквозного глубокого обучения с использованием Keras
Краткая история автоматизации вождения
Глубокое обучение, автономное вождение и проблема данных
«Hello, World!» в автономном вождении: управление в моделируемой среде
Инструменты и требования
Исследование и подготовка данных
Определение области интереса
Аугментация данных
Дисбаланс датасета и стратегии вождения
Обучение модели автопилота
Генератор данных
Определение модели
Развертывание модели автопилота
Что изучать дальше
Расширение датасета
Обучение на последовательных данных
Обучение с подкреплением
Итоги
Глава 17. Создание беспилотного автомобиля менее чем за час: обучение с подкреплением с помощью AWS DeepRacer
Краткое введение в обучение с подкреплением
Почему для изучения обучения с подкреплением выбран беспилотный автомобиль?
Практика глубокого обучения с подкреплением с DeepRacer
Создание первой модели обучения с подкреплением
Шаг 1: создание модели
Шаг 2: настройка процесса обучения
Шаг 3: обучение модели
Шаг 4: оценка качества модели
Обучение с подкреплением на практике
Как происходит обучение с подкреплением?
Теория обучения с подкреплением
Алгоритм обучения с подкреплением в AWS DeepRacer
Кратко о порядке глубокого обучения с подкреплением на примере DeepRacer
Шаг 5: улучшение модели обучения с подкреплением
Гонки на автомобиле AWS DeepRacer
Создание трека
Шаблон трека для AWS DeepRacer с одним поворотом
Запуск модели на автомобиле AWS DeepRacer
Автономное вождение AWS DeepRacer
Что изучать дальше
Лига DeepRacer
AWS DeepRacer с расширенными возможностями
Олимпиада автопилотов с искусственным интеллектом
DIY Robocars
Roborace
Итоги
Приложение. Краткое введение в сверточные нейронные сети
Машинное обучение
Персептрон
Функции активации
Нейронные сети
Обратное распространение ошибки
Недостатки нейронных сетей
Желаемые свойства классификатора изображений
Свертка
Объединение
Структура сверточной сети
Что изучать дальше
Об авторах
Основные авторы
Приглашенные авторы
Иллюстрация на обложке