机器学习斯坦福课后作业笔记_第1页
机器学习斯坦福课后作业笔记_第2页
机器学习斯坦福课后作业笔记_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业三题目解析:本作业主要有两个知识点:使用逻辑回归来实现多分类问题(one-vs-all)以及神经网络应用,应用场景是机器学习识别手写数字0到9。多分类逻辑回归问题对于N分类问题(N>=3),就需要N个假设函数(预测模型),也即需要N组模型参数θ〔θ一般是一个向量〕然后,对于每个样本实例,依次使用每个模型预测输出,选取输出值最大的那组模型所对应的预测结果作为最终结果。主要应用三个函数:predictOneVsAll.m,oneVsAll.m,lrCostFunction.m其中,oneVsAll中用优化函数fmincg来找到最优参数,结果是参数矩阵k*n+1,其中k是多分类的类别数,n那么是特征数,此处包含了k个模型,每个模型有各自的参数,在预测函数中,[c,i]=max(sigmoid(X*all_theta'),[],2),把k个模型中结果最大的那个类别选中。c是每一行中最大的数,是一个列向量,i是每一行最大的那个数字的列位置此处的主要是要求用向量规那么计算损失函数和损失函数的倒数公式,不再利用循环。损失函数〔未应用正那么化〕如下:F:\mechinelearning\ex3梯度函数如下在应用了正那么化之后的函数如下,需要注意的是此时偏置参数不可计算在内,需要减去θ梯度函数同理,θ0Matlab的max用法知识点加一:[a,b]=max(A,[],2)函数中,a是每一行中最大的数,是一个列向量,b是每一行最大的那个数字的列位置神经网络的计算模型应用的具体语句,主要问题在于函数维数的准确把握,每一层都需要对输入进行一次添加偏置项,X是这样,a_super_2也是这样!作业四题目解析:首先用题目提供的参数在前向传播算法下实现多分类问题,其次需要用后向传播算法〔BP神经网络〕学习最优参数。前向传播算法的计算主要完成的函数包括损失函数的编写。其中,需要注意的是Θ(1)(Theta1)是一个25*401矩阵,行的数目为25,由隐藏层的单元个数决定(不包括biasunit),列的数目由输入特征数目决定(加上biasunit之后变成401)。同理,参数矩阵Θ(2)(Theta2)是一个10*26矩阵,行的数目由输出结果数目决定〔0-9共10种数字〕,列的数目由隐藏层数目决定〔25个隐藏层的unit,再加上一个biasunit〕。神经网络结构图如下:对应编程局部如下,神经网络层与层之间的关系要理清:损失函数的计算公式如下:其中需要注意的是,YK是一个重新构造的矩阵〔m*k〕,只包括0和1.正那么化局部可以参见作业三的思路,此处不详叙。BP神经网络算法〔后向传播算法〕BP算法是用来计算神经网络的代价函数的梯度。当我们的输入特征非常的多(上百万...),参数矩阵Θ非常大时,就需要大量地进行计算了,Ng在课程中也专门提到,当实际训练神经网络时,要记得关闭"GradientChecking",BP算法,那么解决了这个计算量过大的问题。从输出层开始,往输入层方向以“某种形式”的计算,得到一组我们所需要的梯度。偏导数可以由当前层神经元向量a(l)与下一层的误差向量δ(l+1)相乘得到,所以,当前层的误差向量δ(l)可以由下一层的误差向量δ(l+1)与权重矩阵Θ的乘积得到,也就是可以从后往前逐层计算误差向量〔这就是后向传播的来源〕,然后通过简单的乘法运算得到代价函数对每一层权重矩阵的偏导数。此处理论可参见神经网络学习笔记首先修改sigmoidGradient.m函数,Sigmoid函数的导数有一个特点,即Sigmoid的导数可以用Sigmoid函数自己本身来表示。其次,修改randInitializeWeights.m函数,PDF直接复制过来的代码非常容易出错,手打比拟好,第一步:计算出各层的输入输出,a1,z2,a2,z3,a3,其中,z2是输入a1乘以隐藏层的参数矩阵,得到第二层的输入,a2=sigmoid(z2),假设函数为sigmoid,每一层的节点数可以类似于第二层的输入的特征数量,比方,第一层的输入是400特征,加上一个偏置项,成为401项,那么第二层的参数矩阵为25*401,相乘后得到m*25,相当于是m个拥有25个特征的样本。此处应该注意的是a1=[1;a1],此处是在for循环之下,fori=1:m;第二步:计算输出层的误差项,公式如下,yk可以直接用上面的,进行转置,配合维数:第三步:隐藏层的残差计算公式,注意,此处的参数θ不包括偏置项第四步:在不同的层内,叠加相应的梯度〔循环到每个样本〕注意这是不包含误差项在内的。,所以残差项要从第二个开始。第五步:把累计的误差均分成m份。得到神经网络的损失函数和下降梯度之后,再用优化函数fmincg找到最正确的参数。作业五题目解析:水坝放水量与水位变化之间关系,水位变化的历史记录为x,放水量为y。交叉验证数据Xval,yval。理论内容是关于偏差、方差以及学习曲线为代表的诊断法,为改善机器学习算法的决策提供依据;此处分为两个局部。第一局部:拟合直线回归只有两个参数,主要完成损失函数和下降梯度计算函数,最后用优化函数求出最正确参数,但是从拟合结果看不理想。此处不用λ,因为仅有两个参数,不存在过拟合的可能。第二局部:偏差与方法的平衡一般而言高偏差意味着欠拟合,高方差意味着过拟合,Error=Bias+Variance。Error反映的是整个模型的准确度,Bias反映的是模型期望与真实目标的差距,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。利用学习曲线评价模型,推进模型的构建。通过不断加大训练数据,在不同的数据量时得到的参数模型,计算该参数模型的训练误差和交叉验证误差,观察其随着数据量增大是否有变化,从结果来看,在参数数量很少情况下,模型误差随着数据量的增大并无明显改善。多项式回归首先要把特征向量x拓展,polyFeatures.m需要将线性回归进行扩展,引入高次项,具体做法是将原本是向量的X扩展成行数不变,列数为多项式最高次的矩阵,此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论