ベクトル化(数学)

数学、特に線型代数行列理論において、行列ベクトル化とは、行列をベクトルに変換する線型変換のことです具体的には、 m × n行列Aのベクトル化(vec( A )と表記)は、行列Aの列を積み重ねることで得られるmn × 1列ベクトルですここで、はAのij列目の要素を表し、上付き文字は転置を表します。ベクトル化は、座標を用いて、これら(つまり行列とベクトル)間の同型性をベクトル空間として表現します。

たとえば、2×2 行列 のベクトル化は です

Aのベクトル化とその転置のベクトル化の関係は、交換行列によって与えられます。

クロネッカー製品との互換性

ベクトル化は、クロネッカー積と組み合わせて、行列乗算を行列上の線形変換として表現するために頻繁に用いられます。特に、 k × ll × mm × n次元の行列ABCの場合に当てはまります。[注 1]例えば、すべてのn × n行列の複素要素を持つリー代数gl( n , C )随伴自己準同型)の場合、 となります。ここではn × n単位行列です

他にも便利な定式が 2 つあります。

B が対角行列(すなわち)場合、ベクトル化は列方向のクロネッカー積カトリ・ラオ積 を参照)とB主対角線を使用して記述できます。

より一般的には、ベクトル化は任意のカテゴリの行列のモノイド閉構造における自己随伴性であることが示されている。 [1]

アダマール製品との互換性

ベクトル化は、n × n行列の空間からそのアダマール積を持つC n 2への代数準同型である。

内部製品との互換性

ベクトル化は、フロベニウス(またはヒルベルト・シュミット内積を持つn × n行列の空間からC n 2へのユニタリ変換です。ここで、上付き文字の†は共役転置を表します

線形和としてのベクトル化

行列のベクトル化演算は線形和で表すことができます。Xベクトル化したいm × n行列とし、 e iをn次元空間のi番目の標準基底ベクトル(つまり )とします。B i以下のように定義される( mn ) × mブロック行列 とします。

B i は、列方向に積み重ねられたサイズm × mのn個のブロック行列で構成され、これらの行列はすべて、 m × m単位行列I mであるi番目の行列を除いてすべてゼロです。

Xのベクトル化されたバージョンは次のように表現できます。

Xにe iを乗算するi番目の列が抽出され、 B iを乗算するとそれが最終ベクトルの目的の位置に配置されます。

あるいは、線形和はクロネッカー積を使用して表すこともできます。

半ベクトル化

対称行列 Aの場合、ベクトル vec( A ) には厳密に必要な以上の情報が含まれます。これは、行列が対称性と下三角部分、つまり主対角線上とその下のn ( n + 1)/2個の要素によって完全に決定されるためです。このような行列では、ベクトル化よりも半ベクトル化の方が便利な場合があります。対称n × n行列Aの半ベクトル化 vech( A ) は、 Aの下三角部分のみをベクトル化して得られるn ( n + 1)/2 × 1の列ベクトルです

たとえば、2×2行列 の場合、半ベクトル化は です

行列の半ベクトル化をそのベクトル化に変換する一意の行列が存在し、その逆もまた同様であり、それぞれ複製行列消去行列と呼ばれます。

プログラミング言語

行列を実装するプログラミング言語には、ベクトル化を容易にする手段がある。Matlab / GNU Octaveでは、行列は によってベクトルA化できるA(:)。GNU Octavevec(A)では、とを使ってそれぞれベクトル化と半ベクトル化も可能であるvech(A)。Juliavec(A)も 関数がある。Python NumPy配列ではflattenというメソッドが実装されている[注 1]が、 Rでは またはc()関数を使うas.vector()か、より効率的に を使って行列の次元属性を削除することで目的の効果を得ることができる。Rではパッケージ「ks」の 関数Aによってベクトル化が可能であり、パッケージ「ks」と「sn」の両方に実装されている 関数 によって半ベクトル化が可能である。[2] [3] [4]dim(A) <- NULLvec()vech()

アプリケーション

ベクトル化は行列計算とその応用において、例えばランダムベクトルや行列のモーメント、漸近線、ヤコビ行列やヘッセ行列の計算などに用いられます。[5]また、 局所感度解析や統計診断にも用いられます。[6]

注記

  1. ^ ab 行優先ベクトル化の恒等式は です

参照

参考文献

  1. ^ Macedo, HD; Oliveira, JN (2013). 「線形代数の型付け:双積指向アプローチ」.コンピュータプログラミング科学. 78 (11): 2160– 2191. arXiv : 1312.4818 . doi :10.1016/j.scico.2012.07.012. S2CID  9846072.
  2. ^ Duong, Tarn (2018). 「ks: カーネルスムージング」. Rパッケージバージョン1.11.0 .
  3. ^ Azzalini, Adelchi (2017). 「Rパッケージ『sn』:歪正規分布と歪t分布などの関連分布」Rパッケージバージョン1.5.1
  4. ^ Vinod, Hrishikesh D. (2011). 「同時縮約とベクトルスタッキング」. Rを用いた実践的な行列代数:応用による能動的かつ意欲的な学習. シンガポール: World Scientific. pp.  233– 248. ISBN 978-981-4313-69-8– Google ブックス経由
  5. ^ マグナス、ヤン、ノイデッカー、ハインツ (2019). 『行列微分計算とその統計学および計量経済学への応用』 ニューヨーク: ジョン・ワイリー. ISBN 978-1-119-54120-2
  6. ^ Liu, Shuangzhe; Leiva, Victor; Zhuang, Dan; Ma, Tiefeng; Figueroa-Zúñiga, Jorge I. (2022年3月). 「行列微分計算とその多変量線形モデルへの応用とその診断法」. Journal of Multivariate Analysis . 188 104849. doi : 10.1016/j.jmva.2021.104849 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Vectorization_(mathematics)&oldid=1314728186"