モデルの微分による非線形モデルの解釈 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌
モデルの微分による非線形モデルの解釈 線形モデル 標準回帰係数などの重みを見ることで、 各説明変数 (記述子・特徴量) の重みを検討できる 標準回帰係数などの重みを見ることで、 各説明変数 (記述子・特徴量) の重みを検討できる 非線形モデル モデルを各説明変数で偏微分 説明変数空間におけるある点 (たとえば、あるサンプル) における 微分係数を計算することで、その点における説明変数ごとの 傾きを計算できる 傾きが大きいということは、その点において値を変化させることで、 目的変数の値の変化も大きい説明変数であるということ
線形モデルの解釈の検討 線形の2クラス分類モデルもしくは回帰モデル y = f(x) f(x) = a1x1 + a2x2 + … + amxm + b (m : 説明変数の数) モデルにおける各説明変数 xi の重み ai を見ることで、 xi を 1 変化させたときに、f(x) がどれくらい変化するかわかる ただし、説明変数の間に相関があるときは xi だけ 1 変化させる ことは難しく、単純に ai を xi の y への寄与の大きさとすることは できないことに注意
非線形モデルでは? 線形モデル 非線形モデル y y y = ai xi + b xi xi 傾き = 重み = ai ?
局所的に傾きを求めよう!→ 微分 y xi 説明変数の値 (たとえばサンプル) ごとの、局所的な傾きは計算できる
非線形モデルの微分 f(x) を xi で偏微分すると、 f(x) が線形モデル、つまり f(x) = a1x1 + a2x2 + … + amxm + b (m : 説明変数の数) のとき、 となり重みと一致 線形モデルでは定数になるが、非線形モデルでは x の関数になる
非線形モデルの例 今回は、サポートベクターマシン関係の3つの非線形モデルを 説明変数 xi で偏微分してみる 2クラス分類:Support Vector Machine (SVM) 詳細:https://datachemeng.com/supportvectormachine/ 回帰分析:Support Vector Regression (SVR) 詳細:https://datachemeng.com/supportvectorregression/ モデルの適用範囲:One-Class SVM (OCSVM) 詳細:https://datachemeng.com/ocsvm/ カーネル関数は、ガウシアンカーネルとする
非線形モデルの式 SVM SVR OCSVM n : サンプル数 y(j) : j 番目のトレーニングサンプルの目的変数の値 x(j) : j 番目のトレーニングサンプルの説明変数ベクトル αj, αj*: SVM, SVR, OCSVMモデリングにより求められる値 b : 定数項
SVMモデルの微分 SVMモデル f(x) を xi で偏微分すると、 カーネル関数 を xi で偏微分する
カーネル関数の微分 より、 よって、
SVMモデルの微分 p.8, p.9 より、
SVMモデルの微分係数によって分かること の値が正 (もしくは負) のとき、 あるサンプル x から 説明変数 xi の値だけを大きくしたとき、 クラス 1 (もしくは-1) の方向に変化するということ の絶対値が 大きいということは、その変化が大きいということ
SVRモデルの微分 SVRモデル f(x) を xi で偏微分すると、 p. 9 より、
SVRモデルの微分係数によって分かること の値が正 (もしくは負) のとき、あるサンプル x から 説明変数 xi の値だけを大きくしたとき、 目的変数の値が正 (もしくは負) の方向に変化するということ の絶対値が 大きいということは、その変化が大きいということ
OCSVMモデルの微分 OCSVMモデル f(x) を xi で偏微分すると、 p. 9 より、
OCSVMモデルの微分係数によって分かること の値が正 (もしくは負) のとき、 あるサンプル x から 説明変数 xi の値だけを大きくしたとき、 f(x) が大きく (もしくは小さく) なり、モデルの適用範囲内 (もしくは適用範囲外) の方向に変化するということ の絶対値が 大きいということは、その変化が大きいということ