稀疏数据分析:马蹄估计量及其理论性质
这是对The horseshoe estimator for sparse signal这篇论文的回顾,这篇论文在Modern Bayesian statistics与Bayesian Machine Learning领域比较重要,它提出了一种新的先验结构——horseshoe prior,基于这种先验得到的均值的后验估计在shrinkage上具有类似LASSO的性质,也就是保留数据中稀疏的信号、让噪声缩减为0。
基本框架
假设观察值是 y i y_i yi,它服从正态分布
y i ∼ i i d N ( θ i , σ 2 ) y_i \sim_{iid} N(\theta_i,\sigma^2) yi∼iidN(θi,σ2)
我们引入下面的分为三层的先验:
θ i ∣ λ i ∼ N ( 0 , λ i 2 ) λ i ∣ τ ∼ C + ( 0 , τ ) τ ∣ σ ∼ C + ( 0 , σ ) \theta_i|\lambda_i \sim N(0,\lambda_i^2) \\ \lambda_i|\tau \sim C^+(0,\tau) \\ \tau|\sigma \sim C^+(0,\sigma) θi∣λi∼N(0,λi2)λi∣τ∼C+(0,τ)τ∣σ∼C+(0,σ)
其中 C + ( 0 , a ) C^+(0,a) C+(0,a)是尺度参数为 a a a的half-Cauchy分布。假设 σ \sigma σ的先验是Jeffrey先验,即密度函数与 1 / σ 1/\sigma 1/σ成正比。
half-Cauchy分布
如果 X ∼ C + ( 0 , a ) , a > 0 X \sim C^+(0,a),a>0 X∼C+(0,a),a>0,则称 X X X服从尺度参数为 a a a的half-Cauchy分布,它的密度函数是
f ( x ) = 2 a π ( x 2 + a 2 ) f(x)=\frac{2a}{\pi(x^2+a^2)} f(x)=π(x2+a2)2a
我们先验证一下归一性:
∫ 0 ∞ f ( x ) d x = ∫ 0 ∞ 2 a π ( x 2 + a 2 ) d x = 2 π arctan ( x / a ) ∣ 0 ∞ = 1 \int_0^{\infty}f(x)dx = \int_0^{\infty}\frac{2a}{\pi(x^2+a^2)}dx = \frac{2}{\pi}\arctan(x/a)|_0^{\infty}=1 ∫0∞f(x)dx=∫0∞π(x2+a2)2adx=π2arctan(x/a)∣0∞=1
当然这个分布的期望也是不存在的
∫ 0 + ∞ x f ( x ) d x = ∫ 0 ∞ 2 a x π ( x 2 + a 2 ) d x = a π ln ( x 2 + a 2 ) ∣ 0 + ∞ = + ∞ \int_0^{+\infty}xf(x)dx = \int_0^{\infty} \frac{2ax}{\pi(x^2+a^2)}dx=\frac{a}{\pi}\ln (x^2+a^2)|_0^{+\infty}=+\infty ∫0+∞xf(x)dx=∫0∞π(x2+a2)2axdx=πaln(x2+a2)∣0+∞=+∞
为什么它叫马蹄估计量
考虑 λ i \lambda_i λi的边缘先验分布,
p ( λ i , τ , σ ) ∝ τ π ( λ i 2 + τ 2 ) σ π ( τ 2 + σ 2 ) 1 σ ∝ τ ( λ i 2 + τ 2 ) ( τ 2 + σ 2 ) p ( λ i ) ∝ ∫ 0 ∞ ∫ 0 ∞ τ ( λ i 2 + τ 2 ) ( τ 2 + σ 2 ) d σ d τ p(\lambda_i,\tau,\sigma) \propto \frac{\tau}{\pi(\lambda_i^2+\tau^2)}\frac{\sigma}{\pi(\tau^2+\sigma^2)}\frac{1}{\sigma}\propto \frac{\tau}{(\lambda_i^2+\tau^2)(\tau^2+\sigma^2)} \\ p(\lambda_i) \propto \int_0^{\infty}\int_0^{\infty}\frac{\tau}{(\lambda_i^2+\tau^2)(\tau^2+\sigma^2)}d\sigma d\tau p(λi,τ,σ)∝π(λi2+τ2)τπ(τ2+σ2)σσ1∝(λi2+τ2)(τ2+σ2)τp(λi)∝∫0∞∫0∞(λi2+τ2)(τ2+σ2)τdσdτ
定义 κ i = 1 / ( 1 + λ i 2 ) \kappa_i=1/(1+\lambda_i^2) κi=1/(1+λi2),这个量在Bayesian shrinkage中非常重要,我们在下一个小标题介绍它的意义,但我们可以先分析它的先验分布。现在我们只想做一点定性分析,了解一下 κ i \kappa_i κi的先验的形状,所以简单起见假设 σ = τ = 1 \sigma=\tau=1 σ=τ=1,于是
p ( λ i ) = 2 π ( λ i 2 + 1 ) , λ i > 0 p ( k i ) = p ( λ i ( κ i ) ) ∣ λ i ′ ∣ = 1 π x − 1 / 2 ( 1 − x ) − 1 / 2 , x ∈ ( 0 , 1 ) p(\lambda_i)=\frac{2}{\pi(\lambda_i^2+1)},\lambda_i>0 \\ p(k_i)=p(\lambda_i(\kappa_i))|\lambda_i'|=\frac{1}{\pi}x^{-1/2}(1-x)^{-1/2},x \in (0,1) p(λi)=π(λi2+1)2,λi>0p(ki)=p(λi(κi))∣λi′∣=π1x−1/2(1−x)−1/2,x∈(0,1)
因此 k i ∼ B e t a ( 1 / 2 , 1 / 2 ) k_i \sim Beta(1/2,1/2) ki∼Beta(1/2,1/2),懒得自己画图我就扒了百度百科的图,看 α = β = 0.5 \alpha=\beta=0.5 α=β=0.5(粉红色)那条,那就是我们 κ i \kappa_i κi的先验分布,是不是非常像一个马蹄铁的形状,所以这种先验结构被称为马蹄先验,基于这种先验的贝叶斯方法被称为马蹄估计。
后验均值、shrinkage与 κ \kappa κ
现在来填一个小坑, κ \kappa κ为什么重要?我们可以做一点简单的推导来理解 κ \kappa κ的含义,考虑非常简单的情况,固定 τ = σ = 1 \tau=\sigma=1 τ=σ=1,先验可以被简化为两层 θ ∣ λ ∼ N ( 0 , λ 2 ) λ ∼ C + ( 0 , 1 ) \theta|\lambda \sim N(0,\lambda^2) \\ \lambda \sim C^+(0,1) θ∣λ∼N(0,λ2)λ∼C+(0,1)
定义 κ = 1 / ( 1 + λ 2 ) \kappa=1/(1+\lambda^2) κ=1/(1+λ2),则 λ 2 = 1 − κ κ \lambda^2=\frac{1-\kappa}{\kappa} λ2=κ1−κ
p ( k ) = p ( λ ( κ ) ) ∣ λ ′ ∣ = 1 π κ − 1 / 2 ( 1 − κ ) − 1 / 2 , κ ∈ ( 0 , 1 ) p ( θ ∣ κ ) = 1 2 π λ 2 e − θ 2 2 λ 2 = κ 2 π ( 1 − κ ) e − κ θ 2 2 ( 1 − κ ) p(k)=p(\lambda(\kappa))|\lambda'|=\frac{1}{\pi}\kappa^{-1/2}(1-\kappa)^{-1/2},\kappa \in (0,1) \\ p(\theta|\kappa) = \frac{1}{\s