本系列文档按课程视频的章节(P+第几集)进行分类,记录了学习时的一些知识点,方便自己复习。
图5 给出了选择神经网络层数的一些规律,通常中间层的层数要大于等于输入层的特征变量数量。
** 图7 续接了图6 ,给出了训练神经网络的操作步骤:**
图8 说明了训练算法时的一些思想误区,不是样本数量越多就越好,更多还是要考虑方法的优异性。
当算法的泛化性很差时,训练出的算法只能够在训练数据中取得好的效果,而不能在其他的数据集中适用。
通过图12 的思想,不断增加代价函数的项数和最高次数,来测试出哪一次数下的函数效果最好。
为了更好的测试,我们将数据一分为三,第一部分为训练集(Training set),第二部分为验证集(Cross validation),第三部分为测试集 (Test set)。
**图15 展示了这样在选择模型的时候,可以先使用测试集得到每个模型的 θ θ \thetaθ θθ,然后使用验证集评估得到误差最小的模型,最后使用测试集评估他的泛化能力。
**当多项式次数增大时,训练集的误差慢慢减小,因为多项式次数越高,图像拟合的就越准确。但是验证集不同,它的趋势是先减少后增大,这分别对应着欠拟合和过拟合。
**
图17 表示我们可以根据误差的不同表现来区分偏差和方差。
当训练误差(Bias)和验证方差(Variance)都很大时,表示高偏差,即表示欠拟合;
当训练误差(Bias)很小,验证方差(Variance)很大时,表示高方差,即表示过拟合。
通过画出图像可以很好的帮助我们判断训练测试的效果。
通过引入 l a m d a lamda lamda来平衡多形式的权重。
当lambdaλ太大,参数 θ \theta θ≈0,模型近似水平直线,即表示欠拟合。当lambda太小,就会出现过拟合。
图19 中表示通过将 λ \lambda λ从0.01到10,以每次为上次的2倍的梯度步进,一点点试出最合适的 λ \lambda λ值。
图20 中通过画出图像可以很好的帮助我们判断训练测试的效果。
当训练误差(Bias)和验证方差(Variance)都很大时,表示高偏差,即表示欠拟合。;
当训练误差(Bias)很小,验证方差(Variance)很大时,表示高方差,即表示过拟合。
图21 形象的表现为函数过分追求与训练数据去贴合,关注了太多指标,导致泛化(generalize)性比较差。
如图22 介绍了应对函数过拟合问题的一些办法。
图23 介绍了“罚因子”,对于目标函数最小化问题,当某些指标对代价函数值的影响很小时,如图23 中的 θ 3 , θ 4 \theta_3, \theta_4 θ3,θ4,我们可对其乘以一个很大的数,如此处了1000,作为代价函数的“罚因子”,当 θ 3 , θ 4 \theta_3, \theta_4 θ3,θ4过大时,函数值将很难取得最小值,由此保证了在迭代过程中,保持 θ 3 , θ 4 \theta_3, \theta_4 θ3,θ4的值很小。
除了“罚因子”之外,用正规化(regularization)求解时也可以对代价函数加上 λ . . . . \lambda.... λ....这一坨。
续接上图
但是 λ . . . . \lambda.... λ....的取值也不是乱取的,若 λ . . . . \lambda.... λ....取得太大了,则相当于与 θ 1 . . . θ n \theta_1...\theta_n θ1...θn全都被干掉了,不起作用了,此时只剩下 θ 1 \theta_1 θ1, 于是 h θ ( x ) = θ 1 , 代 价 函 数 就 变 成 一 条 直 线 了 , 这 样 也 不 行 。 h_{\theta}(x)=\theta_1,代价函数就变成一条直线了,这样也不行。 hθ(x)=θ1,代价函数就变成一条直线了,这样也不行。
如图27表示,在梯度下降中,求偏导那一步最后加上 λ m \frac{\lambda}{m} mλ θ j \theta_j θj, 就相当于在原来的基础上每次开头先将 θ j \theta_j θj减去 α \alpha α θ j \theta_j θj(一个很小的数。
加上 λ m \frac{\lambda}{m} mλ θ j \theta_j θj, 之后,用矩阵形式求解时的求解公式就变成了如图28所示。
与线性回归的正则化类似,只是代价函数变成log函数形式了。
梯度下降法的求解也是与线性回归一样的,只是将 h θ ( x ) h_{\theta}(x) hθ(x)函数换了,如图30 右下角所示。
多元函数的梯度下降法的偏导环节如下所示。
未完待续…