Дифференцируемый нейронный компьютер

Архитектура искусственной нейронной сети
Дифференцируемый нейронный компьютер, обучаемый хранить и вызывать плотные двоичные числа. Показано выполнение эталонной задачи во время обучения. Вверху слева: вход (красный) и цель (синий) в виде 5-битных слов и 1-битного сигнала прерывания. Вверху справа: выход модели.

В искусственном интеллекте дифференцируемый нейронный компьютер ( DNC ) представляет собой архитектуру нейронной сети с расширенной памятью (MANN), которая обычно (но не по определению) является рекуррентной в своей реализации. Модель была опубликована в 2016 году Алексом Грейвсом и др. из DeepMind . [1]

Приложения

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

До сих пор было продемонстрировано, что DNC справляются только с относительно простыми задачами, которые можно решить с помощью обычного программирования. Но DNC не нужно программировать для каждой проблемы, вместо этого их можно обучать. Такая концентрация внимания позволяет пользователю последовательно вводить сложные структуры данных , такие как графики , и вызывать их для последующего использования. Кроме того, они могут изучать аспекты символического рассуждения и применять их к рабочей памяти. Исследователи, опубликовавшие метод, обещают, что DNC можно обучить выполнять сложные, структурированные задачи [1] [2] и решать приложения с большими данными, которые требуют определенного рода рассуждения, такие как создание видеокомментариев или семантический анализ текста. [3] [4]

DNC можно обучить навигации в системах скоростного транспорта и применять эту сеть в другой системе. Нейронная сеть без памяти обычно должна изучать каждую транспортную систему с нуля. В задачах обхода графа и обработки последовательностей с контролируемым обучением DNC показала лучшие результаты, чем альтернативы, такие как долговременная кратковременная память или нейронная машина Тьюринга. [5] С подходом обучения с подкреплением к задаче блочной головоломки, вдохновленным SHRDLU , DNC обучалась с помощью обучения по учебной программе и научилась составлять план . Она показала лучшие результаты, чем традиционная рекуррентная нейронная сеть . [5]

Архитектура

Схема системы DNC

Сети DNC были введены как расширение нейронной машины Тьюринга (NTM) с добавлением механизмов внимания памяти, которые контролируют, где хранится память, и временного внимания, которое записывает порядок событий. Эта структура позволяет DNC быть более надежными и абстрактными, чем NTM, и по-прежнему выполнять задачи, которые имеют долгосрочные зависимости, чем некоторые предшественники, такие как долгосрочная краткосрочная память ( LSTM ). Память, которая является просто матрицей, может быть распределена динамически и доступна неограниченно. DNC является дифференцируемой от начала до конца (каждый подкомпонент модели является дифференцируемым, следовательно, и вся модель). Это позволяет оптимизировать их эффективно с помощью градиентного спуска . [3] [6] [7]

Модель DNC похожа на архитектуру фон Неймана , и из-за возможности изменения размера памяти она является полной по Тьюрингу . [8]

Традиционный Демократический национальный конгресс

DNC, как первоначально опубликовано [1]

Независимые переменные
х т {\displaystyle \mathbf {x} _{t}} Входной вектор
з т {\displaystyle \mathbf {z} _{t}} Целевой вектор
Контроллер
χ т = [ х т ; г т 1 1 ; ; г т 1 Р ] {\displaystyle {\boldsymbol {\chi }}_{t}=[\mathbf {x} _{t};\mathbf {r} _{t-1}^{1};\cdots ;\mathbf {r} _{t-1}^{R}]} Матрица входных данных контроллера


