奎克的藏经阁 · 原书印刷页

人工智能与大数据技术导论 · 第 202 页

PDF 物理页索引 218 · 第7章

书名
人工智能与大数据技术导论
作者
未记录
印刷页
202
PDF 物理页
218(从 0 开始)
章节
第7章
UUID
cd4f7678-cd9b-4971-bde0-e9ad46a6cc71
来源类型
original_book
页面 SHA-256
cba603e1b4715ba580c8663419687dfb7114e24c241a9b0e3b13a6ac9a7f1b9d

结果在第一批样本进来后,图7-11中标记的神经元被关闭,在这次传播过程中,神经网络实际上变成了图7-12的样子,一个被压缩的神经网络。

这个缩小的网络适用且仅适用于这一批样本,包括正向传播与反向传播。在这次反向传播后,只有这个小网络对应的权重参数被修正。在下一批样本进来后,将所有开关打开,然后重新执行随机关闭的过程,以此类推。因此,在每次迭代中,我们在使用一个随机的、缩小的网络在训练,每次训练模型都不一样。

在实际编程操作中,每一层的“开关”是通过引入一个布尔向量d[1]实现的(维度与该层输出值a[1]相同,每个维度为0或1,表示关闭或打开),让d[1]与a[1]相乘,被关闭的神经元的输出值变为0,而未关闭的神经元保留原来a[1]的数值,然后将得到的值作为新的、被修正的a[1],并当作输入变量传递给下一层。

值得注意的是,在正向传播中,每一层神经元在计算后通常要进行数值修正。第1层的激活函数计算得到的数值a[1]要除以预设值概率p,这里的p是指开关为开启的概率(如此定义便于运算)。比如p=0.7,就意味着每个神经元被关闭的概率是30%,开启的概率是70%。这样做是为了保持a[1]的后续运算单元的期望值不变。因为在Dropout之后,神经元减少,传递给下一层的被修正的a[1]的所有维度中,只有期望为 $\mathfrak { p } ^ { * } \mathfrak { n }$ [1]的维度为非空值。为了让z[1+1]从数值上期望不变,会在a[1]进行dropout修正之后,再进行一个数值修正a[1]=a[1]/p,这样z[1+1]的数值就不会因为Dropout而“萎缩”了。这通常被称为反向失活(inverteddropout)。

Dropout只用在训练过程中,一旦参数被训练好后,在测试集计算中不使用Dropout,也就是说要开启所有神经元。另外要注意的是,要记住Dropout是一种正则化方法,只有当模型确实出现过拟合时才使用,否则无须使用。

人工智能与大数据技术导论

202