線形代数の基本を確認

線形代数の基本を確認

機械学習は、線形代数のいくつかの基本的な知識が必要です。

マトリックス:マトリックス

\ [A = \ {} bmatrix 1402&191 \\ 1371&821 \\ 949&1437 \\ 147&1448を開始\\ \端{bmatrix} \]

\ [B = \ {bmatrix} 1&2&3 \\ 4&5&6を始める\\ \端{bmatrix} \]

  • Aは、\(4 \ times2 \) 4行2列からなるマトリックス、及び2つのブラケットで囲ま。呼ぶ(4 {^ R&LT \ times2} \)\
  • Bは、\(2 \ times3 \)、 2行3列の行列と、2つの括弧で囲まれています。呼ぶ(R&LT ^ {2 \ times3} \)\
  • \(A_ {ijは} \)行列の要素を示すために使用され、ここで\(I \)ライン行列を表します。\(J \)の列は行列を表します
    • \(A_ {11} = 1402 \)
    • \(A_ {12} = 191 \)
    • \(A_ {132} = 1437 \)
    • \(A_ {41} = 147 \)
    • \(A_ {43} =不定\)

ベクトル:ベクトル

\ [Y = \ {bmatrix} 460 \\ 232 \\ 315 \\ 178を開始\\ \端{bmatrix} \]

  • \(Yが\)ベクトルの集合であり、ベクトルのように見ることができる\({N \ times1} \ ) マトリックス。ここで、n = 4、それと呼ばれる\(R&LT 4 ^ {} \)

  • \(Y_Iは\)最初のベクトルで\(I ^ {番目} \ ) 要素

    • \(Y_1 = 460 \)
    • \(Y_2 = 232 \)
    • \(Y_3 = 315 \)
  • シニアの友達の言語を学ぶことは、たとえば、ベクトルインデックスでC ++ STL標準ライブラリはゼロからカウントされ、知っている必要があります。現実の人々が学ぶには、ほとんどの人は最初からに使用されています。したがって、機械学習を学習し、我々は一般的にスタートとして1を使用し、プログラム実施の準備で、その後、0に戻します。

  • MATLABプログラムの期間を添付

    % The ; denotes we are going back to a new row.
    A = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12]
    
    % Initialize a vector 
    v = [1;2;3] 
    
    % Get the dimension of the matrix A where m = rows and n = columns
    [m,n] = size(A)
    
    % You could also store it this way
    dim_A = size(A)
    
    % Get the dimension of the vector v 
    dim_v = size(v)
    
    % Now let's index into the 2nd row 3rd column of matrix A
    A_23 = A(2,3)
    A =
    
         1     2     3
         4     5     6
         7     8     9
        10    11    12
    
    
    v =
    
         1
         2
         3
    
    
    m =
    
         4
    
    
    n =
    
         3
    
    
    dim_A =
    
         4     3
    
    
    dim_v =
    
         3     1
    
    
    A_23 =
    
         6

行列の加算

