吴恩达机器学习Course1要点记录

Supervised Machine Learning_ Regression and Classification

1、有监督学习

给定数据集,每个样本都有对应的x→y的“正确”答案,也就是给定了一个具体的数据集(标签),相当于给定了一个映射关系,通过该映射关系可以预测未知数据内容,获得所需的“答案”。
其中,有监督学习分为两种,一种称为回归,另一种成为分类
①回归算法,从无数可能的数字中预测一个数字,例如预测房价,通过坐标轴来形象表示
②分类算法,只有有限个输出,例如0/1,代表乳腺癌为良性或恶性等,分类算法预测的类别,不一定是数字,例如预测一张图片是猫或者狗等,也可通过用多个输入来预测出结果,例如用病人的年龄、肿瘤大小等,可通过n维坐标系来形象表示
总结,有监督学习都是从正确答案中学习

2、无监督学习

不试图监督算法,相反,为了对每个输入给出一些引用正确的答案,弄清楚在无标签的数据中什么是有趣的(我们感兴趣的),或者说对于这个特定的数据集,这个数据中可能有什么模式或结构,而无监督学习算法可能会决定分配给两个或以上的不同的组或两个或以上的不同的集群。数据仅有输入x而没有输出标签y,并且算法必须在数据中找到某些模式或结构,
其中,无监督学习有多种,例如聚类、异常检测、降维等
①聚类算法,获取没有标签的数据并尝试自动将它们分组到不同的集群中,将相似的数据点组合在一起,例如Google news就是将相关的新闻组合在一起,在没有人监督的情况下自行计算出今天的新闻文章有哪些并汇聚到一起。
②异常检测算法,用于检测异常事件,例如用于金融系统的欺诈检测。
③降维算法,将一个大数据集神奇地压缩成一个小得多的数据集,同时丢失尽可能少的信息。

3、线性回归模型

是一种监督学习模型,线性回归是回归模型的一种,用于预测数字作为输出,例如房屋价格预测,还有其他模型可以解决回归问题,例如分类模型,预测图片是猫还是狗等。分类和回归之间的区别:在分类中,只有少量可能的输出,在回归中,模型可以输出无限多可能的数字。
观察数据的方法有:将数据可视化为图标形式、数据表形式等
机器学习术语
训练集:用于训练模型的数据集
输入变量x,也称特征向量
输出变量y,也称目标变量,记为(x,y),而(xi,yi)代表第i个训练示例
training->learning algorithm->f,这里f代表函数,也成为模型,将输入特征向量x输入,经过f模型的输出是预测y-hat(y帽)即为y的估计值,不加帽时指的是实际真实值
只有一个输入变量的线性模型也称为单变量线性回归模型

4、代价函数

采用预测y-hat并通过取y-hat减去y所得值与目标y进行比较,记为error误差e,e^2误差平方更常用,所有数据的误差平方之和(总平方误差)除以训练集数量m,得到平均平方误差,也可以再除以2(为了方便后续的计算且为线性变换,不会改变使得J取得最小时的w和b的值),不影响其效果,故成本函数的形式可表达为成本函数
也称为平方误差成本函数,在机器学习中不同人会针对不同应用程序使用不同的成本函数,至今为止平方误差成本函数仍然是线性回归中最常用的函数之一
又由于
在这里插入图片描述
故平均误差成本函数又可改写为:
在这里插入图片描述
最终我们要找到使成本函数变小的系数w和b的值,而J所做的就是衡量模型预测的值与y的实际真实值之间的差异。
①model:f=wx+b,②parameters:w,b,③cost fuction:J(w,b)即上图表达式,④goal:minnimizeJ(w,b),即要使得J最小,确定此时的参数w和b
要想确定w和b,有一种简化思想,将b假设为0,研究f(x)=wx,此时只有一个参数w,而成本函数J(w)是关于w的函数,各自有自己对应的坐标轴
可通过枚举w在一个范围的值来大致确定各图像的走向,例如w=1时,对每个训练数据的x都有唯一确定的y,计算出此时的J,以此类推得到J-w的大致图像
在这里插入图片描述
最终通过J-w所确定的图像或函数来取使得J(w)最小的w,这就是在线性回归中如何使用成本函数来找到使J最小化的w值,即minimizeJ(w)
有了该思想,再将参数b加入与w一同研究,通过可视化,可确定合适的w和b的值,使得成本函数J(w,b)最小,上述的方法即是将b暂时设置为0以简化可视化,可视化内容见下。

5、可视化代价函数

