2018-02-10

仕事における過学習リスク

仕事では、実際に経験したことを今後の意思決定の肥やしにすることが非常に重要になる。「反省から学ぶ」とか「PDCA」とか、そういった話だ。

なので、まずは「やってみて、その結果から学ぶ」という経験アプローチのが仕事の第一ステップとなることは殆ど間違いないだろう。

他方で、そういった経験アプローチは、実は万能ではない。

言い換えると、経験アプローチには留意点があって、その留意点を自覚できていないと、経験から学び「過ぎ」になり、逆にパフォーマンスが下がりうる

それを一言で言うと「過学習」「過剰適合」なのだが、本稿ではそのことについて書き散らしてみたい。

統計っぽく言ったサマリーは、回帰分析でパラメーターを増やすことのリスクは、日常の意思決定にも通じるものがあるという話。

なお、関連記事はこちら →リンク



回帰分析とは

(統計習熟者の方は、この章は飛ばして頂いて構いません)

回帰分析とは、得られたデータをもとにして、①起こっている現象の説明を試みて②その将来について予測するという統計手法。

たとえば

  • 「風が吹けば桶屋が儲かる」という仮説が本当かどうか確かめるべく、過去1年間の風量のデータと桶屋の収益性データを取得して、両者の関係を調べつつ、今後予想される風量をもとに桶屋の今後の収益性を予測する
  • 物価、生産、雇用、投資等の経済指標からGDPの説明を試みつつ、今後のGDPを予測する
といった感じ。

説明変数と呼ばれる元データをたくさん集めて、被説明変数と呼ばれる「分析・予測したい対象となるデータ」について分析・予測を行う。

真面目にやると色々難しいが、作業だけであれば非常に簡単で、Excelの分析ツールを使えばものの30秒もあれば結果を得ることができる。

※余談
分析ツールだと、データが変わる度にツールを実行せねばならず作業として大変なのだが、LINEST関数という「回帰分析結果を出力する関数」を使えば、説明変数が変えることに連動して出力結果も自動的に変化するようにスプレッドシートを組むことができて便利。
その際、LINEST関数の出力は回帰分析にまつわる複数の指標の集合になるので、「C2セルには、LINEST関数の出力の一つである切片を返す」「C3セルには説明変数の係数を返す」等の作業 はINDEX関数を組み合わせることで行う。
LINEST関数とINDEX関数を組み合わせると、「データ期間をリーマンショック後の10年弱から、リーマンをまたぐ15年にするとどうなるか」とか、「説明変数に、XだけではなくWも追加してみるとどうなるか」といった結果を見ながら回帰モデルを微調整するという作業が非常にやりやすくなる。


日常の意思決定:回帰分析によるアナロジー


回帰分析それ自体も意思決定ツールとして非常に有益だが、回帰分析「的」発想も、意思決定の現場において日々多用されているように思う。

ここで言う回帰分析「的」発想とは、
  • 現実に起こった様々な出来事X1,X2,X3・・・を考慮して
  • 出来事Yがなぜ起こったのか現状分析する
  • または、今後Yがどのような展開になるのか予測したり、期待するような結果になるよう対応したりする
といった知的作業のこと。


たとえば
  • 現場でトラブルが起こってしまった
  • これを受け、たとえば「関係者のコミュニケーション」とか「ルールの順守状況」とか「業務繁忙度」といったいくつかの切り口(=説明変数)からそのトラブルを検証した
  • その結果、「関係者のコミュニケーションが不足している」「ルールに無理があって、そもそも誰も守っていなかった」「忙しくて皆余裕がなかった」ということが判明した(現状分析)
  • この分析結果を踏まえて、「関係者が十分コミュニケーションできるよう業務フローを修正する」「ルールを実態にそろえて改正する」「余裕をもって作業できるよう、その部署の人を増やす」といった対応を行い、将来同様のトラブルが起こらないようにする(予測・対応)

といった感じ。

