3DNews Новости Software Искусственный интеллект, машинное обучен… Игровой ИИ AlphaZero открыл новый способ… Самое интересное в обзорах 06.10.2022 [17:51], Павел Котов Разработанная компанией DeepMind система искусственного интеллекта AlphaZero, первоначально предназначенная для настольных игр, предложила более быстрый способ умножения матриц — фундаментальной математической задачи, для которой не находилось новых решений уже более 50 лет. Источник изображения: technologyreview.com Задача об умножении матриц лежит в основе самых разных приложений от вывода изображения на экран до моделирования сложной физики, а также обучения самого искусственного интеллекта. Оптимизация решения этой задачи помогла бы упростить выполнение множества компьютерных операций, сократив расходы и обеспечив экономию энергии. Матрица — это массив чисел, а умножение матриц — это обычно последовательное умножение чисел в строках одной на числа в столбцах другой. Задача кажется относительно простой, но она существенно усложняется при попытке найти ускоренный метод её решения, и это одна из открытых проблем в информатике. Предполагается, что число доступных способов умножения матриц превосходит количество атомов во вселенной — в некоторых случаях до 10³³ вариантов. Чтобы «заинтересовать» нейросеть AlphaTensor, новую версию AlphaZero, задачу об умножении матриц превратили в своего рода настольную игру, каждое действие умножения сопоставили игровому ходу, а ИИ получал награду за победу с минимальным числом ходов. В результате AlphaTensor нашёл новый способ умножения матриц 4×4, более эффективный, чем в 1969 году предложил немецкий математик Фолькер Штрассен (Volker Strassen). Базовый способ предполагает решение задачи за 64 шага, у Штрассена это 49 шагов, а AlphaTensor справляется за 47. Получив результаты, инженеры DeepMind решили адаптировать их для ускорителей NVIDIA V100 и Google TPU, которые чаще всего используются в машинном обучении. Выяснилось, что предложенные AlphaTensor методы работают на 10–20 % быстрее традиционных. Источник: Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER. Материалы по теме Постоянный URL: https://3dnews.ru/1075386/igrovoy-ii-alphazero-otkril-noviy-sposob-umnogeniya-matrits-vpervie-za-50-let Рубрики: Новости Software, Искусственный интеллект, машинное обучение, нейросети, Теги: deepmind, искусственный интеллект, математика ← В прошлое В будущее → |
DeepMind с помощью ИИ ускорила умножение матриц
06. 10.2022
Богдан Каминский
#DeepMind#Искусственный Интеллект
Лаборатория DeepMind использовала ИИ AlphaZero для решения фундаментальной математической задачи в информатике и побила рекорд, установленный более 50 лет назад. Об этом пишет Technology Review.
Речь идет об умножении матриц. Это важнейший тип вычислений, лежащий в основе различных приложений, от отображения изображений на экране до моделирования сложных физических процессов.
Несмотря на широкое распространение метода, он все еще недостаточно изучен. Матрица — это сетка чисел, которая может представлять собой что угодно. Базовая техника перемножений двух таких объектов преподается в средней школе.
Однако все усложняется при попытке найти более быстрый метод решения задачи. По словам ученых, вариантов перемножения двух матриц может быть больше, чем атомов во Вселенной.
«Количество возможных действий почти бесконечно», — сказал инженер DeepMind Томас Хьюберт.
Подход исследователей заключается в превращении задания в своего рода настольную игру под названием TensorGame. Доска представляет собой задачу на умножение, а каждый ход направлен на ее решение. Таким образом, серия предпринятых действий к конечной цели представляет собой алгоритм.
Затем ученые обучили играть в эту игру новую версию AlphaZero, названную AlphaTensor. Аналогично шахматам или Го искусственный интеллект изучал лучшие серии шагов при умножении матриц. За победу с минимальным количеством ходов AlphaTensor получал вознаграждение.
«Мы превратили это в игру — наш любимый вид фреймворка», — сказал Хьюберт.
Главный результат исследователей состоит в ускорении решения данной задачи. Например, базовый школьный метод умножения матриц четыре на четыре состоит из 64 шагов. Самый быстрый способ решения задачи в 1969 году открыл немецкий математик Фолькер Штрассен: он состоит из 49 ходов. AlphaTensor справился за 47 шагов.
По словам исследователей, система DeepMind превосходит лучшие существующие алгоритмы для более чем 70 различных размеров матриц. Их впечатлило количество различных правильных алгоритмов, которые нашел AlphaTensor для каждой задачи.
«Удивительно, что существует по меньшей мере 14 000 способов умножения матриц четыре на четыре», — говорит Хусейн Фаузи, научный сотрудник DeepMind.
После поиска самых быстрых алгоритмов в теории команда использовала AlphaTensor для поиска алгоритмов на графических процессорах Nvidia V100 и Google TPU. Согласно результатам тестирования, программа нашла верные решения на 10-20% быстрее, чем при помощи стандартных методов на аналогичных чипах.
По словам исследователей, это также имеет фундаментальное значение для самого машинного обучения. Ускорение вычисления может оказать большое влияние на тысячи повседневных компьютерных задач, сократив расходы и сэкономив энергию.
В будущем DeepMind планирует использовать AlphaTensor для поиска других типов алгоритмов.
Напомним, в июле ИИ-лаборатория заявила, что системе AlphaFold предсказала структуры более 200 млн белков. Это почти все известные науке соединения, обнаруженные в растениях, бактериях и животных.
В мае DeepMind представила визуальную языковую модель с 80 млрд параметров.
Подписывайтесь на новости ForkLog в Telegram: ForkLog AI — все новости из мира ИИ!
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER
Примеры умножения матриц и векторов
Пример 1
Решение :
\начать{выравнивать*}
А\ВК{х}
&=\влево[
\начать{массив}{ррр}
1 &2 &3\\
4 &5 &6\\
7 &8 &9\\
10 и 11 и 12
\конец{массив}
\Правильно]
\оставил[
\начать{массив}{г}
-2\\
1\\
0
\конец{массив}
\Правильно]
\\
знак равно
\оставил[
\начать{массив}{с}
-2\cdot 1 + 1 \cdot 2 + 0 \cdot 3\\
-2\cdot 4 + 1 \cdot 5 + 0 \cdot 6\\
-2\cdot 7 + 1 \cdot 8 + 0 \cdot 9\\
-2\cdot 10 + 1 \cdot 11 + 0 \cdot 12
\конец{массив}
\Правильно]
\\
знак равно
\оставил[
\начать{массив}{с}
0\\
-3\\
-6\\
-9
\конец{массив}
\Правильно]
= (0, -3, -6, -9).
Пример 2
Вычислить $A \vc{y}$, где $\vc{y} = (-3, -2, -1, 0)$ и $A$ как в примере 1.
Решение : произведение матрицы на вектор не определено. $A$ равно $4 \times 3$, а $\vc{y}$ равно $4 \times 1$ (рассматривается как вектор-столбец).
Пример 3
Вычислить $BC$, где \начать{выравнивать*} Б= \оставил[ \начать{массив}{ррр} 1 &2 &3\\ 4 и 5 и 6 \конец{массив} \Правильно] \qquad \текст{и} \qquad С= \оставил[ \begin{массив}{rr} 1 &2\\ 3 и 4\\ 5 и 6 \конец{массив} \Правильно]. \конец{выравнивание*}
Решение : \начать{выравнивать*} БК &= \оставил[ \начать{массив}{ррр} 1 &2 &3\\ 4 и 5 и 6 \конец{массив} \Правильно] \оставил[ \begin{массив}{rr} 1 &2\\ 3 и 4\\ 5 и 6 \конец{массив} \Правильно] \\ знак равно \оставил[ \begin{массив}{ccc} 1\cточка 1 + 2\cточка 3 + 3\cточка 5 && 1\cdot 2 + 2\cdot 4 + 3\cdot 6 \\ 4\cточка 1 +5\cточка 3 +6\cточка 5 && 4\cdot 2 +5\cdot 4 +6\cdot 6 \конец{массив} \Правильно] \\ знак равно \оставил[ \begin{массив}{cc} 22 и 28\\ 49& 64 \конец{массив} \Правильно] \конец{выравнивание*}
Пример 4
Используя $B$ и $C$, как определено в Примере 3, вычислите $CB$.
Решение :
\начать{выравнивать*}
ЦБ &=
\оставил[
\begin{массив}{rr}
1 &2\\
3 и 4\\
5 и 6
\конец{массив}
\Правильно]
\оставил[
\начать{массив}{ррр}
1 &2 &3\\
4 и 5 и 6
\конец{массив}
\Правильно]
\\
знак равно
\оставил[
\begin{массив}{ccccc}
1\cточка 1 + 2\cточка 4
&&1\cdot 2 + 2\cdot 5
&&1\cdot 3 + 2\cdot 6\\
3\cточка 1 + 4\cточка 4
&&3\cdot 2 + 4\cdot 5
&&3\cdot 3 + 4\cdot 6\\
5\cточка 1 + 6\cточка 4
&&5\cdot 2 + 6\cdot 5
&&5\cdot 3 + 6\cdot 6
\конец{массив}
\Правильно]
\\
знак равно
\оставил[
\начать{массив}{ррр}
9& 12 & 15\\
19 и 26 и 33\\
29 и 40 и 51
\конец{массив}
\Правильно]
\конец{выравнивание*}
Ясно, что умножение матриц не является коммутативным,
т. е. $BC \ne CB$. В случае примеров 3 и 4 $BC$ даже не
матрица того же размера, что и $CB$. В некоторых других случаях $BC$ может быть
определено, но $CB$ не будет определено (например, когда $B$ равно $3 \times
2$-матрица, а $C$ — матрица $2×4$). Верно даже то, что когда $B$
и $C$ — квадратные матрицы, умножение матриц не
коммутативный. Вы можете попробовать сами и увидеть, что $BC \ne CB$ если
\начать{выравнивать*}
Б=
\оставил[
\begin{массив}{rr}
1 &2\\
3 и 4
\конец{массив}
\Правильно]
\qquad
\текст{и}
\qquad
С=
\оставил[
\begin{массив}{rr}
5 и 6\\
7 и 8
\конец{массив}
\Правильно].
\конец{выравнивание*}
Калькулятор умножения матриц | Мгновенные решения
Связанный контент
сообщите об этом объявлении
сообщите об этом объявлении
Матрица A: 12345 ряды Икс 12345 столбцы
Матрица B: 12345 ряды Икс 12345 столбцы
Урок по умножению матриц
Содержание урока
Правила умножения
Умножение матриц подчиняется другим правилам, чем сложение и вычитание матриц. При умножении матрицы на другую матрицу количество столбцов в первой матрице должно совпадать с количеством строк во второй матрице. Первая матрица может иметь любое количество строк, а вторая матрица может иметь любое количество столбцов.
Размеры выходной матрицы определяются размерами входных матриц. Формула для них дается как:
m×n x n×p → m×p
Где матрица A имеет размеры m×n, матрица B имеет размеры n×p, а матрица C имеет размеры m×p.
Как умножить матрицу на другую матрицу
Чтобы умножить две матрицы, мы выполняем скалярное произведение строк и столбцов матрицы A и матрицы B соответственно. Рассмотрим каждую строку матрицы A как вектор с количеством компонент, равным количеству столбцов n . Затем рассмотрим каждый столбец матрицы B как вектор с количеством компонент, равным количеству строк n .
Ниже приведен буквальный пример использования скалярных произведений для умножения матрицы 3×2 A с помощью матрицы 2×3 B .
$$\left[\begin{matrix}a_{1i} & a_{1j}\\a_{2i} & a_{2j}\\a_{3i} & a_{3j}\end{matrix}\right ] \times \left[\begin{matrix}b_{1i} & b_{2i} & b_{3i}\\b_{1j} & b_{2j} & b_{3j}\end{matrix}\right] = \left[\begin{matrix}a_{1} \cdot b_{1} & a_{1} \cdot b_{2} & a_{1} \cdot b_{3}\\a_{2} \cdot b_{ 1} & a_{2} \cdot b_{2} & a_{2} \cdot b_{3}\\a_{3} \cdot b_{1} & a_{3} \cdot b_{2} & a_{ 3} \cdot b_{3}\end{matrix}\right]$$
Как работает калькулятор
Калькулятор на этой странице написан на языке программирования JavaScript (JS) и работает в движке JS интернет-браузера вашего устройства, что позволяет практически мгновенно принимать решения одним нажатием кнопки.