В полилинейная алгебра, применяя карту, которая является тензорное произведение линейных отображений к тензор называется мультилинейное умножение.
Абстрактное определение
Позволять
поле нулевой характеристики, например
или
.Позволять
- конечномерное векторное пространство над
, и разреши
быть на порядок простой тензор, т.е. существуют векторы
такой, что
. Если нам дан набор линейных карт
, то мультилинейное умножение из
с
определено[1] как действие на
из тензорное произведение этих линейных отображений,[2] а именно
![{ displaystyle { begin {align} A_ {1} otimes A_ {2} otimes cdots otimes A_ {d}: V_ {1} otimes V_ {2} otimes cdots otimes V_ {d} & to W_ {1} otimes W_ {2} otimes cdots otimes W_ {d}, mathbf {v} _ {1} otimes mathbf {v} _ {2} otimes cdots otimes mathbf {v} _ {d} & mapsto A_ {1} ( mathbf {v} _ {1}) otimes A_ {2} ( mathbf {v} _ {2}) otimes cdots otimes A_ {d} ( mathbf {v} _ {d}) end {выравнивается}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cd38c68db294ead0771aee0e9a6cdc9b387a008e)
Поскольку тензорное произведение линейных карт сама по себе является линейной картой,[2] и поскольку каждый тензор допускает разложение тензорного ранга,[1] вышеприведенное выражение линейно распространяется на все тензоры. То есть для общего тензора
, мультилинейное умножение
![{ displaystyle { begin {align} & { mathcal {B}}: = (A_ {1} otimes A_ {2} otimes cdots otimes A_ {d}) ({ mathcal {A}}) [4pt] = {} & (A_ {1} otimes A_ {2} otimes cdots otimes A_ {d}) left ( sum _ {i = 1} ^ {r} mathbf {a } _ {i} ^ {1} otimes mathbf {a} _ {i} ^ {2} otimes cdots otimes mathbf {a} _ {i} ^ {d} right) [5pt ] = {} & sum _ {i = 1} ^ {r} A_ {1} ( mathbf {a} _ {i} ^ {1}) otimes A_ {2} ( mathbf {a} _ { i} ^ {2}) otimes cdots otimes A_ {d} ( mathbf {a} _ {i} ^ {d}) end {выравнивается}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/578131c96c802126b32a930136da435d8de2f7a3)
куда
с
один из
разложения тензорного ранга. Справедливость приведенного выше выражения не ограничивается разложением тензорного ранга; фактически, это справедливо для любого выражения
как линейная комбинация чистых тензоров, что следует из универсальное свойство тензорного произведения.
В литературе обычно используются следующие сокращенные обозначения для полилинейных умножений:
![{ displaystyle (A_ {1}, A_ {2}, ldots, A_ {d}) cdot { mathcal {A}}: = (A_ {1} otimes A_ {2} otimes cdots otimes A_ {d}) ({ mathcal {A}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/27c03ade99250a475eb63d16f8f1f2ff1e243202)
и
![{ displaystyle A_ {k} cdot _ {k} { mathcal {A}}: = ( operatorname {Id} _ {V_ {1}}, ldots, operatorname {Id} _ {V_ {k- 1}}, A_ {k}, operatorname {Id} _ {V_ {k + 1}}, ldots, operatorname {Id} _ {V_ {d}}) cdot { mathcal {A}}, }](https://wikimedia.org/api/rest_v1/media/math/render/svg/49619a648f44baab839d9fd7aeff68b956b0efb0)
куда
![{ displaystyle operatorname {Id} _ {V_ {k}}: V_ {k} to V_ {k}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9e50224d79479940bfd337e750d256c0247676b2)
это
оператор идентификации.
Определение в координатах
В вычислительной полилинейной алгебре принято работать в координатах. Предположим, что внутренний продукт закреплен на
и разреши
обозначить двойное векторное пространство из
. Позволять
быть основой для
, позволять
- дуальный базис, и пусть
быть основой для
. Линейная карта
тогда представляется матрицей
. Аналогично, относительно базиса стандартного тензорного произведения
, абстрактный тензор
![{ displaystyle { mathcal {A}} = sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots сумма _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} e_ {j_ {1}} ^ {1} otimes e_ {j_ {2}} ^ {2} otimes cdots otimes e_ {j_ {d}} ^ {d}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a2896c1b3a54dfeb884a7357e37081ea1b6cbc46)
представлен многомерным массивом
![{ displaystyle { widehat { mathcal {A}}} = [a_ {j_ {1}, j_ {2}, ldots, j_ {d}}] in F ^ {n_ {1} times n_ { 2} times cdots times n_ {d}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7a39d34160d0f6db294f09c923100419af8a14df)
. Заметьте, что
![{ displaystyle { widehat { mathcal {A}}} = sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2} } cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ { 1}} ^ {1} otimes mathbf {e} _ {j_ {2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d2c14611107ad18b977502ff0b1096a6a37df903)
куда
это jстандартный базисный вектор
а тензорное произведение векторов - аффинное Карта Сегре
. Из вышеприведенного выбора базисов следует, что полилинейное умножение
становится
![{ displaystyle { begin {align} { widehat { mathcal {B}}} & = ({ widehat {M}} _ {1}, { widehat {M}} _ {2}, ldots, { widehat {M}} _ {d}) cdot sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ {1 }} ^ {1} otimes mathbf {e} _ {j_ {2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d} & = sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} ({ widehat {M}} _ {1}, { widehat {M}} _ {2} , ldots, { widehat {M}} _ {d}) cdot ( mathbf {e} _ {j_ {1}} ^ {1} otimes mathbf {e} _ {j_ {2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d}) & = sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots , j_ {d}} ({ widehat {M}} _ {1} mathbf {e} _ {j_ {1}} ^ {1}) otimes ({ widehat {M}} _ {2} mathbf {e} _ {j_ {2}} ^ {2}) otimes cdots otimes ({ widehat {M}} _ {d} mathbf {e} _ {j_ {d}} ^ {d} ). end {выравнивается}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aca0d8a54ca55871b9afbc629b4a4d1389871e7e)
Результирующий тензор
живет в
.
Поэлементное определение
Из приведенного выше выражения получается поэлементное определение полилинейного умножения. Действительно, поскольку
- многомерный массив, его можно выразить как
![{ displaystyle { widehat { mathcal {B}}} = sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2} } cdots sum _ {j_ {d} = 1} ^ {n_ {d}} b_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ { 1}} ^ {1} otimes mathbf {e} _ {j_ {2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/269f8b7e79bf329799fb0b90d7f9c714aa600ada)
куда
![{ displaystyle b_ {j_ {1}, j_ {2}, ldots, j_ {d}} in F}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d08a0d018581a45854b711258911c7978c42f324)
коэффициенты. Тогда из приведенных выше формул следует, что
![{ displaystyle { begin {align} & left (( mathbf {e} _ {i_ {1}} ^ {1}) ^ {T}, ( mathbf {e} _ {i_ {2}} ^ {2}) ^ {T}, ldots, ( mathbf {e} _ {i_ {d}} ^ {d}) ^ {T} right) cdot { widehat { mathcal {B}}} = {} & sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ { d} = 1} ^ {n_ {d}} b_ {j_ {1}, j_ {2}, ldots, j_ {d}} left (( mathbf {e} _ {i_ {1}} ^ { 1}) ^ {T} mathbf {e} _ {j_ {1}} ^ {1} right) otimes left (( mathbf {e} _ {i_ {2}} ^ {2}) ^ {T} mathbf {e} _ {j_ {2}} ^ {2} right) otimes cdots otimes left (( mathbf {e} _ {i_ {d}} ^ {d}) ^ {T} mathbf {e} _ {j_ {d}} ^ {d} right) = {} & sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ { j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} b_ {j_ {1}, j_ {2}, ldots, j_ {d}} delta _ {i_ {1}, j_ {1}} cdot delta _ {i_ {2}, j_ {2}} cdots delta _ {i_ {d}, j_ {d}} = {} & b_ {i_ {1}, i_ {2}, ldots, i_ {d}}, end {выровнено}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/15f40f9720d03d44bf0a15150759b81c3d8199e5)
куда
это Дельта Кронекера. Следовательно, если
, тогда
![{ displaystyle { begin {align} & b_ {i_ {1}, i_ {2}, ldots, i_ {d}} = left (( mathbf {e} _ {i_ {1}} ^ {1} ) ^ {T}, ( mathbf {e} _ {i_ {2}} ^ {2}) ^ {T}, ldots, ( mathbf {e} _ {i_ {d}} ^ {d}) ^ {T} right) cdot { widehat { mathcal {B}}} = {} & left (( mathbf {e} _ {i_ {1}} ^ {1}) ^ {T }, ( mathbf {e} _ {i_ {2}} ^ {2}) ^ {T}, ldots, ( mathbf {e} _ {i_ {d}} ^ {d}) ^ {T} right) cdot ({ widehat {M}} _ {1}, { widehat {M}} _ {2}, ldots, { widehat {M}} _ {d}) cdot sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ { d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ {1}} ^ {1} otimes mathbf {e} _ {j_ { 2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d} = {} & sum _ {j_ {1} = 1} ^ {n_ { 1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ { 2}, ldots, j_ {d}} (( mathbf {e} _ {i_ {1}} ^ {1}) ^ {T} { widehat {M}} _ {1} mathbf {e} _ {j_ {1}} ^ {1}) otimes (( mathbf {e} _ {i_ {2}} ^ {2}) ^ {T} { widehat {M}} _ {2} mathbf {e} _ {j_ {2}} ^ {2}) otimes cdots otimes (( mathbf {e} _ {i_ {d}} ^ {d}) ^ {T} { widehat {M} } _ {d} mathbf {e} _ {j_ {d}} ^ {d}) = {} & sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} m_ {i_ {1}, j_ {1}} ^ {(1)} cdot m_ {i_ {2}, j_ {2}} ^ {(2)} cdots m_ {i_ {d}, j_ {d}} ^ {(d)}, end {align}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1ccdfca0897ff6932ac9433b9643137277df19a7)
где
элементы
как определено выше.
Характеристики
Позволять
- тензор порядка d над тензорным произведением
-векторные пространства.
Поскольку полилинейное умножение является тензорным произведением линейных отображений, мы имеем следующее свойство полилинейности (при построении карты):[1][2]
![{ displaystyle A_ {1} otimes cdots otimes A_ {k-1} otimes ( alpha A_ {k} + beta B) otimes A_ {k + 1} otimes cdots otimes A_ {d } = alpha A_ {1} otimes cdots otimes A_ {d} + beta A_ {1} otimes cdots otimes A_ {k-1} otimes B otimes A_ {k + 1} otimes cdots otimes A_ {d}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/699ce4b202090ffb07959486c3e0ed88659528fe)
Мультилинейное умножение - это линейная карта:[1][2]
![{ displaystyle (M_ {1}, M_ {2}, ldots, M_ {d}) cdot ( alpha { mathcal {A}} + beta { mathcal {B}}) = alpha ; (M_ {1}, M_ {2}, ldots, M_ {d}) cdot { mathcal {A}} + beta ; (M_ {1}, M_ {2}, ldots, M_ {d }) cdot { mathcal {B}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/04ec5026fcdf96cf7b8818d949811b4847606742)
Из определения следует, что сочинение двух полилинейных умножений также является полилинейным умножением:[1][2]
![{ displaystyle (M_ {1}, M_ {2}, ldots, M_ {d}) cdot left ((K_ {1}, K_ {2}, ldots, K_ {d}) cdot { mathcal {A}} right) = (M_ {1} circ K_ {1}, M_ {2} circ K_ {2}, ldots, M_ {d} circ K_ {d}) cdot { mathcal {A}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/96b148be12bec59ce5a67dcd642153056415c4d6)
куда
и
являются линейными отображениями.
Обратите особое внимание на то, что полилинейные умножения на разные множители коммутируют,
![{ Displaystyle M_ {k} cdot _ {k} left (M _ { ell} cdot _ { ell} { mathcal {A}} right) = M _ { ell} cdot _ { ell } left (M_ {k} cdot _ {k} { mathcal {A}} right) = M_ {k} cdot _ {k} M _ { ell} cdot _ { ell} { mathcal {A}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5f8961540fee92b791a9915d69c1cc63cef5450e)
если ![{ Displaystyle к neq ell.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/61f0753540bd7271282db065d4d366d927bf8a26)
Вычисление
Мультилинейное умножение фактора k
можно вычислить в координатах следующим образом. Прежде всего заметьте, что
![{ displaystyle { begin {align} M_ {k} cdot _ {k} { mathcal {A}} & = M_ {k} cdot _ {k} sum _ {j_ {1} = 1} ^ {n_ {1}} sum _ {j_ {2} = 1} ^ {n_ {2}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} a_ {j_ {1} , j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ {1}} ^ {1} otimes mathbf {e} _ {j_ {2}} ^ {2} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d} & = sum _ {j_ {1} = 1} ^ {n_ {1}} cdots sum _ {j_ { k-1} = 1} ^ {n_ {k-1}} sum _ {j_ {k + 1} = 1} ^ {n_ {k + 1}} cdots sum _ {j_ {d} = 1 } ^ {n_ {d}} mathbf {e} _ {j_ {1}} ^ {1} otimes cdots otimes mathbf {e} _ {j_ {k-1}} ^ {k-1} otimes M_ {k} left ( sum _ {j_ {k} = 1} ^ {n_ {k}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf { e} _ {j_ {k}} ^ {k} right) otimes mathbf {e} _ {j_ {k + 1}} ^ {k + 1} otimes cdots otimes mathbf {e} _ {j_ {d}} ^ {d}. end {align}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bb54924e524b70b9155236c39b77b9a4fae3832)
Далее, поскольку
![{ displaystyle F ^ {n_ {1}} otimes F ^ {n_ {2}} otimes cdots otimes F ^ {n_ {d}} simeq F ^ {n_ {k}} otimes (F ^ {n_ {1}} otimes cdots otimes F ^ {n_ {k-1}} otimes F ^ {n_ {k + 1}} otimes cdots otimes F ^ {n_ {d}}) simeq F ^ {n_ {k}} otimes F ^ {n_ {1} cdots n_ {k-1} n_ {k + 1} cdots n_ {d}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f3474cfbeed756997438858860151fcbe2439f22)
существует биективное отображение, называемое фактор-k стандарт сплющивание,[1] обозначается
, который определяет
с элементом из последнего пространства, а именно
![{ displaystyle left (M_ {k} cdot _ {k} { mathcal {A}} right) _ {(k)}: = sum _ {j_ {1} = 1} ^ {n_ {1 }} cdots sum _ {j_ {k-1} = 1} ^ {n_ {k-1}} sum _ {j_ {k + 1} = 1} ^ {n_ {k + 1}} cdots sum _ {j_ {d} = 1} ^ {n_ {d}} M_ {k} left ( sum _ {j_ {k} = 1} ^ {n_ {k}} a_ {j_ {1}, j_ {2}, ldots, j_ {d}} mathbf {e} _ {j_ {k}} ^ {k} right) otimes mathbf {e} _ { mu _ {k} (j_ { 1}, ldots, j_ {k-1}, j_ {k + 1}, ldots, j_ {d})}: = M_ {k} { mathcal {A}} _ {(k)},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/247560eb7181516b76c48b4f28c8c21d44300fea)
куда
это jстандартный базисный вектор
,
, и
это фактор-k матрица уплощения из
чьи столбцы фактор-k векторов
в некотором порядке, определяемом конкретным выбором биективного отображения
![{ displaystyle mu _ {k}: [1, n_ {1}] times cdots times [1, n_ {k-1}] times [1, n_ {k + 1}] times cdots times [1, n_ {d}] to [1, N_ {k}].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a3e1d65c6facfa5698a4fcd5230bfa093c2ff272)
Другими словами, мультилинейное умножение
можно вычислить как последовательность d фактор-k мультилинейные умножения, которые сами по себе могут быть эффективно реализованы как классические умножения матриц.
Приложения
В разложение по сингулярным числам высшего порядка (HOSVD) факторизует тензор, заданный в координатах
как мультилинейное умножение
, куда
ортогональные матрицы и
.
дальнейшее чтение