Глубокий (многослойный) LSTM 0 л Л {\displaystyle \forall \;0\leq l\leq L}
я т л = σ ( Вт я л [ χ т ; час т 1 л ; час т л 1 ] + б я л ) {\displaystyle \mathbf {i} _{t}^{l}=\sigma (W_{i}^{l}[{\boldsymbol {\chi }}_{t};\mathbf {h} _{t -1}^{l};\mathbf {h} _{t}^{l-1}]+\mathbf {b} _{i}^{l})} Вектор входного затвора
о т л = σ ( Вт о л [ χ т ; час т 1 л ; час т л 1 ] + б о л ) {\displaystyle \mathbf {o} _{t}^{l}=\sigma (W_{o}^{l}[{\boldsymbol {\chi }}_{t};\mathbf {h} _{t -1}^{l};\mathbf {h} _{t}^{l-1}]+\mathbf {b} _{o}^{l})} Вектор выходного затвора
ф т л = σ ( Вт ф л [ χ т ; час т 1 л ; час т л 1 ] + б ф л ) {\displaystyle \mathbf {f} _{t}^{l}=\sigma (W_{f}^{l}[{\boldsymbol {\chi }}_{t};\mathbf {h} _{t-1}^{l};\mathbf {h} _{t}^{l-1}]+\mathbf {b} _{f}^{l})} Забудьте вектор ворот
s t l = f t l s t 1 l + i t l tanh ( W s l [ χ t ; h t 1 l ; h t l 1 ] + b s l ) {\displaystyle \mathbf {s} _{t}^{l}=\mathbf {f} _{t}^{l}\mathbf {s} _{t-1}^{l}+\mathbf {i} _{t}^{l}\tanh(W_{s}^{l}[{\boldsymbol {\chi }}_{t};\mathbf {h} _{t-1}^{l};\mathbf {h} _{t}^{l-1}]+\mathbf {b} _{s}^{l})} Вектор состояния ворот,
s 0 = 0 {\displaystyle s_{0}=0}
h t l = o t l tanh ( s t l ) {\displaystyle \mathbf {h} _{t}^{l}=\mathbf {o} _{t}^{l}\tanh(\mathbf {s} _{t}^{l})} Вектор скрытых ворот,
h 0 = 0 ; h t 0 = 0 t {\displaystyle h_{0}=0;h_{t}^{0}=0\;\forall \;t}


y t = W y [ h t 1 ; ; h t L ] + W r [ r t 1 ; ; r t R ] {\displaystyle \mathbf {y} _{t}=W_{y}[\mathbf {h} _{t}^{1};\cdots ;\mathbf {h} _{t}^{L}]+W_{r}[\mathbf {r} _{t}^{1};\cdots ;\mathbf {r} _{t}^{R}]} Выходной вектор DNC
Головки чтения и записи
ξ t = W ξ [ h t 1 ; ; h t L ] {\displaystyle \xi _{t}=W_{\xi }[h_{t}^{1};\cdots ;h_{t}^{L}]} Параметры интерфейса
= [ k t r , 1 ; ; k t r , R ; β ^ t r , 1 ; ; β ^ t r , R ; k t w ; β t w ^ ; e ^ t ; v t ; f t 1 ^ ; ; f t R ^ ; g ^ t a ; g ^ t w ; π ^ t 1 ; ; π ^ t R ] {\displaystyle =[\mathbf {k} _{t}^{r,1};\cdots ;\mathbf {k} _{t}^{r,R};{\hat {\beta }}_{t}^{r,1};\cdots ;{\hat {\beta }}_{t}^{r,R};\mathbf {k} _{t}^{w};{\hat {\beta _{t}^{w}}};\mathbf {\hat {e}} _{t};\mathbf {v} _{t};{\hat {f_{t}^{1}}};\cdots ;{\hat {f_{t}^{R}}};{\hat {g}}_{t}^{a};{\hat {g}}_{t}^{w};{\hat {\boldsymbol {\pi }}}_{t}^{1};\cdots ;{\hat {\boldsymbol {\pi }}}_{t}^{R}]}


