学习笔记 |《白话机器学习的数学》

一、开始二人之旅

机器学习擅长的三个任务:

  • 回归(regression):处理连续数据如时间序列数据时使用
  • 分类(classification):只有两个类别的问题称为二分类,有三个及以上的问题称为多分类
  • 聚类(clustering):与分类的区别在于数据带不带标签

二、学习回归——基于广告费预测点击量

2.1 设置问题

根据广告费预测点击量
在这里插入图片描述

2.2 定义模型

在这里插入图片描述

2.3 最小二乘法

目的:寻找合适的参数使得误差之和为最小
在这里插入图片描述
假设有n个训练数据,那么它们的误差之和可以用这样的表达式表示。这个表达式称为目标函数,E(θ)的E是误差的英语单词Error的首字母。
在这里插入图片描述
注:x(i)和y(i)中的i不是i次幂的意思,而是指第i个训练数据

为什么要计算误差的平方呢?
误差可能为负值,正负相抵为0,而不使用绝对值是因为绝对值不方便微分,相比而言平方的微分更加简单。

为什么整个表达式还要乘以1/2
微分之后会使表达式更加简单方便,并且这个常数并不影响函数本身取最小值的点的大小

2.3.1 最速(梯度)下降法

目的:在二次函数中,移动x使得g(x)一直变小.
只要向与导数的符号相反的方向移动x,g(x)就会自然而然地沿着最小值的方向前进。
在这里插入图片描述
η称为学习率的正的常数,根据学习率的大小,到达最小值的更新次数也会发生变化。换种说法就是收敛速度会不同。有时候甚至会出现完全无法收敛,一直发散的情况。

fθ(x)拥有θ0和θ1两个参数。也就是说这个目标函数是拥有θ0和θ1的双变量函数,所以不能用普通的微分,而要用偏微分。如此一来,更新表达式就是这样的。
在这里插入图片描述
使用复合函数的微分,E(θ)中有fθ(x),而fθ(x)中又有θ0,所以我们可以这样分别去考虑它们。
在这里插入图片描述
阶梯性地进行微分。
在这里插入图片描述
先从u对v微分的地方开始计算。
在这里插入图片描述
下面就是v对θ0进行微分的部分了。
在这里插入图片描述
让各部分相乘。
在这里插入图片描述
同理得u对θ1的微分。
在这里插入图片描述
综上。
在这里插入图片描述

2.4 多项式回归

使用曲线拟合。
在这里插入图片描述
使用二次函数进行拟合。
在这里插入图片描述
参数更新。
在这里插入图片描述

2.5 多重回归

包含了多个变量的回归称为多重回归。
在这里插入图片描述
把θ和x用列向量来定义。
在这里插入图片描述
把二者相应的元素相乘,然后全部加起来。
在这里插入图片描述
表达式简化。
在这里插入图片描述
考虑对第j个元素θj偏微分的表达式。
在这里插入图片描述
u对v微分的部分是一样的,所以只需要求v对θj的微分。
在这里插入图片描述
第j个参数的更新表达式。
在这里插入图片描述

2.6 随机梯度下降法

解决梯度下降法的缺陷:容易陷入局部最优解
在这里插入图片描述
最速下降法的参数更新表达式。
在这里插入图片描述
随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。这个表达式中的k就是被随机选中的数据索引。
在这里插入图片描述

三、学习分类——基于图像大小进行分类

3.1 设置问题

在这里插入图片描述

3.2 内积

法线是与某条直线相垂直的向量。
在这里插入图片描述
权重向量为w=(1,1)
在这里插入图片描述
确定的权重向量w=(1,1)
在这里插入图片描述
找到与我画的直线成直角的权重向量。
在这里插入图片描述

3.3 感知机

感知机是接受多个输入后将每个值与各自的权重相乘,最后输出总和的模型。
在这里插入图片描述
根据参数向量x来判断图像是横向还是纵向的函数,即返回1或者-1的函数fw(x)的定义如下。这个函数被称为判别函数。
在这里插入图片描述
内积是衡量向量之间相似程度的指标。结果为正,说明二者相似;为0则二者垂直;为负则说明二者不相似。

