機械学習による実用アプリケーション構築⑧ 第5章 モデルの学習と評価①
MLは反復的なプロセス。以下のサイクルを回す。
第5章 最初のモデルの学習を行い、ベンチマークをつくる。次にパフォーマンスを詳細に分析し、改善方法の特定する方法について 第6章 モデルの素早い構築、デバック、時間のかかるエラーの回避方法について 第7章 MLエディタを例にした推奨モデルの構築方法
第5章 モデルの学習と評価
この章では、モデルの選択、評価、結果の分析、エラーの特定方法について解説。
5.1 最も単純で適切なモデル
可能なモデルを全て試して、ベンチマークを行いテストセットで良い結果が出たものを選ぶ → 各々パラメータを考えたり、計算時間かかるので× 最初に単純なモデルを見分ける方法を定義した後、データパターンとそれを活用するための適切なモデル選択について解説。
5.1.1 単純なモデル
単純なモデルとは → 実装が速くできて、わかりやすく、デプロイ可能なモデルのこと。
5.1.1.1 素早い実装
一般的に良く知られていて、複数のチュートリアルが存在し、困った際には誰かが支援してくれそうなモデルを選ぶ。 可能であれば、Kerasやscikit-learnなどの人気のあるライブラリのモデルを使う。実験的なGitHubリポジトリに飛びつくのをやめる。 なぜなら、データの処理と信頼性の高い結果が出るかわからないため。
5.1.1.2 理解しやすさ
モデルの説明可能性はモデルが行った予測の理由を知るための要素。 モデルが偏りを持ったものでないことを検証するときや、予測結果を改善するために何ができるかをユーザに説明するなどの時に役に立つ。
モデルが決定する際に依存している特徴量が特定できる場合は、特徴量の調整、削除か どのモデルがより良い選択ができるかを明確な見解を得られる。
ロジスティック回帰や決定木については説明がしやすい傾向が最初に試すモデルとして、 適している理由の1つ。
5.1.1.3 デプロイ可能性
どのモデルの学習を行うかを考える際にはデプロイできるかを常に考える必要がある。
- 学習済みのモデルが予測を行うのにどれくらい実行時間がかかるか。前処理、ネットワーク呼び出し、表示するための時間も含む
- 予想される同時利用ユーザ数のときの実行速度
- モデルの学習時間、学習頻度
5.1.1のまとめ
以下のような表を作成してモデルの評価を行う
5.1.2 パターンからモデルへ
初期データセットから識別したパターンと特徴量をモデル選択の指針とする。 ここではパターンとそれに対して適切なモデルについて説明する。
5.1.2.1 特徴量のスケール
多くのモデルではスケールが大きい特徴量ほどモデルに与える影響が大きくなる。 なので、各特徴量のスケールを正規化する必要がある。その一つがへ平均0分散1に揃える標準化。 もう一つの解決策はスケールが関係ない方法を用いること決定木、ランダムフォレスト、XGBoostなど
5.1.2.2 予測変数が特徴量と線形関係にある場合
予測するものが特徴量と線形関係にあり、適切な予測ができる考えた場合は、 連続値に対しては線形回帰、分類問題に関してはロジスティック回帰やナイーブベイズなどの線形モデルをつかうべき。
特徴量と予測変数がより複雑な関係絵である場合は、 非線形モデルの使用、特徴クロスの生成などが有用となる。
5.1.2.3 時間的性質を持つデータ
時系列の影響を受けるデータの場合この情報を自動的にエンコードできるモデルである必要がある。 ARIMAやRNNなどの統計モデルが有用
5.1.2.4 パターンの組み合わせデータ
画像や音声、文書などパターン領域に取り組む際には畳み込みニューラルネットワークが並進不変フィルタを学習する能力に 優れていることが証明されている。位置に関係なく画像内の局所的なパターンを抽出できることを意味している。
その他のML問題に対するモデル選択についてはscikit-learnが提供しているフローチャートが有用。