Считывающие головки 1 i R {\displaystyle \forall \;1\leq i\leq R}
k t r , i {\displaystyle \mathbf {k} _{t}^{r,i}} Прочитать ключи
β t r , i = oneplus ( β ^ t r , i ) {\displaystyle \beta _{t}^{r,i}={\text{oneplus}}({\hat {\beta }}_{t}^{r,i})} Прочитать сильные стороны
f t i = σ ( f ^ t i ) {\displaystyle f_{t}^{i}=\sigma ({\hat {f}}_{t}^{i})} Бесплатные ворота
π t i = softmax ( π ^ t i ) {\displaystyle {\boldsymbol {\pi }}_{t}^{i}={\text{softmax}}({\hat {\boldsymbol {\pi }}}_{t}^{i})} Режимы чтения,
π t i R 3 {\displaystyle {\boldsymbol {\pi }}_{t}^{i}\in \mathbb {R} ^{3}}


Пишущая головка
k t w {\displaystyle \mathbf {k} _{t}^{w}} Записать ключ
β t w = β ^ t w {\displaystyle \beta _{t}^{w}={\hat {\beta }}_{t}^{w}} Напишите силу
e t = σ ( e ^ t ) {\displaystyle \mathbf {e} _{t}=\sigma (\mathbf {\hat {e}} _{t})} Стереть вектор
v t {\displaystyle \mathbf {v} _{t}} Написать вектор
g t a = σ ( g ^ t a ) {\displaystyle g_{t}^{a}=\sigma ({\hat {g}}_{t}^{a})} Распределительные ворота
g t w = σ ( g ^ t w ) {\displaystyle g_{t}^{w}=\sigma ({\hat {g}}_{t}^{w})} Написать ворота
Память
M t = M t 1 ( E w t w e t ) + w t w v t {\displaystyle M_{t}=M_{t-1}\circ (E-\mathbf {w} _{t}^{w}\mathbf {e} _{t}^{\intercal })+\mathbf {w} _{t}^{w}\mathbf {v} _{t}^{\intercal }} Матрица памяти,
Матрица единиц E R N × W {\displaystyle E\in \mathbb {R} ^{N\times W}}
u t = ( u t 1 + w t 1 w u t 1 w t 1 w ) ψ t {\displaystyle \mathbf {u} _{t}=(\mathbf {u} _{t-1}+\mathbf {w} _{t-1}^{w}-\mathbf {u} _{t-1}\circ \mathbf {w} _{t-1}^{w})\circ {\boldsymbol {\psi }}_{t}} Вектор использования
p t = ( 1 i w t w [ i ] ) p t 1 + w t w {\displaystyle \mathbf {p} _{t}=\left(1-\sum _{i}\mathbf {w} _{t}^{w}[i]\right)\mathbf {p} _{t-1}+\mathbf {w} _{t}^{w}} Приоритетный вес,
p 0 = 0 {\displaystyle \mathbf {p} _{0}=\mathbf {0} }
L t = ( 1 I ) [ ( 1 w t w [ i ] w t w [ j ] ) L t 1 [ i , j ] + w t w [ i ] p t 1 j ] {\displaystyle L_{t}=(\mathbf {1} -\mathbf {I} )\left[(1-\mathbf {w} _{t}^{w}[i]-\mathbf {w} _{t}^{w}[j])L_{t-1}[i,j]+\mathbf {w} _{t}^{w}[i]\mathbf {p} _{t-1}^{j}\right]} Матрица временных связей,
L 0 = 0 {\displaystyle L_{0}=\mathbf {0} }
w t w = g t w [ g t a a t + ( 1 g t a ) c t w ] {\displaystyle \mathbf {w} _{t}^{w}=g_{t}^{w}[g_{t}^{a}\mathbf {a} _{t}+(1-g_{t}^{a})\mathbf {c} _{t}^{w}]} Написать взвешивание
w t r , i = π t i [ 1 ] b t i + π t i [ 2 ] c t r , i + π t i [ 3 ] f t i {\displaystyle \mathbf {w} _{t}^{r,i}={\boldsymbol {\pi }}_{t}^{i}[1]\mathbf {b} _{t}^{i}+{\boldsymbol {\pi }}_{t}^{i}[2]c_{t}^{r,i}+{\boldsymbol {\pi }}_{t}^{i}[3]f_{t}^{i}} Прочитать взвешивание
r t i = M t w t r , i {\displaystyle \mathbf {r} _{t}^{i}=M_{t}^{\intercal }\mathbf {w} _{t}^{r,i}} Чтение векторов