\ [\ \ \\ {bmatrix} 1&0 \\ 2&5 \\ 3&1を開始端{bmatrix} + \ {bmatrix} 4&0.5 \\ 2&5 \\ 0&1を開始\\ \端を{bmatrix} = \ {bmatrix} 5&0.5 \\ 4&10 \\ 3&2を開始\\ \端{bmatrix} \]

  • 上記マトリックスを追加の例があります。

  • まず、二つの行列は同じ寸法、すなわち、同じ行数の列の同じ数を有しています。

  • 二つの行列の加算は、その後、足し新しい行列を取得するデジタル位置し、この行列と元の2つの行列と同じ寸法です。

  • 添加例えば、異なる寸法にすることができない:
    1} \ [\&bmatrix開始4&\ {0 \\ \\ 3 5&2 1&\\ \エンドbmatrix} + {\ {0.5始めるbmatrixは}。 \ 2&5 \\ \端{ bmatrix} = \ mathop {エラー} \]

行列乗算

\ [3 \回\ \\ {bmatrix} 1&0 \\ 2&5 \\ 3&1を開始\端{bmatrix} = \ {bmatrix} 3・0 \\ 6&15 \\ 9&3を開始する\ \ \端{bmatrix} = \ {bmatrix} 1&0 \\ 2&5 \\ 3&1 \\ \端{bmatrixを}開始\ times3 \]

  • 上記の例の行列乗算は、実数行列の乗算を注意してください。

  • 行列の個々の要素の直接の結果は、同じ寸法必見の新しい行列を得るために、実数と乗算されています

  • 実際の行列の乗算のために、それは結果の後に影響を取る取るか、しないことです

  • 乗算除算のような:
    。。。。。。\ [\ \\} {始める4. 3&0をbmatrix \\&6 \ bmatrix終了{} \ setminus 4 = \ FRAC 1 {{}} 4 \時間\ {0}開始bmatrix 3&\ \ 6&15 \\ \端{ bmatrix} = \ {bmatrix} 1・0を開始\\ \ FRAC {3} {2}&\ FRAC {3} {4} \\ \端{bmatrix} \ times3 \]

演習

\ [\ {eqnarray}を開始&&3 \回1 \\ 4 \\ 2 {bmatrix}を開始する\ \\ \端{bmatrix} + \ {bmatrix} 0 \\ 0 \\ 5を開始\\ \端{bmatrix } - \ {bmatrix} 3 \\ 0 \\ 2 \\ \端{bmatrix} \ setminus 3 \\を開始&=&\ {bmatrix} 3 \\ 12 \\ 6 \\ \端{bmatrix} +を開始\開始{bmatrix} 0 \\ 0 \\ 5 \\ \端{bmatrix} - \ {bmatrix}開始1 \\ 0 \\ \ FRAC {2} {3} \\ \端{bmatrix} \\&=& \開始{bmatrix} 2 \\ 12 \\ \ FRAC {31} {3} \\ \端{bmatrix} \\ \端{eqnarray} \]

  • MATLABコード:

    % Initialize matrix A and B 
    A = [1, 2, 4; 5, 3, 2]
    B = [1, 3, 4; 1, 1, 1]
    
    % Initialize constant s 
    s = 2
    
    % See how element-wise addition works
    add_AB = A + B 
    
    % See how element-wise subtraction works
    sub_AB = A - B
    
    % See how scalar multiplication works
    mult_As = A * s
    
    % Divide A by s
    div_As = A / s
    
    % What happens if we have a Matrix + scalar?
    add_As = A + s
    A =
    
         1     2     4
         5     3     2
    
    
    B =
    
         1     3     4
         1     1     1
    
    
    s =
    
         2
    
    
    add_AB =
    
         2     5     8
         6     4     3
    
    
    sub_AB =
    
         0    -1     0
         4     2     1
    
    
    mult_As =
    
         2     4     8
        10     6     4
    
    
    div_As =
    
        0.5000    1.0000    2.0000
        2.5000    1.5000    1.0000
    
    
    add_As =
    
         3     4     6
         7     5     4

行列ベクトル乗算

\ [\回\ {bmatrix} 1&3 \\ 4&0 \\ 2&1 \\\端{bmatrixを}開始{bmatrix} 1 \\ 5 \\\端{bmatrixを}開始\ = \ {bmatrixを開始} 16 ^ {(1)} \\ 4 ^ {(2)} \\ 7 ^ {(3)} \\\端{bmatrix} \\\開始{eqnarray} 1 \回1 + 3 \回5 = 16 \タグ{1} \\ 4 \回1 + 0 \ 5倍= 4 \タグ{2} \\ 2 \回1 + 1 \ 5倍= 7 \タグ{3} \\\端{eqnarray} \ ]

  • 表示マトリックスベクトル乗算式及び手順、上記の特定の例があります

  • を乗じました:

    • セット行列\(A \) ベクトル\(B \)
    • \(A_j B_i = \) 列の数は、ラインBの数Aに等しいです)
  • AとBのそれぞれの行要素は、一つの列、とを加算した値を乗算されます。

  • 新しい行列の行数と同じベクターで同じ数の列を得ます。

    次の例を参照することができる:
    \ [\}開始{\\ A&B&C D E&F \\\ \\ bmatrix終了{} * \ bmatrix開始{X}終了{bmatrix \\\ \\ Y bmatrix } = \ {bmatrix}始める ] \ * X + B * Y \\ C * X + D * Y \\ E * X + F * Y \\\端{bmatrixを}

  • MATLABコード:

    % Initialize matrix A 
    A = [1, 2, 3; 4, 5, 6;7, 8, 9] 
    
    % Initialize vector v 
    v = [1; 1; 1] 
    
    % Multiply A * v
    Av = A * v
    A =
    
         1     2     3
         4     5     6
         7     8     9
    
    
    v =
    
         1
         1
         1
    
    
    Av =
    
         6
        15
        24

行列と行列の乗算

