Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Кем бы вы ни были — инженером-программистом, стремящимся войти в мир глубокого обучения, опытным специалистом по обработке данных или любителем, мечтающим создать «вирусное» приложение с использованием ИИ, — наверняка задавались вопросом: с чего начать? Практические примеры из этой книги научат вас создавать приложения глубокого обучения для облачных, мобильных и краевых (edge) систем. Если вы хотите создать что-то необычное, полезное, масштабируемое или просто классное — эта книга для вас. Многолетний опыт исследований в области глубокого обучения и разработки приложений позволяют авторам научить каждого воплощать идеи в нечто невероятное и необходимое людям в реальном мире. В этой книге вы: •Узнаете, как обучать, настраивать и развертывать модели компьютерного зрения с помощью Keras, TensorFlow, Core ML и TensorFlow Lite. •Изучите интересные проекты, в том числе Not Hotdog из сериала Silicon Valley и еще более 40 примеров. •Смоделируете беспилотный автомобиль в видеоигровом окружении и создадите миниатюрную версию, использовав технологию обучения с подкреплением. •Научитесь использовать перенос обучения для быстрого обучения моделей. •Найдете более 50 практических советов по повышению точности и скорости модели, отладке и масштабированию до многомиллионной аудитории.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 635
Veröffentlichungsjahr: 2023
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчик А. Киселев
Анирад Коул, Сиддха Ганджу, Мехер Казам
Искусственный интеллект и компьютерное зрение. Реальные проекты на Python, Keras и TensorFlow. — СПб.: Питер, 2022.
ISBN 978-5-4461-1840-3
© ООО Издательство "Питер", 2022
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Мы переживаем возрождение интереса к искусственному интеллекту (ИИ). Вероятно, поэтому вы листаете эту книгу. Есть множество книг о глубоком обучении, и возникает резонный вопрос: с какой целью эта книга вообще появилась? Ответим на него чуть ниже.
Занимаясь глубоким обучением с 2013 года (разрабатывая продукты в Microsoft, NVIDIA, Amazon и Square), мы стали свидетелями значительных изменений в этой сфере. Непрекращающиеся исследования были данностью, а отсутствие зрелого инструментария — правдой жизни.
Продолжая расти и перенимая опыт сообщества, мы обратили внимание, что нет каких-либо четких указаний на то, как превратить исследования в конечный продукт для обычных пользователей, которые взаимодействуют с веб-браузером, смартфоном или краевым (edge) устройством. В поисках тайных знаний мы бесконечно экспериментировали, читали блоги, обсуждали проблемы на GitHub и Stack Overflow, а также переписывались с авторами пакетов и ловили случайные инсайты. Многие книги по большей части фокусировались на теории или на особенностях использования конкретных инструментов. Лучшее, на что мы могли рассчитывать с такими книгами, — это построить игрушечную модель.
Чтобы заполнить пробел между теорией и практикой, мы с самого начала стали говорить о возможности перехода от исследований ИИ к его практическому применению. Мы старались дать мотивирующие примеры, а также показать различные уровни сложности в зависимости от уровня навыков (от любителя до инженера масштаба Google) и усилий, затраченных на внедрение глубокого обучения в продакшен. Все это было ценно и для новичков, и для экспертов.
К счастью, со временем ландшафт стал доступным для новичков, и появилось больше инструментов. Отличные онлайн-площадки, например Fast.ai и DeepLearning.ai, упростили подход к приемам обучения моделей ИИ. На рынке появились книги по основам глубокого обучения с использованием TensorFlow и PyTorch. Но даже несмотря на все это, между теорией и практикой оставалась пропасть. Мы решили восполнить этот пробел. Так и появилась эта книга.
Простым и доступным языком, на примере реальных интересных проектов в сфере компьютерного зрения книга описывает простые классификаторы, не предполагая наличия у читателя знаний о машинном обучении и ИИ. Затем сложность проектов постепенно увеличивается, повышается их точность и скорость, открывается возможность масштабировать их до обслуживания миллионов пользователей на широком спектре оборудования и программного обеспечения. И наконец, описывается пример использования обучения с подкреплением для создания миниатюрного беспилотного автомобиля.
Почти каждая глава начинается с мотивирующего примера и вопросов, которые могут возникнуть в процессе поиска решения. Потом описываются различные подходы к решению, с разным уровнем сложности и требуемых усилий. Если вы ищете быстрое решение, то просто прочтите несколько первых страниц каждой главы — и все. Тем же, кто хочет получить более глубокое понимание предмета, следует прочитать всю главу и изучить примеры. Во-первых, они довольно интересные. Во-вторых, они показывают, как специалисты в сфере ИИ применяют идеи, описываемые в главе, для создания реальных продуктов.
Мы также обсудим проблемы, с которыми сталкиваются практики и профессионалы глубокого обучения при создании реальных приложений с использованием облачных систем, браузеров, мобильных и краевых устройств. В этой книге мы собрали ряд практических советов и приемов, а также уроков из реальной жизни, чтобы побудить читателей создавать приложения, которые смогут сделать чей-то день немного лучше.
Скорее всего, вы опытный программист. Даже если вы не знакомы с Python, мы надеемся, что с легкостью освоите его и сможете приступить к работе в кратчайшие сроки. Но мы не предполагаем у вас наличие какого-либо опыта в области машинного обучения и искусственного интеллекта. Мы поможем обрести вам эти знания и уверены, что вы извлечете пользу, узнав из этой книги:
• как создавать продукты c ИИ, ориентированные на пользователя;
• как быстро обучать модели;
• как минимизировать усилия и объем кода, нужные для создания прототипа;
• как сделать модели более производительными и энергоэффективными;
• как внедрять и масштабировать модели глубокого обучения, а также оценивать связанные с этим затраты;
• как применять ИИ на практике на примере более 40 реальных проектов;
• в каких направлениях развиваются знания о глубоком обучении;
• об обобщенных приемах, которые предлагают новые фреймворки (например, PyTorch), предметных областях (например, здравоохранение, робототехника), видах входной информации (например, видео, аудио, текст) и задачах (например, сегментация изображений, обучение с одного раза).
Возможно, вы уже хорошо разбираетесь в машинном обучении и знаете, как работать с моделями глубокого обучения. Тогда у нас хорошие новости. Вы сможете еще больше обогатить набор своих навыков и углубить знания в этой области, которые позволят создавать настоящие продукты. Эта книга расскажет вам, как эффективнее решать повседневные задачи, а также:
• как ускорить обучение, в том числе в кластерах с множеством нод;
• как развить интуицию, нужную для разработки и отладки моделей, включая настройку гиперпараметров для значительного повышения их точности;
• как работает модель, как выявить предвзятость в данных, а также как автоматически подобрать лучшие гиперпараметры и архитектуру модели с помощью AutoML;
• даст советы и приемы от других практиков, в том числе касающиеся быстрого сбора данных, организации экспериментов, обмена моделями с другими специалистами во всем мире и получения самой свежей информации о лучших доступных моделях для вашей задачи;
• как использовать инструменты для развертывания и масштабирования своей лучшей модели для реальных пользователей, и даже автоматически (без участия DevOps-команды).
Сейчас самое время подумать о будущей карьере в области ИИ — это следующая революционная технология после появления интернета и смартфонов. Здесь уже достигнуты большие успехи, но многое еще предстоит открыть. Надеемся, что эта книга станет для вас первым шагом к карьере в области ИИ и, что еще лучше, к развитию более глубоких теоретических знаний. Самое замечательное, что не нужно тратить много денег на покупку дорогостоящего оборудования — можно тренироваться на мощном оборудовании совершенно бесплатно, пользуясь лишь браузером (спасибо, Google Colab!). Надеемся, что с помощью этой книги вы:
• начнете карьеру в области ИИ, познакомившись с пакетом интересных проектов;
• обретете знания и навыки, которые помогут подготовиться к стажировке и устройству на работу;
• дадите волю своему творчеству, создавая забавные приложения, например автопилот для автомобиля;
• станете чемпионом состязания «AI for Good» (ИИ во имя добра) и используете свой творческий потенциал для решения насущных проблем, с которыми сталкивается человечество.
Надеемся, что эта книга поможет разнообразить ваш курс забавными проектами из реального мира. Мы подробно рассматриваем каждый этап пайплайна глубокого обучения, а также эффективные и действенные методы выполнения каждого этапа. Все проекты, представленные в книге, могут пригодиться для совместной или индивидуальной работы в течение семестра. А еще мы подготовили презентации на https://github.com/PracticalDL/Practical-Deep-Learning-Book, которые можно брать для занятий.
Робототехника — это увлекательно. Если вы энтузиаст робототехники, то не нужно убеждать вас в том, что наделение роботов интеллектом — неминуемый шаг. Все функциональные аппаратные платформы: Raspberry Pi, NVIDIA Jetson Nano, Google Coral, Intel Movidius, PYNQ-Z2 и другие — помогают внедрению инноваций в области робототехники. По мере развития промышленной революции 4.0 некоторые из этих платформ будут становиться все более актуальными и повсеместными. Из этой книги вы узнаете:
• как создать и обучить ИИ, а затем довести его до совершенства;
• как тестировать и сравнивать краевые устройства по производительности, размеру, мощности, энергоэффективности и стоимости;
• как выбрать оптимальный алгоритм ИИ и устройство для конкретной задачи;
• как другие производители создают творческих роботов и машины;
• как добиться дальнейшего прогресса в этой области и показать достижения.
Посмотрим, как менялся ландшафт ИИ с 1950-х годов до наших дней. Поговорим о компонентах идеального рецепта глубокого обучения. Познакомимся с общепринятой терминологией и известными датасетами, а также заглянем в мир ответственного ИИ.
Погрузимся в мир классификации изображений, написав лишь пять строк кода, использующего Keras. Затем с помощью тепловых карт узнаем, на что обращают внимание нейронные сети, делая свои прогнозы. А на десерт ознакомимся с любопытной историей Франсуа Шолле, создателя Keras. Она покажет, какое влияние может оказать всего один человек.
В этой главе рассмотрим прием переноса обучения и задействуем ранее обученную сеть в новой задаче классификации, чтобы за считанные минуты получить высочайшую точность. Затем изучим результаты, чтобы оценить качество классификации. Попутно создадим пайплайн машинного обучения, который с небольшими изменениями будет использоваться во всей книге. В качестве бонуса узнаем от Джереми Ховарда, соучредителя fast.ai, о том, как сотни тысяч студентов используют перенос обучения, чтобы начать свой путь в ИИ.
Вдохновившись примером Google Reverse Image Search, изучим эмбеддинги, представления признаков изображений, и покажем, как реализовать обратный поиск похожих изображений в десяти строках кода. А затем начнется самое интересное: изучив различные стратегии и алгоритмы, мы ускорим работу этой системы, чтобы она анализировала миллионы изображений и отыскивала похожие за микросекунды.
В этой главе изучим стратегии увеличения точности классификатора с помощью TensorBoard, What-If Tool, tfexplain, TensorFlow Datasets, AutoKeras и AutoAugment. И немного поэкспериментируем, чтобы выработать интуитивное представление о том, какие параметры могут влиять на качество работы вашей задачи ИИ.
В этой главе увеличим скорость обучения и прогнозирования, пройдясь по чек-листу из 30 трюков, которые помогут устранить неэффективные действия и максимально использовать возможности текущего оборудования.
Здесь сгруппируем практические знания и навыки, начиная от установки, сбора данных, управления экспериментами, визуализации и слежения за современными исследованиями до изучения дальнейших возможностей развития теоретических основ глубокого обучения.
Работайте не 12 часов, а головой. В этой главе мы покажем, как за 15 минут приступить к использованию возможностей облачных платформ ИИ, предлагаемых Google, Microsoft, Amazon, IBM и Clarifai. Для задач, неразрешимых для существующих API, используем специальные сервисы классификации. С их помощью, не прибегая к программированию, обучим облачные классификаторы, а затем сравним их друг с другом. Увидев победителя, вы, скорее всего, немало удивитесь.
В этой главе мы перенесем нашу обученную модель из облака на уровень клиента для масштабирования обслуживания запросов от нескольких сотен до миллионов. Здесь мы познакомимся с Flask, Google Cloud ML Engine, TensorFlow Serving и KubeFlow и проанализируем усилия, сценарии и затраты.
Любой человек, использующий компьютер или смартфон, всегда имеет доступ к браузеру. Охватите всех этих пользователей с помощью библиотек глубокого обучения, работающих в браузере, таких как TensorFlow.js и ml5.js. Приглашенный автор Зайд Аляфеи (Zaid Alyafeai) познакомит нас с оценкой позы тела, применением генеративно-состязательных сетей, преобразованием изображений с помощью Pix2Pix и многими другими задачами, выполняемыми не на сервере, а в самом браузере. В качестве бонуса вы узнаете от ключевых участников о том, как развивались проекты TensorFlow.js и ml5.js.
Изучим ландшафт глубокого обучения на мобильных устройствах, уделив особое внимание экосистеме Apple с Core ML. Проведем сравнительный анализ моделей на разных моделях iPhone, рассмотрим стратегии уменьшения размеров приложений и их энергопотребления, а также изучим динамическое развертывание моделей, обучение на устройстве и приемы создания профессиональных приложений.
Приложение Not Hotdog из сериала HBO «Кремниевая долина» — это аналог «Hello World» в сфере мобильного ИИ. Воздадим ему должное и сделаем свою версию, и не одним или двумя, а тремя разными способами.
В этой главе перенесем ИИ на Android, использовав TensorFlow Lite. Затем рассмотрим кроссплатформенную разработку с помощью ML Kit (основанного на TensorFlow Lite) и Fritz и изучим полный жизненный цикл разработки на примере самосовершенствующегося приложения с ИИ. Попутно рассмотрим управление версиями моделей, A/B-тестирование, оценку успешности, динамическое обновление, оптимизацию модели и другие темы. А в качестве бонуса Пит Уорден (Pete Warden), техлид проекта Mobile and Embedded TensorFlow, расскажет о своем богатом опыте по внедрению ИИ в краевые устройства.
Здесь мы изучим четыре метода обнаружения объектов на изображениях, познакомимся с эволюцией приемов обнаружения объектов, проанализируем компромиссы между скоростью и точностью и заложим основы для исследований в подсчете численности толпы, распознавании лиц и беспилотных автомобилей.
Приглашенный автор Сэм Стеркваль (Sam Sterckval) занимается реализацией моделей глубокого обучения для устройства с низким энергопотреблением. Он покажет несколько встраиваемых устройств с поддержкой ИИ, имеющих разную вычислительную мощность и стоимость, включая Raspberry Pi, NVIDIA Jetson Nano, Google Coral, Intel Movidius и PYNQ-Z2 FPGA, и приоткроет двери для проектов в сфере робототехники и умных устройств. Бонус: узнайте от команды NVIDIA Jetson Nano о том, как можно самостоятельно собрать робота!
Приглашенные авторы Адитья Шарма (Aditya Sharma) и Митчелл Сприн (Mitchell Spryn) расскажут об обучении виртуального автомобиля в фотореалистичной среде моделирования Microsoft AirSim, управляя им вручную и обучая модель ИИ воспроизводить его поведение. Попутно рассмотрим ряд идей, используемых в индустрии беспилотных автомобилей.
Перейдем от виртуального мира к физическому — приглашенный автор Сунил Маллья (Sunil Mallya) покажет, как всего за час можно собрать и обучить миниатюрный автомобиль AWS DeepRacer. С помощью обучения с подкреплением автомобиль научится самостоятельно водить, штрафуя себя за ошибки и добиваясь максимального успеха. Узнаем, как применить эти знания в гонках от Olympics of AI Driving до RoboRace (с использованием полноразмерных беспилотных автомобилей). А в финале Анима Анандкумар (Anima Anandkumar) из NVIDIA и Крис Андерсон (Chris Anderson), основатель DIY Robocars, расскажут, куда движется индустрия беспилотных автомобилей.
В этой книге приняты следующие условные обозначения:
Курсив
Используется для обозначения новых терминов, адресов URL и электронной почты, имен файлов и расширений имен файлов.
Моноширинный
Применяется для оформления листингов программ и программных элементов внутри обычного текста, таких как имена переменных и функций, баз данных, типов данных, переменных окружения, инструкций и ключевых слов.
Так выделяются советы и предложения.
Так обозначаются советы, предложения и примечания общего характера.
Так обозначаются предупреждения и предостережения.
Вспомогательные материалы (примеры кода, упражнения и т.д.) доступны для загрузки по адресу https://github.com/PracticalDL/Practical-Deep-Learning-Book. Если у вас возникнут вопросы технического характера по использованию примеров кода, направляйте их по электронной почте на адрес [email protected].
В общем случае все примеры кода из книги вы можете использовать в своих программах и в документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Если вы разрабатываете программу и используете в ней несколько фрагментов кода из книги, вам не нужно обращаться за разрешением. Но для продажи или распространения примеров из книги вам потребуется разрешение от издательства O’Reilly. Вы можете отвечать на вопросы, цитируя данную книгу или примеры из нее, но для включения существенных объемов программного кода из книги в документацию вашего продукта потребуется разрешение.
Мы рекомендуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание авторов, издательства и ISBN.
За получением разрешения на использование значительных объемов программного кода из книги обращайтесь по адресу [email protected].
Мы хотели бы поблагодарить следующих людей за неоценимую помощь в работе над этой книгой. Без них она была бы невозможна.
Книга появилась на свет благодаря усилиям нашего редактора Николь Таше (Nicole Taché). Она болела за нас и на каждом этапе давала ценные рекомендации. Николь помогла правильно расставить приоритеты, отобрать материал (хотите верьте, хотите нет, но изначально книга была намного больше) и не сбиться с пути. Она была первым читателем, и поэтому нам было важно, чтобы Николь было понятно содержание несмотря на то, что она новичок в ИИ. Мы безмерно благодарны ей за поддержку.
Хотим поблагодарить и остальную часть команды O’Reilly, в том числе выпускающего редактора Кристофера Фоше (Christopher Faucher), который без устали трудился, чтобы эта книга вовремя попала в типографию. Мы также благодарны редактору Бобу Расселу (Bob Russell), который поразил нас своей молниеносной скоростью правки и вниманием к деталям. Он заставил нас осознать, насколько важно уделять внимание грамматике английского языка в школьном курсе (хотя он и опоздал на несколько лет). Хотим также поблагодарить Рэйчел Румелиотис (Rachel Roumeliotis), вице-президента по контент-стратегии, и Оливию Макдональд (Olivia MacDonald), главного редактора по развитию, за веру в проект и постоянную поддержку.
Мы безмерно признательны нашим приглашенным авторам, которые согласились поделиться опытом. Адитья Шарма (Aditya Sharma) и Митчелл Сприн (Mitchell Spryn) из Microsoft показали, что нашу любовь к гоночным видеоиграм можно использовать для обучения беспилотных автомобилей, управляя ими в среде моделирования AirSim. Сунил Малля (Sunil Mallya) из Amazon показал, как перенести эти знания в физический мир, показав на примере, что достаточно одного часа, чтобы собрать миниатюрный беспилотный автомобиль (AWS DeepRacer) и научить его ездить по треку с помощью обучения с подкреплением. Сэм Стеркваль (Sam Sterckval) из Edgise подвел итог огромному разнообразию встраиваемого оборудования для реализации ИИ, доступного на рынке, так что теперь мы можем принять участие в разработке проекта по робототехнике. И наконец, Зайд Аляфеи (Zaid Alyafeai) из Университета имени короля Фахда показал, что браузеры вполне способны поддерживать серьезные интерактивные модели ИИ (с помощью TensorFlow.js и ml5js).
Свой нынешний вид книга приобрела благодаря оперативной обратной связи наших замечательных научных редакторов, которые кропотливо изучали проекты, указывали на технические неточности и давали рекомендации по улучшению изложения идей. Благодаря их отзывам (и постоянно меняющемуся TensorFlow API) мы заново переписали почти всю книгу после выхода черновой версии. Благодарим Маргарет Мейнард-Рид (Margaret Maynard-Reid), эксперта по машинному обучению из Google. Возможно, вы знакомы с ней заочно, если читали документацию для TensorFlow. Благодарим Пако Натана (Paco Nathan), более 35 лет работающего в индустрии в Derwin Inc. и познакомившего Анирудха с миром публичных выступлений, Энди Петрелла (Andy Petrella), CEO и основателя Kensu и создателя SparkNotebook, чьи технические идеи соответствуют его репутации, и Никхиту Коула (Nikhita Koul), старшего научного сотрудника в Adobe, который предлагал новые улучшения после каждой итерации чтения черновика. Фактически он прочитал несколько тысяч страниц, и благодаря ему книга стала намного доступнее. Нам очень помогли рецензенты, обладающие богатым опытом в конкретных областях, будь то ИИ в браузере, разработка мобильных приложений или создание беспилотных автомобилей. Вот поглавный список рецензентов:
• глава 1: Дхарини Чандрасекаран (Dharini Chandrasekaran), Шерин Томас (Sherin Thomas);
• глава 2: Анудж Шарма (Anuj Sharma), Чарльз Козиерок (Charles Kozierok), Манодж Парихар (Manoj Parihar), Панкеш Бамотра (Pankesh Bamotra), Пранав Кант (Pranav Kant);
• глава 3: Анудж Шарма, Чарльз Козиерок, Манодж Парихар, Панкеш Бамотра, Пранав Кант;
• глава 4: Анудж Шарма, Манодж Парихар, Панкеш Бамотра, Пранав Кант;
• глава 6: Габриэль Ибагон (Gabriel Ibagon), Иржи Симса (Jiri Simsa), Макс Кац (Max Katz), Панкеш Бамотра;
• глава 7: Панкеш Бамотра;
• глава 8: Дипеш Аггарвал (Deepesh Aggarwal);
• глава 9: Панкеш Бамотра;
• глава 10: Бретт Берли (Brett Burley), Лоран Денуэ (Laurent Denoue), Манрадж Сингх (Manraj Singh);
• глава 11: Дэвид Апгар (David Apgar), Джеймс Уэбб (James Webb);
• глава 12: Дэвид Апгар;
• глава 13: Джесси Уилсон (Jesse Wilson), Салман Гадит (Salman Gadit);
• глава 14: Акшит Арора (Akshit Arora), Пранав Кант, Рохит Танеджа (Rohit Taneja), Ронай Ак (Ronay Ak);
• глава 15: Гертруи Ван Ломмель (Geertrui Van Lommel), Джок Декуббер (Joke Decubber), Жульен Де Кок (Jolien De Cock), Марианна Ван Ломмель (Marianne Van Lommel), Сэм Хендрикс (Sam Hendrickx);
• глава 16: Дарио Салищик (Dario Salischiker), Курт Нибур (Kurt Niebuhr), Мэтью Чан (Matthew Chan), Правин Паланисами (Praveen Palanisamy);
• глава 17: Киртеш Гарг (Kirtesh Garg), Ларри Пизетт (Larry Pizette), Пьер Дюма (Pierre Dumas), Рикардо Суэйрас (Ricardo Sueiras), Сеголен Десертин-Панхард (Segolene Dessertine-panhard), Шри Элапролу (Sri Elaprolu), Тацуя Араи (Tatsuya Arai).
Во многих главах есть врезки «От создателя», в которых известные специалисты из мира ИИ приоткрывают дверь в свой мир и рассказывают, как и почему они создавали проекты, принесшие им известность. Мы благодарны Франсуа Шолле (François Chollet), Джереми Ховарду (Jeremy Howard), Питу Уордену (Pete Warden), Аниме Анандкумар (Anima Anandkumar), Крису Андерсону (Chris Anderson), Шанкину Каю (Shanqing Cai), Дэниелу Смилкову (Daniel Smilkov), Кристобалю Валенсуэле (Cristobal Valenzuela), Дэниелу Шиффману (Daniel Shiffman), Харту Вулери (Hart Woolery), Дэну Абдинуру (Dan Abdinoor), Читоку Ято (Chitoku Yato), Джону Уэлшу (John Welsh) и Дэнни Атсмо (Danny Atsmo).
Хочу поблагодарить свою семью — Арбинда, Сароджу и Никхиту, которые дали мне все, чтобы я мог заниматься моими увлечениями. Спасибо всем специалистам и исследователям из Microsoft, Aira и Yahoo, которые поддерживали меня и помогали воплощать идеи в прототипы и продукты. Не успехи, а трудности научили нас многому на этом пути. И эти трудности стали основной великолепного материала для этой книги в таком объеме, что можно было бы написать еще 250 страниц! Спасибо академическим сообществам университетов Карнеги — Меллона, Далхаузи и Тапара: вы научили меня многому (и не только тому, от чего зависел мой средний балл). Спасибо сообществу слепых и слабовидящих — вы ежедневно вдохновляли меня на работу в области ИИ, показывая, что возможности людей, вооруженных правильными инструментами, действительно безграничны.
Анирад
Мой дедушка, сам автор, однажды сказал мне: «Писать книги труднее, чем можно подумать, но это приносит больше удовольствия, чем можно представить». Бесконечно благодарен своим бабушке и дедушке, семье, маме, папе и Шрие за то, что подталкивали меня на поиск знаний и помогли стать тем, кто я есть. Спасибо моим замечательным коллегам и наставникам из университета Карнеги — Меллона, CERN, NASA FDL, Deep Vision, NITH и NVIDIA, которые были со мной все это время. Я в большом долгу перед ними за знания и развитие научного темперамента. Хотел бы выразить благодарность своим друзьям, которые, надеюсь, еще не забыли меня, поскольку в последнее время я был очень занят. Огромное спасибо вам за невероятное терпение. Надеюсь, снова увижу вас всех. Огромное спасибо моим товарищам, которые самоотверженно рецензировали главы книги и давали обратную связь — без вас книга не сложилась бы.
Сиддха
Я в неоплатном долгу перед своими родителями Раджагопалом и Лакшми за их бесконечную любовь и поддержку, а также за стремление обеспечить мне хорошую жизнь и дать хорошее образование. Я благодарен своим профессорам из университета Флориды и национального технологического института Висвесварая, которые учили меня и способствовали моей специализации в области информатики. Я благодарен своей девушке Джулии Таннер, которой почти два года приходилось терпеть бесконечные звонки по Skype по ночам и выходным, а также мои ужасные шутки (часть из которых, к сожалению, попала в эту книгу). Хотел бы также отметить своего замечательного руководителя Джоэла Кустку, поддерживавшего меня, пока я работал над этой книгой. Большой привет всем моим друзьям, которые проявили невероятное понимание, когда я не мог уделять им времени столько, сколько им хотелось бы.
Мехер
И последнее, но не менее важное: спасибо создателям Grammarly! Благодаря вам люди с неважными оценками по английскому могут стать публикуемыми авторами.