Преобразование матрицы или тензора в вектор
В математике , особенно в линейной алгебре и теории матриц , векторизация матрицы — это линейное преобразование , которое преобразует матрицу в вектор . В частности, векторизация матрицы A размером m × n , обозначаемая vec( A ), — это вектор-столбец размером mn × 1, полученный путем наложения столбцов матрицы A друг на друга:
Здесь представляет элемент в i -й строке и j -м столбце матрицы A , а верхний индекс обозначает транспонирование . Векторизация выражает через координаты изоморфизм между ними (т. е. матрицами и векторами) как векторными пространствами.
Например, для матрицы 2×2 векторизация будет иметь вид .
Связь между векторизацией A и векторизацией ее транспонирования задается матрицей коммутации .
Совместимость с продукцией Kronecker
Векторизация часто используется вместе с произведением Кронекера для выражения умножения матриц как линейного преобразования матриц. В частности,
для матриц A , B , и C размерностей k × l , l × m , и m × n . [примечание 1] Например, если ( сопряженный эндоморфизм алгебры Ли gl( n , C ) всех матриц размера n × n с комплексными элементами), то , где — единичная матрица размера n × n .
Есть еще две полезные формулировки:
В более общем плане было показано, что векторизация представляет собой самоприсоединение в моноидальной замкнутой структуре любой категории матриц. [1]
Совместимость с продукцией компании Adamard
Векторизация — это гомоморфизм алгебры из пространства матриц n × n с произведением Адамара (поэлементно) в C n 2 с его произведением Адамара:
Совместимость с внутренними продуктами
Векторизация — это унитарное преобразование из пространства матриц n × n со скалярным произведением Фробениуса (или Гильберта–Шмидта ) в C n 2 :
где верхний индекс † обозначает сопряженное транспонирование .
Векторизация как линейная сумма
Операция векторизации матрицы может быть записана в терминах линейной суммы. Пусть X будет матрицей m × n , которую мы хотим векторизовать, и пусть e i будет i -м каноническим базисным вектором для n -мерного пространства, то есть . Пусть B i будет блочной матрицей ( mn ) × m , определенной следующим образом:
B i состоит из n блочных матриц размером m × m , расположенных по столбцам, и все эти матрицы равны нулю, за исключением i - й, которая является единичной матрицей I m размером m × m .
Тогда векторизованную версию X можно выразить следующим образом:
Умножение X на e i извлекает i -й столбец, тогда как умножение на B i помещает его в нужную позицию в конечном векторе.
Альтернативно линейную сумму можно выразить с помощью произведения Кронекера :
Полувекторизация
Для симметричной матрицы A вектор vec( A ) содержит больше информации, чем строго необходимо, поскольку матрица полностью определяется симметрией вместе с нижней треугольной частью, то есть n ( n + 1)/2 элементами на главной диагонали и ниже . Для таких матриц полувекторизация иногда более полезна, чем векторизация. Полувекторизация vech( A ) симметричной n × n матрицы A — это вектор-столбец n ( n + 1)/2 × 1, полученный векторизацией только нижней треугольной части A :
Например, для матрицы 2×2 полувекторизация равна .
Существуют уникальные матрицы, преобразующие полувекторизацию матрицы в ее векторизацию и наоборот, называемые, соответственно, матрицей удвоения и матрицей исключения .
Язык программирования
Языки программирования, реализующие матрицы, могут иметь простые средства для векторизации. В Matlab / GNU Octave матрица A
может быть векторизована с помощью A(:)
. GNU Octave также допускает векторизацию и полувекторизацию с помощью vec(A)
и vech(A)
соответственно. У Juliavec(A)
также есть функция . В Python массивы NumPy реализуют flatten
метод [примечание 1], тогда как в R желаемый эффект может быть достигнут с помощью функций c()
или as.vector()
. В R функция vec()
пакета 'ks' допускает векторизацию, а функция, vech()
реализованная в обоих пакетах 'ks' и 'sn', допускает полувекторизацию. [2] [3] [4]
Приложения
Векторизация используется в матричном исчислении и его приложениях для установления, например, моментов случайных векторов и матриц, асимптотик, а также матриц Якоби и Гессе. [5]
Она также используется в локальной чувствительности и статистической диагностике. [6]
Примечания
- ^ ab Идентификатор векторизации по строкам: .
Смотрите также
Ссылки
- ^ Маседо, HD; Оливейра, JN (2013). «Ввод линейной алгебры: подход, ориентированный на бипродукт». Science of Computer Programming . 78 (11): 2160–2191. arXiv : 1312.4818 . doi : 10.1016/j.scico.2012.07.012. S2CID 9846072.
- ^ Дуонг, Тарн (2018). "ks: Kernel Smoothing". Версия пакета R 1.11.0 .
- ^ Azzalini, Adelchi (2017). "Пакет R 'sn': асимметрично-нормальное и родственные распределения, такие как асимметричное t". Версия пакета R 1.5.1 .
- ^ Винод, Хришикеш Д. (2011). «Одновременное сокращение и укладка векторов». Практическая матричная алгебра с использованием R: активное и мотивированное обучение с приложениями . Сингапур: World Scientific. стр. 233–248. ISBN 978-981-4313-69-8– через Google Книги .
- ^ Магнус, Ян; Нойдекер, Хайнц (2019). Матричное дифференциальное исчисление с приложениями в статистике и эконометрике . Нью-Йорк: John Wiley. ISBN 9781119541202.
- ^ Лю, Шуанчжэ; Лейва, Виктор; Чжуан, Дэн; Ма, Тиефенг; Фигероа-Сунига, Хорхе И. (март 2022 г.). «Матричное дифференциальное исчисление с приложениями в многомерной линейной модели и его диагностика». Журнал многомерного анализа . 188 : 104849. doi : 10.1016/j.jmva.2021.104849 .