2017/06/25

MLを実装する際の方法論1

いきなりまとめ


MLのアルゴリズムの調査にはとても時間がかかる。
問題に応じたベストプラクティス知ることで開発効率を上げることができる。


Today I Learned


11 Practical Methodology
を参考に。


背景


MLを現実の問題にうまく適用するにはアルゴリズムや原理を知っているだけでは不十分。
特定の問題にどのアルゴリズムが適しているか、得られた結果をどのようにモニターし対応すればいいのかを知らなければならない
もっとデータを集めるか、モデルキャパシティを変更するか、どの程度一般化するか、ソフトをデバッグするか、最適化を促進するか、といったことにはとても時間がかかるため。


デザインプロセス


  • ゴールを決める(エラー指標、ターゲット、パフォーマンス指標)
  • ベースモデルを作る
  • システムの問題を調べる(overfitting、underfitting、a defect in the data、software)
  • 徐々に修正を加える(データ追加、ハイパーパラメーター調整、アルゴリズム)

ゴールを決める


エラー目標はアカデミックならばそれまでの論文の値をベンチマークとするし、実践ならば費用対効果が良く消費者に望ましい値を決める。
パフォーマンス指標はaccuracyが一般的だがエラー指標に応じて決める。
実践では複雑なパフォーマンス指標が用いられる(スパムフィルター、レアイベントなど)。
PRカーブのAUC、Fスコア、coverageとaccuracy(グーグルマップのアドレス解読)など。


ベースモデルを作る


データの構造に応じてモデルのカテゴリーを決める。
たとえば、固定長ベクトルをインプットとするならFCレイヤーを持ったモデル。
入力が画像ならCNNを使う。
入出力がsequenceならGRUを使う。

optimization algorithmは SGD with momentum with a decaying learning rateがよい。
もしくはAdam。

データセットが1000万ないときはmild form of regularizationを導入した方がよい。
Early stoppingはマスト。
dropoutは実装しやすく、多くのモデルやトレーニングアルゴリズムに適合する。
batch normalizationはgeneralization errorを減らすことがあり、dropoutが不要になることもある。

事前に研究されている分野ならばそのモデルをコピーするだけでうまくいくかもしれない。

unsupervised-learningから始めるべきかどうかは分野による。
NLPではunsupervised word embeddingsがとても有益だと知られている。

0 件のコメント:

コメントを投稿

Relation Netowrksの概要

いきなりまとめ Relation Netowrksとは関係性の推論を行えるニューラルネット。 画像や音声の単純な認識ではなく、複雑な思考が可能。 例えば、 グレーの物体から最も離れている物体の形は何か? ボールは今何処にあるか? ランダムに動くボール群のどれが...