Шэнкуинг Цэй, Стэн Байлесчи
и Эрик Нильсон,
сентябрь 2019, Кембридж, Массачусетс
16
Введение
Благодарности
Своей структурой эта книга обязана известному творению Франсуа Шолле
Deep
Learning with Python
. И хотя код был переписан на другом языке программирования
и добавлено немало нового материала, связанного с экосистемой JavaScript, а также
призванного отразить новые разработки в этой области, ни эта книга, ни весь вы
сокоуровневый API TensorFlow.js не воплотился бы в реальность без новаторской
работы Шолле по Keras.
Весь наш путь от начала до завершения этой книги и проработки всего соот
ветствующего кода оказался приятным и плодотворным благодаря неоценимой
поддержке наших соратников по команде TensorFlow.js из компании Google. Пред
варительная работа Дэниела Смилкова и Нихила Тората над низкоуровневыми
ядрами WebGL и обратным распространением заложила надежный фундамент для
создания и обучения моделей. Главным образом благодаря работе Ника Кригера
над привязкой Node.js к библиотеке C TensorFlow мы теперь можем использовать
один код для запуска нейронных сетей в браузере и Node.js. Без созданного Дэвидом
Зоргелем и Кангли Чжаном API данных TensorFlow.js глава 6 этой книги не появи
лась бы на свет, а глава 7 стала возможной благодаря работе Янника Асогба в области
визуализации. Описанные в главе 11 методики оптимизации были бы невозможны
без работ Пинь Ю по интерфейсам операционного уровня (oplevel) для TensorFlow.
Наши примеры работали бы намного медленнее без оптимизации, специально про
веденной Эн Юань. А в успехе книги в целом важнейшую роль сыграло руководство
Сары Сирахуддин, Сандипа Гупта и Браджеша Кришнасвами.
Мы бы неизбежно сбились с пути истинного без поддержки и поощрения Д. Скал
ли, тщательно проверившего все главы. Мы также глубоко признательны за все
слова ободрения от Фернанды Виегас, Мартина Ваттенберга, Хала Абельсона и мно
гих других наших соратников из Google. Наша рукопись значительно улучшилась
в результате подробного обзора, сделанного Франсуа Шолле, Нихилом Торатом,
Дэниелом Смилковым, Джейми Смитом, Брайаном К. Ли и Аугустусом Оденой, как
и благодаря обстоятельному обсуждению с Сухашем Шивакумаром.
Особенное удовольствие при создании такого проекта, как TensorFlow.js, состоит
в возможности совместной работы и общения со всемирным сообществом разра
ботчиков программного обеспечения с открытым исходным кодом. TensorFlow.js
повезло, что над ним работали такие талантливые и вдохновенные разработчики,
как Манраж Сингх, Каи Сасаки, Джош Гартмен, Саша Илларионов, Дэвид Сэндерс,
syt123450@ и многие другие люди, чья неустанная работа над этой библиотекой
не только расширила ее возможности, но и повысила качество кода. Манраж Сингх
также выступил автором примера по обнаружению попыток фишинга из главы 3
данной книги.
Мы благодарны команде наших редакторов из издательства Manning Publications.
Неустанная работа Брайана Сойера, Дженнифер Стаут, Ребекки Райнхарт и Мех
меда Пазика, а также многих других сотрудников позволила нам, авторам, со
средоточить свое внимание на написании рукописи. МаркФилип Юж отвечал за
всесторонний внимательный технический обзор материала книги. Особая благодар
ность нашим научным редакторам, рекомендации которых мы учли при подготовке
издания. В их числе Ален Ломпо, Андреас Рефсгард, Бу Нгуен, Дэвид Ди Мариа,
Эдин Капич, Эдвин Куок, Эоган О’Доннелл, Эван Уоллес, Джордж Томас, Джулиа
но Бертотти, Джейсон Хайлс, Марчо Николау, Майкл Уолл, Пауло Нуин, Пьетро
Маффи, Полина Кесельман, Прабхати Пракаш, Райан Бэрроуз, Сатеш Саху, Суреш
Рангараджулу, Урсин Стаус и Виджанат Рао.
Мы также благодарны читателям раннего издания (MEAP) книги, нашедшим
немало типографских и технических ошибок и указавшим нам на них.
Наконец, все это было бы невозможно без безграничного понимания и жертв со
стороны наших семей. Шэнкуинг Цэй хотел бы выразить глубочайшую признатель
ность своей жене Вэй, а также своим родителям и родителям жены за их помощь
и поддержку во время растянувшегося на год написания книги. Стэн Байлесчи
хотел бы сказать спасибо своим матери и отцу, а также приемным родителям, бла
годаря начальной поддержке и наставлениям которых он сумел сделать успешную
карьеру в области науки и инженерии. Он также хотел бы поблагодарить свою жену
Констанцию за любовь и поддержку. Эрик Нильсон хотел бы сказать спасибо своим
друзьям и семье.
18
Благодарности
Об этой книге
Для кого предназначено издание
Книга написана для тех программистов с практическими знаниями JavaScript
и опытом разработки вебклиентской части либо прикладной части на основе
Node.js, которые хотели бы заняться глубоким обучением. Она будет полезна сле
дующим двум группам читателей.
z
z
JavaScriptпрограммистам без особого опыта работы с машинным обучением
и знания его математических основ, стремящимся хорошо разобраться в том,
как функционирует глубокое обучение, и получить практические знания тех
нологического процесса глубокого обучения, чтобы иметь возможность решать
распространенные задачи науки о данных, такие как классификация и регрессия.
z
z
Веб и Node.jsразработчикам, перед которыми стоит задача развертывания
предобученных моделей в своем вебприложении или стеке прикладной части.
Для первой группы читателей в книге подробно «разжевываются» основные по
нятия машинного и глубокого обучения. Это делается на интересных примерах кода
JavaScript, готовых для дальнейших экспериментов и исследований. Вместо фор
мальных математических формул мы используем схемы, псевдокод и конкретные
примеры, чтобы помочь вам усвоить на интуитивном уровне, но достаточно прочно
принципы работы глубокого обучения.
Для второй группы читателей мы рассмотрим основные этапы преобразования
уже существующих моделей (например, из библиотек обучения Python) в совме
стимый с веб или Node формат, подходящий для развертывания в клиентской части
или стеке Node. Особое внимание мы уделяем практическим вопросам, таким как
оптимизация размера и производительность модели, а также особенностям раз
личных сред развертывания, от серверов до расширений браузеров и мобильных
приложений.
Для всех читателей подробно описывается API TensorFlow.js для ввода, об
работки и форматирования данных, для создания и загрузки моделей, а также для
выполнения вывода, оценки и обучения.
Наконец, книга окажется полезной в качестве вводного руководства как по про
стым, так и по продвинутым нейронным сетям всем заинтересованным читателям
с техническим складом ума, которым не приходится регулярно программировать на
JavaScript или какомлибо другом языке.
Структура издания
Эта книга разбита на четыре части. В первой части, состоящей лишь из главы 1, вы
познакомитесь с общим ландшафтом искусственного интеллекта, машинного и глу
бокого обучения, а также узнаете смысл реализации глубокого обучения на JavaScript.
Вторая часть представляет собой неспешное введение в наиболее базовые и часто
встречающиеся понятия глубокого обучения.
z
z
Главы 2 и 3 дают плавное введение в машинное обучение. Глава 2 посвящена
простой задаче предсказания отдельного числа по набору чисел путем подбора
прямой (линейная регрессия), на которой иллюстрируется работа процесса об
ратного распространения ошибки (основы глубокого обучения). В главе 3 идеи
главы 2 расширяются: вам предстоит познакомиться с нелинейными, многослой
ными нейронными сетями и задачами классификации. Вы поймете, что такое
нелинейности, как они функционируют и почему именно они обеспечивают
подлинную мощь глубоким нейронным сетям.
z
z
Do'stlaringiz bilan baham: |