アクチュアリーはデータサイエンスの夢を見るか?

Rで保険数理と機械学習をやっています

機械学習と保険数理の違い(バイアス、バリアンス分解との比較)

今回は機械学習と保険数理の違いについて、数式を用いて比較してみます。

1.機械学習の汎化誤差

まずは機械学習で扱われる汎化誤差(Test error)について数式を見てみます。汎化誤差とは訓練誤差(Training error)に対する概念で、「観測されていない新たなデータを予測した時に生じる誤差」のことを指します。

以下の数式はScott Fortmann-Roeのessayからの引用です。
scott.fortmann-roe.com

 \\\
Y = f(X) + \epsilon\\\
Err(x) = E\left\langle(Y-\hat{f}(x))^2\right\rangle\\\
= E\left\langle(f(x) -\hat{f}(x)+ \epsilon)^2\right\rangle\\\
= \left(f(x)-E\langle\hat{f}(x)\rangle\right)^2 + E\left\langle\left(\hat{f}(x)-E\langle\hat{f}(x)\rangle\right)^2\right\rangle +\sigma_e^2\\\
= \mathrm{Bias}^2 + \mathrm{Variance} + \mathrm{Irreducible\ Error}

確率変数Yは Y = f(X) + \epsilon\\\ によってモデル化され、 f(x)\\\ は理論値、 \epsilon\\\ はノイズを意味しています。一方で \hat{f}(x)\\\ は予測値を意味しており、 Y\\\  \hat{f}(x)\\\ の推定二乗誤差である Err(x)\\\ (=汎化誤差)を分解するのが上式の狙いです。
ポイントとなるのは、予測値 \hat{f}(x)\\\ が定数ではなく、訓練データに従って変動する確率変数として表現されることです。予測値 \hat{f}(x)\\\ の不確実性は最終式の第2項で示されます。
最終的に、汎化誤差=①バイアス+②バリアンス+③ノイズの3要素に分解することができました。

2.保険数理の推定二乗誤差

一方で保険数理でのリスク評価はどのように行われるでしょうか?以下の数式をマーフィーの論文から引用します。
https://www.casact.org/pubs/forum/07sforum/07s-murphy.pdf


mse\left( \widehat {C}\right)=  E \left( C-\widehat {C}\right) ^{2}\\\
=Var\left( C\right) + E_{\widehat {C}}\left( \widehat {C}- \mu _{C} \right) ^{2}\\\
=Var\left( C\right) +Var\left( \widehat {C}\right) + \left( \mu _{C}-\mu _{\widehat {C}}\right) ^{2}\\\
=Var\left( C\right) +Var\left( \widehat {C}\right) + \mathrm{Bias}^2

 C\\\ は将来の支払保険金、 \widehat {C}\\\ はその予測値になります。 C\\\  \widehat {C}\\\ の推定二乗誤差である mse\left( \widehat {C}\right)\\\ を分解するのが上式の狙いです。なお、 \mu _{C}および \mu _{\widehat {C}}はそれぞれ C\\\  \widehat {C}\\\ の母平均です。
最終式の各項をそれぞれ日本語に読み替えると、リスク=(1)プロセスリスク+(2)パラメータリスク+(3)バイアス(モデルリスク)と分解することができます。
プロセスリスクは確率変数 C\\\ が元々もっている不確実性、パラメータリスクは観測値の偏りにより、予測モデルのパラメータを読み誤る不確実性を示しています。
マーフィーの論文では将来支払う保険金の変動リスクについて、プロセスリスク、パラメータリスク(あるいはバイアスを含んだエスティメーションエラー)に分けた評価を行っています。

3.両者の数式の比較

ここで上記の2つの数式を見比べてみると、両者は本質的には同じことを表していて、3つの項がそれぞれ対応していることが分かります。
バイアス=モデルリス =\mathrm{Bias}^2
バリアンス=パラメータリスク =Var\left( \widehat {C}\right)=E\left\langle\left(\hat{f}(x)-E\langle\hat{f}(x)\rangle\right)^2\right\rangle
ノイズ=プロセスリスク =Var\left( C\right)=\sigma_e^2

機械学習領域では、ノイズの発生はまぬかれえないもの、モデルによらずコンスタントに予測を乱すものとしてざっくり切り捨てられます。
一方で、バイアス、バリアンスについてはモデルを調整して小さくすることが可能なため、これらをどう最小化させるかが肝要となっています。バイアス、バリアンスについては下記イメージの通りです。f:id:r_std:20181217050822p:plain
特に、バイアスとバリアンスにはトレードオフが存在する(下記イメージご参考)ために、モデルをどのように設定して予測性能を最大化するかが命題となっています。ここには複雑なモデルは訓練データに依存しやすい一方、単純なモデルでは精緻な結果は得にくいというジレンマがあります。

f:id:r_std:20181217070146p:plain
X軸はモデルの複雑さ、Y軸は汎化誤差の大きさを表します。赤色のバイアスと水色のバリアンスの和を最小化することが機械学習の命題です。
f:id:r_std:20181229073001p:plain
左の図はモデルがシンプルすぎる(バイアスが大きい)一方、右の図はモデルが複雑すぎて訓練データへの依存度が高い(バリアンスが大きい)状態

保険数理では、機械学習とは異なりノイズ(プロセスリスク)についても注目します。将来に支払いが予測される保険金の変動や株式などの価格変動リスクなどを評価するために、プロセスリスクを分析することがアクチュアリーの使命の1つになっています。また、バイアスについては実際には観測することのできないモデルリスクとして認識し、複数のモデルをブレンディングするなどして対応することがあります。バリアンスについては観測値の偏りに伴うリスクであるパラメータリスクとして認識し、リスクモデルを用いたリスク評価の対象に含めています。

機械学習ではバイアス、バリアンスのトレードオフについて注目しますが、保険数理でも共通した課題認識を持つことがあります。例えば、リスクモデルの複雑さをどの程度にするか検討する際に、同じようなトレードオフが発生します。各々の会社でリスクモデルを複雑・精緻にする場合には、個社の保有リスク実態に適したリスク評価が可能になるというメリットがあります。一方で、リスクモデルが複雑になりすぎるとモデルの頑健性や各社間の結果の比較可能性は落ちてしまうというデメリットがあります。

データサイエンティストが用いる機械学習の手法とアクチュアリーが用いる保険数理の手法はそれぞれ異なりますが、両者が優れている点を共有することでより精緻なモデルを開発したり、モデルの妥当性を高めることにつながるのではないでしょうか。