書評「機械学習を解釈する技術」

カテゴリ: python r

森下光之助(@dropout009)著「機械学習を解釈する技術」を献本頂きました。

8月4日から8日までの間に、暇を見つけては開いて読了。せっかくなので全体的な感想をまとめておきたいと思います。読む最中の感想はTwitterのスレッドに綴りました。本稿では蛇足になると判断して省略する部分も多いので、気になる人は覗いてください。

どんな人におすすめか

一言にすれば、機械学習を利用していて、モデルの解釈方法を知りたい、整理したい人向けでしょう。

本書は目次からも察せられる通り、

  • 3章: 特徴量の重要度を知る
  • 4章: 特徴量と予測の関係性を知る
  • 5章: インスタンスの異質性をとらえる
  • 6章: 予測の理由を考える

といった具合に、モデルをマクロな視点から解釈し、不足を補う形でミクロな視点を導入していきます。数あるアルゴリズムから4つに絞って紹介することで、解釈の指針を与えてくれます。この点はアルゴリズムを網羅的に紹介するInterpretable Machine Learning(原著邦訳版)と対照的です。

モデルを解釈したいがどこから始めていいか分からないので知りたい場合、本書を読み進めながら実践導入してもいいでしょう。各手法の限界にも触れられているので、読み進めた範囲で実践してみて不足があれば、次を読むといった本書の利用方法もあると思います。そして、Web媒体で学習を進めるてオススメされているからといきなり高等な手段に飛び付いてしまうよりも遥かに安全だと思います。

また、なんとなくPermutation Feature ImportanceやSHAPなどの手法を使い分けて、モデルを解釈していた場合、なんとなくが論理化される、型に嵌る、そんな感覚を得られることでしょう。

私は色んな手法を適宜使い分けてきた!と自身のある方でも、一度目を通すとご自身と異なる視点を得られるかも知れません。そう言うと、モデルを解釈したいすべての人にオススメになってしまいますね。

購入を迷う場合

もし立ち読みされて購入を検討したい場合は、

  • 1.3: 機械学習の解釈方法
  • 1.6: 本書に書いていること、書いていないこと

に目を通してみると良いと思います。

本の導入としてはやはり

  • 1.1: 機械学習の解釈性を必要とする理由

から始まるのが妥当ですが、この本が気になる人は必要な理由に心当たりくらいあると思います。なので、立ち読みでは読み飛ばしてもいいかと思います1

立ち読みなら本書の考え方がぎゅっと詰まった1.3と、前提知識がわかる1.6は外せないでしょう。といっても前提知識に高いハードルを求めているわけではありません。

感想

頭から順に読みたい本

技術書というと、つい気になるところからつまみ食いしがちです。しかし本書は章構成が非常によく練られており、頭から読むのがいいと思いました。

1章は、本書が4つの解釈手法に絞った理由や、その順序の意図を知る上で重要です。これを読んでこそ、「解釈手法」を知るのではなく、「解釈する技術」が身につくと感じます。

2章は、線型モデルが備える4種の解釈性を紹介しています。この4種とは、順序こそ違えど、3章から6章にかけて紹介していく解釈手法に相当するものです。特にモデル解釈初心者は、2章を読んでおくことで、モデル解釈のキモを俯瞰できます。そうでなくとも、何ができればブラックボックスモデルも線型モデル並みに解釈できると言えるのか、改めて考えるきっかけになります。

3章から6章は解釈手法の各論です。マクロな視点から解釈し、不足をよりミクロな視点から解釈するという流れで章が進みます。したがって各章が次章の導入にもなっており、順に読むことで理解が深まります。

付録が充実

斜め読みですが、充実しているなと感じました。

付録Aでは、Rでモデルを解釈する方法としてDALEXパッケージを紹介しています。特徴量重要度ならvipパッケージ、Partial Dependencyならpdpパッケージを使ったことがありましたが、一つのパッケージで一通りできるDALEXは便利そうですね。 Rも使う人ならぜひ抑えておきたい章です。

付録Bでは、線型モデルに本書で紹介したアルゴリズムを適用し、線型モデルが本来備える解釈性との整合性を確認します。計算時間やハードウェアの制約から、どうしても線型モデルにしたい、といった場合に、ブラックボックスモデルと線型モデルを同じ指標で解釈できることは武器になると思います。ブラックボックスモデルで精度を出しておき、線型モデルをそこに近付けるといったことを考えた時、解釈の差分を得れば次のステップが見えてきそうな気がしました。

冒頭の解説がイカス

特に「なぜ本書が必要なのか」では、文献を参照しつつモデル解釈手法発展の背景や歴史に触れていて読み応えがあります。「ステップアップのために」など、本書を読み終えてから改めて目を通す価値のあるネタもあり、漏れなく読んでおきたいところです。


  1. 個人的に、モデルの解釈の重要性の説明が若干弱いように感じている点も理由に含まれます。分析者の説明責任が重要性の根拠になっていますが、節のテーマとしてはなぜ説明責任が発生するかに踏み込んだ方がよかったでしょう。↩︎