怎样评价我们的学习算法得到的假设以及如何防止过拟合和欠拟合的问题. 当我们确定学习算法的参数时,我们考虑的是选择参数来使训练误差最小化.有人认为,得到一个很小的训练误差一定是一件好事.但其实,仅仅是因为这个假设具有很小的训练误差,当将其样本量扩大时,会发现训练误差变大了,这说明它不是一个好的假设.比如下图,拟合的非常好,一旦样本量改变,其训练误差随之增大. 那么我们如何判断一个假设是否是过拟合的呢?我们可以画出假设函数h(x),然后观察.但对于更一般的情况,特征有很多个,比如下图.想要通过画出假…
当我们运行一个学习算法时,如果这个算法的表现不理想,那么有两种原因导致:要么偏差比较大.要么方差比较大.换句话说,要么是欠拟合.要么是过拟合.那么这两种情况,哪个和偏差有关.哪个和方差有关,或者是不是和两个都有关,搞清楚这点很重要.能判断出现的情况是这两种中的哪一种,是一个很有效的指示器,指引着可以改进算法的最有效的方法和途径. 下面深入地探讨一下有关偏差和方差的问题,并且能弄清楚怎样评价一个学习算法.能够判断一个算法是偏差还是方差有问题.因为这个问题对于弄清如何改进学习算法的效果非常重要. 如…
1.斯坦福大学公开课机器学习 (吴恩达 Andrew Ng) http://open.163.com/special/opencourse/machinelearning.html 笔记 http://cs229.stanford.edu/syllabus.html http://www.cnblogs.com/jerrylead/default.html?page=3 http://www.cnblogs.com/madrabbit/ https://blog.csdn.net/xiahouz…
上篇文章提到了误差分析以及设定误差度量值的重要性.那就是设定某个实数来评估学习算法并衡量它的表现.有了算法的评估和误差度量值,有一件重要的事情要注意,就是使用一个合适的误差度量值,有时会对学习算法造成非常微妙的影响.这类问题就是偏斜类(skewed classes)的问题.什么意思呢.以癌症分类为例,我们拥有内科病人的特征变量,并希望知道他们是否患有癌症,这就像恶性与良性肿瘤的分类问题.假设y=1表示患者患有癌症,假设y=0表示没有得癌症,然后训练逻辑回归模型.假设用测试集检验了这个分类模型,并…
怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也就是训练集.验证集和测试集.本节将会介绍这些内容的含义,以及如何使用它们进行模型选择.在前面的学习中,我们已经多次接触到过拟合现象.在过拟合的情况中学习算法在适用于训练集时表现非常完美,但这并不代表此时的假设也很完美(如下图). 更普遍地说,过拟合是训练集误差通常不能正确预测出该假设是否能很好地拟合…
误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机器学习的问题时,会花一天的时间试图很快的把结果搞出来.即便效果不好,运行得不完美,通过交叉验证来检验数据,一旦做完,就可以画出学习曲线.通过画出学习曲线以及检验误差来找出算法是否有高偏差和高方差的问题,或者别的问题.在这样分析之后,再来决定用更多的数据训练,或者加入更多的特征变量.这么做的原因是刚接…
当我们在进行机器学习时着重要考虑什么问题.以垃圾邮件分类为例子.假如你想建立一个垃圾邮件分类器,看这些垃圾邮件与非垃圾邮件的例子.左边这封邮件想向你推销东西.注意这封垃圾邮件有意的拼错一些单词,就像Med1cine中有一个1,m0rtgage里有个0.右边的邮件显然不是一个垃圾邮件. 假设我们已经有一些加过标签的训练集,比如标注垃圾邮件为y=1,和非垃圾邮件为y=0.那么如何用监督学习的方法来构造一个分类器,区分垃圾邮件和非垃圾邮件呢?为了应用监督学习,首先必须确定的是,如何用邮件的特征构造向量…
如上图所示,如果用逻辑回归来解决这个问题,首先需要构造一个包含很多非线性项的逻辑回归函数g(x).这里g仍是s型函数(即 ).我们能让函数包含很多像这的多项式,当多项式足够多时,那么你也许能够得到可以分开正样本和负样本的分界线,如图下粉红色分界线所示: 当只有两项时,比如x1.x2,这种方法能够得到不错的效果,因为你可以把x1和x2的所有组合都包含到多项式中,但是对于许多复杂的机器学习问题涉及的项往往多于两项,以房屋为例,影响房屋价格因素有房子大小.卧室数量.楼层.房龄等等.假设现在要处理的是关…
假如我们在开发一个机器学习系统,想试着改进一个机器学习系统的性能,我们应该如何决定接下来应该选择哪条道路? 为了解释这一问题,以预测房价的学习例子.假如我们已经得到学习参数以后,要将我们的假设函数放到一组新的房屋样本上进行测试,这个时候我们会发现在预测房价时,产生了巨大的误差,现在我们的问题是要想改进这个算法接下来应该怎么办? 实际上我们可以想出很多种方法来改进算法的性能,其中一种办法是使用更多的训练样本.具体来讲,通过电话调查.上门调查,获取更多的不同的房屋出售数据.遗憾的是,好多人花费了大量…
针对高偏差.高方差问题的解决方法: 1.解决高方差问题的方案:增大训练样本量.缩小特征量.增大lambda值 2.解决高偏差问题的方案:增大特征量.增加多项式特征(比如x1*x2,x1的平方等等).减少lambda值 隐藏层数的选择对于拟合效果的影响: 隐藏层数过少,神经网络简单,参数少,容易出现欠拟合: 隐藏层数过多,神经网络复杂,参数多,容易出现过拟合,同时计算量也庞大. 事实上,如果经常应用神经网络,特别是大型神经网络的话,会发现越大型的网络性能越好,如果发生了过拟合,可以使用正则化的方法…