Современные нейронные сети пьют из колодца вдохновения 18-го века — основного продукта обработки сигналов — мощного и вездесущего преобразования Фурье. Его история восходит к тому, что Гаусс и его современники интересовались интерполяцией орбит небесных объектов из конечного набора наблюдений, затем через одержимость Фурье теплопередачей и бесчисленными приложениями в DSP, наконец, сунув пальцы в периферийный ИИ.

Если вы хотите сделать вывод на краю, то окажется, что передача информации через плотный слой — это крошечный вычислительный ад, потому что вы умножаете громоздкую весовую матрицу на не такой уж крошечный вектор. Чтобы сократить вычисления, некоторые умные люди подумали: а что, если мы наложим структуру на матрицу весов? [1] Если мы заставим ее быть, скажем, циркулянтной матрицей и представим ее с помощью собственных векторов и собственных значений, мы обнаружим, что матрица сложенных собственных векторов соответствует… барабанной дроби… матрице преобразования дискретного преобразования Фурье. Таким образом, мы можем вычислить матричное векторное произведение, по сути, применив ДПФ к вектору (а затем еще несколько). Почему это лучше? Потому что некоторые другие умные люди (Кули и Тьюки) придумали алгоритм для более быстрого вычисления ДПФ — быстрое преобразование Фурье. И в настоящее время вы можете легко получить аппаратное ускорение для БПФ.

На параллельном фронте Ализаде и др. [2] имитируют алгоритм Кули и Тьюки, чтобы ускорить точечные свертки с помощью того, что они называют преобразованием бабочки.

Ага.

[1] Дин, К., Рен, А., Юань, Г., Ма, X., Ли, Дж., Лю, Н., Юань, Б. и Ван, Ю., 2018 г., май. Аппаратные ускорители на основе структурированных весовых матриц в глубоких нейронных сетях: FPGA и ASIC. В Материалы симпозиума Великих озер 2018 года по СБИС (стр. 353–358). АКМ.

[2] Ализаде, К., Фархади, А. и Растегари, М., 2019. Преобразование бабочки: эффективный дизайн нейронной архитектуры на основе БПФ. препринт arXiv arXiv:1906.02256.