2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Структура RNN2D
Сообщение09.09.2024, 19:37 
Может кто-то идею подкинет?

Но для начала пояснение. Существуют нейросети структуры RNN, которые способны поглотить одномерную последовательность. А я захотел разобраться с двумерной матрицей $(m \times n)$. Если я возьму $m$ строчек и закатаю их под одну и ту же RNN $m$ раз и получу $m$ эмбеддингов. А потом возьму другую RNN и закатаю под неё $m$ предыдущих эмбеддингов и получу некий общий вектор, который характеризует всю двумерную матрицу.
Но меня смущает несимметрия обработки матрицы: столбцы опережают строки или наоборот.

Как быть?

 
 
 
 Re: Структура RNN2D
Сообщение09.09.2024, 19:44 
Аватара пользователя
Mihaylo в сообщении #1654016 писал(а):
меня смущает несимметрия обработки матрицы: столбцы опережают строки или наоборот
Обойдите её "змейкой" Кантора.

 
 
 
 Re: Структура RNN2D
Сообщение09.09.2024, 19:54 
Если я буду обходить змейкой, то я скорее возьму одну и ту же RNN и попру ею по данным. Но она не поймет, почему это индексы скачут не то, чтобы даже линейно, сначала растут, потом убывают и опять как-то несимметрично (нам-то понятно)... Хотелось бы чтобы структура понимала смещения по осям.

Грубо говоря, диагональный обход ничем не лучше горизонтально-возвратно-вертикального.

 
 
 
 Re: Структура RNN2D
Сообщение09.09.2024, 20:08 
Аватара пользователя
Mihaylo в сообщении #1654016 писал(а):
А я захотел разобраться с двумерной матрицей $(m \times n)$.
А зачем?
RNN предполагают, что у Вас на элементах входной последовательности есть естественный порядок. Если Вы хотите просто эмбединг матрицы произвольного размера, то Fully Convolutional Network Вам в руки.

 
 
 
 Re: Структура RNN2D
Сообщение09.09.2024, 20:28 
mihaild в сообщении #1654027 писал(а):
А зачем?

Долго объяснять. Хотя чего долго? Допустим $m$ и $n$ переменные.

Мне пришла идея - обойти по моему обходу в двух направлениях: горизонтально-вертикально, а потом вертикально-горизонтально, а потом суммаризация...

-- 09.09.2024, 20:36 --

Естественный порядок - горизонтально и вертикально. Но есть еще самый естественный порядок - это движение вдоль "производящего" вектора данных, который неизвестен в каждом случае. Если бы это направление было известным, то распознавание цифр MNIST (например) было бы идеальным. То есть, если бы нейросеть распознавала цифры, понимая, как ее рисовали, то было бы всё намного проще. Не с точки зрения структуры проще, но с точки зрения решения задачи со 100% аккуратностью.

 
 
 
 Re: Структура RNN2D
Сообщение09.09.2024, 21:07 
Аватара пользователя
Mihaylo в сообщении #1654040 писал(а):
Допустим $m$ и $n$ переменные
mihaild в сообщении #1654027 писал(а):
Если Вы хотите просто эмбединг матрицы произвольного размера, то Fully Convolutional Network Вам в руки

Архитекутра нейросети подбирается исходя из задачи. Если у Вас есть естественный порядок - то RNN. Если при этом еще недавние значения важнее более давних - то трансформер. Если порядка нет, а важно взаимное расположение на близких участках - то CNN.
Можете ли Вы сказать, $(666, 42)$ должно идти раньше или позже $(42, 666)$? Если не можете, то зачем мучать модель лишней информацией?
Mihaylo в сообщении #1654040 писал(а):
То есть, если бы нейросеть распознавала цифры, понимая, как ее рисовали, то было бы всё намного проще
Если передавать пиксели в порядке росчерка пера, то это будет примерно последовательность единиц, слабо связанная с написанной цифрой.

 
 
 
 Re: Структура RNN2D
Сообщение10.09.2024, 17:44 
mihaild в сообщении #1654051 писал(а):
Архитекутра нейросети подбирается исходя из задачи.

У меня обратная задача - найти задачи под архитектуру. За RNN2D я взялся, чтобы попытаться расширить кругозор. Я гуглю и вижу упоминания об LSTM2D и гипотезы вопрошающих про RNN2D.
mihaild в сообщении #1654051 писал(а):
Если передавать пиксели в порядке росчерка пера, то это будет примерно последовательность единиц, слабо связанная с написанной цифрой.

Конечно же, в потоке данных передаваться должны не только пиксели, которые на 95% равны 1.0 (255), но и их координаты.

-- 10.09.2024, 18:32 --

Если точнее выражаться, существуют Multi-Dimensional LSTM и Grid LSTM (вторые не просто обрабатывают дополнительные измерения, но и ищут связь между данными в них).

Multi-Dimensional Recurrent Neural Networks
https://arxiv.org/pdf/0705.2011

Короче, идея такая: алгоритм рекурсивно принимает $N$ предыдущих состояний, а не одно состояние как в обычной RNN (1D RNN). При этом последовательностью называют не одномерную, а многомерную цепочку вычислений.

В точке $(i, j)$ должно быть использовано состояние точек $(i-1, j)$ и $(i, j-1)$.

Короче, идея озвучена, а вы как хотите, так и стройте последовательность. Главное аккуратно обработать границы мультикуба.

 i  Ende
Выделена тема «Слой SoftOrdering»

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group