C ( M , k , β ) [ i ] = exp { D ( k , M [ i , ] ) β } j exp { D ( k , M [ j , ] ) β } {\displaystyle {\mathcal {C}}(M,\mathbf {k} ,\beta )[i]={\frac {\exp\{{\mathcal {D}}(\mathbf {k} ,M[i,\cdot ])\beta \}}{\sum _{j}\exp\{{\mathcal {D}}(\mathbf {k} ,M[j,\cdot ])\beta \}}}} Адресация на основе содержимого ,
ключ поиска , сила ключа k {\displaystyle \mathbf {k} } β {\displaystyle \beta }
ϕ t {\displaystyle \phi _{t}} Индексы , отсортированные в порядке возрастания использования u t {\displaystyle \mathbf {u} _{t}}
a t [ ϕ t [ j ] ] = ( 1 u t [ ϕ t [ j ] ] ) i = 1 j 1 u t [ ϕ t [ i ] ] {\displaystyle \mathbf {a} _{t}[\phi _{t}[j]]=(1-\mathbf {u} _{t}[\phi _{t}[j]])\prod _{i=1}^{j-1}\mathbf {u} _{t}[\phi _{t}[i]]} Распределение веса
c t w = C ( M t 1 , k t w , β t w ) {\displaystyle \mathbf {c} _{t}^{w}={\mathcal {C}}(M_{t-1},\mathbf {k} _{t}^{w},\beta _{t}^{w})} Написать взвешивание контента
c t r , i = C ( M t 1 , k t r , i , β t r , i ) {\displaystyle \mathbf {c} _{t}^{r,i}={\mathcal {C}}(M_{t-1},\mathbf {k} _{t}^{r,i},\beta _{t}^{r,i})} Прочитать вес контента
f t i = L t w t 1 r , i {\displaystyle \mathbf {f} _{t}^{i}=L_{t}\mathbf {w} _{t-1}^{r,i}} Переднее взвешивание
b t i = L t w t 1 r , i {\displaystyle \mathbf {b} _{t}^{i}=L_{t}^{\intercal }\mathbf {w} _{t-1}^{r,i}} Обратное взвешивание
ψ t = i = 1 R ( 1 f t i w t 1 r , i ) {\displaystyle {\boldsymbol {\psi }}_{t}=\prod _{i=1}^{R}\left(\mathbf {1} -f_{t}^{i}\mathbf {w} _{t-1}^{r,i}\right)} Вектор сохранения памяти
Определения
W , b {\displaystyle \mathbf {W} ,\mathbf {b} } Матрица весов , вектор смещения
0 , 1 , I {\displaystyle \mathbf {0} ,\mathbf {1} ,\mathbf {I} } Матрица нулей, матрица единиц, единичная матрица
{\displaystyle \circ } Поэлементное умножение
D ( u , v ) = u v u v {\displaystyle {\mathcal {D}}(\mathbf {u} ,\mathbf {v} )={\frac {\mathbf {u} \cdot \mathbf {v} }{\|\mathbf {u} \|\|\mathbf {v} \|}}} Косинусное подобие
σ ( x ) = 1 / ( 1 + e x ) {\displaystyle \sigma (x)=1/(1+e^{-x})} Сигмовидная функция
oneplus ( x ) = 1 + log ( 1 + e x ) {\displaystyle {\text{oneplus}}(x)=1+\log(1+e^{x})} Функция Oneplus
softmax ( x ) j = e x j k = 1 K e x k {\displaystyle {\text{softmax}}(\mathbf {x} )_{j}={\frac {e^{x_{j}}}{\sum _{k=1}^{K}e^{x_{k}}}}}    для j = 1, ..., К .Функция Softmax

Расширения