与权重向量w之间的夹角为θ,在90◦<θ<270◦范围内的所有向量都符合条件,即内积为负
在这里插入图片描述
同理得另一部分则为正。
在这里插入图片描述
训练数据。
在这里插入图片描述
判别函数。
在这里插入图片描述
权重向量的更新表达式,用这个表达式重复处理所有训练数据,更新权重向量。
在这里插入图片描述
当判别函数与标签值不同时,说明判断函数分类失败,需要更新权重向量;
当判别函数与标签值相同时,说明判断函数是正确的,不需要更新权重向量。

权重向量是通过随机值来初始化的。
在这里插入图片描述
在这个状态下,假设第一个训练数据是x(1)=(125,30);
现在权重向量w和训练数据的向量x(1)二者的方向几乎相反,w和x(1)之间的夹角θ的范围是90◦<θ<270◦,内积为负。也就是说,判别函数fw(x(1))的分类结果为-1;
训练数据x(1)的标签y(1)是1,所以fw(x(1))=y(1)说明分类失败。
在这里插入图片描述
现在y(1)=1,所以更新表达式是这样的,其实就是向量的加法。
在这里插入图片描述
在这里插入图片描述
刚才x(1)与权重向量分居直线两侧,现在它们在同一侧了。
在这里插入图片描述
现在θ<90◦,所以内积为正,判别函数fw(x)的分类结果为1。而且x(1)的标签也为1,说明分类成功了。

3.4 线性可分

感知机的缺点:它只能解决线性可分的问题。

线性不可分的分类问题:不能用直线分类的分类问题。
在这里插入图片描述
感知机也被称为简单感知机或单层感知机,实际上多层感知机就是神经网络。

3.5 逻辑回归

把分类作为概率来考虑的;设横向的值为1、纵向的值为0。

能够将未知数据分类为某个类别的判别函数fθ(x)。
在这里插入图片描述
sigmoid函数。
在这里插入图片描述
用概率来考虑分类。因为sigmoid函数的取值范围是0<fθ(x)<1,所以它可以作为概率来使用。
在这里插入图片描述
使用0.5作为分类阈值,根据判别函数返回的值对数据进行分类。
在这里插入图片描述
改写判别函数为如下等价形式。
在这里插入图片描述
当θ是这样的向量时,我们来画一下θTx≥0的图像。
在这里插入图片描述
先代入数据,把表达式变为容易理解的形式。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
将θTx=0这条直线作为边界线,就可以把这条线两侧的数据分类为横向和纵向了。

这样用于数据分类的直线称为决策边界。
在这里插入图片描述
接下来 为了求得正确的参数θ而定义目标函数,进行微分,然后求参数的更新表达式。

3.6 似然函数

在这里插入图片描述
在这里插入图片描述
假定所有的训练数据都是互不影响、独立发生的,这种情况下整体的概率就可以用下面的联合概率来表示。
在这里插入图片描述
联合概率的表达式是可以一般化的,写法如下。
在这里插入图片描述
首先向指数y(i)代入1。
在这里插入图片描述
然后向指数y(i)代入0。
在这里插入图片描述
由此可知:可以将取值0或1的两种情况利用任何数字的0次方都是1的特性进行统一为一个公式。

回归的时候处理的是误差,所以要最小化,而现在考虑的是联合概率,我们希望概率尽可能大,所以要最大化。
目标函数L(θ)也被称为似然,函数的名字L取自似然的英文单词Likelihood的首字母。
可以认为似然函数L(θ)中,使其值最大的参数θ能够最近似地说明训练数据。

3.7 对数似然函数

在这里插入图片描述
由于log是单调递增函数,现在考察的似然函数也是在L(θ1)<L(θ2)时,有log L(θ1)<log L(θ2)成立。也就是说,使L(θ)最大化等价于使log L(θ)最大化。
在这里插入图片描述
每一行的变形分别利用了下面这些特性。
在这里插入图片描述
逻辑回归将这个对数似然函数用作目标函数。
在这里插入图片描述
接下来,对各个参数θj求微分。
在这里插入图片描述
和回归的时候是一样的,我们把似然函数也换成这样的复合函数,然后依次求微分。
在这里插入图片描述
阶梯式求复合函数偏微分。
在这里插入图片描述
求u对v的微分。
在这里插入图片描述
求解结果。
在这里插入图片描述
求v对θj的偏微分。
在这里插入图片描述
已知sigmoid函数的微分如下。
在这里插入图片描述
设z=θTx,然后再一次使用复合函数的微分会比较好。
在这里插入图片描述
由sigmoid函数的微分可得。
在这里插入图片描述
z对θj的微分。
在这里插入图片描述
把结果相乘得到v对θj的偏微分公式。
在这里插入图片描述
代入各个结果,然后通过展开、约分,使表达式变得更简洁。
在这里插入图片描述
接下来要做的就是从这个表达式导出参数更新表达式。不过现在是以最大化为目标,所以必须按照与最小化时相反的方向移动参数。

