Обретение памяти

1   9   0

Информатика
16 окт. 11:00


5803b27d5f1be71b1c573545

Исследователи Google Deepmind представили систему искусственного интеллекта нового типа, так называемый дифференцируемый нейронный компьютер, DNC. Система сочетает обучаемость нейросетей с дедуктивными способностями традиционного ИИ. Ее описание опубликовано в журнале Nature, новой работе посвящена редакционная статья в этом же выпуске журнала, краткий пересказ работы можно прочитать в блоге Deepmind.

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

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

Относительно недавно появился более сложный тип нейросетей, в котором этот недостаток был устранен — так называемые рекуррентные нейросети. В них не только хранится информация о состоянии обученности (матрица весов нейронов), но и информация о предыдущем состоянии самих нейронов. В результате на ответ такой нейросети влияют уже не только входные данные и матрица весов, но и ее ближайшая история. Простейшая нейросеть такого типа может, например, «умно» предсказывать следующий символ в тексте: обучив нейросеть на данных словаря, можно будет на символ «l» получить ответ «l» в том случае, если предыдущими символами были «h», «e» и «l», но уже другой ответ — «o», если предыдущими были «h», «e», «l» и снова «l» (получится слово «hello», см. врез).

Пример реккурентной нейросети с одним скрытым слоем. Видно, как подача данных меняет состояние сети. Обученные веса нейронов храняться в матрицах W_xh, W_hy и особой, свойственной только для рекурентных сетей матрице W_hh.

Andrej Karpathy blog


Рекуррентные нейросети очень хорошо показали себя при генерации музыки или текста «в стиле» некоторого автора, на корпусе которого проходило обучение, в системах машинного перевода* и, недавно, в системах перевода текста в речь и так далее (например, здесь).

Формально говоря, даже простейшие рекуррентные нейросети являются Тюринг-полными, однако их важный недостаток заключается в неявном характере использования памяти. Если в машине Тюринга память и вычислитель разделены (что позволяет по-разному менять их архитектуру), то в рекуррентных нейросетях, даже в самых совершенных из них (LSTM), размерность и характер обращения с памятью определяется архитектурой самой нейросети.

Чтобы исправить этот врожденный порок LSTM-сетей, ученые из DeepMind (все они вошли в коллектив авторов новой статьи) недавно предложили архитектуру так называемой нейронной машины Тюринга (Neural Turing Machines). В ней вычислитель и память разделены, как в обычных машинах Тьюринга, но при этом система сохраняет свойства дифференцируемой функции, а значит, ее можно обучать на примерах (с помощью метода обратного распространения ошибки), а не программировать в явном виде. Новая система, дифференцируемый нейронный компьютер, или DNC, базируется на той же архитектуре, однако в нем общение вычислителя с памятью организовано существенно более гибким образом: в ней реализуются концепции не только запоминания, но и контекстного узнавания и забывания (сравнению двух систем посвящен отдельный раздел новой статьи).

Упрощенно, работу DNC можно представить следующим образом. Система состоит из вычислителя, в роли которой может быть практически любая рекуррентная нейросеть, и памяти. У вычислителя есть специальные модули для обращения к памяти, а над памятью есть особая «надстройка» в виде матрицы, хранящей историю ее использования (подробнее ниже). Память представляет собой матрицу размерности N×M, где строки Ni являются основными ячейками, куда записываются данные (в виде векторов размерности M).

Архитектура DNC: строчки данных показаны строчками с черными и белыми квадратами — они обозначают просто положительные и отрицательные числа в векторе. Видно, что чтение имеет три модуля работы C, B и F, т.е ассоциативный, прямой и обратный — это способы сравнения входного вектора с вектором в ячейке памяти. Память имеет размерность N×M. Крайняя справа схематически показана матрица «метапамяти» размерности N×N, хранящяя последовательность обраoщения к памяти.

Alex Graves et al., Nature, 2016


Полный текст материала далее.


Автор: Александр Ершов

Источник: N+1


1



Для лиц старше 18 лет