不同于上述的二维图像,将w和b一同研究将提升到三维图像,这里涉及到等高线图、等值线图等,例如可将三维曲面图可视化为等高线图。
在这里插入图片描述
现如今在线性回归模型中,不必通过枚举来尝试读取w和b的最佳值的等高线图,这不是一个很好的过程,对我们获得更加复杂的机器学习模型也将不起作用,而我们想要的是一种高效的算法,通过编写代码来自动找到参数w和b的值,以获取最好的拟合线,有一种算法可以做到这一点,称为梯度下降算法,它不仅用于训练线性回归,还用于训练所有AI中一些最大、最复杂的模型。

6、梯度下降算法

一种可用于尝试最小化任何函数的算法,包括适用于具有两个以上参数的模型的其他成本函数。从曲面的初始一个点开始(例如极大值点,山顶,此时w,b是你所确定的)找到一个梯度下降最快的方向并向前走一步,到达一个新的点,重复上述步骤,一直走到一个山谷(极小值点)为止,所走的路径就是一条梯度下降最快的路径,由于一个曲面可能有多个极小值点,故到达每个山谷都有一条梯度下降的路径。梯度下降算法在代码中的实现方式,实际上证明以正确的方式实现各参数(w,b)同步更新,且必须实现同步更新
在这里插入图片描述
重复执行上述操作,直到收敛为止,其中α为学习率,取值为0-1之间,它控制更新模型参数下降的幅度大小,例如α非常接近与1,那么对应于一个非常激进的梯度下降过程,表示正在尝试采取巨大的步法下坡,而其后的偏导代表下降的方向。
例如,这里同样将参数b设置为0,只考虑一个参数w,通过上述更新步骤,从一个初始点w不断更新得到新的w值,并使得J的值不断变小,直到到达极小值点为止,下面两幅图给了从不同方向逼近极小值点的例子:
在这里插入图片描述
在这里插入图片描述
当我们接近局部最小梯度下降时(极小值点),上述更新函数会自动采取更小的步长,因为接近极小值时,导数会自动变小。
梯度下降算法,你可以用它来尝试最小化任何成本函数J
线性回归中的梯度下降
在这里插入图片描述
在线性回归模型中,若是凸函数,则其J图像如下图所示,通过上式即可从某一点不断收敛到唯一的极小值点,若不是线性回归模型,图像是一个曲面时,则有多个极值点,不同于下图
在这里插入图片描述
下图是一个梯度下降过程,更准确地说,这个梯度下降过程被称为批量梯度下降,也就是用了上述的方法,其中左上图为模型数据图,右上图成本函数等高线图,底部图为相同成本函数的曲面图
在这里插入图片描述
批量梯度下降指的是在梯度下降的每一步中,我们都在查看所有的训练示例,而不仅仅时训练数据的一个子集,还有其他版本的梯度下降不会查看整个训练集,而是在每个更新步骤查看训练数据的较小子集
线性回归模型是我机器学习过程中,第一个机器学习模型

7、多元线性回归模型

多类特征也即考研学过的特征向量,只不过将之前提到的单变量x维度提升为n维向量,代表n个不同的因素,如下图所示
在这里插入图片描述

这种类型的线性回归具有多种改进特征的模型称为多元线性回归模型,而不是叫多元回归,这两者亦有区别
如果不采用向量化的形式来计算,而是采用每个相乘再相加的方式,将会非常的低效,采用for循环来实现上述求和效率也不高,向量化提供了这种手段,提高编程和处理效率,例如使用python中numpy的dot函数来实现向量点乘,它实际上用到了计算机里的并行硬件,减少了代码量,便于阅读且效率高
多元线性回归模型的梯度下降算法
在这里插入图片描述
在这里插入图片描述
上图展示了多元回归的梯度下降过程
有一种可替代梯度下降的方法,称为normal equation正规方程法,其只用于线性回归,值求解w和b而不迭代,缺点是不能推广到其他学习算法,如果维数n很大时其本身也比较慢,知道就行了

8、特征缩放

