courseraのMachineLearning(日本語字幕)をやってみる(1)(2)(Week1)(Week2)
coursera Machine Learning (英語、日本語字幕)
https://www.coursera.org/learn/machine-learning
機械学習入門らしい。
無料。英語。しかし、動画には日本語字幕がある。
MATLAB(1.5万円)というソフトを用いた方が簡単らしいが、Octave というフリーソフトでも十分やっていけそう。最終的にはpythonでできるようになりたい。
Coursera Machine Learning 機械学習オンラインCourseのススメ
http://qiita.com/anzaitetsu/items/2dc94d78a678d5b7a037
CourseraのMachine Learningを受講中 2016-08-24
http://shironeko.hateblo.jp/entry/2016/08/24/220052
http://karino2.livejournal.com/246001.html
http://qiita.com/mono0926/items/2c39649d24b2e515f4b5
しかし、pythonでやりましたよというQiitaの記事あり!
Coursera Machine Learningの課題をPythonで: ex1(線形回帰)
nokomitchが2015/10/19に投稿
http://qiita.com/nokomitch/items/a756e276cdb8c3f5035d
やってみる
(1)1week目
1week目の動画を見るだけでも、全部で3時間くらいだろうか?がんばって視聴して、1週間くらいかかった。
教師あり学習
教師なし学習
最急降下法 -> 難しそうだが、かなり分かりやすく説明してくれている。
線形代数 -> これは簡単
(2)2 week目
最初に、Octaveのインストールから始まる(MatLabは12週間のみということなので、Octaveのインストールにtryすることとした。)
http://www.tatsuromatsuoka.com/octave/Eng/Win/
一応、courseraのいうとおりに、GUN octave 3.8.2 をインストールしたが、GNUの方はβ版らしく、なんか表示が微妙なので、「Octave-3.8.2 (Command Line)」の方を使ってみることにした。
courseraでOctaveを使う方法(英語、Windows)
https://www.coursera.org/learn/machine-learning/discussions/all/threads/vgCyrQoMEeWv5yIAC00Eog?page=2
OctaveとMatlabの違い
OctaveのConfiguration file は、
C:/Users/(ユーザ名)/.config/octave/qt-settings.
にあるらしい。
(2)実際にOctaveを使用し始めるのは、Week2, Lesson6 からである。
https://www.coursera.org/learn/machine-learning/lecture/9fHfl/basic-operations
(2-6-2)Week 2, Lesson 6, Moving Data Around
Octaveを起動したら、筆者の好みでは、まず、
[sourcecode language="bash" padlinenumbers="true"]
PS1('>> ')
[/sourcecode]
らしい。
たとえば、行列Aを定義するのに、
A = [1 2; 3 4; 5 6]
とだけ入力すればよいなどということの説明がある。Octaveは本当に行列計算に特化しているなあ、という印象を受けた。
(2-6-3)Week 2, Lesson 6, Computing on Data
https://www.coursera.org/learn/machine-learning/lecture/I7gx3/plotting-data
(2-6-4)Week 2, Lesson 6, Plotting Data
言われた通りにやると、きれいなグラフを簡単に描くことができた。
(2-6-6)Week 2, Lesson 6, Vectorization
ここからは、Octave 4.0.3 を用いることにした。
(2-7)Quiz
Courseraの機械学習コース2週目 Octave/Matlab チュートリアルをやってみた。
courseracoursera24OctaveOctave41
pugiemonnが2016/08/12に投稿
http://qiita.com/pugiemonn/items/09b8ad4da2b57e1e624a
Programming Assignment: Linear Regression
https://www.coursera.org/learn/machine-learning/programming/8f3qT/linear-regression
からZIPファイルをダウンロードして、PDFファイルを見ながら、Assignmentにtryする。
むむ、英語なのでよく分からない。。。
1. Simple Octave/MATLAB function
warmUpExercise.m をoctave-gui 4.0.3上で開いて、以下のように
A = eye(5);
と記載して保存。
Octaveの画面下のあたりの、「コマンドウィンドウ」で、
ex1
と入力してEnter
できた、、、のか?
2.1 Plotting the Data
plotData.m を開いて、言われた通りに、以下のようにコードを追加して、保存。
「コマンドウィンドウ」で、「Enter」
(プログラムが止まっていたら、 ex1 と入力して、「Enter」)
プロット図が出てくる。
2.2.3 Computing the cost J(Θ)
computeCost.m を開く。いつも通り、コードを入力しなければならなさそうなのだが、ヒントはたしかに上に記載はあるが、、、
いや、これ今までと違って難しすぎです。答え見ちゃいました。
https://gist.github.com/anuvrat/2795554
J = sum((X * theta – y) .^ 2) / (2*m)
この式、X, theta はベクトル。 「.^2」で、ベクトルの各要素の2乗を計算している?あれ?よくわからん。
コマンドウィンドウで、ex1 と入力して、「Enter」
私の能力では、もうこのあたりでアップアップ、、、
2.2.4 Gradient descent
gradientDescent.m を開く。
これも、答えみないと無理
https://gist.github.com/anuvrat/2795575
講義の内容をちゃんと理解して、Octaveのコードも書くことができないと、この課題、できません。復習しなければ、、、でも、pythonよりも、あきらかに、octave(Matlab)の方が、記載はしやすそう。。。
Pythonでもできるようになりたいなあ。
Optional Exercisesなんて無理無理。。。とばします。
(2-8)Pythonでやってみる。(コピペ)
Coursera Machine Learningの課題をPythonで: ex1(線形回帰)
nokomitchが2015/10/19に投稿
http://qiita.com/nokomitch/items/a756e276cdb8c3f5035d
のコードをコピペしてできるかやってみる。
(環境)Windows8.1
Anaconda (Python 3)
上記のZIPファイルをダウンロードして展開したフォルダの中の、さらにex1フォルダに移動。そこで、コマンドプロンプトを開く。
jupyter notebook
と入力してEnterを押すと、jupyterが自動的に起動して、ブラウザが開く。
画面右側の、 New > Python[Root]
名前を、ex1.py に変更して、
Coursera Machine Learningの課題をPythonで: ex1(線形回帰)
nokomitchが2015/10/19に投稿
http://qiita.com/nokomitch/items/a756e276cdb8c3f5035d
のコードをコピペして、「Shift」+「Enter」。1分ほどかかるが、グラフがちゃんと表示された。
ディスカッション
コメント一覧
まだ、コメントがありません