Усовершенствования включают адресацию разреженной памяти, что снижает сложность времени и пространства в тысячи раз. Этого можно достичь, используя алгоритм приближенного ближайшего соседа, такой как Locality-sensitive hashing , или случайное дерево kd , такое как Fast Library for Approximate Nearest Neighbors из UBC . [9] Добавление адаптивного времени вычислений (ACT) отделяет время вычислений от времени данных, что использует тот факт, что длина и сложность задачи не всегда одинаковы. [10] Обучение с использованием синтетических градиентов выполняется значительно лучше, чем обратное распространение во времени (BPTT). [11] Надежность может быть улучшена с использованием нормализации слоев и обхода выпадения в качестве регуляризации. [12]

Смотрите также

Ссылки

  1. ^ abc Грейвс, Алекс; Уэйн, Грег; Рейнольдс, Малкольм; Харли, Тим; Данихелка, Иво; Грабска-Барвинска, Агнешка; Кольменарехо, Серхио Гомес; Грефенстетте, Эдвард; Рамальо, Тиаго (2016-10-12). «Гибридные вычисления с использованием нейронной сети с динамической внешней памятью». Nature . 538 (7626): 471– 476. Bibcode :2016Natur.538..471G. doi :10.1038/nature20101. ISSN  1476-4687. PMID  27732574. S2CID  205251479.
  2. ^ "Дифференцируемые нейронные компьютеры | DeepMind". DeepMind . 12 октября 2016 г. Получено 19 октября 2016 г.
  3. ^ ab Берджесс, Мэтт. «ИИ DeepMind научился ездить в лондонском метро, ​​используя человеческий разум и память». WIRED UK . Получено 19 октября 2016 г.
  4. ^ Jaeger, Herbert (2016-10-12). «Искусственный интеллект: Глубокое нейронное мышление». Nature . 538 (7626): 467– 468. Bibcode :2016Natur.538..467J. doi : 10.1038/nature19477 . ISSN  1476-4687. PMID  27732576.
  5. ^ ab Джеймс, Майк. "Дифференцируемая нейронная сеть DeepMind думает глубоко". www.i-programmer.info . Получено 20.10.2016 .
  6. ^ "ИИ DeepMind 'учится' ориентироваться в лондонском метро". PCMAG . Получено 19 октября 2016 г.
  7. ^ Мэннес, Джон (13 октября 2016 г.). «Дифференцируемый нейронный компьютер DeepMind помогает вам ориентироваться в метро с помощью своей памяти». TechCrunch . Получено 19 октября 2016 г.
  8. ^ "RNN Symposium 2016: Alex Graves - Differentiable Neural Computer". YouTube . 22 марта 2017 г.
  9. ^ Джек В. Рэй; Джонатан Дж. Хант; Харли, Тим; Данихелка, Иво; Сениор, Эндрю; Уэйн, Грег; Грейвс, Алекс; Тимоти П. Лилликрап (2016). «Масштабирование нейронных сетей с расширенной памятью с помощью разреженных операций чтения и записи». arXiv : 1610.09027 [cs.LG].
  10. ^ Грейвс, Алекс (2016). «Адаптивное время вычислений для рекуррентных нейронных сетей». arXiv : 1603.08983 [cs.NE].
  11. ^ Ядерберг, Макс; Войцех Мариан Чарнецкий; Осиндеро, Саймон; Виньялс, Ориол; Грейвс, Алекс; Сильвер, Дэвид; Кавукчуоглу, Корай (2016). «Разделенные нейронные интерфейсы с использованием синтетических градиентов». arXiv : 1608.05343 [cs.LG].
  12. ^ Франке, Йорг; Нихьюс, Ян; Вайбель, Алекс (2018). «Надежный и масштабируемый дифференцируемый нейронный компьютер для ответов на вопросы». arXiv : 1807.02658 [cs.CL].
  • Пошаговое руководство по уравнениям, управляющим дифференцируемыми нейронными компьютерами
  • Дифференцируемая нейронная сеть DeepMind мыслит глубоко
Retrieved from "https://en.wikipedia.org/w/index.php?title=Differentiable_neural_computer&oldid=1266936689"