タダです。
Cousera の 「Machine Learning Course」の2週目の講座を受けたので個人メモをまとめていきます。 www.coursera.org
第2週の講座は、次の4つのセクションになります。
- Multivariate Linear Regression
- Computing Parameters Analytically
- Submitting Programming Assignments
- Octave/Matlab Tutorial
なお、3.については課題の提出方法のレクチャーとなるため、まとめから割愛します。
Multivariate Linear Regression
N=1の特徴で最急降下法を使う場合、勾配降下方程式自体は一般に同じ形式で、n個の機能について以下のように繰り返すだけになる
フィーチャースケーリングを使えば、特徴量の範囲を調整することで最急降下法を最も早く収束可能である
- フィーチャースケーリングは、入力値を入力変数の範囲(すなわち、最大値から最小値を引いたもの)で割ることを含み、その結果、ちょうど1の新しい範囲が得られる
- 値のレンジは小さすぎたりり、大きすぎたりしてはいけない
- ノーマライゼーション(正規化)
- 正規化では、入力変数の値から入力変数の平均値を減算することで、入力変数の新しい平均値がゼロになる
- 範囲で割ったり、標準偏差で割ったりすると、結果が異なることに注意が必要である
Computing Parameters Analytically
- 正規方程式は最小二乗法の計算で役立つ方法として紹介されたが、いまいち理解しきれていないため理解でき次第また追記する
- 最急降下法と正規方程式のメリットデメリッ
- 正規方程式の非可逆とは何か?
- 2つの特徴が非常に密接に関連している(すなわち、それらは線形に依存している)冗長な特徴
- 特徴が多すぎる場合は、いくつかの機能を削除するか、「正則化」を使用する
- 上記の問題を解決するには、他の機能と線形的に依存している機能を削除するか、機能が多すぎる場合は1つ以上の機能を削除する
Octave/Matlab Tutorial
本項では、Octaveを使った文法の解説とベクトル化の実装が解説された
そもそもOctaveは高レベルプログラミング言語で、Andrew先生曰く初めて触れるプログラミングに触れる学生にも馴染むということだ
GNU Octave は、主に数値解析を目的とした高レベルプログラミング言語である。Octaveは線形ならびに非線形問題を数値的に解くためのコマンドライン·インタフェースを提供する。また、 MATLABとほぼ互換性のある、数値実験を行うためのプログラミング言語として使用することができる。 Octaveは、GNUプロジェクトの一つでGNU General Public Licenseの条件の下のフリーソフトウェアである。 GNU OctaveとScilabは、MATLABのオープンソース代替品の一つである。 ただし、Octaveは、ScilabよりもMATLABとの互換性維持に重点を置いている
Octaveで特徴的だったのは、行列とベクトルの書き方である
# 行列の表現方法 >>A = [1 2; 3 4 ; 5 6] #出力 # A = # # 1 2 3 # 4 5 6 # 7 8 9 # ベクトルの表現方法 >>B = [ 1 ; 2 ; 3 ] # 出力 #B = # # 1 # 2 # 3
行列のデータ参照は以下のように行う
# 行列の参照 >>A = [1 2; 3 4 ; 5 6] >>A(2, 3) # 出力(2行目3列目のデータを参照) #ans = 6 >>A([1, 3], [2, 3]) #出力(1, 3行目で2, 3列目のデータを参照) #ans = # # 2 3 # 8 9
その他、学んだ文法をまとめる
# for文 >>for i=1:5 i endfor #出力 #i = 1 #i = 2 #i = 3 #i = 4 #i = 5 #if文 >> a=1; b=2; x=0; >> if ( a==1 && b==2) x=1; elseif( a==1 && b==2) x=2; else x=3; end >> x #出力 #x = 1
ベクトル化の実装では行列の内積の計算をOctaveで行う方法が紹介された
>> A = [1;2;3] #出力 #A = # # 1 # 2 # 3 >> B = [4;5;6] #出力 #B = # # 4 # 5 # 6 >> Answer = a` * b #出力 #Answer = 2 >> display(ans) #出力 # 2 3 # 8 9
まとめ
第2週のプログラムで以下のことを学びました。
第3週のプログラムも引き続き受講していきます。
補完教材として、以下の本を読んでいます。こちらの書評も書きたい...!
はむかずさんの本買いたかったので買った pic.twitter.com/CxPCqQEZHy
— SADAYOSHI TADA🎉 (@tada_infra) 2019年1月20日