これは決して定量的なものである必要はない。

自分またはチームとして、各種データや観察の結果、何かしら判断や対応が変化(更新)されれば、それは立派な回帰分析「的」意思決定である。


回帰分析の注意点


回帰分析では、決定係数という指標を「作ったモデルが、現象をどのくらいちゃんと説明できているか」 を示す主要指標として利用する。

他にも色々考慮すべき指標は多いのだが、分析者は説明変数の使い方をあれやこれや調整しつつ、決定係数等の指標を眺めることで、自分の作るモデルのもっともらしさを試行錯誤しながら改善していくことになる。

その際、傾向として、説明変数を増やせば増やすほど、決定係数はどんどん改善する性質がある。

すなわち、モデルにデータを投入すればするほど、そのデータの良しあしにかかわらず、モデルの精度が改善する

これは統計初心者にとっては結構気持ち良い体験だ。自分もとある予測モデルを作成していたとき、説明変数にデータを追加すればするほど決定係数が改善してハイテンションになった記憶がある。

ただ、これは非常に陥りがちな罠の一つだ。

これは過剰適合とか、機械学習の分野では過学習などと呼ばれるが、モデルにデータを入れすぎてしまう結果、現状説明力が高まる一方で将来予測精度が逆に悪化してしまう傾向がある。

そのため、分析者は、まず第一に、自分が何のために回帰分析をやっているのか立ち止まって考える必要がある

すなわち、現状分析力の改善は、あくまで将来予測のための手段に過ぎないということだ。目先の説明力改善にとらわれてデータを増やしてモデルを複雑化させてしまうと、そのモデルは逆に将来をうまく予測できなくなってしまう

これをさらに言い換えると、将来予測という目的に立てば、モデルはある程度シンプルな方が良いという発想が実務的には重要。



その注意点はそのまま現実に応用できる


この発想、すなわち「過学習を警戒して、あえてシンプルな予測モデルを構築する」という発想は、回帰分析「的」な日々の意思決定でもそのまま応用できるように思っている。

意思決定の現場ではついつい、拾える限り多くの情報を拾い、それを現状分析のフレームワークに放り込んでしまいたくなる

たとえば上記で挙げた現場のトラブルを例に出しても、上に挙げた「コミュニケーション」「ルールの順守状況」「繁忙度」だけではなく、考え出せばきりはなく、たとえば「そこの部長の方針」「課長が部長の方針を歪めず伝えているかどうか」「担当者一人ひとりのモチベーション」「その部署の働き方に関する慣習」「取引先との経緯」等、考慮しようと思えばいくらでも考慮に足るデータは出てくる。

このとき、過学習リスクを理解できているかいないかで、データに対するスタンスが180度変わってしまう。

過学習リスクを理解している人は、予測精度改善を第一義とし、むしろデータを取り込み過ぎないように努めるだろう。

他方で、過学習リスクへの理解が乏しい人は、現状説明力の改善に夢中になってしまい、ありとあらゆるデータを取り込んでしまう。そのようなモデルがいかに将来予測力を欠くものであるかへの想像力が及ばないのだ。

過学習はむしろ予測精度を下げるというトレードオフに意識的である必要がある。一見比例関係にあるように見える現状分析と将来予測は、この点においてトレードオフがあるのだ。

現状分析を行うのは、現状分析それ自体のためというより、究極的には将来より良い判断を行うためである」という基本原則に常に立ち返り、あまりに多くのデータを考慮しすぎることなく、妥当な現状分析をすることが重要になる。


過学習の回避:経験則


