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

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

分類問題を取り扱うときの基本的な流れ

分類問題を取り扱うときには大体以下のような流れになるらしい、というような見取り図が自分の中で得られたのでメモ。

Step1.データを集める

 - 既存のオープンデータ活用

 - スクレイピングしてくる

Step2.優れた特徴量を抽出する

 - 前処理をする

 - その道の専門家に見せた時にYes/Noの判別が出来る程度の特徴量を探す

  (Andrew Ng先生がCoursera Week6で述べていた重要なアドバイス)

   - どんな情報があれば役立ちそうかブレスト

   - 既存研究を参照して、分野ごとの有力な特徴量を調べてリスト化

    →実装。

 - ニューラルネットワークならいらないステップかも

Step3.チューニングしつつ複数モデルを走らせる

 - ロジスティック回帰

 - SVM

 - ランダムフォレスト

 - ニューラルネットワーク

それぞれ少しチューニングしてモデルの比較を行なう。ロジスティック回帰ならλだったり、SVMならσやらCの値。

Step4.最良のモデルについて改善案の検討を行なう

→学習曲線を見てみる必要がある!

 - もしバイアスが強い場合は表現力の高いモデルへの変更をする。

 - もしバリアンスが高く過学習気味ならデータ量を増やす

  →手作業する, クラウドソーシング, スクラッチで生成, 既存データを水増し等

 - また、もしイテレーションが進んでもトレーニングデータでのエラーが下がらないならばデータの情報量不足なので特徴量の改善。 

みたいな感じ。以上のステップは兎に角、荒くスピーディーにやるべきだそうですよ。

CourseraのMachine Learning Week6の講義で大体のことが学べます。