線形代数の基本を確認
機械学習は、線形代数のいくつかの基本的な知識が必要です。
マトリックス:マトリックス
\ [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
行列の乗算の一部のプロパティ
(一般的に)交換することはできません。
実数乗算は、交換後の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} \]
それを参照してください、結果は同じではありません。
しかし、これは一般的にそうである、交換することができる場合があります。
交換可能な特別な状況(単位行列)
ことを特徴としている我々は、マトリックス(単位行列)を呼び出しマトリックスは、あります:
行列でなければなりません\(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