« 読了:「ヴェローナの二紳士」「湿地」 | メイン | 説明変数の重要度指標のいろいろ (by caretの中の人) »
2015年12月16日 (水)
Olden, J.D., Koy, M.K., Death, R.G. (2004) An accurate comparison of methods for quantifying variable importance in artificial neural networks using simulated data. Ecological Modeling, 178, 389-397.
仕事の都合でざざっと目を通した。
人工ニューラルネットワークにおける説明変数の寄与を定量化する手法について検討します。すでにGevrey et al (2003, Ecological Modelling) が実データで手法比較しているんだけど、シミュレーションできちんとやり直します。という論文。
扱うのは、隠れ層ひとつのフィード・フォワード型ネットワーク、ノードの数は入力側から5, 5, 1。バックプロパゲーションで学習。
まず母集団をつくる。10000ケース、反応 y と説明変数 x1, x2, ... の相関は、それぞれ0.8, 0.6, 0.4, 0.2, 0.0。説明変数間の相関は0.2。ここから50件抽出してネットワークを推定して重要性を測る、というのを500回反復。各回の重要性の順位を真の順位と比べる。
お待たせしました、選手登場です。
- Connection weights. 入力ノードから出力ノードへのウェイトの積の総和。[つまりこういうこと。隠れ層のノードをh1, h2, ..., h5とする。x1 -- h1 -- y のウェイト積を求める。これをh2, h3, h4, h5について繰り返して合計する]
- Garsonのアルゴリズム。[どうやらこういうことらしい。x1 -- h1 -- y のウェイト積の絶対値を、h1 -- y のウェイトの絶対値で割る。これをh2, h3, h4, h5について繰り返して合計する]
- 偏微分。出力を入力ノードに関して偏微分する。
- 入力perturbation。他の入力は変えず、ある入力ノードに50%のホワイトノイズを乗せ、MSEの変化を見る。
- 敏感性分析。他の入力は変えず、ある入力ノードを均等な幅の12水準に動かす。[うーん、正確なところはちょっと理解できなかった。まあいいけどさ]
- 前向きステップワイズ追加。その入力ノードを追加してモデルを推定しなおしたときのMSEの変化。
- 後ろ向きステップワイズ削除。その入力ノードを削除してモデルを推定しなおしたときのMSEの変化。
- 改善されたステップワイズ選択1。その入力ノードを削除したときのMSEの変化 (モデルは推定しなおさない)。
- 改善されたステップワイズ選択1。その入力ノードを平均にしたときのMSEの変化。
結果。Connection weightが一番当たる。前向きステップワイズ、後ろ向きステップワイズは成績が悪く、Garsonは超悪い。
結論。Garsonはやめとけ。
。。。えーっ? Connection weightsがいちばん計算が楽じゃないですか。そんな単純なやりかたでいいの?
この論文では、説明変数の真の重要性とは母集団における目的変数との相関の順位なわけだが、入出力の関連性が非線形だったり、入力変数間の交互作用があったり、といった場合はどうなるのだろうか。もっともその場合は、真の重要性を定義するのも難しくなるんだろうけれど。
論文:データ解析(2015-) - 読了:Olden, Koy, & Death (2004) ニューラル・ネットワークの説明変数の重要性を測る最良の方法(それは意外にも...)