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 ...

Coursera の Machine Learning コースを受けてみた

[Coursera](https://www.coursera.org/)は、オンラインの無料講座です。 その中の [Machine Learning](https://www.coursera.org/learn/machine-learning) (機械学習)の講座を受けてみたので、 まとめてみます。 ## どんな人向け? ### 議員でもAIを駆使する時代! 偶然、新宿区議会に、AI議員(自称)として活動されている 伊藤陽平さんと言う方がいることを知りました。 昼間は議会活動し、夜、家ではAIプログラミングをして、 過去の議案をAIに通して、実際に決定された賛否を比較したり 色々な試みを行なっているとのことです。 興味深い結果が出ているようですよ。 将棋や囲碁のような論理的な問題の最適解を解くような問題は、 もう人間の能力を超えることは証明されました。 今まで「直感」で行なっていた意思決定は、 適切なデータさえあれば、 議会の法案や、もしかしたら裁判の判決も、 人間以上の合理性で、AIが判断するのも 本当に時間の問題なのかもしれません。 ### そこで、、 これからAIが全盛となる時代になっていくだろうな、 となんとなく思っていて、 自分でもAIを使ったプログラムや、 システムに関わってみたいと思っている人、 詳しくAIの機械学習がどうなっているか、中身を見てみたい人。 Courseraの共同創設者である Andrew Ng教授自身が解説してくれる このMachine Learningコースは一見の価値があります。 このコースが公開されたのは2011年ですが、 Ng教授は もうその時点で、10数年も AIを使った銀河の解析やら、リコメンドシステムの開発など、 シリコンバレーやBaiduなどで 経験を積んでいたのだそうです。 世の中にはすごい人がいるもんです。 ## どんな前知識? ### 大学1年程度の基礎数学の知識があるといいです。 数列、正規分布、最小二乗法、行列計算、偏微分、ベクトル解析などが出てきます。 特にその証明までは求められないので、 式の意味することが分かりさえすればOKだと思います。 ### Octaveという数値解析マクロみたいな言語を使用します [Octave](https://www.gnu.org/software/octave/) 行列計算や、最適化アルゴリズムが組み込まれています。 Windows/Mac/Linuxに対応してます。 JavaやC言語のような低レベルの言語でプログラムを組むより、 Octaveという高レベルの言語で処理することで、 慣れれば直感的に複雑な行列計算などが、 数行で記述できます。 ### そこそこ英語 動画字幕は日本語にも対応していますが、 説明文や問題は全て英語なので、 細かいところに入って行く場合は どうしても英語が必用となります。 簡潔な英語が使われているし、 数学的な表現は国際的に統一されているので、 どうしても分からないところは、Google翻訳でもいけると思います。 ## 何が学べる? 機械学習にどんな種類があって、 実際にどのように動いているのか、の基礎が分かります。 簡単な実験なら、自分でも機械学習の 小規模なシステムぐらいなら作れるような"気"になります。 特に興味深かったのは、 もちろん機械学習について詳しく学べます。 それ以上に、 単に機械学習システムの構造だけでなく、 実際に自分自身で機械学習システムを作ろうとする時、 **シリコンバレーのエンジニアたちでさえ悩んでいる**、 - つまづきそうな点、 - システムのどこに問題があるのか発見する方法、 - システム自体を評価する方法、 - 失敗したり、時間を浪費しないようにするにはどうしたら良いのか、 などの、超実戦的なアドバイスが 丁寧なのに感心しました。 セクションごとに理解を確認するための小テストがあります。 Octaveプログラムの提出も、 次の課題に進むのに必要です。 ## 受講してみた感想 11週のコースですが、短期間で終了することが出来ました。 幸い理系の大学出身だし、 長年プログラム開発をしていたし、 海外勤務も長かったから、 比較的短い時間で完了できたのかも。 それ以上に、 講義の内容が分かりやすく、 興味があったし、 プログラムの説明がとても丁寧で 混乱させない作りになっていたからだと思います。 学生だったとき、 逆行列とか偏微分とか何に使うのだろう、 全然興味が持てず、頭に入ってきませんでした。 特にベクトル解析って全く理解できませんでした。 実際の例を示してもらわないとわからないタイプの人間なので、、、。 今回このコースをやってみて、 「あぁそーいうことだったのね」 「行列はこーいうふうに応用できるんだ」 「ここでベクトル解析と行列が繋がるのね」 と腑に落ちたのが自分にとっての最大の進歩でした。

Comments

Popular posts from this blog

Coursera - Machine Learning 講義内容概要 Syllabus

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

Google code-prettify