ここから先は一般論ではなく個人的経験則だが、肌感覚として、「考慮に入れてしまうと逆に将来予測精度を下げがちなファクター」として以下が挙げられるように思う:

  • AさんBさんが何を言った、みたいな話・・・属人性や個別性を考慮しすぎてしまうと、きめ細かさは改善するが、得てして対応が場当たり的になる。下手すると「きめ細かくやっていたつもりが、気が付いたら昔と正反対のことを言ってしまい、組織の首尾一貫性がむしろ損なわれる」みたいなリスクが大きいように思われる。
  • 過去の経緯・・・これはややトリッキーだが、非常に多くの場合において、過去の経緯は純然たる事実ではなく、発言者のAさんBさんのフィルターを通じた解釈になってしまい話がゆがむことが多い。複数人に聞くことで客観化できない限りは、考慮しすぎない方が良いと思われる。
  • 「説明が下手」「内部調整が下手だった」系・・・意思決定の現場ではついつい「仕組みは悪くない。悪いのは説明したアイツの説明だ」と言いたくなることが非常に多い。実際その通りであることも多く、現状分析を目的とするのであればこの「説明が下手」は有効なことが多い。しかし、将来の対応という意味では、今回説明が下手だった人にうまく説明してもらうのは難しいことが多いし、得てして「将来のための改善」という観点では、説明巧拙に逃げてしまうと本質的な改善がなされないまま終わってしまうことが多い。
  • ズバリ本質的過ぎる分析・・・たいていの場合、誰でも思いつくようなシンプルかつ強力な改善策や原因が見つかるものだ。しかし、意思決定の実務においては、そのシンプルな原因が結果として解決していない点に思いを馳せる必要がある。すなわち、そのシンプルな原因は、得てして、①実は的外れであるか、②妥当だが即座に解決できない事情があり、まずはその事情を解きほぐす必要がある場合が多い。本質的な議論から逃げて各論に埋没するのも良くないが、本質的原因が見つかったときには、セットで「なぜそれが解決していないのか」も考えて初めて意味をなす。


まとめ


意思決定の現場においては、ついつい色々な要素を考慮に織り込みたくなってしまう。しっかりした人やチームであれば尚更だ。

しかし、その際、「現状分析力と将来予測力の間には、過学習という点においてトレードオフがある」ということを意識したい。

その意識ができれば、あまたある論点のうち、その全てをあえて考慮しきらず、一部の論点だけで将来への対応策を考えることがむしろ賢明であることが理解でき、結果的により良い意思決定をできるようになる。

このフレームワークでキャリアライフサイクルみたいなものを語ってみると、

  • 若手のゴールイメージは、「一つでも多くの論点を発見・料理できるようになる」という「敏感力」
  • 中堅~幹部層のゴールイメージは「数ある論点を認識しつつ、その一部を独自のセンスで、あえて考慮の対象外にできるようになる」という「鈍感力」
  • 中堅たる自分の当面のミッションは以下のような感じだろうか:
    ①論点をもれなく把握する敏感力をさらに高めつつ
    ②落とすべき論点をきちんと無視する熟練性を鍛える
    ③ただし、論点把握の努力を怠りオートマティックに「気づいた少数の論点だけで、権力に寄りかかって独断的に意思決定する」というダメなシニアにならないように常に注意する
ということなのかなと思うようになっている。



参考文献


  • 「機械学習入門」・・・機械学習を「する」人というより、「機械学習に実務で接点がないけど、知っておきたい」という人に丁度良い本。これを一通り読んで、その基本コンセプトを理解しておくだけでも相当有益と思う
  • 「実証分析のための計量経済学」・・・計量経済のエッセンスをパッと理解するのに非常に有益な本。難しい本を買う前にまずこの本をベースに入れておくだけでずいぶんと楽になる。
  • 「意思決定理論入門」・・・「意思決定?そんなの経験重ねてうまくなるしかないでしょ」「意思決定力は人間力としか言いようがない」といったオールドファッションな発想から頭を切り替えて「意思決定力は訓練と修練により日々鍛えられる」と発想のパラダイムを大きく切り替えることができる必読の一冊。回帰分析自体は本書の対象外だが、統計的発想や経済学的発想が、主観確率というキーワードを軸に(他にもあるけど)日々の意思決定とリンクしていく構造をクリアに理解することができる。