【李宏毅机器学习第五周学习笔记】

摘要

宝可梦与数码宝贝的分类中要将所有的数据收集齐,那么将需要非常多的时间,并且也不一定能够完全收集齐,因此如果能够使用部分数据得到的模型对所有数据进行分类,在没有所有数据的情况下,也能够应用于所有数据的分类中。为了判断用部分数据训练出来的模型是否能够运用于所有的数据中,需要判断所有数据中的loss与部分数据中的loss差是否超过某一个假定的值,那么就需要引入一个H,它是一个假设空间,在这个假设空间有一系列的h。这些小h可能会将训练数据弄坏,弄坏是指任意h在所有数据中得到的loss与任意h在部分数据中得到的loss差大于 ε \varepsilon ε,弄坏的概率也需要进行估测,在估测的过程中用到了霍夫丁不等式,在概率论中,霍夫丁不等式给出了随机变量的和与其期望值偏差的概率上限,该不等式被Wassily Hoeffding于1963年提出并证明的。深度学习中也有许多的分类器,分类器常规任务是利用给定的类别已知的训练数据来学习分类规则和分类器,然后对未知数据进行分类或预测。

Abstract

It would take a lot of time to collect all the data for the classification of Pokémon and Digital Baby, and it is not always possible to collect all the data. Therefore, if a model obtained from partial data can be used to classify all the data, it can be applied to all the data without all the data. In order to determine whether the model trained with partial data can be applied to all data, it is necessary to determine whether the difference between the loss in all data and the loss in partial data exceeds a certain assumed value, then it is necessary to introduce an H, which is a hypothesis space with a series of h. These small h may spoil the training data, spoiling means The difference between the loss of any h in all data and the loss of any h in some data is greater than ε \varepsilon ε, and the probability of spoiling also needs to be estimated. Hoeffding proposed and proved in 1963.There are also many classifiers in deep learning. The classifier routine task is to learn classification rules and classifiers using training data for a given class of known data, and then classify or predict the unknown data.

1 宝可梦与数码宝贝分类器

在分类数码宝贝和宝可梦的时候,采用的方式是通过对两者进行边缘检测,使用白色的点描绘出两者的轮廓,计算两者的白色点的个数,假设两者的白色点超过一定范围之后就是宝可梦或者数码宝贝,定义function的时候,输入两者的边缘检测出来的点个数,输出属于宝可梦还是数码宝贝,定义loss的时候,loss越大说明model效果越不好,相对的,loss越小效果越好。
loss function中需要输入两个输入,一个是h表示边缘检测出来的白点分类两者的边界值。f函数如果输出 的不和真实值一致,那么将输出1,如果和真实值一致,那么将输出0,loss函数是对所有的f函数的输出进行求和,得到最终的loss。
在这里插入图片描述

说明;其中h是区分两个类别的边界值。

1.1 理想与现实

当分类宝可梦与数码宝贝时,如果能够集齐所有的数据,那么我们可以找到最优的threshold,称之为理想状态下的h,但实际上并没有所有的宝可梦与数码宝贝,这样得到的数据称之为现实状态喜爱的h,因此找到的threshold也可能不是最佳的threshold,因此理想状态下的h与现实状态下的h是有差距的,这个差距越小说明在训练数据下得到的h越接近理想状态下的h。公式如下图所示:
$L(h^{traim},D_{all} )- L(h^{all},D_{all} )<= δ \delta δ
在这里插入图片描述
h的好坏与训练数据有关,如果训练数据较好,那么得到的h就可能比较接近理想状态下的h,如果理想状态下的h与现实状态下h的差距不超过 δ \delta δ,那么就是好的训练数据,如果两者差距超过 δ \delta δ那么就是不好的数据。
那么拥有什么类型的数据能够满足这样的条件,以下是证明过程:
在这里插入图片描述
在证明过程中,假设第一个蓝色方框的不等式成立,由于 h t r i a n h^{trian} htrian是在 D t r a i m D_{traim} Dtraim上所有的h中取得的最小平均值,因此 h t r i a n h^{trian} htrian D a l l D_{all} Dall上得到的loss将会小于 h t r i a n h^{trian} htrian D t r a i m D_{traim} Dtraim上得到的loss加上一个差值,第二步也是同理。因此得到最终的:
在这里插入图片描述

如果想要让理想与现实更接近,那么就需要找到一个 D t r a i m D_{traim} Dtraim对于所有的h使得 D t r a i m D_{traim} Dtraim D a l l D_{all} Dall的差距更接近。现在就将使理想与现实更接近变成了寻找一个训练数据使得对于所有的h都能够在训练数据和所有数据中的loss差距小于或者等于 δ \delta δ/2。
在这里插入图片描述

1.2 h将 D t r a i m D_{traim} Dtraim变坏的概率

假设有一组数据,在这些数据当中,蓝色的是好的数据,而黄色的是被h弄坏的数据(即训练数据中算出来的loss与所有数据中算出来的loss差大于 ϵ \epsilon ϵ),在三个框的交叉的数据中,可能不止被一个h弄坏,一个框中的数据集至少有一组的数据是被h弄坏的。
在这里插入图片描述
在所有数据集中使得 D t r a i m D_{traim} Dtraim的loss变坏的所有h集合到一起的为集合U,集合U将会小于或者等于所有h的和,是因为在上图中交叉部分会重复计算h的和,因此会大于集合U。判定h是不好方式是h会使得在训练数据和所有数据上的loss差大于 ϵ \epsilon ϵ

