机器学习公开课笔记第五周之优化机器学习算法

给未来的自己 给未来的自己     2022-08-27     591

关键词:

一,提高机器学习算法准确度的方法

当我们的机器学习算法不能准确预测我们测试数据时,我们可以尝试通过以下方法提高我们机器学习的算法准确度

1),获得更多的训练样例

2),减少特征数

3),增加特征数

4),增加多项式特征

5),增大或减小\(\lambda\)

 

 二,评估机器学习模型

如果只是单独的使用一个训练集,我们并不能很好的评估机该器学习的算法到底准不准确,因为有可能是过度拟合(Overfitting),我们可以通过把测试集分成两个数据集

取70%作为训练集,30%作为测试集

1),用训练集来学习,获得使\(J(\Theta)\)最小的\(\Theta\)

2),用测试集评估该该算法的准确度

 

评估算法准确度的方法

1),线性回归,\(J_{test}(\Theta) = \dfrac{1}{2m_{test}} \sum_{i=1}^{m_{test}}(h_\Theta(x^{(i)}_{test}) - y^{(i)}_{test})^2\)

2),逻辑回归,\(err(h_\Theta(x),y) = \begin{matrix} 1 & \mbox{if } h_\Theta(x) \geq 0.5\ and\ y = 0\ or\ h_\Theta(x) < 0.5\ and\ y = 1\newline 0 & \mbox otherwise \end{matrix}\)

   \(\text{Test Error} = \dfrac{1}{m_{test}} \sum^{m_{test}}_{i=1} err(h_\Theta(x^{(i)}_{test}), y^{(i)}_{test})\)

 

三,机器学习算法模型的选择

如果有多个机器学习算法模型可供选择,可以把数据集分成三部分,60%训练集,20%交叉验证即,20%测试集

1),用训练集来学习,获得各个模型使\(J(\Theta)\)最小的\(\Theta\)

2),选出使交叉验证集测试误差最小的模型

3),用测试集评估出第二步所选模型的泛化误差看是否符合我们的要求

 

四,偏差(Bias or Underfitting)和方差(Variance or Overfitting)

当我们的机器学习模型不能满足我们的要求时,我们改如何提高模型的准确性?虽然有很多方法,但总不能依次尝试,所有方法要么解决高方差要么解决高偏差,所以我们先判断我们的模型是高偏差还是高方差

在线性回归中,当我们提高假设函数方特征x的最高次方d时,偏差和方差是如下图所示变化,高偏差时\(J_{train}^{(\Theta)} \approx J_{CV}^{(\Theta)} \),高方差时\(J_{CV}^{(\Theta)}\) 远大于 \(J_{train}^{(\Theta)}  \)

 

五,正则化参数\(\lambda\)的选取

\(\lambda\)的取值对线性回归模型的影响如下图所示

 

 \(\lambda\)太大,偏差高,太小,方差高

选取合适的\(lambda\):

1),创建可供选择的\(lambda\)的数组 (i.e. λ∈{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24})

2),创建带有不同特征和多项式的次方(degree的大小)的模型集合

3),组合模型集合的模型和\(lambda\)数组的选值,求出\(\Theta\)集合

4),在不加正则化的情况下,选出使\(J_{CV}\)最小的的\(\Theta\)

5),找出第4步所对应的\(lambda\)和模型组合

6),求出\(J_{Test}\)是否符合自己需求

 

六,学习曲线(Learning Curve)

我们还可以通过学习曲线来判断算法模型是高偏差还是高方差

1) 高偏差

当训练数据较少时, \(J_{train}^{(\Theta)}  \) 非常小  \(J_{CV}^{(\Theta)}  \)非常大

当训练数据增多时, \(J_{train}^{(\Theta)}  \) 变大, \(J_{CV}^{(\Theta)}  \)变小, \(J_{train}^{(\Theta)} \approx J_{CV}^{(\Theta)} \)

所以当学习模型处于高偏差时,增加训练数据并没有用,如下图所示

2) 高方差

当训练数据较少时, \(J_{train}^{(\Theta)}  \) 非常小  \(J_{CV}^{(\Theta)}  \)非常大

当训练数据增多时,\(J_{train}^{(\Theta)}  \) 变大, \(J_{CV}^{(\Theta)}  \)变小,但是\(J_{train}^{(\Theta)} > J_{CV}^{(\Theta)}\),而且他们之间的差距相当明显

所以当学习模型处于高方差时,增加训练数据很有用,如下图所示

 

,根据高偏差还是高方差提高机器学习算法准确度的方法

当我们的机器学习算法不能准确预测我们测试数据时,我们可以尝试通过以下方法提高我们机器学习的算法准确度

1),获得更多的训练样例\(\Rightarrow\)修正高方差

2),减少特征数\(\Rightarrow\)修正高偏差

3),增加特征数\(\Rightarrow\)修正高方差

4),增加多项式特征\(\Rightarrow\)修正高方差

5),增大\(\lambda \Rightarrow\)修正高偏差

6),减小\(\lambda \Rightarrow\)修正高方差

 

八,神经网络的偏差

输入层参数太少会高偏差,计算复杂度低

输入层参数太多会高方差,但可以通过正则化解决,计算复杂度高

使用一层隐藏层是标配,但可以通过增加不同隐藏层数来计算\(J_{CV}^{(\Theta)}\)去交叉验证,然后选择最优方案

 

总结:

高偏差和高方差是机器学习模型的两端,优秀的机器学习算法模型总是能平衡方差和偏差

