Нейросеть за несколько часов ускорила алгоритм, над которым математики работали столетиями
Матрица — это прямоугольная таблица чисел. Первые алгоритмы работы с матрицами были разработаны в древнем Китае 4 тысячи лет назад. Активное использование матриц для решения систем линейных уравнений началось в XVII — XVIII веках. Эта техника удобна, но для больших числовых таблиц очень трудоемка, и любое ускорение критически важно для вычислительной математики, в том числе для работы нейросетей.
Группа исследователей из Google DeepMind в Лондоне обнаружила, что ИИ может найти более быстрые алгоритмы для решения задачи умножения матриц. В своей статье, опубликованной в журнале Nature, группа описывает использование обучения с подкреплением для улучшения математических алгоритмов.
Матрицы
Математика постоянно используется в компьютерных вычислениях, как средство формального описания реального мира. Например, матрицы используются для представления пикселей на экране компьютера, погодных условий или узлов нейросети. Одним из основных алгоритмов в таких случаях является выполнение вычислений над матрицами. Например, при программировании игр матрицы описывают возможные варианты движения. Для реализации таких движений матрицы часто перемножаются или складываются. Это требует большой вычислительной мощности, и чем больше матрицы — тем труднее с ними работать. Математики тратят много времени и энергии на разработку все более и более эффективных алгоритмов матричных вычислений.
В 1969 году математик Фолькер Штрассен нашел способ перемножать две матрицы 2x2, используя всего семь операций умножения вместо восьми, которые были стандартом. Поскольку перемножение любых матриц можно свести к перемножению блоков 2x2, этот алгоритм на сегодня является основным вычислительным средством, которое используется в компьютерной математике.
ИИ ускоряет ИИ
В этой новой работе исследователи из DeepMind задались вопросом, можно ли использовать систему искусственного интеллекта, основанную на обучении с подкреплением, для создания новых алгоритмов с меньшим количеством шагов, чем те, которые используются сейчас. Чтобы выяснить это, они обратились к игровым системам. Команда сосредоточилась на поиске по дереву, который обычно используется в программировании игр. Это средство, с помощью которого система может перебирать различные сценарии в поисках наилучшего. Такой подход дал отличный результат. Преобразование системы искусственного интеллекта в игру позволило отыскать более эффективный способ для перемножения матриц, чем до сих пор нашли математики. А ведь математики работают с матрицами очень давно и всегда хотели сделать работу с матрицами более быстрой.
Исследователи DeepMind позволили своей системе искать, просматривать и затем использовать существующие алгоритмы, используя вознаграждения за более короткие и быстрые способы перемножения. В результате система нашла факторы, влияющие на эффективность матричного умножения. Затем исследователи позволили системе создать собственный алгоритм. И она создала. Во многих случаях алгоритмы, выбранные системой, были лучше, чем те, которые были созданы математиками.
Теперь эту систему можно использовать для поиска самых разных быстрых алгоритмов во многих областях вычислительной математики.
Пушмит Кохли, соавтор работы сказал журналу Nature о работе нейросети: «У нее потрясающая интуиция, когда она играет в эти игры. Это не интуиция человека, и в некотором смысле ИИ должен создавать свои собственные знания о проблеме с нуля».
Нейросети учатся ускорять свою работу