机器学习入门学习记录

机器学习学习记录


文章目录


前言

开始入门计算机视觉,决定先从吴恩达的机器学习系列开始,然后再看李飞飞的计算机视觉公开课,链接在下方:
机器学习:https://www.bilibili.com/video/BV164411b7dx/
计算机视觉:https://www.bilibili.com/video/BV1nJ411z7fe/?p=3

第一章 机器学习概述

第一节 什么是机器学习

定义:
Arthur Samuel认为:在没有明确设置的情况下使计算机具有学习能力的研究领域。(该定义有点不正式,且较为陈旧)

Tom Mithchell认为:计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高。

第二节 监督学习

定义:监督学习是指,我们给算法一个数据集,其中包含了正确答案,在这个数据集中的每个样本,我们都给出正确的结果,算法的目的就是给出更多的正确答案。

回归问题:目的是根据输入预测一个连续值输出。

分类问题:目的是根据输入预测离散值的输出。

第三节 无监督学习

定义:给定的数据集事先不包括正确答案(即不分析数据时无法辨别数据的差异),算法通过分析数据将数据集中的各个样本进行分类。

应用:聚类(对数据集的样本分类)与鸡尾酒会问题(多个人同时说话时,将这些人的声音分开)

第二章 线性回归算法(监督学习)

第一节 误差平方代价函数

对大多数问题,特别是回归问题, 误差平方代价函数都是一个合理的选择,因此其在这类问题中其常被用作代价函数。
线性回归的代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。

示例:
在这里插图片描述
现在已有一个样本训练集,将其坐标写成二维坐标系的点,图中x表示房子面积,y表示出售价格,现在的目的就是求出一条直线,使得直线尽可能与这些数据点很好的拟合。
因为我们知道训练集中每个样本x所对应的y,因此我们要求出一对θ0 和θ1,使得假设的输出和房子真实价格差的平方和最小,即让图片右边的式子最小的θ0 和θ1
这个示例中的代价函数就是求θ0 和θ1的这个函数,即J(θ0,θ1),目的就是求出使J(θ0,θ1)最小的(θ0,θ1)。

第二节 简化的误差平方代价函数

依旧以一个例子来介绍此节内容,如下图:
在这里插入图片描述
已知数据集中的3个样本的x和y分别是(1,1),(2,2),(3,3),本例中,我们假设θ0的值为0,即这条直线始终经过源点(0,0),左边的图像是θ1取不同的值时,直线的样子。
右边的图像是代价函数的图像,即θ1取不同的值时,其误差平方和对应的值。
显然,当θ1=1时,函数J(θ1)的值最小,因此θ1=1是最适合的。

第三节 常规的误差平方代价函数

上一节中,我们固定了θ0的值为0,即直线始终是过源点(0,0)的直线。这一节中,我们将回归常规的代价函数,即θ0和θ1均为自变量,求使二元函数J(θ0,θ1)最小时的(θ0,θ1)。
复习一下之前的内容,如下图:
在这里插入图片描述假设函数hθ(x):根据输入预测输出所使用的的函数,此处依旧假设成线性函数。
参数:θ0,θ1表示直线的截距与斜率。
代价函数J(θ01):θ0和θ1取不同值时,求得的误差平方和。
目标:求J(θ0,θ1)最小时所对应的的θ0,θ1

由于此时多了一个参数θ0,因此图像是一个二元函数的图像,在三维空间中表现的是一个碗状曲面,如下图:
在这里插入图片描述
为了比较直观的展现图像,这里采用等高线图来展示代价函数的图像,如下图:

在这里插入图片描述
图中每一个椭圆表示在这个椭圆上的所有点所对应的代价函数值相同,图中越靠近中心的椭圆(即面积越小的椭圆)所对应的的代价函数值越小,因此最小值即为最中间的一个点。
我们的目的就是想要实现一个高效的算法,来自动寻找代价函数J最小值所对应的θ0和θ1

