作者:杜甜甜Athena15 | 来源:互联网 | 2024-10-24 12:45
在本文中,我们将深入探讨斯坦福大学机器学习课程第二部分的核心内容与学习体会。文章不仅涵盖了正则化(Regularization)等关键概念,还结合实际案例分析了这些理论在实践中的应用,帮助读者更好地理解和掌握机器学习的高级技巧。此外,我们还将分享一些学习过程中遇到的挑战及解决方案,为后续学习者提供参考。
本系列其他部分:
斯坦福机器学习教程学习笔记之1
斯坦福机器学习教程学习笔记之2
斯坦福机器学习教程学习笔记之3
斯坦福机器学习教程学习笔记之4
第七章 正则化(Regularization)
1.过拟合的问题
正则化(regularization)的技术,它可以改善或者减少过度拟合问题。
过拟合解决办法:(1)减少特征数量,人工选择或使用一些模型选择算法,例如PCA;(2)正则化,保留所有特征,但是减少参数的大小(magnitude)
2.代价函数
假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设:
其中λ又称为正则化参数(Regularization Parameter)。 注:根据惯例,我们不对θ0 进行惩罚。经过正则化处理的模型与原模型的可能对比如下图所示:
如果选择的正则化参数λ过大,则会把所有的参数都最小化了,导致模型变成 hθ(x)=θ0,也就是上图中红色直线所示的情况,造成欠拟合。
3.正则化线性回归(RegularizedLinear Regression)
正则化线性回归的代价函数为:
梯度下降算法:
可以看出,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令θ值减少了一个额外的值。
正规方程:
4.正则化逻辑回归(RegularizedLogistic Regression)
注意:
1.虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,但由于两者的h(x)不同所以还是有很大差别。
2.θ0不参与其中的任何一个正则化。
第八章 神经网络:表述(Neural Networks: Representation)
1.非线性假设(Non-linearHypotheses)
2.神经元和大脑(Neurons andthe Brain)
3.模型表示1 (ModelRepresentation I)
每一个a都是由上一层所有的x和每一个x所对应的决定的。(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))。
4.模型表示2(ModelRepresentation II)
我们可以把a0,a1,a2,a3看成更为高级的特征值,也就是x0,x1,x2,x3的进化体,并且它们是由x与决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将x次方厉害,也能更好的预测新数据。
5.举例和直观理解1(Examples andIntuitions I)
6.举例和直观理解2(Examples andIntuitions II)
7.多类分类(MulticlassClassification)
第九章 神经网络的学习
1.代价函数
假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络层数,Sl表示每层的neuron个数(SL表示输出层神经元个数),SL 代表最后一层中处理单元的个数。
将神经网络的分类定义为两种情况:二类分类和多类分类,
二类分类:SL=1, y=0 or 1表示哪一类;
K类分类:SL=K,yi = 1表示分到第i类;(K>2)
代价函数为:
2.反向传播算法(BackpropagationAlgorithm)
重要的是清楚地知道上面式子中上下标的含义:
l 代表目前所计算的是第几层
j 代表目前计算层中的激活单元的下标,也将是下一层的第j个输入变量的下标。
i 代表下一层中误差单元的下标,是受到权重矩阵中第i行影响的下一层中的误差单元的下标。
3.反向传播算法的直观理解
4.展开参数
5.梯度检验(GradientChecking)
6.随机初始化(RandomInitialization)
到目前为止我们都是初始所有参数为0,这样的
初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有的初始参数都为0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我们初始所有的参数都为一个非0的数,结果也是一样的。我们通常初始参数为正负ε之间的随机值。
7.综合起来
小结一下使用神经网络时的步骤:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。第一层的单元数即我们训练集的特征数量。最后一层的单元数是我们训练集的结果的类的数量。如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络:
1. 参数的随机初始化
2. 利用正向传播方法计算所有的hθ(x)
3. 编写计算代价函数J的代码
4. 利用反向传播方法计算所有偏导数
5. 利用数值检验方法检验这些偏导数
6. 使用优化算法来最小化代价函数