使得梯度下降工作得更好的技术,例如一种称为特性伸缩技术,这将使梯度下降运行得更快,适用于当问题有不同的参数,每个参数都具有非常不同的取值范围(例如0-1,200-2000)会导致梯度下降运行缓慢,散点图不令人满意和等高线图又高又瘦等情况,不便于分析与预测,但是通过重新缩放不同的参数,使得它们具有可比的取值范围可以显著加快梯度下降
在这里插入图片描述
如何实现特征缩放?例如300≤x1≤2000,
一种方法是将每个值除以其最大值。
另一种方法是平均归一化,通过将每个值减去已知的平均值μ,再除以范围最大最小值之差。
还有一种方法是Z分数归一化,这需要计算每个特征的标准差σ,也就是类似于概率论与数理统计中的随机变量标准化,将变量减去μ再除以σ,得到缩放后的范围
又如果梯度下降算法给你找到了全局最小值或接近它的东西,如何检查梯度下降是否真的有效?也就是如何识别梯度下降是否收敛,以及如何为梯度下降选择一个好的学习率α的问题
机器学习中有多种学习曲线,以下是一种学习曲线,横轴代表迭代次数,纵轴代表成本
在这里插入图片描述
学习曲线试图找出什么时候可以停止训练你的特定模型
另一种决定模型何时完成的方法采用自动收敛测试,给定一个ε,当成本函数在一次迭代过程中下降≤ε时,可以说此时收敛
学习率α的选取通常先取一个足够小的数,观察成本函数是否在每次迭代中减少,若相反,则可能出现bug了,这个过程也即指调试步骤,同意地,如果α设置地太小,梯度下降可能要进行非常多次的迭代才收敛。选取的过程就是不断尝试一系列的值,例如从0.0001一直增加不断尝试,知道发现一个太小的值,在确保找到一个太大的值,慢慢尝试选择最大可能的学习率或者只是比我发现的最大合理值稍微小一点的东西,这种方法通常可以得到一个很好的学习率,算是吴恩达的一个学习率的选择技巧,学习率α时训练许多学习算法的重要组成部分。
特征工程,对许多实际应用来说特征的选取是使算法良好运行的关键一步。创建一个新特征是特征过程的一个例子,例如某问题有明显特征x1和x2,通过结合实际你发现新特征x3=x1*x2也对该问题有着重要作用,加入有效地新特征后,为了让学习算法更容易做出准确预测,你可能会得到一个更好的模型。
多项式回归
运用上述多元线性回归特征工程的思想,衍生出一种多项式回归算法,可以拟合曲线而不仅限于直线,特征缩放的作用就显得越来越重要,确保合适的缩放
在这里插入图片描述

9、分类

分类即输出变量y只能接受少数几个可能的值中的一个,而不是无限范围内的任何数字,其中只有两种可能的输出时称为二元分类,结果记为no/false/0也称消极分类,yes/true/1也称积极分类,若使用线性回归模型来解决分类问题,例如判断肿瘤是恶性还是良性时,往往不能很好地拟合出好的直线,例如下图所示,进而衍生出logistic regression逻辑回归算法,用来解决二元分类问题
在这里插入图片描述
逻辑回归模型,一种广泛使用的分类算法,逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。
线性回归是在实数域范围内进行预测,而分类范围则需要在 [0,1],逻辑回归减少了预测范围;
线性回归在实数域上敏感度一致,而逻辑回归在 0 附近敏感,在远离 0 点位置不敏感,这个的好处就是模型更加关注分类边界,可以增加模型的鲁棒性。
逻辑回归模型,输入一个或一组特征,它输出一个介于0-1之间的数
在这里插入图片描述
而如何解释逻辑回归模型中的输出呢?若输出为0.7,可解释为y有70%是1也即恶性肿瘤,30%是0也即良性肿瘤,条件概率表示如下图所示
在这里插入图片描述
决策边界
通过设置一个阈值,在这阈值之上预测y为1,之下预测为0,使得z=0的线也叫决策边界
在这里插入图片描述
决策边界可能不是直线,可能更加复杂,如下图所示
在这里插入图片描述
将多项式特征转化为逻辑回归,逻辑回归可以学习拟合相当复杂的数据,同时将模型可视化便于理解与把握。接下来看看如何训练逻辑回归模型,将从回归的成本函数J开始,弄清楚如何将梯度下降应用于逻辑回归模型。

10、逻辑回归的代价函数

