仕事ではじめる機械学習 #1

1章:機械学習プロジェクトの始め方

1.1 機械学習はどこで使われるのか?

機械学習の目的

未知のデータに対して過去の経験をもとに機械が予測する

→ レコメンド機能などで使用される

予測するためのアプローチは大きく3種類

  1. 教師あり学習(今回のメイン!)
  2. 教師なし学習
  3. 強化学習

1.2 機械学習プロジェクトの流れ

データ分析業務は前処理が8割(csvのパースや、Webのログから必要なデータを抽出するところに多く時間がかかる)

  1. 問題を定式化する (目的とアクションプランを考える)
  2. 機械学習をしなくて良い方法を考える (機械学習のデメリットと相談する)
  3. システム設計を考える (リソースの取得方法など)
  4. アルゴリズムを選定する
  5. 特徴量、教師データとログの設計をする
  6. 前処理をする(取得したデータの整形・加工)
  7. 学習・パラメーターチューニング(予測性能を達成する)
  8. システムに組み込む

1.3 実システムにおける機械学習の問題点への対処法

問題

  1. 自動テストがしづらい
  2. トレンドの変化により入力傾向が変化する
  3. 処理のパイプラインが複雑になる

対処

  1. 事前に用意したテストデータをもとに予測性能を測定し、異常値が出たときにアラートを出すようにモニタリングする
  2. モデルの切り替えが容易な状態を作る。複数のモデルを並べてA/Bテストを行い、常に変化に対応させる
  3. バージョン管理・ドキュメント管理大事(「コード」「モデル」「データ」の3つの管理が理想)

"パイプライン"(参考

複数の処理プログラムを直列に連結し、ある処理プログラムの出力が次の処理プログラムの入力となるようにし、複数の処理プログラムを並行処理させる技術。

機械学習だと、変換機→変換機→変換機→予測機のようなイメージ

1.4 機械学習を成功させるには

  1. ドメインエキスパートの存在
  2. 機械学習に明るい人
  3. 失敗を許容してくれる責任者