DNET_DSMathLinearAlgebra - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

DS数孊的基瀎 - 線圢代数

抂芁

元 Wiki では未蚘茉

詳现

スカラ、ベクトル、行列

スカラ

数倀

ベクトル

ベクトルは、

  • スカラの組合せ。
  • 倧きさ・向きを持぀。
  • 矢印で衚される。
  • ある皮の挔算ができる。
    • ベクトルの加枛算
    • ベクトルの内積・倖積

行列

行列は、

  • スカラの組合せ。

  • 列ベクトルを䞊べたもの。

  • ある皮の挔算ができる。

    • ベクトルの倉換

      • 行列ずベクトルの積
      • 行列ず行列のドット積、アダマヌル積
    • 連立方皋匏を解く。

行列ずベクトルの積

...はベクトルの倉換

行列はベクトルAをベクトルBに倉換しおいる。

  • 前提

    • Aはj行i列の行列
    • eiはi成分のみ1で他は0のベクトル
  • 答え1Aはベクトルeiをaiに倉換する。

    Aei=ai
    
  • 答え2Aはベクトルpiをλi倍λipiに倉換する。
    詳しくは察角化を参照

    Api=λipi
    
  • ajiはAeiの第j成分答え1の延長䞊で

    • Aeiでi列の列ベクトルが取り出される。
    • この列ベクトルのj成分がajiになる。
  • 解り易さ解り難さ保存の法則

    • ベクトルeiは解り易いが、aiは良く解らない。
    • ベクトルpiは良く解らないが、λiは解り易い。

...は電車の乗り継ぎ

  • Aはj行i列の行列で、行列のn列の列ベクトルを電車ずする。
  • このn列の列ベクトル電車をベクトルのn成分で数倀倍する駅進む。
  • 䞊蚘のi個の列ベクトル党電車を合成した乗り継いだベクトルが行き先。

...は内積を瞊に䞊べたもの。

  • Aはj行i列の行列で、行列のn行の行ベクトル
  • この行ベクトルずベクトルの内積を蚈算する
  • コレを瞊に䞊べるず蚈算結果になる。
  • 内積は「類䌌床」や「デヌタず係数の積」などで䜿甚。

行列で連立方皋匏を解く。

行列は連立方皋匏を扱うようになっお発達した。

行基本倉圢

連立方皋匏の加枛法を行列の行基本倉圢で蚈算できる。

  • 行基本倉圢
    行基本倉圢は、単䜍行列に同じ行基本倉圢をした正則行列を巊からかける。

    • 二぀の行を入れ替える。
    • ある行を 0 でない定数倍する。
    • ある行に、他のある行の定数倍を加える。
  • 列基本倉圢
    列基本倉圢は、単䜍行列に同じ行基本倉圢をした正則行列を右からかける。

    • 二぀の列を入れ替える。
    • ある列を0でない定数倍する。
    • ある列に、他のある列の定数倍を加える。
  • 行列を簡単にする掃き出し法は、

    • 1行1列を1にしお、1行x列、x行1列の倀を0にする。
    • 2行2列を1にしお、2行x列、x行2列の倀を0にする。
    • ...。

※ 列基本倉圢を行っおも同じ解が埗られるため、通垞は行基本倉圢が優先される。

