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

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

PDF 物理页索引 291 · 第9章

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

特数据。

那么该如何处理过拟合呢?我们可以通过正则化来避免过拟合。正则化有很多不同的策略。其中一种策略是“早停法”,也就是在训练数据的效果实际收敛前停止训练。尽量抵达验证数据曲线的底端,这是一种常用策略,但实际操作起来可能有些困难。其他正则化策略包括尝试添加模型复杂度惩罚项。我们可以在模型训练期间添加模型复杂度惩罚项。

在这之前,我们的训练仅专注于一个重要方面,也就是获取正确的训练样本,最大程度地减少经验风险,即经验风险最小化:

$$
\mathrm { m i n i m i z e ( L o s s ( D a t a | M o d e l ) ) }
$$

现在引入第二项以对模型复杂度进行惩罚:

$$
\mathrm { m i n i m i z e ( L o s s ( D a t a | M o d e l ) + c o m p l e x i t y ( M o d e l ) ) }
$$

这称为结构风险最小化(structural risk minimization)。我们要平衡这两个关键因素(误差和复杂度),确保获取正确的训练数据,但又不过度信赖训练数据以免使模型过于复杂。那么,如何定义模型复杂度呢?我们可以采用多种方法。一种常见的策略是定义一个基于所有特征权重的函数。这个方法是尽量选择较小的权重,也就是使参数尽可能小,同时仍能获取正确的训练样本。换句话说,权重越高,复杂度越高。

我们使用L2正则化公式来量化模型的复杂度:

$$
L _ { 2 } \mathrm { \ r e g u l a r i z a t i o n \ t e r m } = | | \pmb { w } | | _ { 2 } ^ { 2 } = w _ { 1 } ^ { 2 } + w _ { 2 } ^ { 2 } + . . . + w _ { n } ^ { 2 }
$$

上面定义了一个正则项(regularizationterm),它是所有权重的平方和,用于衡量模型复杂度。在上面的公式中,如果权重非常小(比如趋近于0),那么对复杂度的影响很小。离群值(outlier)的权重一般对复杂度影响大。假定我们有以下权重的线性模型:

$$
\{ w _ { 1 } = 0 . 2 , w _ { 2 } = 0 . 5 , w _ { 3 } = 5 , w _ { 4 } = 1 , w _ { 5 } = 0 . 2 5 , w _ { 6 } = 0 . 7 5 \}
$$

那么:

$$
\begin{array} { r l } & { \omega _ { 1 } ^ { 2 } + \omega _ { 2 } ^ { 2 } + \omega _ { 3 } ^ { 2 } + \omega _ { 4 } ^ { 2 } + \omega _ { 5 } ^ { 2 } + \omega _ { 6 } ^ { 2 } } \\ & { = 0 . 2 ^ { 2 } + 0 . 5 ^ { 2 } + 5 ^ { 2 } + 1 ^ { 2 } + 0 . 2 5 ^ { 2 } + 0 . 7 5 ^ { 2 } } \\ & { = 0 . 0 4 + 0 . 2 5 + 2 5 + 1 + 0 . 0 6 2 5 + 0 . 5 6 2 5 } \\ & { = 2 6 . 9 1 5 } \end{array}
$$

所以,L2正则化项为26.915。在上面的贡献度上,我们发现 ${ \bf W } _ { 3 }$ 是25,基本上贡献了最多的复杂度。目前,我们在训练优化方面添加了两项:第一项是训练误差,取决于训练数据;第二项是模型复杂度。第二项与数据无关,只是要简化模型。在实际使用中,我们把这两项通过lambda实现了平衡,公式如下:

$$
\mathrm { m i n i m i z e ( L o s s ( D a t a \vert M o d e l ) } + \lambda \mathrm { c o m p l e x i t y ( M o d e l ) } )
$$

第9章 TensorFlow 高级知识

275