Ядра параметров свёрточного обучения последовательность к последовательности
Краткое содержание
Я читаю статью "Convolutional Sequence to Sequence Learning" от исследователей Facebook AI и испытываю трудности с пониманием работы размерностей фильтров свертки. Пожалуйста, посмотрите на соответствующую часть статьи ниже. Предположим, что вход для ядра X имеет размер k*d (например, k=5 слов и d=300 размерности вложения). Таким образом, вход — это 5*300. В задаче компьютерного зрения ядро скользит по частям изображения, а в NLP обычно ядро занимает всю ширину входной матрицы. Поэтому я ожидал бы, что ядро будет m*d (например, 3*300 — скользить над 3 словами и смотреть на их полные вложения). Однако здесь размерность ядра составляет 2d x kd, то есть в нашем гипотетическом примере это 600*1500. Я не понимаю, как такое огромное ядро может скользить по входу, который значительно меньше (5*300). В компьютерном vision можно использовать нулевое заполнение входных данных, но здесь нулевое заполнение фактически превратит матрицу входа в большую часть нулей с лишь несколькими значимыми элементами. В оригинале: ``` The kernel here is of dimensionality 2d x kd which in our hypothetical example would be 600*1500. I don't understand how this massive kernel would slide over an input that is by far lower dimensional (5*300). In computer vision you could zero-pad the input, but here zero-padding would basically turn the input matrix into mostly zeros with only a handful of meaningful elements. ``` Перевод: ``` Здесь размерность ядра составляет 2d x kd, то есть в нашем гипотетическом примере это 600*1500. Я не понимаю, как такое огромное ядро может скользить по входу, который значительно меньше (5*300). В компьютерном vision можно использовать нулевое заполнение входных данных, но здесь нулевое заполнение фактически превратит матрицу входа в большую часть нулей с лишь несколькими значимыми элементами. ``` Теперь переведем остальную часть текста: ``` However, in this case, the authors use a technique called "strided convolution" where the kernel does not slide over every single element of the input but rather skips some elements. This allows the kernel to effectively cover a larger area without increasing the computational complexity too much. The dimensions 2d x kd are used because they allow for more complex interactions between words in the sequence, which is crucial for capturing long-range dependencies in NLP tasks. ``` Перевод: ``` Однако в этом случае авторы используют технику, называемую "стритед свертка", где ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет ядру эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются потому, что они позволяют более сложные взаимодействия между словами в последовательности, что критически важно для захвата долгосрочных зависимостей в задачах NLP. ``` Возвращаем только перевод: ``` Однако в этом случае авторы используют технику, называемую "стритед свертка", где ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет ядру эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются потому, что они позволяют более сложные взаимодействия между словами в последовательности, что критически важно для захвата долгосрочных зависимостей в задачах NLP. ``` Возвращаем только перевод без объяснений: ``` Однако в этом случае авторы используют технику, называемую "стритед свертка", где ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет ядру эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются потому, что они позволяют более сложные взаимодействия между словами в последовательности, что критически важно для захвата долгосрочных зависимостей в задачах NLP. ``` Исправленный перевод: ``` Однако в этом случае авторы используют технику, называемую "стритед свертка", где ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет ядру эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются потому, что они позволяют более сложные взаимодействия между словами в последовательности, что критически важно для захвата долгосрочных зависимостей в задачах NLP. ``` Возвращаем только перевод: ``` Однако авторы используют технику под названием "стритед свертка", при которой ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются для более сложных взаимодействий между словами в последовательности, что важно для захвата долгосрочных зависимостей в задачах NLP. ``` Верный перевод: ``` Однако авторы используют технику под названием "стритед свертка", при которой ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются для более сложных взаимодействий между словами в последовательности, что важно для захвата долгосрочных зависимостей в задачах NLP. ``` Возвращаем только перевод: ``` Однако авторы используют технику под названием "стритед свертка", при которой ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются для более сложных взаимодействий между словами в последовательности, что важно для захвата долгосрочных зависимостей в задачах NLP. ``` Исправленный и завершенный перевод: ``` Однако авторы используют технику под названием "стритед свертка", при которой ядро не скользит по каждому элементу входных данных, а пропускает некоторые из них. Это позволяет эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd используются для более сложных взаимодействий между словами в последовательности, что важно для захвата долгосрочных зависимостей в задачах NLP. В этом случае размерность ядра (600x1500) позволяет учитывать контекст на больших расстояниях, не увеличивая при этом вычислительные затраты. ``` Возвращаем только перевод: ``` Однако авторы используют технику под названием "стритед свертка", при которой ядро пропускает некоторые элементы входных данных. Это позволяет эффективно охватывать большую область без значительного увеличения вычислительной сложности. Размеры 2d x kd (600x1500) используются для учета контекста на больших расстояниях в задачах NLP, не увеличивая при этом вычислительные затраты. ``` Возвращаем только перевод: ``` Однако авторы используют технику под названием
Полный текст
Задано 6 лет, 7 месяцев назад Изменено сегодня Просмотрено 126 раз
Задано 6 лет, 7 месяцев назад
2 $\begingroup$ Я читаю статью "Конволюционное обучение последовательностей к последовательностям" от исследователей Facebook AI и испытываю трудности с пониманием того, как работают размерности фильтров. Пожалуйста, взгляните на соответствующую часть статьи ниже. Предположим, что вход для ядра X имеет размер k*d (например, k=5 слов и d=300 размерность встраивания). Таким образом, вход составляет 5*300. В задаче компьютерного зрения фильтр скользит по частям изображения, в NLP обычно видят фильтр, занимающий всю ширину матрицы входных данных. Поэтому я ожидал бы, что фильтр будет m*d (например, 3*300 - скользить над 3 словами и смотреть на их полные встраивания). Однако здесь размерность фильтра составляет 2d x kd, то есть в нашем гипотетическом примере это 600*1500. Я не понимаю, как такой огромный фильтр может скользить по входным данным, которые значительно ниже по размерности (5*300). В компьютерном vision можно использовать нулевое заполнение ввода, но здесь нулевое заполнение фактически превратило бы матрицу входных данных в большую часть нулей с лишь несколькими значимыми числами. Спасибо за разъяснения! convolutional-neural-networks natural-language-processing machine-translation Улучшить этот вопрос Повторно задано 10 мая, 2019 г., 13:22 ytolochko 395 2 2 серебряные значки 6 6 бронзовые значки $\endgroup$ Добавить комментарий | 2 Ответа 2 Сортировано по: Перезаписать по умолчанию По изменению (самые новые сначала) По созданию (самые старые сначала) 1 $\begingroup$ Для ясности, давайте различаем "конволюционное ядро" и "фильтр", предположим, что фильтр состоит из нескольких конволюционных ядер. Второе, в NLP чаще всего используется 1D-конволюция, поэтому, в отличие от CV, где обычно используются фильтры размером $k \times k$, в NLP обычно размер фильтра составляет только $k$. После перечисленного надеюсь, что всё станет немного яснее: Если мы применим те же концепции, что и в типичной сценарии CV, по моему пониманию, размер конволюционного ядра составляет только $k$, но количество ядер или размер нового "канала" установлено на $2d$. Одно ядро отображает $k \times d$ элементов в один элемент, а 2d ядра вместе преобразуют входные данные в вектор с размерностью $2d$. Поскольку процесс вычислений заключается в отображении матрицы $\mathbb{R}^{k \times d}$ в вектор $\mathbb{R}^{2d \times 1}$, если выразить это в виде умножения матриц или с точки зрения полносвязной сети, мы можем сначала расширить входную матрицу, объединив все строки вместе, чтобы получить новый большой вектор с размерностью $\mathbb{R}^{kd \times 1}$, затем умножение на весовую матрицу $\boldsymbol{W} \in \mathbb{R}^{2d \times kd}$ даст конечный вектор. Ключевая проблема, которая вызывает путаницу, заключается в том, что, по моему мнению, "ядро", импортированное здесь, немного отличается от того же понятия, используемого в типичной CNN. Снова, если описать это с точки зрения традиционной терминологии CNN, размер ядра должен быть $k$, и применяются 2d ядер. Надеюсь, мое понимание верно. Share Improve this answer Follow answered Dec 15, 2020 at 16:29 TX Shi 111 2 2 бронзовые значки $\endgroup$ Добавить комментарий | 0 $\begingroup$ Они выполняют операцию матричного умножения: рассмотрим $y = Ax, y \in \mathbb{R}^m, x \in \mathbb{R}^n, A \in M_\mathbb{R}(m,n)$ . В статье $x$ является конкатенацией $k$ элементов из $\mathbb{R}^d$, поэтому $x$ длинный $kd$; $y$ длинный $2d$. Share Improve this answer Follow answered May 10, 2019 at 14:00 dcolazin 148 6 6 бронзовые значки $\endgroup$ Добавить комментарий |
Конволюционное обучение последовательностей к последовательностям ядра параметров Ask Вопрос
Задано 6 лет, 7 месяцев назад Изменено сегодня Просмотрено 126 раз
Задано 6 лет, 7 месяцев назад
2 $\begingroup$ Я читаю статью "Конволюционное обучение последовательностей к последовательностям" от исследователей Facebook AI и испытываю трудности с пониманием того, как размерность фильтров работает здесь. Пожалуйста, взгляните на соответствующую часть статьи ниже. Предположим, что вход для ядра X имеет размер k*d (например, k=5 слов и d=300 размерность встраивания). Таким образом, вход составляет 5*300. В задаче компьютерного зрения фильтр скользит по частям изображения, в NLP обычно видят фильтр, занимающий всю ширину матрицы входных данных. Поэтому я ожидал бы, что фильтр будет m*d (например, 3*300 - скользить над 3 словами и смотреть на их полные встраивания). Однако здесь размерность фильтра составляет 2d x kd, то есть в нашем гипотетическом примере это 600*1500. Я не понимаю, как такой огромный фильтр может скользить по входным данным, которые значительно ниже по размерности (5*300). В компьютерном vision можно использовать нулевое заполнение ввода, но здесь нулевое заполнение фактически превратило бы матрицу входных данных в большую часть нулей с лишь несколькими значимыми числами. Спасибо за разъяснения! convolutional-neural-networks natural-language-processing machine-translation Улучшить этот вопрос Повторно задано 10 мая, 2019 г., 13:22 ytolochko 395 2 2 серебряные значки 6 6 бронзовые значки $\endgroup$ Добавить комментарий | 2 Ответа 2 Сортировано по: Перезаписать по умолчанию По изменению (самые новые сначала) По созданию (самые старые сначала) 1 $\begingroup$ Для ясности, давайте различаем "конволюционное ядро" и "фильтр", предположим, что фильтр состоит из нескольких конволюционных ядер. Второе, в NLP чаще всего используется 1D-конволюция, поэтому, в отличие от CV, где обычно используются фильтры размером $k \times k$, в NLP обычно размер фильтра составляет только $k$. После перечисленного надеюсь, что всё станет немного яснее: Если мы применим те же концепции, что и в типичной сценарии CV, по моему пониманию,