第四节 batch梯度下降法

问题概述:我们有一个函数J(θ0,θ1), 现在想要求函数J的最小值所对应的的θ0和θ1
基本思路:开始时给定θ0,θ1一个初始值,通常情况下是将两个都设置为0,然后不停地一点点改变θ0和θ1,使得J(θ0,θ1)不断变小直到我们找到J的最小值或者局部最小值(极小值)为止。
一个形象的比喻就是从山上的某一点出发,寻找一个最合适的路线下山。

数学原理
在这里插入图片描述
函数描述:式子中的α被称为学习速率,它控制我们以多大的幅度更新这个参数θj;与α相乘的数是一个导数项

主要步骤:循环执行上述步骤,直到收敛。

需要注意的是:
在更新θ0和θ1时,要的是同步更新,即两个的新值均由旧值带入上述式子得出。具体参考上图左下角和右下角。
另外,当逐渐接近一个极小点时,梯度下降会自动采取更小的幅度,因为导数的绝对值在不断变小而α始终不变,因此改变量就逐渐减小。

第五节 线性回归的梯度下降法

此节中,我们将前面几节介绍过的线性回归与梯度下降进行结合,即将梯度下降中的导数项是对线性回归中的代价函数求偏导,具体结合方式如下图:
在这里插入图片描述
对θ0和θ1求偏导后的式子如下:
在这里插入图片描述
所以,最后求θ0和θ1的过程如下:
在这里插入图片描述
不断重复上述两个式子的计算直至收敛(再次提醒:θ0和θ1要同时更新!!!)。

但是,此梯度下降算法有一个缺陷,就是容易陷入局部最优,因为极小值处的导数值也为0(最小值是特殊的极小值),所以此算法跟初值的选择的相关性很大,不同的初值往往会算出不同的结果。

第三章 线性代数知识点回顾

第一节 矩阵和向量

R4×2表示的是一个4×2的矩阵,即4行2列的矩阵。

表示矩阵中的某个特定元素通常用Aij表示,叫做矩阵A第i行第j列的元素。

向量:只有一列的矩阵(n×1的矩阵)。例如:在这里插入图片描述
通常使用yi来引用向量y(从上往下)的第i个元素

注意事项:一般使用大写字母来表示矩阵(例如矩阵A),用小写字母来表示向量(例如向量y)

第二节 矩阵加法和标量乘法

矩阵加法:两个矩阵对应的项相互相加后组合而成的新的矩阵。如:在这里插入图片描述注意两个相加的矩阵必须是相同纬度的矩阵,例如都是3×2纬度的矩阵。

标量乘法:用一个标量(常数)与一个矩阵相乘,得到一个新矩阵,新矩阵的每个元素是原矩阵的每个元素与该标量相乘后的结果。例如:在这里插入图片描述
在这里插入图片描述

注意:标量乘法符合交换律。

第三节 矩阵乘法

定义:两矩阵A和B相乘时,A×B必须要求满足Am×n,Bn×k,即A×B得满足矩阵A的列数和矩阵B的行数相同。矩阵相乘最后得到的结果仍是一个矩阵,如上所述,A×B的结果就是一个m×k维的矩阵。

注意:矩阵的乘法往往不满足交换律,即A×B≠B×A通常是成立的,例如:在这里插入图片描述
但矩阵乘法满足结合律,即A×B×C=A×(B×C)=(A×B)×C

单位矩阵:主对角线全是1,其余元素均为0的n×n的方阵,例如:在这里插入图片描述
单位矩阵满足:A×I=I×A=A

第四节 矩阵的逆和转置

矩阵的逆:一个矩阵A的逆,记作A-1,满足:
A×A-1=A-1×A=I。

注意:一个矩阵有逆矩阵的前提是该矩阵必须是方阵