即最小化时要按照与微分结果的符号相反的方向移动,而最大化时要与微分结果的符号同向移动。
在这里插入图片描述
为了与回归时的符号保持一致,也可以将表达式调整为下面这样。注意,η之前的符号和∑中的符号反转。
在这里插入图片描述

3.8 线性不可分

将逻辑回归应用于线性不可分问题。
在这里插入图片描述
对于这个例子来说,虽然用直线不能分类,但是用曲线可以进行分类。
在这里插入图片描述
向训练数据中加入x12,考虑这样的数据。
在这里插入图片描述
展开。
在这里插入图片描述
假设θ是这样的向量。
在这里插入图片描述
考虑θTx≥0的图形。
在这里插入图片描述
在这里插入图片描述
之前的决策边界是直线,现在则是曲线了。因为参数θ是随便定的,所以数据完全没有被正确地分类。

四、评估——评估已建立的模型

4.2.1 回归问题的验证

把获取的全部训练数据分成两份:一份用于测试,一份用于训练。然后用前者来评估模型。

模型评估就是像这样检查训练好的模型对测试数据的拟合情况。

对于回归的情况,只要在训练好的模型上计算测试数据的误差的平方,再取其平均值就可以了。假设测试数据有n个,那么可以这样计算。
在这里插入图片描述
这个值被称为均方误差或者MSE,全称Mean Square Error(图4-5)。这个误差越小,精度就越高,模型也就越好。
在这里插入图片描述

4.2.2 分类问题的验证

分类结果为正的情况是Positive、为负的情况是Negative。分类成功为True、分类失败为False。
在这里插入图片描述
使用表里的4个记号来计算分类的精度,它表示的是在整个数据集中,被正确分类的数据TP和TN所占的比例。
用测试数据来计算这个值,值越高精度越高,也就意味着模型越好。
在这里插入图片描述

4.2.3 精确率和召回率

一般来说,只要计算出这个Accuracy值,基本上就可以掌握分类结果整体的精度了。但是有时候只看这个结果会有问题,所以还有别的指标。

考虑一下数据量极其不平衡的情况,只看整体的精度看不出来问题。

首先我们来看第一个指标——精确率。它的英文是Precision。
它的含义是在被分类为Positive的数据中,实际就是Positive的数据所占的比例。
在这里插入图片描述
还有一个指标是召回率,英文是Recall。
它的含义是在Positive数据中,实际被分类为Positive的数据所占的比例。
在这里插入图片描述

4.2.4 F值

一般来说,精确率和召回率会一个高一个低,需要我们取舍,有些麻烦。

所以就出现了评定综合性能的指标F值。表达式4.2.8中的Fmeasure就是F值,Precision是前面说的精确率,Recall是召回率。
在这里插入图片描述
F值的特点是:精确率和召回率只要有一个低,就会拉低F值。

这说明该指标考虑到了精确率和召回率的平衡。

有时称F值为F1值会更准确,除F1值之外,还有一个带权重的F值指标。
在这里插入图片描述
可以认为F值指的是带权重的F值,当权重为1时才是刚才介绍的F1值。

F1值在数学上是精确率和召回率的调和平均值。

之前介绍的精确率和召回率都是以TP为主进行计算的,也可以以TN为主。
在这里插入图片描述
当数据不平衡时,使用数量少的那个会更好。最开始的例子中Positive极少,所以我们使用了Positive来计算,反之如果Negative较少,那就使用Negative。

对于回归和分类,我们都可以这样来评估模型。

把全部训练数据分为测试数据和训练数据的做法称为交叉验证。这是非常重要的方法。

交叉验证的方法中,尤为有名的是K折交叉验证。
在这里插入图片描述
假如我们要进行4折交叉验证,那么就会这样测量精度。
在这里插入图片描述

4.3 正则化

模型只能拟合训练数据的状态被称为过拟合,英文是overfitting。

