532
Часть IV • Резюме и заключительное слово
Рис. 13.1.
Снимки экрана для нескольких предобученных моделей (существующих в виде пакетов
npm), созданных с помощью TensorFlow.js. Блок A: @tensorflow-models/coco-ssd — многоцелевое
средство обнаружения объектов. Блок B: модель face-api.js предназначена для распознавания
лиц и их ключевых точек в режиме реального времени (воспроизводится из https://github.com/
justadudewhohacks/face-api.js с разрешения Винсента Мюллера). Блок C: handtrack.js отслеживает
местоположение одной или обеих рук в режиме реального времени (воспроизводится из https://
github.com/victordibia/handtrack.js/ с разрешения Виктора Дибиа). Блок D: @tensorflow-models/
posenet распознает ключевые точки тела человека в реальном времени на основе входных
изображений. Блок E: @tensorflow-models/toxicity обнаруживает и маркирует семь типов
недопустимого содержимого в любом входном тексте на английском языке
Что касается входных аудиоданных, предобученная модель @tensorflowmodels/
speechcommands способна распознавать в режиме реального времени 18 английских
слов с помощью непосредственно API WebAudio браузера. И хотя ее возможности
не так широки, как у средств распознавания речи с большим словарем, она позволяет
пользователям взаимодействовать в браузере с программой голосом.
Существуют также предобученные модели для текстовых входных данных. Напри
мер, модель @tensorflowmodels/toxicity определяет степень деструктивности задан
ного английского входного текста по нескольким направлениям (например, угрозы,
оскорбления или непристойности), что весьма полезно для полуавтоматического
Глава 13. Резюме, заключительные слова и дальнейшие источники информации
533
модерирования контента (см. рис. 13.1, блок Д). Модель toxicity основана на бо
лее универсальной модели обработки естественного языка — @tensorflowmodels/
universalsentenceencoder, — ставящей в соответствие любому заданному предложению
на английском языке вектор, который далее можно использовать при решении широко
го спектра задач обработки естественного языка, например классификации намерений,
классификации по темам, анализа тональностей и формирования ответов на вопросы.
Следует подчеркнуть, что некоторые из упомянутых моделей не только под
держивают простое выполнение вывода, но и могут служить основой для переноса
обучения или дальнейшего машинного обучения, позволяя тем самым применять
их к предметноориентированным данным, без длительного процесса создания или
обучения модели. А все благодаря сочетаемости, подобно кубикам LEGO, слоев
и моделей. Например, выходной сигнал универсального кодировщика предложений
предназначен в основном для использования в расположенных далее по конвейеру
моделей. В модель speechcommands встроена поддержка сбора голосовых сэмплов
для новых классов слов и обучения на этих сэмплах нового классификатора, что
удобно для приложений голосового управления, требующих пользовательского сло
варя или приспособления к голосу конкретного пользователя. Кроме того, выходные
сигналы от таких моделей, как PoseNet и faceapi.js, относительно местоположения
в текущий момент головы, рук или позы тела можно подавать на вход последующей
модели распознавания конкретных жестов или последовательностей движений, что
удобно для многих приложений, например альтернативных средств общения для
лиц с ограниченными возможностями.
Помимо вышеупомянутых типов входных данных, существуют также сторонние
предобученные модели на основе TensorFlow.js для художественного творчества.
Например, ml5.js включает модель для быстрого переноса стиля изображений и мо
дель для автоматического рисования эскизов. @magenta/music включает модель для
записи в виде нот фортепианной музыки (преобразования звука в ноты) и MusicRNN
(языковую модель для мелодий), способные «сочинять» музыку на основе нескольких
начальных нот, помимо других захватывающих предобученных моделей.
Набор предобученных моделей очень велик и продолжает расширяться. Сообще
ства JavaScriptразработчиков и специалистов по глубокому обучению отличаются
открытостью и духом общего соучастия. При дальнейшем путешествии в мир глубо
кого обучения, возможно, вы наткнетесь на новые интересные идеи, которые могут
пригодиться другим разработчикам. Так что смелее, обучайте, превращайте в паке
ты, загружайте свои модели в npm в форме предобученных моделей и улучшайте их
в соответствии с обратной связью от пользователей. Тогда вы станете полноценным
участником сообщества глубокого обучения на JavaScript.
13.2.4. Спектр возможностей
Какие полезные и интересные модели можно создать, используя все эти слои и пред
обученные модели в качестве «кирпичиков»? Помните, создание моделей глубокого
обучения подобно кубикам LEGO: слои и модули можно комбинировать для ото
бражения практически чего угодно во что угодно, лишь бы можно было представить
534
Do'stlaringiz bilan baham: |