現在、このような式を計算
\ [\ {bmatrix} 1始める {bmatrix} 1&3 \\ 0 1 \\ 5始める\ *&3&2 \\ 4&0&1 \\\端{bmatrixを} &2 \\\端{bmatrix} \
] 、第2のマトリックスは、2つのベクトルに分割占有だけ学習したベクトル行列である
\ [\ {bmatrix} 1始める &3&2 \\ 4&0&1 \ \\端{bmatrix} * \開始 {bmatrix} 1 \\ 0 \\ 5 \\\端{bmatrix} = \開始{bmatrix} 11 \\ 9 \\\端{bmatrix} \]

\ [\端{bmatrix} * \開始{bmatrix} 3 \\ 1 \\ 2 \\\端{bmatrix} \\\ {bmatrix} 1&3&2 \\ 4&0&1を始める= \ {始まりますbmatrix} 10 \\ 14 \\\端{bmatrix} \]

実際には、我々は最後のステップのみが異なる、計算を行ってきた、元の列の順序は、あなたが得ることができ、マージにお答えします
\ [\ {bmatrix} 1開始 &3&2 \\ 4&0&1 \\\エンド{bmatrixを} * \ {bmatrix} 1&3始める ] \ \\ 0 1 \\ 5&2 \\\端{bmatrix} = \開始{bmatrix} 11&10 \\ 9&14 \\\端{bmatrixを}

  • を乗じました:

    • マトリックス1が設定されている\(A \) マトリックス2 \(B \)
    • \(A_j B_i = \) 列の数は、ラインBの数Aに等しいです)
  • AとBのそれぞれの行要素は、一つの列、とを加算した値を乗算されます。

  • 同じ行数、列の数が同じで新しい行列Bを得ました。その\(R ^ {M * N } \回^ R N * {O} = R ^ {M * O} \)

    次の例を参照することができる:
    \ [\} {\\ A&B&C D E&F \\ \\ \ bmatrix終了{} * \ bmatrix開始{W} X&\\ \\ Y&Z開始bmatrix \端{bmatrix} = \開始 {bmatrix} * + B * W、Y&* X + B * Z \\ C * + D * W Y&C * X + D * Z \\ E * + F W * Y&E * X + F * Z \\ \端{bmatrix} \]

  • MATLABコード:

    % Initialize a 3 by 2 matrix 
    A = [1, 2; 3, 4;5, 6]
    
    % Initialize a 2 by 1 matrix 
    B = [1; 2] 
    
    % We expect a resulting matrix of (3 by 2)*(2 by 1) = (3 by 1) 
    mult_AB = A*B
    
    % Make sure you understand why we got that result
    A =
    
       1   2
       3   4
       5   6
    
    B =
    
       1
       2
    
    mult_AB =
    
        5
       11
       17

行列の乗算の一部のプロパティ

  1. (一般的に)交換することはできません。

    実数乗算は、交換後の2つの数字が同じセンスの結果である:
    \ [3 + 5 + 3 = 5 \]
    に垂直です。しかし、それは本当の行列もありますか?

    我々は、上記の行列乗算の外観を使用しようとした:
    \ [\} {始まる1&0.1&0 \\ \\ \ bmatrix終了{} * \ {0}開始・0 2 0 bmatrix bmatrix \\ \\ \ {終了。 bmatrix} = \開始{bmatrix} 2&0 \\ 0 0 \\ \端{bmatrix} \]

    \ [{bmatrix} 0 0 \\ 2&0 \\ \端{bmatrixを}開始\ * \開始{bmatrix}が1&1 \\ 0 0 \\ \端{bmatrix} = \開始{bmatrix} 0 &0 \\ 2&2 \\ \端{bmatrix} \]

    それを参照してください、結果は同じではありません。

    しかし、これは一般的にそうである、交換することができる場合があります。

  2. 交換可能な特別な状況(単位行列)

    ことを特徴としている我々は、マトリックス(単位行列)を呼び出しマトリックスは、あります:

    • 行列でなければなりません\(nは\ n倍\)、$ I \スペースまたは\スペースI_表記 {N \ n倍} $を

    • 矩阵对角线一定是1、其他部分一定是0
      \ [\ mathop {\ {bmatrix} 1&0 \\ 0&1を開始\\ \端{bmatrix}} \ limits_ {2 \倍2} \スペース\空間\空間\空間\空間\空間\空間\空間\空間\空間\ mathop {\開始{bmatrix} 1&0&0 \\ 0&1&0 \\ 0 0 1 \\ \端{bmatrix }} \ limits_ {3 \回3} \空間\空間\空間\空間\空間\空間\空間\空間\空間\スペース\ {bmatrix} 1&0 0 0 0 \\&1始める\ {mathop &0&0 \\ 0 0 1 0&\\ 0 0 0 1 \\ \端{bmatrix}} \ limits_ {4 \回4} \空間\空間\空間\空間\空間\空間\空間\空間\空間\空間\ mathop {1&&&&&\\&1&&&&\\&&1 &&&\\&&&1&&\\&&} {bmatrixを開始\ &&\ ddots&\\&&&&&1 \\ \端{bmatrix}} \ limits_ {N \回N} \]

    そして、行列、行列を切り替えるどんなにを乗じ、結果は変わりません。

    • MATLABコード:

      % Initialize random matrices A and B 
      A = [1,2;4,5]
      B = [1,1;0,2]
      
      % Initialize a 2 by 2 identity matrix
      I = eye(2)
      
      % The above notation is the same as I = [1,0;0,1]
      
      % What happens when we multiply I*A ? 
      IA = I*A 
      
      % How about A*I ? 
      AI = A*I 
      
      % Compute A*B 
      AB = A*B 
      
      % Is it equal to B*A? 
      BA = B*A 
      
      % Note that IA = AI but AB != BA
      A =
      
         1   2
         4   5
      
      B =
      
         1   1
         0   2
      
      I =
      
      Diagonal Matrix
      
         1   0
         0   1
      
      IA =
      
         1   2
         4   5
      
      AI =
      
         1   2
         4   5
      
      AB =
      
          1    5
          4   14
      
      BA =
      
          5    7
          8   10

