Нейронные сети: у вас есть так простые
нейронные сети – все это ярость прямо сейчас с увеличением числа хакеров, студентов, исследователей, а также предприятий. Последнее возрождение было в 80-х годах, а также 90-х, когда было мало или нет всемирной паутины, а также несколько немногих сетевых инструментов. Настоящее возрождение началось около 2006 года. От перспективы хакера, какие инструменты, а также другие ресурсы были предложены тогда, что теперь предлагается сейчас, и что мы должны ожидать в будущем? Для себя графический процессор на Raspberry Pi было бы мило.
80-х годов, а также 90-х
Нейронная сеть 80-х / 90-х годов книги, а также магниты
Для того, чтобы Young’uns читают это, кто задавался вопросом, как нас старые Geezers удалось что-то сделать, прежде чем всемирные паутины, книги с жесткими вещами сыграли огромную часть, заставляя нас осознавать новых вещей. Как и так, это был особый выпуск научного американского журнала в сентябре 1992 года, а также мозг, который ввел меня в нейронные сети, как биологические, так и искусственные виды.
Вернуться, тогда у вас есть возможность написать свои собственные нейронные сети с нуля или заказывать исходный код от кого-то другого, который вы получите на дискете в почте. Я даже заказал дискету от колонны любительского ученого этого научного американского вопроса. Вы также можете купить библиотеку нейронной сети, которая сделала бы все низкоуровневые, сложные математики для вас. Также был бесплатный симулятор, называемый Xerion из Университета Торонто.
Следуя надзором в раздевании науки книжного магазина. Традиционные были двухтомные исследования в параллельной распределенной обработке, от Rumlehart, McClelland et al. Предпочтительным из моего является нейронным вычислением, а также самоорганизующимися картами: введение, полезное, если вы заинтересованы в нейронных сетях, контролирующих руку робота.
Были также короткие курсы, а также конференции, которые вы могли бы присутствовать. Семинар, который я посещал в 1994 году, был свободным двухдневным, поступившим на Джеффри Хинтон, затем Университета Торонто, как тогда, а затем, а также сейчас лидер в этой области. Лучший предполагаемый ежегодный семинар в то время был конференцией системы по переработке нейронной информации, все еще проходит сильную сегодня.
И, наконец, я вспоминаю расчесывать библиотеки для опубликованных работ. Мой пакет бумаги семинаров, а также раздаточные материалы программы, ксерокопированные статьи, а также рукописные ноты от этого периода составляет около 3 дюймов.
Тогда все прошло относительно тихо. Хотя нейронные сети обнаружили использование в нескольких приложениях, они не дожили до их обмана, а также с точки зрения мира, за пределами ограниченного исследовательского сообщества, они перестали иметь значение. Вещи оставались тихими, поскольку постепенные улучшения были сделаны вместе с несколькими прорывами, а также, наконец, около 2006 года, они снова взорвались в мире.
Нынешний приходит
Мы сосредоточиваемся на инструментах здесь, однако, кратко, эти прорывы были в основном:
Новые методы для учебных сетей, которые проходят более трех или четырех слоев, теперь называются глубокими нейронными сетью
Использование GPU (графические блоки обработки) для ускорения обучения
Доступность учебных данных, содержащих большое количество образцов
Нейронные сетевые рамки
В настоящее время существуют многочисленные библиотеки нейронных сетей, обычно называемые рамки, предлагаемые для скачивания бесплатно с различными лицензиями, многие из них с открытым исходным средством. Большинство из более популярных из них позволяют вам запустить свои нейронные сети на GPU, а также гибкие достаточные для поддержки большинства типов сетей.
Вот большинство из более популярных. Все они имеют поддержку GPU, кроме FNN.
Tensorflow
Языки: Python, C ++ находится в работах
Tensorflow – последняя сетевая структура Google. Он предназначен для распределения сетей на нескольких машинах, а также GPU. Его можно считать низкоуровневым, предлагая большую гибкость, однако, также более широкое обучение кривой обучения, чем на высоком уровне, такие как KERAS, а также Tflearn, оба говорили о. Однако они работают над созданием версии KERAS, интегрированных в Tensorflow.
Мы видели это в хака-хатаде, уже в этом молоте, а также пивной бутылку, распознавая робота, а также даже иметь введение в использование Tensorflow.
Тэано
Языки: Python.
Это библиотека с открытым исходным кодом для выполнения эффективных числовых вычислений с участием многомерных массивов. Это из университета Монреаля, и работает на Windows, Linux, а также OS-X. Theano уже давно около 0,1 был выпущен в 2009 году.
Кафе
Языки: командная строка, Python, а также MatLab
Caffe разработана исследованиями Berkeley AI, а также участникам соседства. Модели могут быть определены в виде простого текстовых данных, а также обработаны с помощью инструмента командной строки. Есть также Python, а также интерфейсы MatLab. Например, вы можете определить вашу модель в простом текстовом файле, дать подробную информацию о том, как тренировать его во втором простых текстовых данных, называемых решателем, а также затем передавать их в CAFFE командной строки инструмент, который затем обучает нейронную сеть. Затем вы можете загрузить эту обученную сеть, используя программу Python, а также использовать его, чтобы сделать что-то, например, классификацию изображений.
CNTK.
Языки: Python, C ++, C #
Это код Microsoft Cognitive Toolkit (CNTK), а также работает на Windows и Linux. В настоящее время они работают над версией, которая будет использоваться с KERAS.
Керас
Языки: Python.
Написанные в Python, KERAS использует либо Tensorflow или Theano внизу, что облегчает использование этих рамки. Также планы также поддерживать CNTK. Работа ведется интегрировать KERAS в Tensorflow, что приводит к отдельным версии только на тесемком потере.
TF SULUE
Языки: Python.
Как и KERAS, это библиотека высокого уровня, построенная на вершине Tensorflow.
Фанна
Языки: поддерживает на 15 языках, не поддерживает GPU
Это библиотека с открытым исходным кодом высокого уровня, написанная в C., она ограничена полностью подключена, а также редко связанными нейронными сетью. Однако в течение многих лет он был популярен, а также даже был включен в дистрибутивы Linux. Он недавно показал здесь на HackAday в роботе, который научился прогуляться, используя укрепление укрепления, технику машинного обучения, которые часто используют нейронные сети.
Факел
Языки: Луа
Библиотека с открытым исходным кодом, написанная в C. Интересно, что они говорят на первой странице своего веб-сайта, которую факел встраивается в встраивание, с портами в iOS, а также бэкэн.
Питорчан
Языки: Python.
Pytorch относительно новой, их веб-сайт говорит, что в раннем выпуске бета-бета, однако, кажется, много интерес к нему. Он работает на Linux и OS-X, а также использует факел под.
Нет сомнений других, которые я пропустил. Если у вас есть особое предпочтение, это не здесь, пожалуйста, дайте нам знать в комментариях.
Какой из них вы должны использовать? Если язык программирования или ОС не является проблемой, то еще один фактор, чтобы иметь в виду, является вашим уровнем квалификации. Если вам неудобно с математикой или не хочу глубоко копать в нюансы нейронной сети, затем выбрали один уровень высокого уровня. В этом случае держитесь подальше от Tensorflow, где вы должны узнать больше о API, чем Kera, Tflearn или другие высокоуровневые. Рамки, которые выделяют свою функциональность математики, обычно требуют, чтобы вы выполняли больше работы для производства сети. еще один фактор – это ли вы выполнять фундаментальные исследования. Структура высокого уровня может не позволить вам получить доступ к доступу к достаточному, чтобы начать делать сумасшедшие сети, возможно, с соединениями, охватывающими несколько слоев или внутри слоев, а также с данными, протекающими во всех направлениях.
Онлайн-сервисы
Вы хотите добавить что-то, что нейронная сеть предложила бы вашему взлому, однако не хочу, чтобы не потратить время, чтобы узнать тонкости нейронных сетей? Для этого есть услуги, предлагаемые, подключая свой взлом в Интернете.
Мы видели бесчисленные примеры, использующие Alexa Alexa для распознавания голоса. У Google также есть свои услуги для обучения облачных машин, которые включают в себя видение, а также речь. Его зрительное обслуживание показали здесь, используя Raspberry Pi для сортировки конфет, а также чтение человеческих эмоций. Инатор направлен на художники, а также музыканты, которые мы видели, когда мы видели, чтобы тренировать нейронную сеть, чтобы реагировать на различные жесты для токарных вещей на выключенном доме, а также для создания крошечной скрипки виртуального мира. Не следует оставаться, Microsoft также имеет свои когнитивные службы API, в том числе: видение, речь, язык, а также другие.
GPU, а также тп
Итализация через нейронную сеть
Обучение нейронной сети требует итерации через нейронную сеть, вперед, а также затем назад, каждый раз улучшая точность сети. До момента, чем больше итераций, которые вы можете сделать, тем лучше, чем будет окончательная точность, когда вы остановитесь. Количество итераций может быть в сотнях или даже тысячах. С 1980-х годов, а также на 1990-х годах компьютеры, достижение достаточных итераций могут принять недопустимое количество времени. Согласно статье, глубокое обучение в нейронных сетях: обзор, в 2004 году увеличение в 20 раз скорость была достигнута с GPU для полностью связанной нейронной сети. В 2006 году для сверточной нейронной сети было достигнуто увеличение в 4 раза. К 2010 году увеличивается на целых 50 раз быстрее при сравнении обучения на процессоре по сравнению с графическим процессором. В результате точность были намного выше.
NVIDIA TITAN XP видеокарта. Image Credit: NVIDIA
Как поможет GPU? Огромная часть обучения нейронной сети включает в себя использование матричного умножения, что-то, что делается намного быстрее на графическом процессе, чем на процессоре. NVIDIA, лидер в создании видеокарт и графических данных, создал API под названием CUDA, которая используется нейронного сетевого программного обеспечения для использования графического процессора. Мы указываем на это, так как вы увидите термин куда. С распространением глубокого обучения NVIDIA добавила больше API, в том числе CUDNN (CUDA для глубоких нейронных сетей), библиотека тонко настроенных примитивов нейронных сетей, а также еще один срок вы увидите.
NVIDia также имеет свой собственный настольный компьютер, Jetson TX2, предназначенный для мозгов для автомобилей самостоятельной вождения, дронов, а также так и так далее. Однако, как указал наш [Brian Skestoff], ценовая точка немного высока для типичного хакера.
Google также работал над собственным аппаратным ускорением в типе его тензорной обработки (TPU). Возможно, вы заметили сходство с именем Google Framework выше, Tensorflow. Tensorflow занимает тяжелое использование тензоров (подумайте о одиночном, а также многомерных массивах в программном обеспечении). Согласно статье Google на TPU, он предназначен для фазы вывода нейронных сетей. Вывод относится не для обучения нейронных сетей, а использование нейронной сети после того, как она была обучена. Мы еще не видели, что он использовал каких-либо типов фреймворков, однако это что-то иметь в виду.
Использование других людей
У вас есть нейронная сеть, которая займет много времени, но не поддерживает GPU или не хочу связать ваши ресурсы? В этой ситуации есть аппаратное обеспечение, которое вы можете использовать на других машинах, доступных через Интернет. Один таков Floydhub, который, для человека, стоит только пенни в час без ежемесячного платежа. еще один – Amazon EC2.
Наборы данных
Обучение нейронной сети с меченными данными
Мы сказали, что один из прорывов в нейронных сетях был наличие данных обучения, содержащих большое количество образцов, в десятках тысяч. Обучение нейронной сети с использованием контролируемого алгоритма обучения включает в себя предоставление данных сетью на его входах, однако, также рассказывая о том, что должно быть ожидаемого выхода. В этой ситуации данные также должны быть маркированы. Если вы дадите изображение лошади к входам сети, а также его выходы говорят, что она выглядит как гепард, тогда необходимо знать, что ошибка большая, а также больше требуется обучение. Ожидаемый вывод называется меткой, а также данные «помечены данные».
Многие такие наборы данных предлагаются онлайн для учебных целей. Мнист – это такое для рукописного признания персонажей. ImageNet и Cifar – две разные наборы данных меченых изображений. Многие больше перечислены на этой странице Википедии. Многие из рамок, перечисленных выше, имеют учебные пособия, которые включают необходимые наборы данных.
Это не значит, что вам абсолютно нужен большой набор данных, чтобы получить респектабельную точность. Пешеходной робот, который мы ранее упомянули, которые использовали FNN Framework, использовали позиции сервопривода в качестве своих учебных данных.
Другие источники
В отличие от 80-х годов, а также 90-х годов, пока вы все еще можете купить книги с жесткими книгами о нейронных сетях, есть многочисленные онлайн. Два онлайн-книги, которые мне понравились, являются глубокими обучениеми на прессе MIT, а также нейронные сети и глубокое обучение. Вышеуказанные перечисленные рамки имеют учебники, чтобы помочь начать работу. И тогда существуют бесчисленные другие веб-сайты, а также видео на YouTube на любом типе темы, которую вы ищете. Я открываю видео YouTube о записанных лекциях, а также семинарные переговоры очень полезны.
Будущее
Raspberry Pi 7 с GPU
Несомненно, будущее увидит больше кадров.
Мы долго видели специализированные нейронные чипсы, а также доски на рынке, но никто не обнаружил огромный рынок, даже вернувшийся в 90-х. Тем не менее, те, которые не предназначены специально для обслуживания реальной зоны роста, программного обеспечения Neural Network, на котором все работают. GPU делают этот рынок. В качестве нейронных сетей с миллионами соединений для изображения, а также обработки голоса, языка, а также настолько на пути к меньшему количеству, а также меньшие потребительские устройства, необходимость для большего количества графических процессоров или процессоров, адаптированных к этому программному обеспечению, приведет к тому, что может оказаться новым элементом на поленичном доске Pi или Arduino. Хотя есть возможность того, что обработка останется онлайн-сервисом вместо этого. Редактировать: Оказывается, есть графический процессор на Raspberry Pi – см. Комментарии ниже. Это не значит, что все вышеперечисленные рамки будут использовать его, хотя. Например, Tensorflow поддерживает только карты NVIDIA CUDA. Однако вы все равно можете использовать графический процессор для собственного собственного нейронного сетевого кода. Различные ссылки находятся в комментариях для этого тоже.
Уже есть конкурс на графический процессор от Asics, таких как ТПУ, и это возможно, мы увидим больше тех, возможно, вытесняйте графические процессоры из нейронных сетей.
Что касается нашего нового компьютера