机器学习Tricks之Hutchinson's Trick

写在前面

翻译自:machine-learning-trick-of-the-day-3-hutchinsons-trick
阅读FFJORD时遇到该方法

Hutchinson's estimator是求矩阵迹随机估计的一种简单方法。这是一个简单的技巧,它使用随机化将计算迹的代数问题转化为计算二次函数期望的统计问题。这个技巧中使用的随机化技术只是现代机器学习的核心随机化线性代数方法的一种,因为这些方法为我们提供了通用的、大规模的建模和预测所需的工具。这篇文章探讨了Hutchinson's Trick和更广泛的随机算法的研究领域。


image.png

Stochastic Trace Estimators 随机迹估计算法

我们对用随机算法计算矩阵迹的通用方法感兴趣。Hutchinson的方法和其他相关的方法都使用一个简单的恒等式:

z是一个典型的高斯分布或Rademacher分布的随机变量。我们通过蒙特卡罗方法求解期望值,从其分布中提取z,计算二次项,并求平均值,得到一个随机算法。这揭示了迹和期望算子之间有趣的双向性。
考虑一个均值为m,方差为∑的多元随机变量z。利用二次型期望的性质,期望。此外,对于零均值,单位方差随机变量,这意味着,这将使我们的随机算法。我们现在可以自己很容易地导出这类迹估计:

如果从Rademacher分布中抽样z,其项为-1或1,概率为0.5,则此估计量称为Hutchinson‘s estimator。但我们也可以使用高斯分布或其他分布-我们的主要要求是能够很容易地从我们选择的分布中采样。

【译者注】
Rademacher分布:

  • 概率密度函数:


    en.Wikipedia-pmf
  • 写成迪利克雷函数形式


    en.Wikipedia-Dirac delta function

估计方差

我们已经得到了一个无偏估计的迹,通常的下一个问题是,我们可以怎样描述它的方差(低方差将有更高的置信度去使用)。我们可以拿这方差与最常用的随机变量做对比:Rademacher和Gaussian。
为了得到Rademacher分布的方差,我们需要利用它的许多性质。特别是,它的均值和单位方差为零。它也是一个对称分布,这意味着它的所有奇数阶中心矩都是零。它的二阶中心矩(方差)μ2=1,它的超峰度值(kurtosis)为-2,这意味着它的四阶中心矩μ4=1。所有这些对于我们使用一般二次型方差的表达式是必需的,使。

\mathbb{V}[\mathbf{z}^\top\mathbf{A}\mathbf{z}] = 2\mu_2^2 Tr(\mathbf{A}\mathbf{A}^\top) + 4 \mu_2\mathbf{m}^\top\mathbf{A} \mathbf{m} + 4 \mu_3\mathbf{m}^\top\mathbf{A}\mathbf{a} + (\mu_4 - 3 \mu_2^2)\mathbf{a}^\top\mathbf{a}

第二第三项为0因为均值为零,上式可简化为:

对于高斯分布 z,方差更容易得到():

使用Rademacher分布(Hutchinson's estimator)的方差比高斯分布的方差要小,这也是人们通常首选该分布的原因之一。我们还可以计算Monte Carlo estimator 所需样本数的一个界,以获得概率δ不超过ϵ的误差。

Rademacher:
Gaussian:

现在情况不同了,高斯函数需要更少的样本。但是这些界限并不严格,许多实践者发现高斯和Rademacher两case之间几乎没有区别。

Randomised Algorithms 随机算法

Hutchinson's estimator 显示了一种方式,在这方法里随机化和蒙特卡洛可以用来降低常见线性代数运算的计算复杂度,由于迹的普遍存在,Hutchinson estimator 被广泛应用。其中迹出现在:

  • 计算两个高斯分布之间的KL散度时
  • 当我们计算对数行列式、范数和许多有特定结构矩阵的导数时,例如在高斯过程模型的边缘似然梯度中
  • 在计算随机变量多项式的期望值和高阶矩时

作为一个具体的例子,当优化高斯过程中的边际似然时,必须解决的一个常见问题是计算 。由于求逆和矩阵乘法,直接计算具有立方阶的时间复杂度。我们可以通过使用Hutchinson's estimator来减少这种复杂性:

Tr(\mathbf{K}^{-1} \partial \mathbf{K}) =Tr(\mathbf{K}^{-1} \partial \mathbf{K}\mathbf{I})=Tr(\mathbf{K}^{-1} \partial \mathbf{K}\mathbb{E}[\mathbf{z}\mathbf{z}^\top])=\mathbb{E}[Tr(\mathbf{K}^{-1} \partial \mathbf{K}\mathbf{z}\mathbf{z}^\top)]=\mathbb{E}[\mathbf{z}^\top\mathbf{K}^{-1} \partial \mathbf{K} \mathbf{z}]

计算初始迹问题的无偏估计量现在只需要用线性方程组来计算,这比直接法的计算成本低。最近的一篇文章将此用于scalable probabilistic inference:
Enabling scalable stochastic gradient-based inference for Gaussian processes by employing the Unbiased LInear System SolvEr (ULISSE).
还有一些应用到的论文就不列出来了。

Summary

Hutchinson's estimator允许我们计算矩阵迹的随机无偏估计。它形成了矩阵代数各种随机算法的一个实例,我们可以使用这些算法来扩展我们的机器学习系统。大量的现代机器学习需要这样的工具来处理我们现在经常面对的数据量,使得这些随机算法成为我们最受欢迎的技巧之一。大量的现代机器学习需要这样的工具来处理我们现在经常面对的数据量,使得这些随机算法成为我们最受欢迎的技巧之一。

你可能感兴趣的:(机器学习Tricks之Hutchinson's Trick)