機械学習・深層学習を学ぶ

機械学習や深層学習関連について初心者が学びます。画像処理系のシステムを作ってみます。

Coursera - Machine Learning コース(Week 1 / 2)

いきなりディープラーニングは無理なので機械学習の基礎から学習中です。

 

昨日今日はCourseraの機械学習コースをやっています。

Andrew Ng氏(Courseraの創立者)の授業なのですが相当に判りやすく、また理解度を問われるのでタメになります。

www.coursera.org

 

この講座の基本方針はOctova(Matlabの親戚)を用いて、自力で機械学習アルゴリズムを実装することです。UdacityのIntroduction to Machine Learningという講座は、sklearnというPythonライブラリをフル活用し使いこなすことが主眼だったので、かなり方向性が違います。

Ng氏いわくOctovaはPythonC++などと比較してアルゴリズムの実装にかかる労力が段違いに軽く、プロトタイピングにもってこいだそうです。製品版のアルゴリズムをその他言語で書くにせよ、Octovaでアイデアが上手くいくか試した後でないと最終的な開発期間が延びるとのこと。

 

今週は海外旅行をしていて学習が滞っていたのですが、Week1とWeek2を終えることができました。Week1 ~ 2で学んだことは以下の通り。

 

□Regressionについて

・単回帰/重回帰のアルゴリズム(仮説関数)

・回帰分析のコスト関数

・解法1:Gradient Discent(最急降下法

  ・Feature Scaling

  ・Learning Rate

・解法2:Normal Equation(正規方程式)

上記の実装(Octova優秀。思ったより簡単だった。)

 

□概論

線形代数の基礎の復讐

・Octovaの使い方

  ・ベクトル計算の仕方

  ・Vectorizationの重要性

 

このコースの良いところは理論的な理解をしたら、すぐ実装させられる所です。PRMLも読み始めたのですが実装できないと意味ないので、まずこっちで理論的な理解を固めつつ、副読本としてPRMLを読むのもアリかもしれません。

 

当面の方針として理論的な理解と実践力を平行して身に付けるつもりです。

理論については

・Coursera(Machine Learning)→ PRML

実践については

実践機械学習システム → Udacity(Introduction なんとか)

という形で進めようかと思います