逆行列(逆行列)

それに非常に精通逆数の概念。その数は、別の番号1を乗じたというように、我々はそれがデジタルの往復だと思います。
\ [3 \回(3 ^
{ - 1})1 \\ 5 \回=(5 ^ { - 1})= 1 \\ \] マトリックスのため、我々は、同じ概念を持っています。我々は、同じマトリックスと1位の実数は、それが発現されると考えているので:
\ [A(A ^ { - 1})=(A ^ { - 1})A = I \]
我々が呼ぶ\(A ^ {--1は} \)の逆行列です。
\ [\ Mathop {\ {始める bmatrix} 3&4 \\ 2&16を\\ \端を{bmatrix}} \ limits_A \ mathop {\ {bmatrix} 0.4&-0.1 -0.05 \\&0.075を開始\\ \端{bmatrix}} \ limits_ {A ^ { - 1}} = \ mathop {始める\ {bmatrix} 1&0 \\ 0 1 \\ \端{bmatrix}} \ limits_ {AA ^ { - 1}} = I_ {2 \倍2} \
] 音符のいくつかの点:

  • 行列の逆行列は正方である必要がありますがあります
  • \(\ \開始{} 0 0 0 0 \\ \\ \ bmatrix {終了} bmatrix)いずれの場合にも、それは単位行列になるせることはできませんので、このような0行列は、全く逆行列ではありません。あなたはゼロの外観に逆正方行列の近似を持つことはできません。
  • 我々は呼んませ逆行列ません特異行列または特異行列

逆行列

現在、マトリックスを有する:
\ [A = \ bmatrix開始{} 1&2.3&0 \\ \\&5. 9&\ bmatrix終了{} \。]
及びその反転行列である:
\ [A ^ T = \開始{bmatrix} 1&3 \\ 2&5 \\ 0 9 \\ \端{bmatrix} \]

  • この動作はその後シーケンスは一緒にスプライスされ、列ベクトルAに、同じ値の各行ベクトルを見ることができます。

  • \(A \)転置した後、\(A \)\(A ^ T \)の各要素との対応関係である
    \ [A ^ T_ {IJ} = A_ {JI} \]

  • MATLABコード

    % Initialize matrix A 
    A = [1,2,0;0,5,6;7,0,9]
    
    % Transpose A 
    A_trans = A' 
    
    % Take the inverse of A 
    A_inv = inv(A)
    
    % What is A^(-1)*A? 
    A_invA = inv(A)*A
    A =
    
       1   2   0
       0   5   6
       7   0   9
    
    A_trans =
    
       1   0   7
       2   5   0
       0   6   9
    
    A_inv =
    
       0.348837  -0.139535   0.093023
       0.325581   0.069767  -0.046512
      -0.271318   0.108527   0.038760
    
    A_invA =
    
       1.00000  -0.00000   0.00000
       0.00000   1.00000  -0.00000
      -0.00000   0.00000   1.00000

おすすめ

転載: www.cnblogs.com/cell-coder/p/12539423.html