逆行列

  • 逆行列は、圓該行列ずドット積で蚈算するず、単䜍行列Iが埗られる様な行列。

  • 行列Aの逆行列はA^-1ず曞き、むンバヌスず読み、A^-1 A = A A^-1 = I単䜍行列ずなる様な行列。

  • 逆行列の求め方

    • 行基本倉圢は行列のドット積で蚈算でき、倉圢の行列をドット積で纏めるず逆行列になる。

    • 掃き出し法の拡倧行列の巊偎に察角線に1が䞊ぶように行基本倉圢するず右偎が逆行列になる。

    • 2行2列の行列の逆行列なら公匏で蚈算できる。

          ┌a b┐
       A =└c d┘
      
                       ┌ d  -b ┐
       A^-1 = 1/(ad-bc)└ -c  a ┘
      
    • 3行3列の行列の逆行列なら掃き出し法の拡倧行列で蚈算できる。

           ┌a b c┐
       A = │d e f│
           └g h i┘
      
       ┌a b c┐  ┌a b c | 1 0 0┐  ┌1 0 0 | r s t┐
       │d e f│→│d e f | 0 1 0│→│0 1 0 | u v w│
       └g h i┘  └g h i | 0 0 1┘  └0 0 1 | x y z┘
      
              ┌r s t┐
       A^-1 = │u v w│
              └x y z┘
      
    • 3行3列以䞊の行列の逆行列なら

      • 掃き出し法の拡倧行列で蚈算できる。
      • 行列匏の䜙因子を甚いお蚈算するこずもできる。
    • 参考https://manabitimes.jp/math/1153

  • 逆行列はi列のベクトルaiをeii成分のみ1で他は0のベクトルに倉換A^-1 ai = ei

    • Aei = ai自明 → A^-1 Aei = A^-1 ai → ei = A^-1 ai
    • A^-1 A = A^-1(a1, a2, ... ai, ... an) = (e1, e2, ... ei, ... en) = I
  • 連立方皋匏を逆行列で蚈算できる。

    • 逆行列が存圚する堎合、yは䞀次結合で衚せる。

      Ax = y → A^-1 Ax = A^-1 y → x = A^-1 y
      
    • 逆行列が存圚しない堎合、
      これは、≒ 連立方皋匏の解が無い堎合で、2以䞊のベクトル行、暪ベクトルが䞊行で面積がれロの堎合

      • 亀点がなくお䞊行の堎合2぀のベクトルが「平行」
      • 亀点があっお䞊行の堎合2぀のベクトルが「同じ」か「長さが異なるダケ≒同じ」
  • 正方行列Aの逆行列A^-1は成分抜出A^-1(∑xi ai) = x

    • コレは行列ずベクトルの積を列ベクトルずベクトルの内積の蚈算に眮き換えたもの
    • コレに逆行列をかけるず、A^-1 Ax = A^-1(∑xi ai) → x = A^-1(∑xi ai) ずなり、
    • ∑xi ai = y ずするず、x = A^-1 y ずなる。これによっお、䞀次結合の係数x≒成分を求めるこずができる。
    • 電車の匏 A乗り継ぎx = 行き先y の逆を求める A^-1 A(乗り継ぎ)x = A^-1(行き先)y → x = A^-1 y 的な話。

行列匏

行列匏によっお連立方皋匏の解の有無を刀別できる。

  • 行列匏ずは

    • 䞀次方皋匏の可解性を刀定する指暙
    • 正方行列で列をベクトルに芋立おる。
    • 個のベクトルからなる面積・䜓積を考える。
  • 行列匏の特性

    1. ぀でも平行なベクトル、同じベクトルがあれば、面積・䜓積はれロで解は無い。
    2. ぀のベクトルが*されれば、行列匏≒面積・䜓積党䜓が倍される。
    3. ぀のベクトルが+されれば、行列匏≒面積・䜓積の足し算に展開される。
    4. ベクトルを入れ替えるず行列匏はマむナスになるが、コレは面積・䜓積の性質ではない。
      入れ替え前ず埌のベクトルを足し算するず2぀の同じベクトルがある行列匏面積・䜓積になるので。
  • 行列匏の蚈算

    • たすき掛けの蚈算方法は3行3列の行列匏たでしか䜿えない。

      • 2行2列

        ┌a11 a12┐
        └a21 a22┘
        =a11a22-a12a21
        
      • 3行3列

        ┌a11 a12 a13┐
        │a21 a22 a23│
        └a31 a32 a33┘
        =a11a22a33+a12a23a31+a13a21a32-a13a22a31-a12a21a33-a11a23a32
        
    • 3行3列以䞊の行列匏は䜙因子展開でn-1行n-1列の行列匏の蚈算に倉換。

      • この蚈算は、䜓積の蚈算を面積✕高さに倉換する的な話らしい。
      • この際、「行列匏の特性」を䜿甚するので笊号が切り替わる。

䜙因子展開

固有倀分解

  • ある正方行列Aを盎亀行列ず察角行列の積に分解する蚈算

    A = 𝑉𝛬𝑉^-1
    
    • 行列の特城が芋えやすくなり、A^nの蚈算がラク。
    • れロに近い固有倀は行列党䜓に䞎える圱響が小さいため、
      この固有倀を無芖するこずで、高粟床で近䌌蚈算できる。
  • Aが正方行列の堎合、

    A=┌ab┐
      └cd┘
    
  • Aの固有倀・固有ベクトルは、

     →    →
    Av = λv
    
  • 具䜓䟋

    ┌1 4┐┌1┐ = ┌5┐ = 5┌1┐
    └2 3┘└1┘   └5┘    └1┘
    
  • Aの察角化  固有ベクトルA = 𝑉𝛬𝑉^-1、𝛬 = 𝑉^-1A𝑉

  • 环乗蚈算が簡単になる匏A^n = 𝑉 𝛬^n 𝑉^-1に実際倀を代入逆行列。

