Task03 打卡

模型过拟合欠拟合

训练误差和泛化误差

训练误差指模型在训练数据集上表现出的误差

泛化误差指模型在任意?个测试数据样本上表现出的误差的期望

我们的注意力应集中于降低泛化误差,使模型具有更好的普适性。

模型选择

验证数据集 (validation set)

预留?部分在训练数据集和测试数据集以外的数据来进?模型选择。这部分数据被称为验证数据集,简称验证集。

\(K\)折交叉验证

我们把原始训练数据集分割成K个不重合的?数据集,然后我们做K次模型训练和验证。每?次,我们使??个?数据集验证模型,并使?其他\(K-1\)个?数据集来训练模型。在这\(K\)次训练和验证中,每次?来验证模型的?数据集都不同。最后,我们对这\(K\)次训练误差和验证误差分别求平均。

过拟合和欠拟合

欠拟合(underfitting):模型?法得到较低的训练误差

过拟合(overfitting):模型的训练误差远小于它在测试数据集上的误差

影响因素:模型复杂度和数据集大小

模型复杂度过低,容易出现欠拟合;复杂的过高,容易出现过拟合。我们需要进行模型的选择以均衡训练误差和泛化误差。

训练集中数据量不足容易引起过拟合,而泛化误差与训练集数据量大小无关,所以应尽可能扩大训练集样本量,尤其是在模型复杂度较高的情况下。

应对过拟合的方法

权重衰减(weight decay)

\(L_2\)范数正则化,即统计学习中的岭回归。以线性回归为例,权重衰减将原来的损失函数\(\ell\left(w_{1}, w_{2}, b\right)=\frac{1}{n} \sum_{i=1}^{n} \frac{1}{2}\left(x_{1}^{(i)} w_{1}+x_{2}^{(i)} w_{2}+b-y^{(i)}\right)^{2}\),通过增加超参数\(\lambda\), 变为\(\ell\left(w_{1}, w_{2}, b\right)+\frac{\lambda}{2 n}\|w\|^{2}\),增加了一个具有\(L_2\)范数惩罚项的新损失函数。\(\|w\|^{2}=w_1^2+w_2^2\)

权重原有的迭代方式变为了

\(w_{1} \leftarrow\left(1-\frac{\eta \lambda}{|\mathcal{B}|}\right) w_{1}-\frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} x_{1}^{(i)}\left(x_{1}^{(i)} w_{1}+x_{2}^{(i)} w_{2}+b-y^{(i)}\right)\)
\(w_{2} \leftarrow\left(1-\frac{\eta \lambda}{|\mathcal{B}|}\right) w_{2}-\frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{R}} x_{2}^{(i)}\left(x_{1}^{(i)} w_{1}+x_{2}^{(i)} w_{2}+b-y^{(i)}\right)\)

可以理解为权重乘以一个小于1的数,再减去不含惩罚性的梯度。通过惩罚绝对值较大的模型参数为模型的学习增加限制,能够在一定程度上抑制过拟合。

丢弃法(dropout)

针对于多层感知机中的隐藏层进行“丢弃”。隐藏层中的每一个单元都有概率\(p\)被丢弃,同时有概率\(1-p\)对其进行拉伸。丢弃概率\(p\)为丢弃法超参数。

\(h_{i}^{\prime}=\frac{\xi_{i}}{1-p} h_{i}\)

\(h_i\)为某一个单元,进行丢弃之后得到的新的隐藏单元为\(h_i^{\prime}\) 。\(\xi_{i}\)为一随机变量,\(\xi_{i}=0,1\)的概率分别为\(p\), \(1-p\)。可计算得出\(E(\xi_{i})=1-p\)

\(E\left(h_{i}^{\prime}\right)=\frac{E\left(\xi_{i}\right)}{1-p} h_{i}=h_{i}\)

由上式可得丢弃并不会改变隐藏单元的期望值。但每个隐藏单元都有可能被丢弃,因此在训练模型的过程中不会过度依赖任何一个单元,从而起到正则化的作用。

正向传播、反向传播和计算图

正向传播(forward propagation)

正向传播是指对神经.络沿着从输.层到输出层的顺序,依次计算并存储模型的中间变量