矩阵的转置:将一个矩阵的行列互换,即原矩阵的第i行变为新矩阵的第i列。一个m×n的矩阵转置后将得到一个n×m的矩阵,如:在这里插入图片描述
我们将矩阵A的转置记作AT

第四章 多元线性回归

第一节 多变量线性回归假设函数形式

依旧拿前面章节中的房价预测的例子,现在我们预测放假的依据已不再仅仅是房屋面积,还多了其他的指标:房间个数、楼层数、房屋的年龄,这三项连同房屋面积一起影响着最后的房屋售价,部分例子如下:在这里插入图片描述
图中n表示特征数量,即特征的个数。此例中n即为4。注意和前面的m区分开,m指的是样本的数量

x(i)表示第i个训练样本的输入特征值,是一个n维向量。此例中x(2)就表示[1416,3,2,40]。

x(i)j表示第i个训练样本中第j个特征量的值。此例中x(2)3就表示2,即第2个训练样本的第3个特征量的值。

因为现在的特征值不再只有一种,因此现在的假设函数也要做一些改变,具体的变化如下图:在这里插入图片描述
为了方便将这一式子写成矩阵乘法的形式,我们对样本额外多设置一个特征值x0,那么每个样本对应的特征向量即变为一个n+1维的特征向量,相应地,参数θ也是一个n+1维的向量,这样最后整个式子就可以写成一个n+1为的行向量θ和一个n+1维的列向量x(i)相乘的形式。

第二节 多元梯度下降法

前面我们介绍了假设函数的形式,这一节我们将继续深入,来介绍多元代价函数与多元梯度下降函数的形式。
由于现在特征值不再只有一个,所以现在的代价函数和梯度下降韩束也变成了多元函数:形式如下:
代价函数 在这里插入图片描述
在上一节中,我们把所有参数θj看做一个整体,组合成一个n+1维的向量θ,因此代价函数J(θ01,…,θn)就可以看做是关于向量θ的函数,即J(θ)。

梯度下降算法具体的操作和之前所介绍的方法一致,也是同时更新向量θ中的每一个参数,只是导数项变成了每次对要更新的θj求偏导,具体步骤如下:
在这里插入图片描述

第三节 特征缩放

定义:假如有一个机器学习问题,这个问题有多个特征,如果你能确保这些特征的取值能在一个相近的范围内,这样能使梯度下降算法可以更快的收敛。现在我们以两个特征的问题为例来说明。

在这里插入图片描述
现在有一个房屋售价的问题,影响房屋售价的因素有两样:房屋面积和房间个数,其中房屋面积在0~2000㎡之间,二房间个数在1 ~ 5个之间,那么此问题的代价函数J(θ)的等值线可能如下:
在这里插入图片描述
图像会呈现一种非常歪斜并且椭圆的形状,因为此例中两特征的比例是2000:5的比值,因此该比值会让这个椭圆更加瘦长。那么此时在这种代价函数上运行梯度下降的话,很可能就要经过非常多的次数才能收敛,大致过程如下:
在这里插入图片描述
为了尽可能减少迭代的次数,我们就可以对这两个特征进行特征缩放,具体做法是:将每个样本的房屋面积大小除以2000,房间个数除以5。这样最后代价函数的等值线便宜就会变得没那么严重,视觉上看起来更接近一个圆,此时算法找出全局最小值所需要的迭代次数便大大减少了,图像大致如下:
在这里插入图片描述
特征缩放的标准:通常将每个特征的取值缩放到-1~+1的范围内。注意这个范围不是完全固定,即不需要完全缩放到该范围内,能缩放至该范围的附近同样也可以,例如缩放到0 ~3这个范围,或者-2 ~0.5这个范围。
我们只用将太偏离-1 ~+1范围的特征值进行缩放,例如-100 ~100,-0.0001 ~0.0001等。

