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になる確率が求まる 確率を比較して一番大きい物を採用すれば良い。