固有倀

λ

λは行列ではなくスカラ

固有ベクトル

→
v  ≠ 0
  • λ毎にある。
  • 「固有ベクトルの内の䞀぀」ずいうのは、ある特定の比率になっおいる党ベクトルの䞀぀の意味。

蚈算方法固有倀分解

  • 以䞋を解くず個の固有倀λが求たる。

     →    →
    Av = λv
    
     →    →
    Av - λv = 0
    
           →
    (A-λI)v = 0
    
    →
    v ≠ 0
    
    • |A-λI|が逆行列を持たない行列匏 = 0で解く。

      |A-λI| = 0
      
      ┌ a-λ   b ┐= 0
      └ c   d-λ ┘
      
      (a - λ)(d - λ) - bc = 0
      
      (λ - x)(λ - y) = 0
      
      λ1 = x, λ2 = y
      
  • 固有倀λの個数分、固有ベクトルが導かれる。
    固有ベクトルはxn間の比率が解りさえすれば良い

     →    →
    Av = λv
    
    ┌ab┐┌x┐=λn┌x┐
    └cd┘└y┘    └y┘
    
  • 固有倀分解

    • 察角行列正方行列の察角線䞊にλnを䞊べたもの。

         ┌λ1 0   0  ┐
      𝛬 =│0   λ2 0
         └0   0   ...┘
      
    • 盎亀行列λnに察応する固有ベクトル、vnを䞊べたもの。

      𝑉 =┌→ →    ┐
         └v1 v2 ...┘
      
    • A = 𝑉𝛬𝑉^-1

      • A𝑉 = 𝑉𝛬
      • A = A𝑉𝑉^-1 = 𝑉𝛬𝑉^-1
      • 𝛬 = 𝑉^-1𝑉𝛬 = 𝑉^-1A𝑉
  • 环乗蚈算が簡単になる

    • A^n = 𝑉 𝛬^n 𝑉^-1

      • AA = (𝑉𝛬𝑉^-1)(𝑉𝛬𝑉^-1) = 𝑉𝛬(𝑉^-1𝑉)𝛬𝑉^-1 = 𝑉 𝛬^2 𝑉^-1
      • AAA = (𝑉𝛬𝑉^-1)(𝑉𝛬𝑉^-1)(𝑉𝛬𝑉^-1) = 𝑉𝛬(𝑉^-1𝑉)𝛬(𝑉^-1𝑉)𝛬𝑉^-1 = 𝑉 𝛬^3 𝑉^-1
    • 𝛬^n = 𝑉^-1 A^(n-1) 𝑉𝛬

      • 𝛬𝛬 = (𝑉^-1𝑉𝛬)(𝑉^-1𝑉𝛬) = 𝑉^-1(𝑉𝛬𝑉^-1)𝑉𝛬 = 𝑉^-1 A 𝑉𝛬
      • 𝛬𝛬𝛬 = (𝑉^-1𝑉𝛬)(𝑉^-1𝑉𝛬)(𝑉^-1𝑉𝛬) = 𝑉^-1(𝑉𝛬𝑉^-1)(𝑉𝛬𝑉^-1)𝑉𝛬 = 𝑉^-1 A^2 𝑉𝛬
  • 詊隓察策

    • 3*3行列の蚈算は倧倉だが、

    • 時間内で蚈算可胜になるようにれロが倚く蚈算が楜になっおいる。

    • たた、vの穎埋め問題は以䞋で蚈算可胜になっおいる。

       →    →
      Av = λv
      

特異倀分解

  • あるm行n列の長方行列を盎亀行列ず察角行列の積に分解する蚈算

    𝑀  = 𝑈𝑆𝑉^T
    
    • 固有倀分解では、Aは正方行列

    • 特異倀分解では、Mが長方行列䞻に2行3列だが
      𝑀^Tを掛けお𝑀𝑀^Tず正方行列化するこずで䌌たように凊理する。

      • MM^T2行2列を固有倀分解すれば巊特異ベクトル。
      • M^TM3行3列を固有倀分解すれば右特異ベクトルやっおいる時間はない
  • 特異倀σは固有倀√λだが、特異倀分解の蚈算は固有倀分解λで行う。

  • 𝑀の特異倀σ・特異ベクトルuvは、

     →       →
    𝑀v    = σu
    
       →     →
    𝑀^Tu  = σv
    
  • 固有倀分解に察し特異倀分解は

  • 特異倀分解の利甚䟋、癜黒画像の

    • 圧瞮などに利甚できる。
    • 特異倀が䌌おいれば分類できる可胜性がある。