特征缩放方法:除了将每个特征值除以其最大取值外,有时我们也会采取一个称为均值归一化的工作,具体是将样本对应的特征值减去该特征的平均值后在除以取值范围,如下:
在这里插入图片描述
图中分母s1可以是特征值的取值范围大小,也可以是这个特征值的标准差

此例中,x1和x2的计算就如下所示:在这里插入图片描述

第四节 学习率α

回顾:前面的章节中,我们介绍了梯度下降的具体步骤是:在这里插入图片描述
式子中的α即为学习率,它决定着梯度下降的尺度。
如果α选择太小,那么要达到收敛所需要的迭代次数会非常多,因为下降的每一步都特别的小。
如果α选择过大,那么J(θ)可能不会再每次迭代均下降,甚至可能不会收敛。
因此,选择一个适当的α,可以有效地减少算法达到收敛时的迭代次数。

第五节 特征和多项式回归

此节以一个例子来介绍:假设现在有两个特征,分别是房子的长和宽,以前面介绍的方法来设计线性回归估计函数就如下所示:在这里插入图片描述
然而,经过分析,我们可以知道,实际上真正会影响房屋售价的因素实际上是房屋的占地面积,也就是长和宽的乘积。因此,我们决定定义一个新的特征,称之为面积x,其值是房屋长和宽的乘积。

与上述选择特征的想法密切相关的一个概念被称为多项式回归,即是使用多项式函数图像来拟合数据集的分布,例如
在这里插入图片描述
观察此数据集分布,我们认为可以用一个三次函数来拟合或使用平方根函数来拟合(不使用二次函数是因为当房屋面积大于一个上限时,售价反而会逐渐减少,这不符合常理)。函数原型可设置成如下形式:在这里插入图片描述
在这里插入图片描述
要注意:使用多项式函数时,要记得将特征压缩,假设本例中房屋面积取值是1~1000,那么平方项的取值就是1 ~1000000,立方项就更大了。

第六节 正规方程

前面的章节中,我们一直在使用的是线性回归的算法是梯度下降法,这种算法通过迭代若干次以求得代价函数J(θ)的最小值。

然而,本节中,我们介绍一个新的解析解法,它可以直接一次性求解θ的最优值,所以说基本上只需要一步就可以就可以得到最优值。

我们依旧以一个例子来解释正规方程求解最优θ的过程,如图:在这里插入图片描述
现在我们有四个样本,每个样本都有4个实际特征(总特征有5个,因为x0固定为1,所以不算实际特征),那么所有样本就能构成一个矩阵X,X每一行就是每个样本对应的行向量;y就组成一个列向量,每个值表示样本所对应的售价。
那么,通过图片最下方红色框内的式子即可求出最优的θ向量。
注意:使用该方法时最好让样本总数m多于特征的数量n,否则XTX不可逆,此时可以用它的伪逆矩阵将其代替。

关于梯度下降和正规方程的对比

梯度下降正规方程
优势:即使在特征变量很多的情况下,例如上百万的特征变量,梯度下降也能运行的非常好。优势:不需要选择学习率α;不需要迭代。
劣势:需要实现选定学习率α,算法执行效率与α相关性高;通常需要较多次迭代才能得出结果劣势:需要计算(XTX)-1,因此当X维度n非常大时,这个矩阵的计算会非常困难(通常当n远大于10000时就不适合采用)

第五章 预测值为离散值情况下的分类问题

本章我们开始具体讨论分类问题及解决分类问题的各个算法。

第一节 二分类问题

我们先从最简单的分类问题开始讲起,即二分类问题。二分类问题即仅有两类的分类问题,分类的结果非此即彼,例如肿瘤是良性还是恶性,某一封邮件是否是垃圾邮件等。

在这里插入图片描述
我们通常将0分为负类,即较为贬义的异类(恶性肿瘤、垃圾邮件等);将1分为正类(良性肿瘤、正常邮件等)。

