我在这里输入链接描述时遇到了以下引用
如果我们让 MCMC 像现在对于深度网络的随机梯度下降一样可靠,那可能意味着更明确的贝叶斯/概率模型和分层图形模型的复兴,其中 RBM 只是一个例子。
MCMC真的不如SGD可靠吗?
我在这里输入链接描述时遇到了以下引用
如果我们让 MCMC 像现在对于深度网络的随机梯度下降一样可靠,那可能意味着更明确的贝叶斯/概率模型和分层图形模型的复兴,其中 RBM 只是一个例子。
MCMC真的不如SGD可靠吗?
在实践中,这两种方法的可靠性将取决于具体情况。但是,这里有几点需要考虑:
MCMC 必须以代表分布的方式对空间进行采样。这可能需要大量的点,尤其是在高维度上。相比之下,SGD 不关心目标函数的整体结构;它只需要找到最小值,并尝试通过在每个点下坡来做到这一点。从某种意义上说,这是一个更简单的问题。
但是,当目标函数有多个局部最小值时,SGD 很容易卡住——一旦我们进入一个局部最小值周围的盆地,就可能无法逃脱。因此,对于存在多个局部最小值但我们需要全局最小值的问题,SGD 不是一种可行的策略。在深度学习的背景下,目标函数是高度非凸的并且包含许多局部最小值。但是,可取之处在于这些局部最小值中的许多可以对应于具有良好泛化性能的网络。我们不需要全局最小值,事实上,我们甚至可能不需要它(因为它的泛化性能可能比许多局部最小值更差)。SGD 也可能被鞍点困住(或者至少需要指数时间才能摆脱它们)。这些在深度网络的成本函数中非常普遍。
MCMC 不会陷入同样的困境,因为它不寻求极值,而是旨在从整个分布中采样或整合。但是,如果分布包含广泛分离的模式,则 MCMC 可能会被困住,因为过渡到分离模式的低密度区域的概率很小。有多种方法可以处理这种情况。
与 SGD 相比,MCMC 可能需要更多调整才能解决特定问题。首先,可以选择使用哪种 MCMC 算法,这取决于问题。然后,可以选择特定于算法的参数,这些参数也可能高度依赖于问题。最后,还有老化、丢弃相关样本和迭代次数(与之前的选择相比可能没什么大不了的)。SGD 是一种单一算法,往往在许多情况下都有效(即使其他优化方法可能更有效)。只有几个参数,设置起来很简单。其中最主要的是学习率,可以使用交叉验证来设置。批量大小通常可以先验地选择,并且许多选择都有效。