Часть I • Актуальность и основные понятия
Например, при умножении матриц на каждом шаге вычислений используются данные
из нескольких позиций и позиции взаимно зависимы. Но основная идея ускорения
путем распараллеливания не меняется.
Интересно, что GPU изначально не были предназначены для ускорения вычислений
нейронных сетей. Это видно даже из их названия:
графический процессор
(graphics
processing unit). Основная задача GPU — обработка двумерной и трехмерной графики.
Во многих графических приложениях, например в трехмерных компьютерных играх,
очень важно, чтобы обработка производилась как можно быстрее и частота обновления
кадров изображений была достаточно высокой для создания у пользователя приятного
впечатления от игры. Именно с этой целью создатели GPU изначально применили
распараллеливание типа SIMD. Но в качестве приятного бонуса подобные GPU с воз
можностью параллельных вычислений подходят и для нужд машинного обучения.
Библиотека WebGL, используемая TensorFlow.js для GPUускорения, изначально
была создана для таких задач, как визуализация текстур (рельефов поверхностей)
3Dобъектов в браузере. Но текстуры — это просто массивы чисел! А значит, можно
притвориться, что эти числа — веса или функции активации нейронной сети, и пере
профилировать SIMDоперации библиотеки WebGL над текстурами для нейронных
сетей. Именно так TensorFlow.js и выполняет ускорение вычислений нейронных сетей
в браузере.
Помимо вышеупомянутых преимуществ, приложениям машинного обучения на
основе браузеров присущи те же плюсы, что и вебприложениям вообще, не связан
ным с машинным обучением.
z
z
В отличие от нативных приложений созданные с помощью TensorFlow.js JavaScript
приложения будут работать на множестве разных семейств устройств: от стацио
нарных компьютеров Mac, Windows и Linux до устройств на Android и iOS.
z
z
Благодаря оптимизации 2D и 3Dграфики браузер — наиболее функциональная
и развитая среда для интерактивной визуализации данных. Где бы ни нужно
было продемонстрировать поведение и внутреннее устройство нейронных се
тей людям, сложно представить себе среду лучше браузера. Рассмотрим, на
пример, Playground («песочницу») TensorFlow (
https://playground.tensorflow.org/
).
Это чрезвычайно популярное вебприложение, в котором можно интерактивно
решать задачи классификации с помощью нейронных сетей. Можно модифи
цировать структуру и гиперпараметры нейронной сети, наблюдая, как при этом
меняются ее скрытые слои и выходные сигналы (рис. 1.6). Если вы еще не экс
периментировали с ней — попробуйте обязательно. По мнению многих, это один
из наиболее наглядных и восхитительных учебных инструментов по тематике
нейронных сетей. Playground TensorFlow, по сути, является предшественником
TensorFlow.js. Хотя и потомок Playground — библиотека TensorFlow.js — обладает
намного более широкими возможностями глубокого обучения и намного лучшей
оптимизацией быстродействия. Кроме того, она оснащена специализированным
компонентом для визуализации моделей глубокого обучения (мы рассмотрим
его подробно в главе 7). TensorFlow.js очень пригодится вам, неважно, требуется
Do'stlaringiz bilan baham: |