现在以肿瘤分类为例,如图:
在这里插入图片描述
现在有8个样本,4个良性肿瘤样本和4个恶性肿瘤样本(先忽略最右边的样本)。我们用线性回归算法来应用到这个数据集中,用直线对数据进行拟合,得到的假设函数图像是图中的粉色直线。这里我们将分类器的输出阈值设置为0.5,即假设函数输出大于等于0.5时,我们将其分类为恶性肿瘤;而小于0.5的输出,我们将其归类为良性肿瘤。可见,线性回归还是能比较好的进行分类。
现在,我们考虑最右边的样本,运用线性回归得到的直线假设是图中的蓝色直线。显然,0.5就不能再做为分类的阈值,阈值应该改成图中蓝色竖线所对应的的值。因此,我们可以看出,将线性回归用于分类为题通常不能很好地解决问题,因为当有新的样本加入时,假设函数通常会有明显的变化
此外,线性回归不适合的另一个原因是它的输出有可能会大于1或者小于0;然而,我们期望的输出是一个在0~1之间的实数。

第二节 logistic回归(逻辑回归)

前面我们介绍线性回归时,我们是将假设函数设置成了两个向量积的形式,即:在这里插入图片描述
由于上一节指出了线性回归不适合用于分类,因此我们决定采用logistic回归的方法,此方法是在原来的基础上做修改,即:
在这里插入图片描述
其中,函数g的定义如下:在这里插入图片描述
其函数图像大致如:在这里插入图片描述
由图可知,当z足够小时g(z)接近于0;而当z足够大时,g(z)则接近于1。

所以,logistic回归所采用的回归方程就是在这里插入图片描述
我们要做的工作和前面讲述的一致,即用参数θ来尽可能拟合我们的数据,让其能更精确的预测结果。

第三节 决策边界

上一节介绍了logistic回归所采用的假设函数的表达式,即sigmoid函数,该函数形式如:在这里插入图片描述
实际上,假设函数的输出是在给定了x和参数θ时,y=1的估计概率,即hθ(x)=P(y=1|x;θ)。所以,关于预测y=1还是y=0,我们可以这么假设:如果hθ(x)>=0.5,那么就预测y=1,;否则就预测y=0;

观察sigmoid函数,可以发现,只要z>=0,那么g(z)>=0.5。所以,只要θTx>=0,就有假设函数输出值>=0.5,那么此时就可以预测y=1。

因此,我们可以得出这么一个结论:θTx=0是一个分界点,当其大于0时,就预测y=1;小于0时,就预测y=0。因此,我们把θTx=0称作决策边界在这里插入图片描述
上图中的粉红直线即可作为决策边界。

注意:决策边界是假设函数的一种属性,它只由参数θ所决定,而不是数据集的属性。数据集仅用于帮助我们找出θ的取值,一旦决定了θ的取值后,数据集存在与否不会影响到边界

第四节 logistic回归的代价函数

这一节,要开始介绍如何拟合logistic回归模型的参数θ,具体的步骤是定义用来拟合参数的代价函数。

在前面的章节中介绍的代价函数是误差平方代价函数,它非常适用于线性回归的问题;但是,如果将其用于logistic回归中时,它会变成参数θ的非凸函数,即函数存在着许多局部最小值(极小值),其函数图像可能如:在这里插入图片描述
为了让代价函数可以是θ的凸函数,在此采用了另一种形式的代价函数:在这里插入图片描述
在这里插入图片描述
可以看出,如果预测完全正确,那么该函数计算出来的代价值即为0,是最小的代价;相反,如果预测完全错误,那么计算出的代价值则会非常大,甚至区域无穷,也就是说,错误预测会导致用非常大的代价来惩罚这个学习算法。

第五节 简化代价函数与梯度下降

