Последнее исследование DeepMind - нейронный арифметико-логический блок, надо глянуть

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

Источник | DeepMind
Производство | База технологий искусственного интеллекта


Обратите внимание на колонку базового лагеря Zhihu технологии AI и продолжайте получать больше сухих товаров.


▌Сводка


Хорошо известно, что нейронные сети могут научиться представлять и обрабатывать числовую информацию, но трудно поддерживать хороший уровень их способности к обобщению информации, если они сталкиваются со значениями, выходящими за пределы допустимого диапазона во время обучения. Чтобы обобщить более систематическую численную экстраполяцию, мы предлагаем новую архитектуру, которая представляет числовую информацию в виде линейных функций активации, оперируемых с использованием примитивных арифметических операторов и управляемых обучающими вентилями. Мы называем этот модуль нейронным арифметико-логическим блоком (NALU), подобно арифметико-логическому блоку в обычных процессорах. Эксперименты показывают, что усовершенствованная нейронная сеть NALU может обучаться отслеживанию времени, использовать арифметику для обработки цифровых изображений, преобразовывать цифровую информацию в вещественные скаляры, выполнять компьютерный код и получать количество объектов на изображении. По сравнению с традиционными архитектурами мы лучше обобщаем как в числовом диапазоне, так и за его пределами во время обучения, а экстраполяция часто может быть на несколько порядков выше числового диапазона обучения.


▌Введение


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


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


Ошибка численной экстраполяции в нейронных сетях


Чтобы проиллюстрировать систематические сбои в стандартных сетях, мы показываем производительность различных MLP при обучении скалярным функциям идентификации. Рисунок 1 показывает, что даже с простой структурой все нелинейные функции не могут изучить количественные представления за пределами диапазона обучения.


Рисунок 1. Производительность MLP при обучении скалярным функциям идентичности


▌Нейронные аккумуляторы и нейронные арифметико-логические устройства


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


Первая модель — нейронный аккумулятор (NAC)., который представляет собой специальное применение линейных (аффинных) слоев, матрица преобразования которых W состоит только из -1, 0 и 1. То есть его выходом является алгоритм сложения и вычитания строк во входном векторе, который также не позволяет слою изменять представление чисел при отображении входных данных на выходные.


Это усложняет изучение модели из-за жесткого ограничения, заключающегося в том, что каждый элемент в матрице W равен {-1,0,0}. С этой целью мы предлагаем метод непрерывно дифференцируемой параметризации для W без ограничений на параметры:

. Этот метод очень удобен для обучения градиентному спуску, создавая матрицу с элементами в [-1, 1] и стремящуюся к -1, 0 или 1. На рисунке 2 изображен нейронный арифметико-логический блок (NALU), который может обучаться взвешенной сумме между двумя подблоками, один из которых способен к сложению и вычитанию, а другой — к умножению, делению и возведению в степень, как показано на рисунке.

. Более важным преимуществом является то, что он может показать, как расширить NAC в закрытых подоперациях, тем самым улучшая сквозное изучение новых типов числовых функций.


Рисунок 2 (а) Нейронный аккумулятор (б) Нейронный арифметико-логический блок


На рисунке 2 NAC представляет собой линейное преобразование входных данных, а матрица преобразования — tanh(W) и

произведение элементов. NALU использует два NAC с фиксированными коэффициентами для сложения и вычитания (фиолетовые ячейки меньшего размера на рис. 2) и умножения и деления (фиолетовые ячейки большего размера на рис. 2) и управляется воротами (оранжевые ячейки на рис. 2).


▌Эксперимент


Мы проводим эксперименты с различными областями задач (изображение, текст, код и т. д.), обучающими сигналами (обучение с учителем и обучение с подкреплением), структурами (упреждающая и рекуррентная), и результаты показывают, что предлагаемая нами модель может изучать основные числовые свойства data.Представляет функцию и обобщает значения, которые на порядки больше, чем на этапе обучения. По сравнению с линейными слоями наши модули имеют меньшую вычислительную погрешность. В одном конкретном случае наша модель превзошла современные сети подсчета изображений, и стоит упомянуть, что единственная модификация, которую мы сделали, заключалась в том, чтобы заменить ее последний линейный слой нашей моделью.


Простые задачи по изучению функций


В этих первоначальных синтетических экспериментах мы демонстрируем способность NAC и NALU учиться выбирать соответствующие входные данные и применять различные арифметические функции. Тестовые задания делятся на две категории: первая категория — статические задачи, то есть вводится один вектор в один момент времени; вторая категория — циклические задачи, то есть вход подается в хронологическом порядке. Модель обучается от начала до конца путем минимизации квадрата потерь, а оценка производительности модели состоит из двух частей: значений удержания в пределах диапазона обучения (интерполяция) и значений за пределами диапазона обучения (экстраполяция). ). Таблица 1 показывает, что несколько стандартных архитектур успешно справляются с задачей в случае интерполяции, но не в случае экстраполяции. Будь то интерполяция или экстраполяция, NAC успешно строит модели сложения и вычитания, а NALU преуспевает в умножении.


Таблица 1. Частота ошибок интерполяции и экстраполяции для статических и циклических задач


Счетно-арифметические задачи MNIST


