Machine Learning (Andrew Ng) @ Coursera その5

Classification

binary classification problem

線形回帰は覚えたけど、これを分類問題に適用することはいい考えではない。
そこでロジスティック回帰が出てくる。

ロジスティック回帰は回帰というくせに分類問題に使われてて、
離散的な分類値に対して、0~1の値を取る関数を当てはめる。


Advanced Optimization

これまでは最急降下法を最適化アルゴリズムとして採用してきたが、
もちろんこれ以外にも最適化アルゴリズムが存在している。
例えば、
Conjugate gradient
BFGS
L-BFGS

と言った具合に。

ただ、数値計算のエキスパート出ない限りは直接実装するべきではない。
まずはライブラリ使うべき。
機械学習のライブラリを試していいライブラリを使ってまずは慣れる。
その中でいい実装悪い実装を見分ける。
Octaveはアドバンスドな最適化アルゴリズムが提供されているのでとりあえずはそれ使う。

optimset() と fminunc() をつかってアドバンスドな最適化を行う。
使い方としては、コスト関数の各パラメータに関する偏微分値とコスト関数値を返す関数を引数として渡すだけっぽい。


Multiclass classification

複数クラスの分類問題についての話。
複数クラスの教師セットを与えられた時は、one vs all(one vs rest) と呼ばれる分類問題を解くことになる。

A,B,Cに属するクラスは、Aと(B,C)に属するクラスで教師セットを分けて、
それらの決定境界を導出する。 
=> Aになる確率が求まる。

Bと(C,A)に属するクラスで教師セットを分けて、分類器を適用し決定境界を導出。
=> Bになる確率が求まる

Cと(A,B)に属するクラスで教師セットを分けて、分類器を適用し決定境界を導出。
=> Cになる確率が求まる

確率を比較して一番大きい物を採用すれば良い。



コメント

このブログの人気の投稿

Callback関数を知らん人がまず理解すべきことのまとめ。

C言語でBluetoothスタックを叩きたい人のBluetooth開発入門その1

C++プログラミング入門(1) // 倉庫番プログラムの実装