上一节中介绍了logistic回归所使用的代价函数,它在y=0和y=1时有着不同的表达式,这样子有一个弊端,就是当在使用梯度下降时,每次迭代都要事先考虑y的取值,然后再决定所采用的表达式。因此为了简化步骤,可以将代价函数直接合并成一个等式,即:在这里插入图片描述
可以看出,将y=0和y=1分别代入上式,得到的结果和原来代价函数所表示的结果完全一致。这样就不用再区分y=0和y=1的情况。

那么,logistic回归的代价函数真正的形式就是:在这里插入图片描述
注意式子中将cost函数中的负号提了出来放在了最外面

logistic回归所使用的梯度下降算法的过程与前面线性回归的是一致的,均是:在这里插入图片描述
将代价函数J(θ)代入并求偏导,可得到梯度下降的等式是:在这里插入图片描述
可以看出,形式上,它和线性回归中的函数形式完全一致。但需要注意的是:假设函数hθ(x(i))在logistic回归和线性回归中完全不同,因此logistic梯度下降和线性回归梯度下降是完全不同的。

第六节 高级优化

在梯度下降算法中,每一次迭代前我们都要计算出代价函数J(θ)及其对应的偏导数的值,然后再将其代入梯度下降中进行迭代,以此来求出代价函数J(θ)的最小值。
然而,我们还可以尝试使用其他的一些方法来求代价函数J(θ)的最小值,这些方法往往会比梯度下降更加有效尤其是在机器学习的规模非常大时,并且不需要手动选定学习率α,算法会自动选择合适的α进行计算;但它们的处理过程会比梯度下降要复杂。例如:
在这里插入图片描述

第七节 “一对多”分类算法

前面一直介绍的是二分类问题,这一节介绍一下当有多个类别时,如何将样本进行分类。
假设现在有三类样本,如图所示:在这里插入图片描述
在将其进行分类时,我们假设y=1是三角形,y=2是矩形,y=3是叉。那么,我们在对其进行分类时可以把其看做是将一个二分类问题进行三次的过程。例如:在这里插入图片描述
将三角形归为一类,然后将剩下的归为另一类,接着利用logistic回归来求出对应的假设函数,另外两次也是做同样的操作。这样,我们一共可以得到三个假设函数,在得到一个输入x的时候,我们将其代入这三个假设函数中,最后取输出值最大的那个结果,然后将x归为可信度最高,效果最好的那一类。

第七章 正则化

第一节 过拟合问题

以前面的预测房价问题为例,在拟合数据时,可能会出现以下情况:在这里插入图片描述
如图所示,左边的直线拟合显然不是一个很好的模型,观察数据集可以推断出当面积不断增大,售价增长趋于平缓,而不是线性增长,这种具有高偏差的拟合我们称之为欠拟合

再看最右边的情况,这虽然通过了所有的数据点,但这是一条很扭曲的曲线,它不停上下波动,显然也不能很好地拟合数据。这就引出了过拟合的概念。

过拟合:如果样本有太多的特征,这时训练出来的假设函数可能可以很好地拟合训练集,即代价函数可能非常接近于0,但是它却无法预测一个非训练集样本的类型或是结果。

换句话说,过拟合太专注于训练集中的特殊点,以至于影响到了整体的分类。

通常,解决过拟合问题有两个办法:
1.尽量减少选取特征的数量。具体地,可以通过人工或算法选取最有效的特征,舍弃掉对结果影响不大的特征。但这么做也就导致了舍弃掉了关于问题的一些信息,这就可能会影响到最后预测的精确度。
2.使用正则化。这种方法将保留所有的特征,但是减少了量级或是参数θ的维度。

第二节 正则化过程及其代价函数

在这里插入图片描述
上节介绍过,这种函数图像虽然经过了所有的数据集点,但其实不能很好的预测新数据。为解决这种过拟合的问题,可以通过正则化的方式,具体步骤如下:
由于立方项和4次方项的存在,导致函数图像的扭曲,那么如果θ3和θ4尽可能接近0的话,函数的图像就更加接近一个二次函数的图像。所以,可以在代价函数中在增加一些惩罚项,使得对θ3和θ4的乘法力度增大从而减小这两个参数的值,例如:在这里插入图片描述
所以,正则化的思想就是:如果我们的参数值较小,参数值较小就意味着一个更简单的假设模型。在上例中,对θ3和θ~4增加了惩罚项,当它们都接近与0时,我们就会得到一个更简单的假设模型,相当于一个二次函数。