成本函数给你你一种方法来衡量参数的细节以符合训练数据,得到更好的参数,之前提到的平方误差成本函数J实际上并不符合逻辑回归模型,为了建立一个新的成本函数以用于逻辑回归模型,需要将参数w和b的成本函数定义稍微改变一下,引入术语loss损失,L(),具体如下图所示,为单个训练数据中的损失
在这里插入图片描述
注意J中的1/2是在求和号里面,为了后面的计算方便与表达,可通过为损失函数选择一种不同的形式就能保持总成本函数为凸函数(其实是高数中的凹函数,但人家这么定义就这样理解吧,图形一致就行),表达式如下所示,
在这里插入图片描述
从上图可以看出,当预测的值(纵坐标)接近1时,损失是最低的,说明在此时预测为恶性肿瘤的概率和可信度更大,我们在这张幻灯片上一直在研究当y=1时损失是多少,接下来看看y=0时的损失情况,如下图
在这里插入图片描述
故,给出适合于分类模型的新的成本函数J的定义(注意在该逻辑回归中哪个是损失函数,哪个是成本函数)
在这里插入图片描述
如何用稍微简单点的方法写出损失函数和成本函数?
在这里插入图片描述
简化结果如上图所示,称为逻辑回归的简化版的成本函数,其实就是将各表达式稍微化简并带入最终成本函数中,并确保是凸函数,化简为该表达式其中蕴含了最大似然估计的原理与方法,目前只需要知道上述化简即可。接下来将梯度下降应用于逻辑回归模型。
梯度下降实现
逻辑回归参数的拟合我们要试着找到参数w和b的值使得成本函数J的值最小,再次使用梯度下降来做到这一点,如下图所示
在这里插入图片描述
将偏导带入成本函数,得到如下图所示的表达式,在逻辑回归中与线性回归中有一些类似的概念,比如梯度下降何时收敛(学习曲线)、向量化的实现、特征缩放等
在这里插入图片描述

11、过拟合与正则化

过拟合overfit就是模型极度适合训练集,但将这个模型推广到未见过的新例子时结果又不那么好,即不能很好地推广到新例子,也即有很高的方差。机器学习的目标是找到一个模型,既不会不合身也不会矫枉过正,也即一个没有高偏差也没有高方差的模型
高偏差(低拟合)、恰合适、过拟合(高方差)的例子如下图所示
在这里插入图片描述
过拟合不仅适用于线性回归模型,同样也适用于分类,如下图所示
在这里插入图片描述
那么如何才能得到一个恰到好处的模型?(如何解决过拟合)
一种方法是收集更多的训练数据,如下图所示
在这里插入图片描述
另一种方法是特征选择,即选择要使用的最合适的特征集,缺点是可能把一些有用的特征排除在外,在接下来的课程中有一种算法可以实现自动选择要使用的最合适的特征集,如下图所示
在这里插入图片描述
还有一种方法是正则化regularization,正则化是一种更温和地减少一些特征的影响的方法,所做的是鼓励学习算法收缩参数值,例如不必要求参数直接设置为0而消除某一特征,通过正则化你最终得到了一条曲线,它最终很好地拟合了训练数据,保留你所有的特征,但它只是防止特征产生过大的影响
在这里插入图片描述
正规化代价函数(成本函数)
正则化试图将参数w1…wn变小,而对于参数b执不执行正则化都行,一般来说都不正则化参数b,减少过拟合,正规化的想法是如果参数有更小的值那就有点像有一个更简单的模型,也许是特征较少的,将参数wj变小的过程也可以说是惩罚它,惩罚所有的参数通常会导致图像更光滑、更简单、更少摆动的特征、更不容易过拟合。例如当你有100个参数,你并不容易找到哪些参数应该包含在内、哪些参数应该被排除,就可以用正则化来惩罚所有参数,并通过引入一个新的术语λ来缩小它们,在这里λ称为正则化参数

第一项求和的意思是鼓励算法很好地拟合训练数据,通过最小化 预测值和实际值的平方差,第二项的意思是在第一项的基础上还试图保持参数wj较小,这将倾向于减少λ的过拟合值。要选择出合适的λ使得在这两项的目标之间取得平衡,避免λ过小或过大,如下图所示
在这里插入图片描述
正则化线性回归
在引入正则化参数λ后,梯度下降算法的表达式有了些变化,推到过程如下图所示在这里插入图片描述
将偏导数带入梯度下降的迭代表达式中,得到正则化线性回归的梯度下降算法表达式,如下图所示
在这里插入图片描述
正则化的工作原理如下图所示,该图展示了为何通过正则化可以将wj在一次次迭代中不断减小wj的值,以防止过拟合问题
在这里插入图片描述

学到这里讲一讲自己对机器学习的浅薄理解,机器学习中的各种算法就是将这些通过推到得到的表达式通过代码形式让计算机来快速计算这一过程,就是所谓的机器学习算法或进一步生成模型
正则化逻辑回归
同样地,和正则化线性回归类似,也引入正则化参数λ,得到正则化逻辑回归的成本函数和正则化梯度下降表达式如下图所示
在这里插入图片描述

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值