Изменена: 2021-11-30
Реферат
Свертка – незаменимая операция для решения задачи из самых разных предметных областей: задач машинного обучения, анализа данных, обработки сигналов, фильтров обработки изображений. Современные программные комплексы часто основываются или включают в себя сверточные нейронные сети, которые используют алгоритмы, реализующие операцию свертки. Целесообразно рассмотреть разные подходы и имеющиеся методы реализации операции свертки. Однако из-за сложности реализующих их алгоритмов на практике даже трехмерные свертки используются значительно реже, чем одно- и двумерные. Основная причина этого кроется в отсутствии единого строгого определения операции и перегруженности в математике термина “свертки”. Алгебра многомерных матриц имеет в себе операции, семантически схожие со свертками, а легко распараллеливается с помощью естественных обобщений операций на плоских матрицах на многомерный случай и уже доказала свою эффективность в тензорной алгебре. Поэтому целесообразно сконструировать определение свертки через операции на алгебре многомерных матриц. Оно обеспечивает строгую формализацию этой операции на базе алгебры многомерных матриц и одновременно упрощал и снижал стоимость разработки подобных информационных систем, а также сокращал время выполнения запросов. В статье рассмотрен подход к повышению эффективности алгоритмов свертки в программных системах, основанных на ней, в том числе и сверточных нейронных сетях. Автором предлагается многомерно-матричное определение операции свертки. На ее основе строится многомерно-матричная модель вычислений, которая позволят эффективно формализовать задачи, решение которых использует операции многомерной свертки, а также реализовать эффективное решение этих задач благодаря естественному параллелизму, присущему операциям алгебры многомерных матриц. В результате получена математическая модель операций свертки на основе алгебры многомерных матриц с операцией (0, µ)-свернутого произведения. На практике в решении прикладных задач предложенная математическая модель операций свертки служит основой для разработки библиотек программ, эффективно реализующих эти операции за счет распараллеливания операции (0, µ)-свернутого произведения.