Octave - Matlab Tutorials

Image
Courseraオンライン講座の機械学習コースを 直感的な理解を優先して、ゆるーく まとめてます。 正確には公式サイトを参照して下さい。 [MachineLearning Week2](https://www.coursera.org/learn/machine-learning/home/week/2) # Octave - Matlab Tutorials ## Basic Operations Octaveの基本的な操作をまとめます。 コメントを書くときは % で始めます。 - 1 ~= 2: % !=のことで、等しくないことをチェック - a = pi % πを代入 - disp( sprintf( '2 decimals: %0.2f', a)) % テキストのフォーマット出力 - format long % 以降、結果を長く表示 - format short % 以降、結果を短く表示。 * A = [ 1 2; 3 4; 5 6] % 配列を定義 - v = 1: 0.1: 2 % 1 から 2まで 0.1ステップで加算 * ones( 2, 3) % 2行3列 のすべてが 1の配列を作成 * 2*ones( 2, 3) % 上記行列を倍に * w = zeros( 1,3) % 1行3列の、すべて0の行列を作成 * w = rand( 1, 3) % 乱数配列 * w = randn( 1, 3) % Gaussian乱数配列 - w = -6 + sqrt( 10)*(randn(1,10000)); % 10000個 - hist(w) % ヒストグラム表示 - hist(w,60) % ヒストグラム表示(詳細) + eye(4) % 単位行列 - help eye % ヘルプ表示 ## Moving Data Around 使用頻度の高い処理をまとめます。 - A = [ 1 2; 3 4; 5 6] - size(A) % 行列の大きさ - size(A,1) % 最初の次元の大きさ - length(v) % 最長の長さ + pwd % 作業ディレクトリ + cd % ディレクトリの変更 + load ...

Matrices and Vectors

Courseraオンライン講座の機械学習コースを 直感的な理解を優先して、ゆるーく まとめてます。 正確には公式サイトを参照して下さい。 [MachineLearning Week1](https://www.coursera.org/learn/machine-learning/home/week/1) ## Matrices and Vectors 学校で習った行列の復習です。 ### 行列
$A = {\rm I\!R^{4 \times2}}$ は、 実数の4行2列 次元の行列で、以下のように書けます。 $$ A = \begin{bmatrix} 6 & 28 \\ 496 & 8128 \\ 12 & 56 \\ 22 & 468 \end{bmatrix} $$ 1行め1列の項を表すにはこうなります。 $$ A_{11} = 6 $$
### Vector
ベクトルは、1列の行列です。 4次元 ${\rm I\!R^{4}}$ のベクトルはこうなります。 $$ y = \begin{bmatrix} 6 \\ 28 \\ 496 \\ 8128 \end{bmatrix} $$
## Addition and Scalar Multiplication ### 行列の加算
$$ \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \end{bmatrix} + \begin{bmatrix} 4 & 0.5 \\ 2 & 5 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 5 & 0.5 \\ 4 & 10 \\ 3 & 2 \end{bmatrix} $$
### 行列の実数の掛け算
$$ 3 \times \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \end{bmatrix} = \begin{bmatrix} 3 & 0 \\ 6 & 15 \\ 9 & 3 \end{bmatrix} $$
### 行列の実数の割り算
$$ \begin{bmatrix} 4 & 0 \\ 6 & 3 \end{bmatrix} / 4 = \begin{bmatrix} 1 & 0 \\ \frac{3}{2} & \frac{3}{4} \end{bmatrix} $$
## Matrix Vector Multiplication 行列とベクトルの掛け算は、行列$A$の**行**に対して ベクトルの**列**を掛けていく。 ### ベクトル計算で仮説関数$h_\theta(x)$を計算する 以下の仮説関数$h_\theta(x)$を計算するする時、 $$ h_\theta(x) = \theta_0 + \theta_1 x $$ 入力データ$x$を行列で表し、 パラメータ$\theta$をベクトルとして以下のように表すと、
$$ x = \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_m \end{bmatrix} ~~~~~ \theta = \begin{bmatrix} \theta_1 \\ \theta_2 \end{bmatrix} $$ 仮説はベクトル計算で、以下のように計算できる。 $$ h_\theta(x) = \begin{bmatrix} \theta_0 + \theta_1 x_1 \\ \theta_0 + \theta_1 x_2 \\ \vdots \\ \theta_0 + \theta_1 x_m \end{bmatrix} $$
### identity matrix 単位行列 対角線のみ1になっている行列
$$ \begin{matrix} I_{(5 \times 5)} & = & \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} \\ & = & \begin{bmatrix} \begin{array}{ccccc} 1 \\ & 1 & & 0 \\ & & 1 \\ & 0 & & 1 \\ & & & & 1 \end{array} \end{bmatrix} \end{matrix} $$ 単位行列は、行列に掛ける順番によらず、結果が同じになります。 $$ A \cdot I = I \cdot A = A $$
## Matrix Matrix Multiplication 行列同士の掛け算$A \cdot B$は、 $A$の行と$B$の列を順番に掛けて、 ひとつの行列を作る。 ## Matrix Multiplication Propertiesrs 行列同士の掛け算$A \cdot B$と、 $B \cdot A$は、計算結果が基本異なる。 $$ A \cdot B \neq B \cdot A $$ commutative 可換性の ## Inverse and Transpose ## 逆行列 inverse 機械学習では、基本逆行列を持たない行列を扱いません。 なぜなら、 逆行列を持たないとは、 直感的にはゼロか、ゼロに近すぎる行列のこと。 詳しくは、追々わかってくると思います。 行列 A に対して、$A \cdot B = B \cdot A=I$ となるような行列 B が存在するとき、 B を A の逆行列と言います。 逆行列が存在する行列のことを、正則行列(regular matrix)といいます。 $$ A \cdot B = B \cdot A=I $$ ここでBを以下のように表します。 $$ B = A^{-1} $$ したがって、上の式は以下のように書きなおすことができます。 $$ A \cdot A^{-1} = A^{-1} \cdot A = I $$ ### inverse 0 の逆行列は定義されていない m x m 配列のみ逆行列がある # 転置 transpose $A$の転置は $A^T$ と表され、 行と列を入れ替えたもの。
$$ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} $$ $$ A^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} $$
今後出てくる行列計算で、 パラメータを計算する順番を変更したりするときに 転置が利用されます。

Comments

Popular posts from this blog

Markdownで投稿する前に Visual Codeで下書き

Google code-prettify

【最重要】 Cost Function