过度增加函数fθ(x)的次数会导致过拟合。

有几种方法可以避免过拟合。
在这里插入图片描述
对于回归问题的目标函数进行正则化。
在这里插入图片描述
向这个目标函数增加下面这样的正则化项。
在这里插入图片描述
对这个新的目标函数进行最小化,这种方法就称为正则化。
在这里插入图片描述
m是参数的个数。

一般来说不对θ0应用正则化。所以仔细看会发现j的取值是从1开始的。 这也就是说,假如预测函数的表达式为fθ(x)=θ01x+θ2x2,那么m=2就意味着正则化的对象参数为θ1和θ2

θ0这种只有参数的项称为偏置项,一般不对它进行正则化。

λ是决定正则化项影响程度的正的常数。这个值需要我们自己来定。

首先把目标函数分成两个部分。
在这里插入图片描述
C(θ)是本来就有的目标函数项,R(θ)是正则化项。

C(θ)和R(θ)相加之后就是新的目标函数,所以我们实际地把这两个函数的图形画出来,加起来看看。不过参数太多就画不出图来了,所以这里我们只关注θ1。而且为了更加易懂,先不考虑λ。
在这里插入图片描述
正则化后,目标函数的θ1更接近0。

这就是正则化的效果。它可以防止参数变得过大,有助于参数接近较小的值。虽然我们只考虑了θ1,但其他θj参数的情况也是类似的。

参数的值变小,意味着该参数的影响也会相应地变小。

比如二次函数的的二次项系数为0的话,就会退化为一条直线,这正是通过减小不需要的参数的影响,将复杂模型替换为简单模型来防止过拟合的方式。

总之就是为了防止参数的影响过大,在训练时要对参数施加一些惩罚。一开始就提到的λ,是可以控制正则化惩罚的强度。

比如令λ=0,那就相当于不使用正则化; 反过来λ越大,正则化的惩罚也就越严厉。

刚才讨论的是回归的情况,对于分类也可以应用正则化。

对于分类问题的目标函数:对数似然函数。
在这里插入图片描述
分类也是在这个目标函数中增加正则化项。
在这里插入图片描述
对数似然函数本来以最大化为目标。但是,这次我想让它变成和回归的目标函数一样的最小化问题,所以加了负号。这样就可以像处理回归一样处理它,所以只要加上正则化项就可以了。

总之反转符号是为了将最大化问题替换为最小化问题。

反转了符号之后,在更新参数时就要像回归一样,与微分的函数的符号反方向移动才行。

刚才我们把回归的目标函数分成了C(θ)和R(θ)。这是新的目标函数的形式,我们要对它进行微分。
在这里插入图片描述
对各部分进行偏微分。
在这里插入图片描述
对于左边部分前面已经求得,我们重点求右边部分。
在这里插入图片描述
在这里插入图片描述
左右两边相加。
在这里插入图片描述
由于一般不对θ0应用正则化,R(θ)对θ0微分的结果为0。所以实际上我们需要像这样区分两种情况。
在这里插入图片描述
同理,对于逻辑回归。
在这里插入图片描述
参数更新公式结果与回归问题的相同。

刚才我介绍的方法其实叫L2正则化。

除L2正则化方法之外,还有L1正则化方法。它的正则化项R是这样的。
在这里插入图片描述
L1正则化的特征是被判定为不需要的参数会变为0,从而减少变量个数。而L2正则化不会把参数变为0。

L2正则化会抑制参数,使变量的影响不会过大,而L1会直接去除不要的变量。

4.4 学习曲线

欠拟合是与过拟合相反的状态,所以它是没有拟合训练数据的状态。

将两份数据的精度用图来展示后,如果是这种形状,就说明出现了欠拟合的状态。也有一种说法叫作高偏差。
这是一种即使增加数据的数量,无论是使用训练数据还是测试数据,精度也都会很差的状态
在这里插入图片描述
而在过拟合的情况下,图是这样的。这也叫作高方差。随着数据量的增加,使用训练数据时的精度一直很高,而使用测试数据时的精度一直没有上升到它的水准。
只对训练数据拟合得较好,这就是过拟合的特征。
在这里插入图片描述
通过学习曲线判断出是过拟合还是欠拟合之后,就可以采取相应的对策以便改进模型了。

猜你喜欢

转载自blog.csdn.net/m0_46692607/article/details/127389764