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

『機械学習を解釈する技術』を紹介する / itbookslt

『機械学習を解釈する技術』を紹介する / itbookslt

2021年8月19日に実施された「おすすめの技術書 LT会 - vol.2」の資料です。
https://rakus.connpass.com/event/218578/

2021年8月に技術評論社さんから出版された『機械学習を解釈する技術』( https://amzn.to/3ssSsIM )を紹介しています。

森下光之助

August 18, 2021
Tweet

More Decks by 森下光之助

Other Decks in Technology

Transcript

  1. 『機械学習を解釈する技術』
    を紹介する
    2021/8/19
    おすすめの技術書 LT会 - vol.2
    森下光之助(@dropout009)

    View Slide

  2. ⾃⼰紹介
    森下光之助
    TVISION INSIGHTS株式会社
    データサイエンティスト
    執⾏役員(データ・テクノロジー担当)
    テレビの視聴⾏動を分析しています
    データの利活⽤、マネジメント、組織づくり、
    因果推論、機械学習の解釈⼿法などに興味があ
    ります
    Twitter: @dropout009
    Speaker Deck: dropout009
    Blog: https://dropout009.hatenablog.com/

    View Slide

  3. 紹介したい本︓機械学習を解釈する技術
    https://is.gd/nkYPPG
    Deep Learning、GBDT、Random Forestなどの機械学習モ
    デルは⾼い予測精度を誇りますが、モデルの解釈性が
    低いという⽋点があります。
    これらの複雑なブラックボックスモデルにおいて,モ
    デルがなぜそのような予測を⾏っているのかを知るこ
    とは困難ですが、データ分析者⾃⾝がモデルの振る舞
    いを把握し、説明責任を果たすことを実務においては
    頻繁に求められます。
    本書では、このような予測精度と解釈性のトレードオ
    フを克服するための⼿法について、実務において特に
    有⽤と考えるものを厳選して紹介します。
    (紹介⽂抜粋)

    View Slide

  4. 本の内容

    View Slide

  5. モチベーション︓予測精度と解釈性のトレードオフ
    LM
    GBDT
    RF
    NN
    解釈性
    予測⼒
    GLM

    View Slide

  6. ブラックボックスモデル + 解釈⼿法でトレードオフを克服する
    LM
    GBDT
    RF
    NN
    解釈性
    予測⼒
    GLM
    ブラックボックスモデル
    +
    機械学習の解釈⼿法

    View Slide

  7. 有⽤な解釈性とは︖線形回帰モデルと同等の解釈ができることを⽬指す
    LM
    GBDT
    RF
    NN
    解釈性
    予測⼒
    GLM
    ブラックボックスモデル
    +
    機械学習の解釈⼿法

    View Slide

  8. ブラックボックスモデルに解釈性を与える⼿法を4つに厳選して紹介
    PFI
    PD
    ICE SHAP
    SHAP
    SHAP
    マクロな
    解釈⼿法
    ミクロな
    解釈⼿法

    View Slide

  9. ⼯夫した点

    View Slide

  10. ⼯夫した点①︓線形回帰モデルをベースに解釈⼿法を紹介した
    1.特徴量の重要度が解釈できる ← PFI
    2.特徴量と予測値の平均的な関係が解釈できる ← PD
    3.特徴量と予測値のインスタンスごとの関係が解釈できる ← ICE
    4.インスタンスごとの予測の理由が解釈できる ← SHAP
    !
    𝑓 𝑋!
    , … , 𝑋"
    = !
    𝛽#
    + !
    𝛽!
    𝑋!
    + ⋯ + !
    𝛽"
    𝑋"

    View Slide

  11. ⼯夫した点②︓解釈⼿法の限界を数値例や理由と共に記載した
    Partial Dependenceがうまく機能しない例︓
    PDは交互作⽤を捉えることができていない
    𝑌 = 𝑋! − 5𝑋" + 10𝑋"𝑋# + 𝜖
    𝑋!, 𝑋" ∼ Uniform −1, 1
    𝑋# ∼ Bernoulli 0.5
    𝜖 ∼ 𝒩(0, 0.01)

    View Slide

  12. ⼯夫した点③︓Pythonでゼロからアルゴリズムを実装した
    例︓Partial Dependence
    @dataclass
    class PartialDependence:
    """Partial Dependence (PD)"""
    estimator: Any
    X: np.ndarray
    var_names: list[str]
    def _counterfactual_prediction(
    self,
    idx_to_replace: int,
    value_to_replace: float
    ) -> np.ndarray:
    """ある特徴量の値を置き換えたときの予測値を求める"""
    X_replaced = self.X.copy()
    X_replaced[:, idx_to_replace] = value_to_replace
    y_pred = self.estimator.predict(X_replaced)
    return y_pred
    ………
    !
    PD;
    𝑥;
    =
    1
    𝑁
    (
    <=>
    ?
    )
    𝑓(𝑥;
    , 𝒙)

    View Slide

  13. 書いていないこと

    View Slide

  14. この本に書いていないこと
    • PFI、PD、ICE、SHAP以外の機械学習の解釈⼿法
    • 画像認識や⾃然⾔語処理
    • 統計学や機械学習の理論⾯
    • 予測精度を向上させるためのテクニック
    • 因果推論
    https://is.gd/PfG74F https://is.gd/ZNCAkt https://is.gd/HXCUsX
    https://is.gd/xrgSt3

    View Slide

  15. TVISION INSIGHTSでは⼀緒に働く仲間を募集しています︕︕︕

    View Slide