ConvNetJS – глубокое обучение в браузере


ConvNetJS предоставляет вашему браузеру глубокие нейронные сети. Его легко использовать и быстро, без использования графического процессора, а это значит, что он работает практически где угодно.

Это проект, созданный Андреем Карпати, аспирантом Стэнфордского университета, с целью сделать нейронные сети более доступными. Никакие графические процессоры не используются для ускорения работы, но необработанный JavaScript, похоже, очень хорошо справляется с этой задачей. Это еще один пример того, как постоянно растущая производительность JavaScript делает возможными новые вещи.

В этом случае у нас есть структура для создания и обучения вашей сети. Вы можете построить сеть, задав слои различных типов. Поскольку один из типов является сверточным, вы можете создавать сети, распознающие изображения. Тем не мение. Распознаватели сверточных изображений – не единственная возможность, и вы можете создавать общие классификаторы, сети прогнозирования регрессии и многое другое.
Когда у вас есть определение сети, вы можете обучить ее с помощью обратного распространения или минимизировать сумму квадратов ошибок для изучения произвольных данных в приложениях регрессии. Существует также учебный класс MagicNet, который автоматически выполняет обучение за вас. Если вы хотите быть в авангарде, вы можете даже попробовать класс обучения с подкреплением Deep Q, чтобы узнать, сможете ли вы научиться играть в игры, учитывая только результат.
Если вы просто хотите увидеть нейронные сети в действии, есть девять демонстраций, которые вы можете запустить в своем браузере. Как упоминалось ранее, тот факт, что графический процессор не требуется, означает, что они, скорее всего, будут работать, и в браузерах, которые я пробовал, они работают замечательно быстро. Они тоже очень хорошо представлены. Вы получаете график ошибок (потерь) по мере обучения сети и можете динамически изменять обычные параметры обучения. Прокрутка вниз открывает раздел, который дает представление о том, как сеть выполняет свою работу. Вы можете видеть функции, используемые для различения примеров. Наконец, вы получаете образец производительности сети на основе того, что она делает в ряде тестовых случаев.

Вы просто знали, что где-то должна быть замешана кошка! В этом случае сеть учится восстанавливать фотографию из меньшего набора весов.

Если вы хотите сохранить конфигурацию сети, вы можете сохранить ее как файл JSON. Точно так же, если у вас есть доступ к сетевым данным, вы можете загрузить их как файл JSON и попробовать. Так, например, если у вас есть доступ к данным о весе для сети, обучавшейся в течение нескольких недель с использованием массива GPU, вы все равно можете запустить сеть в браузере и использовать ее для классификации вещей.
Весь проект с открытым исходным кодом, и вы можете получить код с GitHub.
Хорошая и очень полезная работа.


Добавить комментарий