В этой задаче мы даем модели 10 случайно выбранных цифр MNIST и просим модель вывести наблюдаемое значение и количество изображений каждого типа.В задаче сложения цифр MNIST модель также должна научиться вычислять сумму наблюдаемых цифры и. Производительность модели в счете и арифметике была проверена на задачах интерполяции (длина 10) и экстраполяции (длина 100 и длина 1000). Таблица 2 показывает, что стандартная архитектура успешно справляется с задачей интерполяции, но терпит неудачу с задачей экстраполяции. Но и NAC, и NALU могут хорошо выполнять задачи интерполяции и экстраполяции.


Таблица 2 Точность задач подсчета и сложения MNIST для последовательностей длиной 1, 100, 1000


Задачи перевода с языка на число


Чтобы проверить, усваиваются ли представления числовых слов систематическим образом, мы разрабатываем новую задачу перевода: преобразовать текстовое числовое выражение (например, пятьсот пятнадцать) в скалярное представление (515). Числа для обучения и тестирования варьируются от 0 до 1000, с 169, 200 и 631 примерами для обучающих, проверочных и тестовых наборов соответственно. Все сети, обученные на этом наборе данных, начинаются со слоя внедрения, закодированного с помощью LSTM, за которым в конце следует NAC или NALU. В таблице 3 показано, что LSTM + NAC плохо работает как на обучающих, так и на тестовых наборах. LSTM + NALU достигает наилучшей производительности обобщения с большим отрывом, что показывает, что множители очень важны для этой задачи. Здесь также приведен пример теста NALU, как показано на рисунке 3.


Таблица 3 Сравнение средней абсолютной ошибки (MSE) для преобразования числовых строк в скаляр


Рис. 3. Пример прогноза NALU


Оценка программы


В части оценки программы мы рассматриваем два аспекта: первый — это простое сложение двух больших целых чисел, а второй — несколько операций (условные объявления, сложение и вычитание). Эта оценка фокусируется на части экстраполяции: может ли сеть изучить решение, которое обобщается на более широкий диапазон значений. Тренируйтесь с двузначными целыми числами в диапазоне [0,100) и оценивайте со случайными трех- или четырехзначными целыми числами. На рис. 4 сравниваются результаты оценки четырех различных моделей (UGRNN, LSTM, DNC и NALU), из которых только NALU способна обобщать на большие числа. Мы видим, что эффект экстраполяции относительно стабилен даже при увеличении домена на два порядка.


Рис. 4. Простая оценка программы, экстраполированная на большие значения


Научитесь отслеживать время в сетке мира


Пока что во всех экспериментах обученные нами модели делали численные прогнозы. Однако, как сказано во введении, систематические численные вычисления, по-видимому, являются основой для всех видов разумного поведения. Поэтому мы выполнили задачу, чтобы проверить, может ли NAC использоваться «внутренне» агентом, обученным RL.


Как показано на рисунке 5, в этой задаче каждый кадр начинается с начального значения (t=0), а красная цель случайным образом располагается в сетке 5*5 сетевого мира. На каждом временном шаге агент получает сетку размером 56*56 пикселей, представляющую состояние окружающей среды всего мира сетки, и должен выбрать одно из следующих действий: {переместиться вверх, переместиться вниз, переместиться влево, переместиться вправо, игнорировать}. Перед началом теста агент также получает числовую (целочисленную) команду T, которая сообщает точное время, когда агент достигает пункта назначения.


Когда достигается максимальный кадр, m вознаграждается, и агент должен выбрать действие и передвигаться. Первый раз он перемещается в красную область, когда t=T, а обучение заканчивается, когда агент достигает красной области или когда время заканчивается (t=L).


Рис. 5. Задача отслеживания времени в среде Grid World.


Задача прогнозирования паритета MNIST и исследование абляции


В нашей последней задаче: четность MNIST ни ввод, ни вывод не обеспечиваются напрямую числами, но неявные выводы делаются на числовых величинах. В этом эксперименте NAC или его варианты заменили последний линейный слой в модели, предложенной Segui et al. Мы систематически изучаем важность каждого ограничения. Таблица 4 обобщает производительность вариантов моделей. Мы видим, что удаление члена смещения и применение нелинейных весов значительно повышает точность сквозной модели, а NAC снижает ошибку предыдущего лучшего результата на 54%.


Таблица 4. Исследование абляции между аффинным слоем и NAC в задаче паритета MNIST


▌Заключение


В настоящее время метод численного моделирования в нейронной сети не совершенен, потому что метод численного представления не может сделать хорошее обобщение информации за пределами числового диапазона, наблюдаемого при его обучении. В этой статье мы показали, как NAC и NALU решают эти два недостатка, улучшая числовое представление, а также функции за пределами числового диапазона. Однако вряд ли NAC или NALU идеально решат все задачи. Но их можно использовать в качестве общей стратегии для устранения члена смещения в целевой функции при создании модели. Эта стратегия реализуется предложенным нами единичным нейронным числовым представлением, которое позволяет добавлять в модуль произвольные (дифференцируемые) числовые функции и управлять ими с помощью обучающих вентилей.



Оригинальная ссылка:
АР Вест V.org/ABS/1808.00…