在这里插入图片描述
在这里插入图片描述
训练数据被h弄坏结果的结论:
霍夫丁不等式(Hoeffding’s inequality):在概率论中,该不等式给出了随机变量的和与其期望值偏差的概率上限。
Loss的范围在是0~1之间。
N是训练资料的数目。
在这里插入图片描述
那么最终计算把训练数据变坏的几率就是变成如下的计算过程:
在这里插入图片描述
分析公式可以知道让训练资料增大就可以让变坏的概率变低,当H是比较小,那么h可以选择的数目就更小,这时也能使得几率变小。
当增大训练资料的数目时,就可以较小被h弄坏的概率,当我们想要让概率为某个值的时候,需要多少的训练资料才能满足,经过变换之后可以得到以下的不等式:
(换成公式)
∣ H ∣ ∗ 2 e x p ( − 2 N ϵ 2 ) < = δ |H|*2exp(-2N\epsilon^2)<=\delta H2exp(2Nϵ2)<=δ
N > = log ⁡ ( 2 ∣ H ∣ / δ ) 2 ϵ 2 N>=\frac{\log(2|H|/\delta)}{2\epsilon^2} N>=2ϵ2log(2∣H∣/δ)
|H|是能够算则的function的数量从1到10000,这是一些离散的点,参数一般都是连续的,如果参数是连续的,|H|将会是无穷大,为什么离散的点也可以?
可以从下面的两个角度进行回答:
1、世界上没有真正连续的东西,能够描述的精度是有限的,使用的连续的参数不一定是真正的连续。
2、描述一个模型复杂的程度就是vc-demension

1.3 vc-dimension

vc-dimension:全称是Vapnik-Chervonenkis dimension,其用来衡量一个模型的复杂度。
定义为:在该模型对应的空间中随机撒x点,然后对其中的每个点随机分配一个2类标签,使用模型来分类,并且要分对,请问x至多是多少。这个x就是VC维。

2 深度学习优化器

2.1 SGD

每次只使用一个训练集样本来更新参数。该方法的不足是参数更新不够稳定,收敛速度较慢,这是因为一个样本很难代表整体,每次更新只是减小了该样本的损失函数值,却可能造成在其他样本上损失函数值的增大。

2.2 SGDM

随机梯度下降法虽然有效,但容易陷入局部最小值点,甚至在驻点附近以及梯度值非常小的点附近时参数更新极为缓慢。为了改进这个缺点,引入物理中动量的概念,参数更新量 m t m_t mt,是当前梯度的方向 g t g_t gt,和上一次参数更新方向 m t − 1 m_{t−1} mt1的线性组合。
在这里插入图片描述

2.3 Adagrad

Adagrad算法的公式如下:
θ t = θ t − 1 − η ∑ i = 0 t − 1 ( g i ) 2 g t − 1 \theta_t=\theta_{t-1}-\frac{\eta}{\sqrt{\sum^{t-1}_{i=0}(gi)^2}}g_{t-1} θt=θt1i=0t1(gi)2 ηgt1
在这里插入图片描述
可以发现,除了第一次更新时的更新量为 η \eta η,其余时刻的更新量都小于 η \eta η,是一个介于0到 η \eta η之间的数。如果新的梯度很大,则更新量大(接近 η \eta η),否则更新量小(接近0)。直观上来讲,更新量是新的梯度的平方占累积梯度平方和的比例开根号乘以 η \eta η,它的意义在于使得不同参数的更新处于同一维度之下。

2.4 RMSProp

Adagrad算法和RMSProp算法都称为自适应算法。自适应算法的意思就是,学习率随着更新次数而改变。Adagrad算法虽然在上述简单的例子中有直观解释,但实际的损失函数通常很复杂。且发现当t很大时,Adagrad下参数将几乎不再更新。可以假设,对任意t, g t g_t gt相同,此时参数的更新量将以 O ( 1 / t ) O(\sqrt {1/t}) O(1/t )阶减小。为了改变这一劣势,提出RMSProp算法。
在这里插入图片描述

2.5 Adam

Adam算法是RMSProp算法与SGDM算法的结合,其既是有着自适应学习率,又能引入了动量机制在一定程度上减小参数陷入局部最有点的可能性。其是应用最为广泛的深度学习优化器之一,算法步骤如下:
在这里插入图片描述

2.6 帮助优化的方法

Shuffling:做mini-batch时每次打乱数据顺序,保证batch样本的随机性,从而保证梯度更新的随机性。
Dropout:DNN中,使得一部分神经元随机失活。
Gradient noise:给梯度增加独立的随机正太噪声,噪声方差随时间t的增加而减小。
Warm-up:学习率逐渐增加。
Normalization:批归一化等。

总结

本周的学习中,学习到了机器学习是如何将两个不同类别的东西进行区分,在本次学习例子中,宝可梦与数码宝贝的分类中要将所有的数据收集齐,那么将需要非常多的时间,并且也不一定能够完全收集齐,因此如果能够使用部分数据得到的模型对所有数据进行分类,在没有所有数据的情况下,也能够应用于所有数据的分类中。深度学习中有许多的优化器,这些优化器在后续的学习过程中,还需要好好理解并且掌握算法的具体原理与过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值