Datawhale打卡日记5.16

5.14
学习打卡内容:
理解偏差和方差
学习误差为什么是偏差和方差而产生的,并且推导数学公式
过拟合,欠拟合,分别对应bias和variance什么情况
学习鞍点,复习上次任务学习的全局最优和局部最优
解决办法有哪些
梯度下降
学习Mini-Batch与SGD
学习Batch与Mini-Batch,SGD梯度下降的区别
如何根据样本大小选择哪个梯度下降(批量梯度下降,Mini-Batch)
写出SGD和Mini-Batch的代码
学习交叉验证
学习归一化
学习回归模型评价指标

1.偏差(bias)、方差(variance)和噪声(Noise)

误差 = 偏差+ 方差 + 噪声

偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据,如下图第二行所示。(Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的准确度,即算法本身的拟合能力)
方差:描述的是预测值的变化范围,离散程度,也就是里其期望值的距离。方差越大,数据的分布越分散,如下图右列所示。(Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反映预测的波动情况)
在这里插入图片描述

综合来看我们需要的模型最好是两个L(low),又准确又稳定,但是这个在现实模型中是不会存在的,只能权衡着来。

噪声:不是你想要的真正数据,破坏试验的元凶和造成可能过拟合的原因之一。

2.过拟合(overfitting)与欠拟合(underfitting)

过拟合:过拟合是在统计模型中,由于使用的参数过多而导致模型对观测的数据(训练数据)过度拟合,以至于用该模型来预测其他测试样本输出的时候与实际输出或则期望值相差很大的现象。

欠拟合:欠拟合则刚好相反,是由于统计模型使用的参数过少,以至于得到的模型难以拟合观测数据(训练数据)的现象。

我们总是希望在机器学习训练时,机器学习模型能在新样本上很好的表现。过拟合时,通常是因为模型过于复杂,学习器把训练样本学得“太好了”,很可能把一些训练样本自身的特性当成了所有潜在样本的共性了,这样一来模型的泛化性能就下降了。欠拟合时,模型又过于简单,学习器没有很好地学到训练样本的一般性质,所以不论在训练数据还是测试数据中表现都很差。我们形象的打个比方吧,你考试复习,复习题都搞懂了,但是一到考试就不会了,那是过拟合;如果你连复习题都还没搞懂,更不用说考试了,那就是欠拟合。所以,在机器学习中,这两种现象都是需要极力避免的。

3.鞍点
鞍点的定义:①鞍点附近的某些点比鞍点有更大的代价,二其他点则有更小的代价。②一个不是局部极值点的驻点称为鞍点。
NOTE:在高维空间中,局部最优很罕见,鞍点很常见(在低维空间则相反)
1.单变量函数:鞍点出的一阶导为0,二阶导换正负号
在这里插入图片描述

2.多变量函数:鞍点处,在某些方向是封顶,在其他方向上是谷底。
在这里插入图片描述

4.梯度下降(Gradient Descent)
首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。
从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
4.1梯度
梯度:在微积分里,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此类推。
那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。
4.2梯度下降的相关概念

  1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

2.特征(feature):指的是样本中输入部分,比如2个单特征的样本(x(0),y(0)),(x(1),y(1)),则第一个样本特征为x(0),第一个样本输出为y(0)。

  1. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)。比如对于单个特征的m个样本(x(i),y(i))(i=1,2,…m),可以采用拟合函数如下: hθ(x)=θ0+θ1x。

  2. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本(xi,yi)(i=1,2,…m),采用线性回归,损失函数为: J(θ0,θ1)=∑i=1m(hθ(xi)−yi)^2其中xi表示第i个样本特征,yi表示第i个样本对应的输出,hθ(xi)为假设函数。

5.Mini-Batch(小批量梯度下降法,Mini-batch Gradient Descent)与SGD(随机梯度下降法,Stochastic Gradient Descent)

Mini-Batch:小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代,1<x<m。一般可以取x=10,当然根据样本的数据,可以调整这个x的值。对应的更新公式是:
在这里插入图片描述
SGD:随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度。对应的更新公式是:

在这里插入图片描述
6.交叉验证(Cross-Validation)
在机器学习里,通常来说我们不能将全部用于数据训练模型,否则我们将没有数据集对该模型进行验证,从而评估我们的模型的预测效果。为了解决这一问题,有如下常用的方法:
1.The Validation Set Approach
第一种是最简单的,也是很容易就想到的。我们可以把整个数据集分成两部分,一部分用于训练,一部分用于验证,这也就是我们经常提到的训练集(training set)和测试集(test set)。该方法只用了部分数据进行模型的训练。我们都知道,当用于模型训练的数据量越大时,训练出来的模型通常效果会越好。所以训练集和测试集的划分意味着我们无法充分利用我们手头已有的数据,所以得到的模型效果也会受到一定的影响。
基于这样的背景,有人就提出了Cross-Validation方法,也就是交叉验证。
2.Cross-Validation
2.1 LOOCV
首先,我们先介绍LOOCV方法,即(Leave-one-out cross-validation)。像Test set approach一样,LOOCV方法也包含将数据集分为训练集和测试集这一步骤。但是不同的是,我们现在只用一个数据作为测试集,其他的数据都作为训练集,并将此步骤重复N次(N为数据集的数据数量)。
在这里插入图片描述
2.2 K-fold Cross Validation
另外一种折中的办法叫做K折交叉验证,和LOOCV的不同在于,我们每次的测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定。比如,如果K=5,那么我们利用五折交叉验证的步骤就是:
1.将所有数据集分成5份
2.不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的MSE_i
3.将5次的MSE_i取平均得到最后的MSE
在这里插入图片描述

2.3 Bias-Variance Trade-Off for k-Fold Cross-Validation
最后,我们要说说K的选取。事实上,和开头给出的文章里的部分内容一样,K的选取是一个Bias和Variance的trade-off。
K越大,每次投入的训练集的数据越多,模型的Bias越小。但是K越大,又意味着每一次选取的训练集之前的相关性越大(考虑最极端的例子,当k=N,也就是在LOOCV里,每次都训练数据几乎是一样的)。而这种大相关性会导致最终的test error具有更大的Variance。
一般来说,根据经验我们一般选择k=5或10。

2.4 Cross-Validation on Classification Problems
上面我们讲的都是回归问题,所以用MSE来衡量test error。如果是分类问题,那么我们可以用以下式子来衡量Cross-Validation的test error:
在这里插入图片描述
其中Erri表示的是第i个模型在第i组测试集上的分类错误的个数。

7.归一化
特点
对不同特征维度的伸缩变换的目的是使各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布的数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。
好处:
1 提高迭代求解的收敛速度
2 提高迭代求解的精度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值