📐

非線型の関係性抽出

2022/09/17に公開

MICやHSICを忘れたのでまとめ直しておく.
当たり前だがいずれもそれなりのサンプルサイズがないとワークしなさそう.


MICとは?

Maximal information coefficient
データx, yを離散化するgridを作成し, 最も大きいx, yの相互情報量を理論的な最大値で割り込んだもの
2変数間の関係性を評価する際に以下を狙っている:
1. 関係性のタイプが異なっても関係性に入るノイズの状態の程度が同じであれば類似のスコアを返したい
2. シンプルな状況では相関係数などの他の関係性と同じスコアを返したい
MICの値域は[0,1]なので扱いやすい.
MICを中心に著者らはmaximal information-based nonparametric exploration (MINE)という統計量の族を提唱している.

■ 使い方

インストール

pip install minepy

サンプル

from minepy import MINE
mine = MINE()
x = {何らかのアレイ}
y = {xと同じlenのアレイ}
mine.compute_score(x, y)
res = mine.mic()

■ 数式周り

MIC

MIC = \frac{I^*}{\log \min \lbrace x,y \rbrace} \\ ,where \ I^* = \sum_{g} p(x,y) \log \frac{p(x,y)}{p(x)p(y)}

■ 工夫

x-y gridの探索範囲

x-y gridの探索範囲をサンプルサイズに基づいて限定している.

xy < B(n)

, where B(n) = n^{0.6}
gridを細かくし過ぎると各点が意味を持ち始めるし荒くし過ぎるとシンプルなパターンしか拾えなくなるため.
0.6はハイパラ, 原著では経験的にこれくらいとしている.
xyrow \times col = grid sizeのことだと思われる.

gridの理論的最大値

x-y gridの理論的最大値は\log \min \lbrace x,y \rbraceの模様.
T. Cover and J. Thomas, Elements of Information Theory. New York: Wiley, 2006.が出典.

■ 原著論文


HSICとは?

Hilbert-Schmidt Independence Criteria, 2変数間の依存関係を評価する手法の一つ.
再生核ヒルベルト空間にデータを飛ばし, そこでcorss-covariance operatorのノルム(HS norm)をとった値を用い, permutation testで独立性を評価する.
HSICの定義とempirical estimatorを与えたことがGretton et al. (2005)の功績か.

■ 使い方

著者らのリポジトリを見るのが早い.
検定なので統計量と指定した有意水準の閾値を返す.

インストール

git clone https://github.com/amber0309/HSIC.git

サンプル

from HSIC.HSIC import hsic_gam
x = {(dim,1)のアレイ}
y = {(dim,1)のアレイ}
res, thresh = hsic_gam(x, y, alph = 0.05)

■ 数式周り

Hilbert-Schmidt norm

\mathcal C \colon \mathcal F \to \mathcal Gを線形作用素として,

\|C\|^2 := \sum_{i,j} \braket{C v_i,u_j}_{\mathcal F}^2 \\

, where u_i and v_j are orthonormal bases of \mathcal F and \mathcal G respectively

cross-covariance operator

C_{xy} := \mathbb{E}_{x,y}[(\phi (x) - \mu_x)\otimes(\psi (y) - \mu_y)] \\ = \mathbb{E}_{x,y}[\phi (x) \otimes \psi (y)] - \mu_x \otimes \mu_y

HSIC

HSIC(p_{xy},\mathcal F,\mathcal G) := \|C_{xy}\|_{\mathcal HS}^2

HSICのempirical estimator

Z := \lbrace (x_1,y_1),\cdots,(x_m,y_m) \rbrace \subseteq \mathcal X \times \mathcal Yp_{xy}から得られるサンプルとして,

HSIC(\mathcal Z, \mathcal F, \mathcal G) := (m - 1)^{-2} \operatorname{tr}KHLH

, where H,K,L \in \mathbb R^{m \times m}, K_{ij} := k(x_i,x_j), L_{ij} := l(y_i,y_j), and H_{ij} := \delta_{ij} - m^{-1}

■ 原著論文


HSICの損失関数としての活用

Greenfeld et al. (2019)ではHSICを損失関数として定義し, 広く機械学習タスクに使用可能なものとして整備した.
modelの予測と残差とが独立になるように学習する, この独立性の際にHSICを用いている.
著者らのリポジトリでpytorchで使えるコードも提供している.

■ Mooji et al. (2009)の功績は?

HSICを使い, ノイズの分布に仮定を置かずとも可能な回帰モデルを提唱したこと.
regressor (説明変数)とresiduals (残差)のdependence minimizationによる回帰と, その測定にHSICを導入した点.
ただしMoojiらの前にHoyer et al. (2009)がガウス過程回帰に際し, HSICを用いたdependence minimizationのアイデアを導入している.
Hoyerとの違いは, ガウスに限らないでしょって点で, 一般化にあたると考えてよいか.
ノイズの分布がわからないとき, ノイズの分布に関してnon-parametricなこの手法の意義は大きいと考える.

■ 原著論文

Discussion