交叉验证来选取模型,测试数据评估算法优劣,学习曲线找出模型问题所在,根据问题是高偏差还是高方差选取解决方案

斯坦福吴恩达教授机器学习公开课第五讲笔记——判别分析/高斯判别分析/gpa+逻辑回归/laplace平滑/极大似然的原理

查看详情

coursera公开课笔记:斯坦福大学机器学习第七课“正则化”

Coursera公开课笔记:斯坦福大学机器学习第七课“正则化”NLPJob斯坦福大学机器学习第七课”正则化“学习笔记,本次课程主要包括4部分:1)TheProblemofOverfitting(过拟合问题)2)CostFunction(成本函数)3)RegularizedLinearRegression(线性回归的正... 查看详情

coursera机器学习公开课笔记15:anomaly-detection

NoteThispersonalnoteiswrittenafterstudyingtheopeningcourseonthecourserawebsite,MachineLearningbyAndrewNG.Andimages,audiosofthisnoteallcomesfromtheopeningcourse.01_density-estimationInthisnextsetofvide 查看详情

局部加权回归欠拟合过拟合-andrewng机器学习公开课笔记1.3

本文主要解说局部加权(线性)回归。在解说局部加权线性回归之前,先解说两个概念:欠拟合、过拟合。由此引出局部加权线性回归算法。 欠拟合、过拟合   例如以下图中三个拟合模型。第一个是一个线性模型。... 查看详情

斯坦福吴恩达教授机器学习公开课第二讲笔记——有/无监督学习+线性回归

查看详情

(笔记)斯坦福机器学习第五讲--生成学习算法

 本讲内容1.Generativelearningalgorithms(生成学习算法)2.GDA(高斯判别分析)3.NaiveBayes(朴素贝叶斯)4.LaplaceSmoothing(拉普拉斯平滑)  1.生成学习算法与判别学习算法判别学习算法:直接学习  或者学习一个假设&n... 查看详情

《可解释机器学习公开课》来了!

...源 联合发布:同济子豪兄、Datawhale文章目录1.什么是机器学习的可解释性分析。2.学可解释机器学习有什么用?3.可解释机器学习开源学习计划,同济子豪兄和Datawhale联合发布。什么是可解释AI现代的机器学习和人工... 查看详情

广义线性模型-andrewng机器学习公开课笔记1.6

     在分类问题中我们如果:      他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族。 指数分布族(TheExponentialFamily) 假设一个分布能够用例... 查看详情

线性回归梯度下降-andrewng机器学习公开课笔记1.1

实例   首先举个样例。如果我们有一个二手房交易记录的数据集。已知房屋面积、卧室数量和房屋的交易价格,例如以下表:       假如有一个房子要卖,我们希望通过上表中的数据估算这个... 查看详情

斯坦福吴恩达教授机器学习公开课第四讲笔记——牛顿方法/广义线性模型

查看详情

深度学习笔记

...ticsinmoid):将线性函数的输出压缩进区间(0,1)。逻辑回归机器学习算法与Python实践之(七)逻辑回归(LogisticRegression)Coursera公开课笔记:斯坦福大学机器学习第六课“逻辑回归(LogisticRegression)” 支持向量机(supportvectormachine... 查看详情

斯坦福大学公开课机器学习:adviceforapplyingmachinelearning-decidingwhattotrynext(设计机器学习系统时,怎样确定最适合最正确的

假如我们在开发一个机器学习系统,想试着改进一个机器学习系统的性能,我们应该如何决定接下来应该选择哪条道路?为了解释这一问题,以预测房价的学习例子。假如我们已经得到学习参数以后,要将我们的假设函数放到一... 查看详情

斯坦福大学公开课机器学习:machinelearningsystemdesign|dataformachinelearning(数据量很大时,学习算法表现比较好的原理)

下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近。即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好。 数据量很大时,学习算法表现比较好的原理... 查看详情

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达andrewng)(代码片段)

文章目录1线性代数(linearalgebra)1-1符号(Notation)1-2例子——房价预测1-3假设函数(hypothesis)1-3-3用`线性代数-非齐次方程`解释参数**1-普通梯度下降算法****2-批梯度下降算法(batchgradientdescentalgo... 查看详情

斯坦福吴恩达教授机器学习公开课第三讲笔记——局部加权回归/线性回归的概率解释/分类和逻辑回归

查看详情

学习打卡02可解释机器学习笔记之zfnet

可解释机器学习笔记之ZFNet文章目录可解释机器学习笔记之ZFNetZFNet介绍ZFNet结构特征可视化可视化结构特征不变性特征演化遮挡性分析其他内容总结和思考首先非常感谢同济子豪兄拍摄的可解释机器学习公开课,并且免费分... 查看详情

斯坦福大学公开课机器学习:machinelearningsystemdesign|tradingoffprecisionandrecall(fscore公式的提出:学习算法中如何平

一般来说,召回率和查准率的关系如下:1、如果需要很高的置信度的话,查准率会很高,相应的召回率很低;2、如果需要避免假阴性的话,召回率会很高,查准率会很低。下图右边显示的是召回率和查准率在一个学习算法中的... 查看详情

学习打卡04可解释机器学习笔记之grad-cam

可解释机器学习笔记之Grad-CAM文章目录可解释机器学习笔记之Grad-CAMGrad-CAM介绍Grad-CAM是CAM的泛化形式Gard-CAM可视化结果Grad-CAM算法的优点Grad-CAM算法的缺点Grad-CAM变种Grad-CAM++Score-CAMLayer-CAM思考与总结参考阅读首先非常感谢同... 查看详情