深度神经网络基础(2006)

四、深度神经网络(2006)


深度学习:可以有多个隐含层,包括 深度神经网络卷积神经网络循环神经网络LSTM强化学习等。

4.1 深度神经网络

梯度爆炸和梯度消失问题: 原因是网络层数太深,梯度反向传播中的连乘效应。

4.2 梯度下降

4.2.1 随机梯度下降:每次只随机选择一个样本来更新模型参数

优点: 学习速度

缺点: 每次更新不会按照梯度下降最快的方向进行,收敛速度慢。

批量梯度下降:每次使用整个数据集训练

优点: 每次更新会朝着正确的方向进行,收敛速度快,迭代次数少。

缺点: 每次更新需要遍历整个数据集,需要计算量大,消耗内存多。

4.2.2 Mini-Batch 梯度下降:小批量梯度下降算法----主流方法(介于批量和随机之间)

优点: 保证收敛和更新速度。

数据集加载和划分: (不涉及梯度下降算法)

torch.utils.data.DataLoader(dataset, batch_size=, shuffle=, ...)

4.3 优化器(梯度学习算法):torch.optim

4.3.1 SGD:就是Mini-Batch梯度下降算法

最常用的优化方法

4.3.2 Momentum:加速收敛

class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=FALSE)

SGD方法和动量方法都是调用同一个函数,靠设置参数momentum进行区分。

4.3.3 AdaGrad:自适应缩小学习率

累计历史上出现过的梯度(平方),用积累的梯度平方的总和的平方根,去逐元素地缩小现在的梯度。某种意义上是在自行缩小学习率,学习率的缩小与过去出现过的梯度有关。

缺点: 刚开始参数的梯度一般很大,但是算法在一开始就强力地缩小了梯度的大小,也称学习率的过早过量减少。

class torch.optim.Adagrad(prams, lr, lr_decay, weight_decay)

4.3.4 RMSProp :加入了平方梯度的衰减项

AdaGrad算法在前期可能会有很大的梯度,自始至终都保留了下来,这会使得后期的学习率过小。RMSProp在这个基础之上,加入了平方梯度的衰减项,只能记录最近一段时间的梯度,在找到碗状区域时能够快速收敛。

class torch.optim.RMSProp(params, lr=0.01, alpha=0.99, eps=1e-8, weight_decay=0, momentum=0, centered=False)

4.3.5 Adam :学习率自适应优化算法,动量方法和RMSProp方法的结合,更新一阶矩和二阶矩。(目前最好的)

Adam算法和之前类似,也是自适应减少学习率的算法,不同的是它更新了一阶矩和二阶矩,用一阶矩有点像有动量的梯度下降,而用二阶矩来降低学习率。

class torch.optim.Adam(params, lr=0.001, betas(0.9, 0.999), eps=1e-8, weight_decay=0)

torch.squeeze(imput): 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,默认是将a中所有为1的维度删掉。也可以通过dim指定位置,删掉指定位置的维数为1的维度。

torch.unsqueeze(imput, dim): 这个函数主要是对数据维度进行扩充。需要通过dim指定位置,给指定位置加上维数为1的维度。

在这里插入图片描述

torch.linspace(start, end, steps): 函数的作用是,返回一个一维的tensor(张量),这个张量包含了从start到end,分成steps个线段得到的向量。

4.4 正则化:解决欠拟合和过拟合的问题

方式: 在目标函数中引入额外的信息来惩罚过大的权重参数。

目标函数: J ( θ ) J(\theta) J(θ)

在优化时,不是直接优化 J ( θ ) J(\theta) J(θ),而是优化 J ( θ ) + λ R ( W ) J(\theta)+\lambda R(W) J(θ)+λR(W), 其中 λ \lambda λ为正则化系数, λ R ( W ) \lambda R(W) λR(W)称为正则项, λ \lambda λ越大,惩罚越大只对权重W做正则惩罚而不对偏置b做正则惩罚。

4.4.1 参数规范惩罚(L2正则化、L1正则化)

1、L2参数正则化(权值衰减)
2、L1参数正则化(产生更稀疏的解)

4.4.2 Batch Normalization:把越来越偏的特征分布强制拉回比较标准的特征分布

4.4.3 Dropout:以一定概率随机丢弃一些神经元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值