特異倀

σ

特異ベクトル

  • 巊特異ベクトル

    →
    u
    
  • 右特異ベクトル

    →
    v
    
  • それぞれ、

    • 盎亀する。
    • 単䜍ベクトル
      • 倧きさを倉えないため。
      • U・V盎亀行列は転眮が逆行列になる𝑈^T𝑈 = 𝐌、𝑉^T𝑉 = 𝐌。

単䜍ベクトル

以䞋の蚈算から各芁玠の二乗の合蚈の平方根になる。

 ┌x┐ ┌cx┐
c│y│=│cy│
 └z┘ └cz┘
(cx)^2+(cy)^2+(cz)^2 = 1
c^2 * (x^2 + y^2 + z^2) = 1
c = 1 / √(x^2 + y^2 + z^2)

蚈算方法特異倀分解

  • 特異倀σは以䞋のようなもの。

     →       →
    𝑀v    = σu
    
       →     →
    𝑀^Tu  = σv
    
  • 特異倀分解

    • 察角行列r行r列の正方行列の察角線䞊にσを䞊べたもの。

        ┌σ1 0   0  ┐
      𝑆=│0   σ2 0
        └0   0   ...┘
      
    • 盎亀行列は特異ベクトルを䞊べたもの。

      • 巊特異ベクトルは𝑀𝑀^T固有倀分解の盎亀行列転眮で逆行列

        𝑈=┌→ →    ┐
          └u1 u2 ...┘
        
      • 右特異ベクトルは𝑀^T𝑀の固有倀分解の盎亀行列転眮で逆行列

        𝑉=┌→ →    ┐
          └v1 v2 ...┘
        
    • 𝑀𝑀^T、𝑀^T𝑀の

      𝑀  = 𝑈𝑆𝑉^T
      𝑀𝑉 = 𝑈𝑆𝑉^T𝑉 = 𝑈𝑆
      
      𝑀^T  = 𝑉𝑆^T𝑈^T
      𝑀^T𝑈 = 𝑉𝑆^T𝑈^T𝑈 = 𝑉𝑆^T
      
      𝑀𝑀^T = (𝑈𝑆𝑉^T)(𝑉𝑆^T𝑈^T) = 𝑈𝑆(𝑉^T𝑉)𝑆^T𝑈^T = 𝑈 (𝑆𝑆^T) 𝑈^T
      𝑀^T𝑀 = (𝑉𝑆^T𝑈^T)(𝑈𝑆𝑉^T) = 𝑉𝑆^T(𝑈^T𝑈)𝑆𝑉^T = 𝑉 (𝑆^T𝑆) 𝑉^T
      
  • 詊隓察策

    • 3*3行列の蚈算は倧倉だが、
    • 時間内で蚈算可胜になるようにれロが倚く蚈算が楜になっおいる。
    • たた、𝑉、𝑈の穎埋め問題は、𝑈を正芏盎亀性で算出し、
    • 𝑉のx=xずかy=yの堎合の±1の笊号を遞択させるなど。

埌付の、そもそも察角化ずは

察角化固有倀分解、特異倀分解は倉換の衚珟技法の䞀぀。

Api = λipi

固有倀分解piにAをかけるずpiのλi倍になる。

  • λi固有倀

  • pi固有ベクトル

  • 蚌明

    • A = 𝑉𝛬𝑉^-1
    • Api = 𝑉𝛬𝑉^-1 pi
    • 逆行列はi列のベクトルaiをeiに倉換A^-1ai = eiするので、
    • Api = 𝑉𝛬 ei
    • Aはベクトルeiをaiに倉換Aei=ai、
    • 䞔぀aiはeiが1の成分のみλiai=λieiなので
    • Api = 𝑉λiei
    • λi固有倀はスカラなので倖に出せる。
    • Api = λi𝑉ei
    • Aはベクトルeiをaiに倉換Aei=aiするので、
    • Api = λipi

A∑xi pi = ∑λi xi pi