另外一种情况,就是不知道该选择缩小哪些参数的值时,此时在正则化中,要做的就是:修改代价函数,来缩小所有的参数。具体如下:在这里插入图片描述
其中,右边这一项就是正则化函数,λ是正则化参数,用于控制拟合训练集和控制参数的平衡。因此λ的选择也要适当,不能过大或过小,过大会导致对参数θ的惩罚力度太大从而大大弱化参数的作用,最终将导致图像接近一条水平直线;过小则几乎不会缩小参数,也就使得图像与不做正则化处理没有太多差别。

第三节 线性回归的正则化

梯度下降的正则化

上一节介绍了梯度下降运用于正则化线性回归的形式,即在原来代价函数的基础上增加了一项正则化函数,即:在这里插入图片描述
那么其梯度下降的式子就是:在这里插入图片描述
在这里插入图片描述
由于正则化时不惩罚θ0,所以将θ0提出来单独处理,其余的参数做正则化处理。
经过化简,我们可以得到:在这里插入图片描述
显然,式子右边和原来完全一致,只有θj增加了一个系数,由于样本数量m通常比较大,且α不会很大,所以这个系数比较接近于1。
总体来说,使用正则化之后,在做减法之前,θj每次都比原来稍小了一些,然后再减去相应的代价。因此,每次迭代θj的减少量比原来要增加了。

正规方程的正则化

运用于正规方程中时,我们同样也对正规方程做相应的修改,即:在这里插入图片描述
在原来单纯对XTX求逆变成了对XTX加上一个矩阵后再求逆该矩阵类似于单位矩阵,和它不同的地方就是该矩阵左上角的元素为0(注意这个矩阵也是一个n+1维的矩阵)。

在正规方程的正则化中,只要正则化系数λ大于0,那么就可以确定XTX和新增的矩阵相加所得到的矩阵一定可逆。

第四节 逻辑(Logistic)回归的正则化

逻辑回归正则化和线性回归一样,均在代价函数最后添加一个相同的正则化函数,即在这里插入图片描述
注意θ从θ1开始。

最后进行梯度下降的过程就变为:在这里插入图片描述

第八章 基于神经网络的机器学习

第一节 非线性假设

在使用logistic回归或线性回归解决时,为了能尽最大努力拟合数据集,我们尽量把特征都联系起来然后连立方程,以logistic回归为例:在这里插入图片描述
但是,如果数据集的特征非常多,例如有100个甚至更多的特征,但我们又希望包含所有的二次项甚至三次项时,每个样本的计算量就会非常的大。并且,随着特征数量的增加,计算量会呈指数级别增长。所以,在样本特征数量较少时,我们依旧可以采用线性方程来进行假设;一旦特征数量比较多时,就必须得采用非线性的假设方程。

第二节 神经网络模型

正式介绍神经网络之前,我们先介绍一下神经元的结构,如图:在这里插入图片描述
神经元由细胞体和凸起组成,其中凸起包括树突和轴突,我们主要介绍凸起。
树突是专门负责接收信号并交予神经元进行处理;轴突则是将处理的结果输出给其他单位。

神经网络就是以这样的模型为参考而建立起来,如图:在这里插入图片描述
该模型总共是三大层,分别是输入层、隐藏层和输出层。
输入层就是输入各种原始特征;
隐藏层则是接收输入层的特征并进行中间处理,最后传给输出层;注意:隐藏层中间所做的处理对我们是隐藏的,我们看不到它们的输出结果。
输出层则是接收隐藏层的结果并做最后的处理,然后输出最终的结果。
注意:由于θ0的存在,实际上除输出层外,每一层还会额外增加一个新的输入(x0,a0(2)等),但此项不会接收任何的输入值,并且值始终为1。

