Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習プロジェクトの進め方 /howtoproceedwithmlproject

機械学習プロジェクトの進め方 /howtoproceedwithmlproject

Miyakawa Taku

March 18, 2018
Tweet

More Decks by Miyakawa Taku

Other Decks in Programming

Transcript

  1. 機械学習プロジェクトの進め方
    2018-03-19
    宮川 拓

    View Slide

  2. #ccc_e4
    2/105
    背景と動機
     機械学習プロジェクトは、繰り返し的にシ
    ステムを改善していくプロセスらしい
     繰り返しごとに、どこのツマミを回せば良
    いのか?
    デ ー タ 収 集
    特 徴 抽 出
    モ デ ル 構 築
    ハ イ パ ー パ ラ メ ー タ 調 整
    学 習 ・ 評 価
    評 価 軸 設 計

    View Slide

  3. #ccc_e4
    3/105
    ネタ元
     Coursera「Machine Learning」
     機械学習の基礎を学ぶ実務者向け講義
     厳密な根拠づけは省いて、「直観的には
    こんな感じ、やり方はこう」という内容
     「実務上どう実現すればいいの?」とい
    う話もちょいちょい出てくる
     今回は第6週、第11週がネタ元

    View Slide

  4. 題材1 (第6週)
    線形回帰による住宅価格予測
    #ccc_e4
    4/105

    View Slide

  5. #ccc_e4
    5/105
    題材1: 線形回帰
     説明変数 (x)
     広さ
     部屋数
     階数
     築年数
     ……
     目的変数 (y)
     住宅価格

    View Slide

  6. #ccc_e4
    6/105
    次にどの手を打つべきか?
     「予測がうまくいかない」とき
     そもそもそれはどういう時?
     何をするべき?
     データをもっと集める?
     説明変数を増やす?減らす?
     1
    2 + 2
    みたいな多項式を新たな説明変
    数にする?
     正則化を強くする?弱くする?

    View Slide

  7. def. 予測がうまくいっていない
    #ccc_e4
    7/105
    一般的なデータに対する予測の誤差が
    大きい
    訓練データセットに対する予測の誤差
    が大きい

    ×

    View Slide

  8. データセットの分割
    #ccc_e4
    8/105
    モデルのパラメータの推定のため
    に使うデータセット
    最適な説明変数群、ハイパーパラ
    メータなどを選択する基準として
    使うデータセット
    最終的な予測の性能を測る
    一般的なデータとして
    使うデータセット
    訓練セット
    バリデーション
    セット
    テストセット

    View Slide

  9. 説明変数の数と誤差の関係
    #ccc_e4
    9/105
    誤差
    説明変数の数
    訓練誤差
    バリデーション誤差
    ←underfit overfit→

    View Slide

  10. 説明変数の数と誤差の関係
    #ccc_e4
    10/105
    誤差
    正則化項の係数λ
    訓練誤差
    バリデーション誤差
    ←overfit underfit→

    View Slide

  11. 訓練セット量と誤差の関係
    #ccc_e4
    11/105
    誤差
    訓練データセットの量
    Learning Curve
    訓練誤差
    バリデーション誤差
    ←overfit
    誤差が過大なら
    underfit→

    View Slide

  12. #ccc_e4
    12/105
    状況ごとのやるべきこと
    Underfit: データに対してモデルが単純過ぎ
     説明変数を増やす
     正則化項の係数を小さくする
    Overfit: データに対してモデルが複雑過ぎ
     訓練セットの量を増やす
     説明変数を減らす
     正則化項の係数を大きくする

    View Slide

  13. 題材2 (第6週)
    spamフィルタ
    #ccc_e4
    13/105

    View Slide

  14. #ccc_e4
    14/105
    基本的な進め方
     まずは簡単なモデルを作ってみる
     Learning Curve (訓練セット量vs誤差)を
    プロットしてみる
     誤差が充分に小さければOK!
     誤差が大きければ
     underfit → モデルを複雑に
     overfit → データを集める
    → モデルを単純に

    View Slide

  15. #ccc_e4
    15/105
    エラー分析
     具体的に打つ手を決めるためには、
    分類エラーを分析することが有用
     例: “med1cine”のような意図的なミスス
    ペルを持つメールがspamとして分類で
    きていない
    → 未知語の数を説明変数に追加

    View Slide

  16. 題材3 (第11週)
    Photo OCR
    #ccc_e4
    16/105

    View Slide

  17. 題材: OCRパイプライン
    #ccc_e4
    17/105
    画像
    テキスト検出
    文字分割
    文字認識(分類)

    View Slide

  18. #ccc_e4
    18/105
    Ceiling Analysis
     やみくもに各ステップを改善するのは
    非効率的
     Ceiling Analysisを行って、どのステップを
    改善するべきか突き止めよう

    View Slide

  19. Ceiling Analysis
    #ccc_e4
    19/105
    最終的な
    accuracy
    改善
    現行のパイプライン 70% -
    + 完璧なテキスト検出器 75% +5%
    + 完璧な文字分割器 90% +15%
    + 完璧な文字認識器 100% +10%
    → 最も改善が見込める文字分割器の改善に
    労力をそそぐべき

    View Slide