下图为正向传播的计算图(computational graph),方形为变量,圆形为运算,箭头表示输入到输出之间的关系

他们之间的关系为:

\(z=W^{(1)}x\)

\(h=\phi(z)\)

\(o=W^{(2)}h\)

\(L=\ell(o,y)\)

\(s=\frac{\lambda}{2}\left(\left\|\boldsymbol{W}^{(1)}\right\|_{F}^{2}+\left\|\boldsymbol{W}^{(2)}\right\|_{F}^{2}\right)\)

\(J=L+s\)

反向传播 (back-propagation)

反向传播指的是计算神经?络参数梯度的?法。总的来说,反向传播依据微积分中的链式法则,沿着从输出层到输?层的顺序,依次计算并存储?标函数有关神经?络各层的中间变量以及参数的梯度。

依据链式法则计算反向梯度依次为:

\(\frac{\partial J}{\partial L}=1, \quad \frac{\partial J}{\partial s}=1\)

\(\frac{\partial J}{\partial o}=\operatorname{prod}\left(\frac{\partial J}{\partial L}, \frac{\partial L}{\partial o}\right)=\frac{\partial L}{\partial o}\)

\(\frac{\partial s}{\partial W^{(1)}}=\lambda W^{(1)}, \quad \frac{\partial s}{\partial W^{(2)}}=\lambda W^{(2)}\)

\(\frac{\partial J}{\partial W^{(2)}}=\operatorname{prod}\left(\frac{\partial J}{\partial o}, \frac{\partial o}{\partial W^{(2)}}\right)+\operatorname{prod}\left(\frac{\partial J}{\partial s}, \frac{\partial s}{\partial W^{(2)}}\right)=\frac{\partial J}{\partial o} h^{\top}+\lambda W^{(2)}\)

\(\frac{\partial J}{\partial h}=\operatorname{prod}\left(\frac{\partial J}{\partial o}, \frac{\partial o}{\partial h}\right)=W^{(2)^{T}}\frac{\partial J}{\partial o}\)

\(\frac{\partial J}{\partial z}=\operatorname{prod}\left(\frac{\partial J}{\partial h}, \frac{\partial h}{\partial z}\right)=\frac{\partial J}{\partial h} \odot \phi^{\prime}(z)\)

\(\frac{\partial J}{\partial W^{(1)}}=\operatorname{prod}\left(\frac{\partial J}{\partial z}, \frac{\partial z}{\partial W^{(1)}}\right)+\operatorname{prod}\left(\frac{\partial J}{\partial s}, \frac{\partial s}{\partial W^{(1)}}\right)=\frac{\partial J}{\partial z} x^{\top}+\lambda W^{(1)}\)

关系阐述

???,正向传播的计算可能依赖于模型参数的当前值,而这些模型参数是在反向传播的梯度计算后通过优化算法迭代的。

另???,反向传播的梯度计算可能依赖于各变量的当前值,而这些变量的当前值是通过正向传播计算得到的。

在模型参数初始化完成后,我们交替地进.正向传播和反向传播,并根据反向传播计算的梯度迭代模型参。

数值稳定性和模型初始化

深度模型有关数值稳定性的典型问题是衰减(vanishing)和爆炸(explosion)。

举例:多层感知机,如果有30层,每层都有两个权重分别为0.2和5,第30层输出为输?\(X\)分别与\(0.2^{30} \approx 1\times 10^{-21}\)(衰减)和\(5^{30}\approx 9 \times 10^{20}\)(爆炸)的乘积。

随机初始化模型参数

多层感知机若输入相同的权重,在每一个单元中会得到相同的值,使得多层感知机设置的多个隐藏单元失去意义,所以要在训练前设置随机初始值。

MXNet

权重服从-0.07~0.07之间的均匀分布,偏差参数全部清零。

Xavier

记全连接层输入个数为\(a\), 输出个数\(b\),Xavier随机初始化将使该层中权重参数的每个元素都随机采样于均匀分布:

\(U(-\sqrt{\frac{6}{a+b}}, \sqrt{\frac{6}{a+b}})\)

原文地址:https://www.cnblogs.com/amber-cui/p/12332883.html

时间: 2024-10-12 20:16:00

Task03 打卡的相关文章