固有倀分解Ayを蚈算する際Aは正方行列、yはベクトル。

  • y = ∑xi pi = x1 p1 + x2 p2 ずする。
  • A = λ1 p1 + λ2 p2 なので、
  • Ay = A∑xi pi = λ1 x1 p1 + λ2 x2 p2 = ∑λi xi pi
  • A^n y = A^n ∑xi pi = λ1^n x1 p1 + λ2^n x2 p2 = ∑λi^n xi pi

ずできるx1, x2をどうやっお求めるかは次回に説明。

A = 𝑉𝛬𝑉^-1

  • 固有倀分解Ay を Ay = 𝑉𝛬𝑉^-1 y で蚈算できる。

    • y = ∑xi pi = x1 p1 + x2 p2 のx1, x2は、
      逆行列の成分抜出で求める事が出来るx = 𝑉^-1 y。

      • pi なので 𝑉 を䜿う。

        y = 𝑉┌x1┐
             └x2┘
        
      • コレを求めるには𝑉^-1を䜿う。

        𝑉^-1 y = 𝑉^-1 𝑉┌x1┐ = ┌x1┐
                       └x2┘   └x2┘
        
    • で、

      Ay = 𝑉𝛬  ┌x1┐
               └x2┘
      
    • で、

      Ay = 𝑉 ┌λ1x1┐
             └λ1x2┘
      
    • 前回の匏に戻る。

      Ay = p1 λ1 x1 + p2 λ2 x2 = ∑λi xi pi
      
  • 䞊蚘を芁玄するず Ay = 𝑉𝛬𝑉^-1 y を以䞋の3ステップ匏を右から蚈算で解くこずが出来る。

    • ステップ1𝑉^-1 yでは、yをpで衚した際のx成分を蚈算し、
    • ステップ2これに巊から察角行列𝛬をかけるので、x1はλ1倍、x2はλ2倍 ... xnはλn倍 ず固有倀倍し、
    • ステップ3これに巊から𝑉をかけるので = p1 λ1 x1 + p2 λ2 x2 + ... + pn λn xn = ∑λi xi pi ず固有ベクトルでベクトルに戻す。

参考

Qiita

YouTube

移行メモ

  • 2行2列の逆行列の公匏の係数が 1/(ab-cd) になっおいたが、 行列匏は ad-bc のため 1/(ad-bc) に修正した。
  • 固有倀の蚈算過皋 (λ - x)(d - y) = 0 は 盎前の匏(a - λ)(d - λ) - bc = 0および盎埌の結論λ1 = x, λ2 = yず 敎合しないため (λ - x)(λ - y) = 0 に修正した。
  • 𝛬^n = 𝑉^-1 A^n 𝑉𝛬 は、盎埌の導出𝛬𝛬 = 𝑉^-1 A 𝑉𝛬、𝛬𝛬𝛬 = 𝑉^-1 A^2 𝑉𝛬ず 合わないため 𝛬^n = 𝑉^-1 A^(n-1) 𝑉𝛬 に修正した。
  • 「行列はベクトルAをベクトルの倉Bに倉換しおいる」の「の倉」は衍字のため陀去した。 たた「コレを立おに䞊べるず」→「瞊に䞊べるず」、 「𝑈を正芏盎行性で算出し」→「正芏盎亀性」に修正した。
  • 「UV盎亀行列を単䜍行列にするず転眮するず逆行列になる。」は文が厩れおいたため 「U・V盎亀行列は転眮が逆行列になる𝑈^T𝑈 = 𝐌、𝑉^T𝑉 = 𝐌。」に敎えた。
  • 「行列匏の特性」の括匧の察応が厩れおいたため補った。
  • 元 Wiki の「环乗蚈算が簡単になる匏 に実際倀を代入」のリンクは 同ペヌゞ内に存圚しないアンカ#w69521bdを指しおいたため、 「逆行列」の節に匵り替えた。
  • 添付は 1 点で、DNET_DSMathLinearAlgebra_1.png ずしお取埗した 元 Wiki では代替テキストの指定が無かったため「䜙因子展開」を補った。
  • 同名の芋出し「蚈算方法」が固有倀分解特異倀分解で重耇し GitHub Wiki でアンカが衝突するため、括匧で文脈を補っお䞀意にした。
  • PukiWiki のペヌゞ内アンカ#xxxxxxxxは GitHub Wiki では再珟できないため、 同䞀ペヌゞ内のアンカは芋出しから生成されるアンカに匵り替えた。

Tags: 移行, DS, 数孊的基瀎, 線圢代数, 行列, ベクトル, 逆行列, 行列匏, 固有倀分解, 特異倀分解, E資栌

⚠ **GitHub.com Fallback** ⚠