影響関数(influence function)#
データ点\(z_{test}\)の予測において訓練データ点\(z\)が与えた影響の大きさを評価する関数\(\mathcal{I}(z, z_{test})\)を推定する技術。
アイデア#
経験リスク\(R(\theta) = \frac{1}{n} \sum^n_{i=1} L(z_i, \theta)\)の最小化による学習アルゴリズムを前提とする。
訓練データ全件で学習したモデル\(\hat\theta\)と、訓練データからデータ点\(z\)を抜いて学習したモデル\(\hat\theta_{-z}\)との差分\(\hat{\theta}_{-z} - \hat{\theta}\)でインスタンス\(z\)の影響度がわかる
インスタンス\(z\)のデータ点\(z_{test}\)に対する影響度は、誤差\(L(z_{test}, \theta)\)の大きさからわかる
データ点\(z_{test}\)の予測において訓練データ点\(z\)が与えた影響の大きさ \(L(z_{test}, \hat{\theta}_{-z}) - L(z_{test}, \hat{\theta})\)を推定する
文献#
Hara et al. (2019)はconvexでない損失関数にも使えるよう拡張したらしい
Guo et al. (2020)はFastIFを提案:k-最近傍のデータに探索範囲を絞るなどして最大80倍の高速化
Sharchilev et al. (2018)は勾配ブースティング決定木に向けたinfluence functionを提案
Influence Functionはモデルのパラメータ\(\theta\)の微分によって近似推定するため、決定木ベースのアルゴリズムなど微分不可能なアルゴリズムでは計算できないため
Notation#
データ点\(z=(x, y)\)
誤差関数\(L(z, \theta)\)
経験リスク:\(R(\theta) = \frac{1}{n} \sum^n_{i=1} L(z_i, \theta)\)
\(N\)訓練データ点が訓練集合\(\mathcal{Z}\)に含まれるとする
標準的な経験リスク最小化:\(\hat{\theta} = \arg \min_{\theta} \frac{1}{n} \sum^n_{i=1} L(z_i, \theta)\)
Leave-One-Out#
1つのインスタンス\(z\)を抜いて訓練した場合にどれだけモデル\(\theta\)が変わるかを考える
モデルの変化がわかればテストデータ点\(z_{test}\)に対する誤差の変化も評価できる
\(n\)個の訓練データ全部を評価するには\(n\)回学習し直す必要があるので現実的なアプローチではない
Influence Function#
アイデア#
数学的なトリックを活用して再学習を避けつつLOOを近似していく。
訓練データ全部を使った経験リスクに、データ点\(z\)についての誤差\(L(z, \theta)\)を重み付きで足したリスク関数で訓練したパラメータ\(\hat{\theta}_{\epsilon,z}\)を考える
\(z\)を入れることによる変化分がとれるので、これの\(\epsilon\)での微分の\(\epsilon = 0\)のときの値をパラメータについての上側のinfluence functionとする
導出
(Koh & Liang (2017)のAppendixより)
up-weightedされた経験リスクのもとでの推定量は
これともとの推定量の差を\(\Delta_{\epsilon}\)とする
第二項は\(\epsilon\)と関係無いので、\(\epsilon\)で微分すると消える
\(\hat{\theta}_{\epsilon, z}\) は arg minの解なので最適性条件を満たす、つまりup-weightedされた経験リスクを微分してゼロとなるポイント
\(\epsilon \to 0\)とすると
ゆえに\(\hat{\theta}_{\epsilon, z} \to \hat{\theta}\)なので、テイラー展開\(f(x) = f(a) + f(a) (x - a) + \cdots\)を用いると
となる。整理すると
であり、\(\hat{\theta}\)は\(R(\hat{\theta})\)を最小化して\(\nabla R(\hat{\theta})=0\)になると考え、\(o(\epsilon)\)の(\(\epsilon\)に比例する)項を消すと
より
(\(\epsilon \nabla L(z, \hat{\theta})\)は残るのはなぜ????)
よって
LOOの近似#
もし\(\epsilon = -\frac{1}{n}\)なら
もし\(z\)が訓練データに含まれるなら、訓練データから\(z\)を除去した場合と同様なので、LOOの考え方を近似できる
損失へのupweighting#
データ点\(z_{test}\)におけるinfluenceを計算するため、微分の連鎖律を使う
ヘッセ行列の計算の高速化#
\(n\)個のデータと\(p\)次元パラメータがあるとき、ヘッセ行列の逆行列は\(O(n p^3 + p^3)\)の計算量を要するので削減したい
共役勾配(conjugate gradients: CG)法
連立一次方程式に帰着させて近似解を得る方法
Hessian-vector products (HVPs)
ヘッセ行列とベクトルの積を近似推定する数学的トリックを使う方法
Stochastic estimation (Agarwal et al., 2017)
SGDのようにランダムサンプリングしてCG法のiterationを回す
FastFI#
Influence Functionは計算が重い
データ点の評価は\(O(n)\)
モデルパラメータのinverse Hessianの計算コストが高い
上記の計算は並列可能であるが、先行研究のアルゴリズムでは直列
FastIfのアイデア
全データを探索するのではなく、fast nearest neighbor search(Johnson et al., 2017)で探索範囲を狭め、桁違いに計算量を抑える
Hessianの推定において、品質を保ちつつ時間を半分以下にするハイパーパラメータ集合を識別
シンプルに並列計算へ拡張し、さらに2倍高速化
実験においてほとんどのケースで全体で2桁程度の高速化が確認された
LeafInfluence#
Paper: [1802.06640] Finding Influential Training Samples for Gradient Boosted Decision Trees
実装は Brophy et al. (2023)のリポジトリjjbrophy47/tree_influence のほうがいいかも
Brophy et al. (2023)はDataShapelyなど色々な事例型説明の手法を適用・比較しており、GBDTにおける事例型説明についてまとまっている
Case-deletion importance sampling estimators#
[0807.0725] Case-deletion importance sampling estimators: Central limit theorems and related results
Bayesian Modelのためのinfluence function的なアプローチ。データセット\(D\)からサンプル\(i\)を除いたデータ\(D^{\backslash i}\)の事後分布を\(P(\theta \mid D^{\backslash i})\)とすると、サンプルを抜いたことの影響を分布の密度比\(\frac{ P(\theta \mid D^{\backslash i}) }{P(\theta \mid D)}\) で評価できる。そしてこの密度比はデータを抜いて再学習しなくても計算可能、らしい。まだちゃんと読んでない。