iOS开发——项目实战总结&UITableView性能优化与卡顿问题

UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell.如果重用cell,为cell创建一个ID 每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就布局好

制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统

转自网络,供学习记录使用,红色部分是我实验时,这篇文章和网站稍有出入的地方. 目的:制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统 在http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/quickstart/zynq(姑且把这个链接成为链接1吧)链接中找到 图1 点击绿色字体的链接,下载镜像原始文件.这里有不同时期的版本,本说明中选择 图2 下载的原始文件为:2014_R2-

cocos Creator js 房卡麻将/血战/H5四川麻将源码下载搭建

房卡麻将/血战/H5四川麻将 源码 支持iOS/Android/H5 完整源码 1.基于NODEJS+MYSQL的服务器,成熟的技术方案,高效稳定,且方便Windows开发,Linux平台布署,节约服务器运转成本. 2.采用最新版本的cocos引擎,cocos creator开发,可快速的进行界面调整.且能够快速地发布iOS,Android版本. 3.如需H5版本,只需针对H5平台进行资源优化即可. 4.成熟可靠的房卡式设计,能满足大部分用户使用体验. 5.产品经过大量测试,可以运转稳定. 测试

Cocos2d-x山西推倒胡+扣点房卡麻将下载架设教程

1.数据库还原修改后台数据库jeefwtwo 表:sys_user8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 密码(123456)修改游戏数据库 QPPlatformDB表:DataBaseInfo  SQL的地址端口账号密码表:GameRoomInfo  修改服务器的机器标示 PS,搭建的源码必须完整,本文测试源码来自 Cocos2d-x山西推倒胡+扣点房卡麻将maliwl.com 2.执行脚本每个脚本都要执

【BZOJ4942】[Noi2017]整数 线段树+DFS(卡过)

[BZOJ4942][Noi2017]整数 题目描述去uoj 题解:如果只有加法,那么直接暴力即可...(因为1的数量最多nlogn个) 先考虑加法,比较显然的做法就是将A二进制分解成log位,然后依次更新这log位,如果最高位依然有进位,那么找到最高位后面的第一个0,将中间的所有1变成0,那个0变成1.这个显然要用到线段树,但是复杂度是nlog2n的,肯定过不去. 于是我在考场上yy了一下,这log位是连续的,我们每次都要花费log的时间去修改一个岂不是很浪费?我们可以先在线段树上找到这段区间

穿越300km沙漠:卡萨帝用7星服务做实体经济升级样板

3月31日,家住新疆克拉玛依戈壁沙漠"无人区"公路守护站的刘女士购买了1台卡萨帝洗衣机,在第2天中午,卡萨帝服务工程师就将洗衣机准时送达用户家.穿越300多公里的沙漠公路.冒着零下20多度的严寒,安装师傅的汽车也已经被沙石砸损,刘女士不禁为卡萨帝的七星级服务标准竖起大拇指,而这只是卡萨帝七星级服务的其中一个缩影.其背后,是由卡萨帝完备的服务链条作为支撑的7星级高端服务体系. 七星级服务:基于传统服务的"超级服务" 在过去的很长一段时间里,产业对"服务&qu

Windows2012上如何查光纤卡HBA的WWN

解决办法有: 1.使用MS utility "fcinfo.exe" (Fibre Channel Information Tool (fcinfo))去查看HBA卡的WWN号. fcinfo工具安装到需要查看WWN号的Windows系统上,接下来在开始菜单的"运行"中键入"CMD",进入命令行模式后, 输入fcinfo就可以看到主机HBA的WWN号了. 2.经过搜索, 找到文章Find HBA and WWN Information on Wi

canvas实现移动端和PC端刮刮卡效果

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"

微信网页中上传文件时“只能选择SD卡中的文件”问题

需求描述:在微信网页中上传文件到我们自己的服务器,使用 input  type=file标准控件: <input type="file" name="upfile" id="upfile" > 问题来了:苹果可以顺利上传图片文件的,安卓下每次选择完图片文件之后会弹出提示"只能选择SD卡中的文件"不能上传图片.手机已经设置默认存储为SD卡. 百度搜了一个下午没有结果,微信公众平台更没有答案shiiiit. 最后在cs