Нейронные сети — классная штука, но их потенциал по-прежнему ограничен стоимостью и энергопотреблением; Бинарные нейронные сети могут помочь справиться с этим
Концепция нейронных сетей впервые появилась более 40 лет назад, когда ученые экспериментировали с математическим моделированием функций мозга.
Они придумали, как создать механическую реализацию нейронной сети, которую можно было бы обучить распознавать закономерности и классифицировать данные — например, распознавать, есть ли в видео кошка или собака.
За последнее десятилетие сложность и возможности нейронных сетей значительно выросли.
В сочетании с беспрецедентным ростом мощности недорогих и доступных суперкомпьютеров и графических процессоров (GPU) они вышли на передний план в качестве метода по умолчанию для решения проблем, распознавания образов и обнаружения аномалий.
Сегодня организации используют их для прогнозирования, исследования предпочтений пользователей, проверки данных и управления рисками.
Но, несмотря на их активное использование, они имеют свои недостатки, ограничивающие их потенциал.
Святой Грааль — это нейронная сеть, которая может быстро анализировать информацию, будучи недорогой и не энергозатратной.
Создание сети, отвечающей этим критериям, — сложная задача, но ее необходимо решить, чтобы мы могли воспользоваться преимуществами нейронных сетей ближе к границам ИТ- и коммуникационных сетей, а также на конечных устройствах.
Одной из альтернатив, которую изучают многие организации, являются бинарные сети.
Это довольно новая технология, но, скорее всего, она станет весьма влиятельной в 2020 году.
Чтобы понять, почему, нам нужно понять, как работают оба типа сетей.
Как работают нейронные сети?
Нейронные сети состоят из нескольких слоев взвешенных сумм.Каждая взвешенная сумма дает число, которое либо указывает на то, что в данных, вероятно, есть какой-то признак, либо на то, что его, вероятно, нет. Эти слои объединяют, например, необработанные изображения в наборы объектов и повторно объединяют их, чтобы в конечном итоге получить ответ. Проще говоря, предположим, вы хотите, чтобы нейронная сеть могла распознавать лица на фотографиях.
Система делит изображение на небольшие сегменты, а затем слои сети сканируют каждый сегмент изображения в поисках особенности, которую они обучены идентифицировать.
Например, первый слой может искать основные характеристики: черные круги, белые круги, белые прямоугольники, цвет кожи.
Эти признаки легко заметить.
Второй слой может искать глаза (черный круг внутри белого), рот (набор белых прямоугольников, расположенных рядом и окруженных кожей), следующий слой может искать два глаза над ртом и с кожей вокруг него.
.
Каждый объект дает каждому сегменту изображения оценку вероятности присутствия желаемого объекта в этой части фотографии.
Затем эти вероятности объединяются, и если достаточное количество слоев считает, что искомый вами объект находится на фотографии, сеть приходит к выводу, что лицо присутствует.
Рис.
1 На рис.
1 (а это фото Барака Обамы) показано, как суммируются эти слои анализа и вероятности, позволяя сети, работая с приблизительными значениями, выдавать относительно точный ответ. Обратите внимание, что такие функции, как черные круги, глаза или рот, не программируются людьми, а обнаруживаются сетью во время обучения.
Вполне возможно, что для поиска лиц лучше подходит другой образец (скажем, нос, уши или линия волос), и прелесть нейронных сетей в том, что их можно использовать для поиска таких шаблонов.
Недостатки традиционных нейронных сетей
Проблема в том, что в стремлении к максимально возможной точности приходится иметь дело с очень точно определенными уровнями вероятности, а эти математические расчеты требуют серьезных ресурсов.Из-за использования чисел с плавающей запятой для анализа сегментов нейронные сети требуют относительно большого количества вычислительной мощности, памяти и времени работы.
Хотя облака обладают достаточной вычислительной мощностью и памятью, многие периферийные приложения не могут полагаться на облако.
Например, беспилотным автомобилям необходимо принимать мгновенные решения в зависимости от окружающей среды, и они не могут полагаться на связь с ограниченной полосой пропускания.
Нейронные сети, работающие с числами с плавающей запятой, нельзя использовать на конечных устройствах.
Многие компании из-за этого используют целочисленную арифметику, что экономит много памяти и вычислительных мощностей, но есть способ получше — именно здесь на помощь приходят бинарные нейронные сети.
Как работают бинарные сети
Если обычная нейронная сеть — это картина Пикассо, то бинарная нейронная сеть — это грубый карандашный набросок.Если нейронные сети присваивают каждому сегменту точно рассчитанную вероятность, то бинарные нейронные сети, как следует из их названия, сводят вероятные значения к черно-белому варианту, то есть либо к -1 (если сеть считает, что существует в этом фрагменте нет знака) или +1 (если есть).
Теперь взвешенная сумма оценивает каждый атрибут либо положительно (умножая на +1), либо отрицательно (умножая на -1), и вместо полных умножений нам нужно учитывать только умножения на +1 и -1.
Рис.
2 Такой подход жертвует определенной точностью, но мы можем компенсировать потери, немного увеличив сеть.
Бинарные сети гораздо проще по своей природе.
По сравнению со своими аналогами с плавающей запятой, им требуется в 32 раза меньше места для хранения числа (1 бит вместо 32) и в сотни раз меньше энергии, что делает их гораздо более подходящими для «периферийных приложений», таких как беспилотные автомобили.
когда устройства сами смогут обрабатывать информацию без привлечения облачных вычислений.
Обычно в бинарной сети еще есть слои с недвоичными значениями, особенно на входе, а иногда и на выходе.
Входное изображение, скорее всего, будет полноцветным, и перед началом создания бинарных слоев его необходимо будет численно интерпретировать.
И выходной слой также всегда будет иметь недвоичный вывод.
Будущее бинарных сетей
Эта простота открывает широкий спектр коммерческих приложений, где эффективность имеет решающее значение.На кристалле с большей вероятностью будут храниться коэффициенты двоичной сети, чем сети с коэффициентами с плавающей запятой.
Производителям процессоров придется внедрить эту технологию и обеспечить поддержку двоичных сетей.
2020 год, скорее всего, станет годом бинарных сетей.
Компании активно работают над внедрением этой технологии, а программное обеспечение, необходимое для обучения бинарных сетей, быстро развивается.
Вероятно, очень скоро мы увидим первое реальное применение этой технологии с недорогими чипами с низким энергопотреблением, способными классифицировать изображения или другие данные на периферийных устройствах.
Таким образом, следующее поколение технологий будет основано на простоте.
Теги: #Машинное обучение #искусственный интеллект #нейронные сети #нейронные сети #бинарные нейронные сети
-
Вещи, Которых Я Не Знаю В 2018 Году
19 Oct, 24 -
Логотип 2.0
19 Oct, 24 -
Платит Ли Sipnet Пользователям За Звонки?
19 Oct, 24 -
Режем Патриотизм
19 Oct, 24 -
Icoder — Онлайн-Конференция Разработчиков
19 Oct, 24