训练带隐变量的模型时,梯度估计往往噪声很大,方差高得让人头疼。Towards Data Science 上这篇讲重参数化技巧的文章,给了一个很直接的思路:把随机性挪到计算图外面去。
噪声从哪来
打开网易新闻 查看精彩图片
问题出在采样这一步。当模型需要从一个分布里采样,而采样本身又夹在计算图中间,梯度回传时就会带上这份随机性带来的抖动。估计出来的梯度方向忽左忽右,方差自然压不下来。
打开网易新闻 查看精彩图片
重参数化的做法是换个写法:把随机源单独拎出来,作为一个不参与求导的外部输入,再通过一个确定性的变换把它映射回原来的分布。这样一来,随机性还在,但它不再挡在梯度的路径上。
为什么这样更聪明
打开网易新闻 查看精彩图片
随机性一旦被移出计算图,剩下的变换就是可导的。梯度估计从"带噪采样"变成了"对确定性函数求导",方差随之下降,训练也更稳。
文章把这套思路概括为用更聪明的梯度做方差缩减——不是靠多采样几次硬扛噪声,而是从结构上把噪声的来源挪开。
热门跟贴