神经网络模型中,每个神经元均在做logistic回归所要做的工作,即计算sigmoid函数的值,如:在这里插入图片描述
需要注意的是,每个神经元所使用的参数θj是不同的(即使是同一层的神经元也是如此),因此,在神经网络中,每一层的θ均是一个矩阵,而不再是一个向量了。

第三节 模型优化

上一节介绍了每个神经元所负责的具体计算,即各自进行logistic回归的工作,如下图:
在这里插入图片描述
观察式子我们可以发现,将这些加法运算连立起来,可以看做是两个矩阵的乘法,更具体的是一个矩阵与一个向量的乘法。那么,最后的计算形式就是:
z(i)(i-1)a(i-1);
a(i)=g(z(i))
需要注意的是:每个输入向量均要增加一个值为1的第0项。

第九章 神经网络的学习算法

第一节 代价函数

在神经网络中,要面临的分类问题可分为两大类:二分类问题和多分类问题。
神经网络处理这两种问题的方法几乎一致,唯一不同的点就是输出单元的个数有差异,二分类问题通常只需要一个输出单元;而多分类问题则需要多个输出单元,一般是有几类就有几个输出单元。

现在来介绍一下神经网络中所使用的代价函数,由于不再是只有1个输出,取而代之的是k个输出,所以我们需要在原来的基础上再重复k次运算,即
在这里插入图片描述

第二节 反向传播算法

前面的章节中,我们介绍了神经网络模型输出结果的过程,由于最后的输出是从左至右逐步处理最后输出,因此整个过程被称作前向转播算法

和回归问题的解决方案一样,我们的目的都是要求出代价函数取最小值时所对应的参数θ,因此除了求出每次迭代时的代价函数值之外,我们还要求其偏导的值。所以为求出偏导数值,就引出了反向传播算法

反向传播算法和前向传播算法的步骤相反,即计算过程是从右向左进行,在这里引入一个δj(l)的符号,其定义是第l层第j个结点(神经元)的误差。

以4层神经网络模型为例,具体的步骤是:先求出输出层的误差δj(4),然后再利用δj(4)求出第3层的误差,直至完第二层位置,如下图:在这里插入图片描述
总结一下,算法整体步骤大致如:在这里插入图片描述
图中△用于求函数的偏导值。
首先我们先把每个△ij(l)设置为0,然后开始循环,每次循环先进行反向传播算法,然后更新偏导项的值。
当循环结束之后,再求出每个Dij(l)的值(注意j的取值),所求到的Dij(l)即为对应的偏导项。

第五节 梯度检测

在梯度下降过程中会出现的各种隐藏的bug,这些bug不会导致程序崩溃,但会影响程序梯度下降的结果,使得误差会比无bug时高出一个数量级。要解决这一问题,我们通过梯度检测来处理。

在这里插入图片描述
检验的方法则是利用该点周围的点连线的斜率来近似估计该点的切线的斜率(即用割线来近似切线),途中左侧的式子叫做双侧差分,右侧的是单侧差分,双侧差往往能得到更准确的结果。

需要注意的是:梯度检测的算法执行效率比反向传播要慢得多,因此一旦检测出反向传播和前向传播的算法是正确的话,梯度检测便要关闭不再执行。换言之,梯度检测通常只需要执行一次即可。

第六节 随机初始化

训练算法开始运行时,一般需要输入参数的初值,通常的想法是把每个参数设置为0,但这会导致每个输入的权重都完全一样,也就是每个神经元的输入都是0,那么输出也就完全一样。为了避免这种情况,我们通常会将每个参数θ的初值在一个对称区间内取随机值,这样每个参数有不同的初值,那么输入的权重也就各不相同。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值