优化深度神经网络

训练集、开发集(验证集)、测试集

偏差与方差

正则化

L2正则

Dropout

随机丢弃部分神经元输入,经常用于计算机视觉的神经网络内,因为通常没有足够的训练数据,很容易出现过拟合的问题

数据增强

训练集规一化

可以使其图像更均匀,梯度下降更容易收敛

梯度消失与梯度爆炸

梯度消失

  • 激活函数:如Sigmoid或Tanh,其导数在输入较大或较小时会趋近于零,梯度在多层传播中逐渐减小。

  • 网络深度:层数越多,梯度经过多次连乘后变得更小。

梯度爆炸

  • 权重初始化不当,导致梯度在传播中不断放大。

  • 网络深度增加,梯度连乘后变得过大。

参数初始化

He初始化与Xavier初始化

Mini-Batch梯度下降

在训练集数据量较大时,每轮迭代只使用小部分数据进行训练,大幅提高训练速度

如何选择batch大小

batch size太小会抖动严重,并且失去向量化带来的加速优势;太大则会每轮迭代成本很高

梯度下降算法的优化

Momentum 动量法传播

指数加权平均(exponentially weighted averages)

可以看到指数加权平均展开之后就是每老一点的数据就多乘以一次一个接近一的系数,使得老的数据影响越来越小,近似的计算近一段时间的平均值,这样相对直接取n填计算均值需要的内存更小。

如果单纯以上面的公式进行计算,会发现由于 导致在初始化的几天预测不准,大部分情况下只需要等待预热期过去就好,但是如果你关注预热期的准确度,可以每轮迭代增加一步进行计算,当t比较小时可以放大结果,当t比较大时则分母接近于0影响渐小

梯度下降结合指数加权平均

即针对偏导数结果进行指数加权平均,这样在偏导数震荡时可以减小震荡幅度,而连续同朝向时则可以加速收敛

RMSprop 均方根传播

区别于指数加权平均,这里使用梯度的平方进行指数加权,加速收敛

Adam 亚当优化算法

Adam算法结合了Momentum和RMSprop,增加了参数防止分母为0,并且对结果进行了误差校正

超参的选择

的对最终效果的影响很小,一般也使用固定值,分别为0.9和0.999,一般只需要对学习率进行调参

学习率衰减

可以减小在接近收敛时的震荡,加快收敛速度

局部最优问题

因为深度学习中都是高维空间,在高维空间中几乎不会出现真正的局部最优点(需要所有维度上都是局部最小值或局部最大值),因此这个不是问题。

实际经常会出现的是鞍点,鞍点是指部分维度为局部最大值而部分维度是局部最小值,还有更多的维度并不是局部最值(所有维度梯度均为0的概率也是极低的)。这种情况下Adam等算法都可以帮助加速逃离鞍点。

超参调参

随机取点,从粗到细

正态随机
指数随机

有时候不能直接正态分布的随机取点,比如对于学习率和指数加权平均系数等,可以结合指数随机增加特定区域随机出的概率

batch normalization 批归一化

前面讲过训练集归一化,还可以进一步对中间输出进行归一化,同时为了避免值只能在(0,1)之间,增加了两个可学习参数用于调整平均值

神经网络训练中应用归一化

在计算z之后对z进行归一化处理即可,β和γ均作为学习参数。通过归一化可以减少网络不同层的耦合,前一层网络的变化始终将输出保持一定范围内,减少了对后面网络层的影响。

由于归一化过程中输入会减掉平均值,所以在下面使用方式中并没有用

作用

推理时处理归一化

由于实际推理时可能只有一个输入,没有平均值、方差等统计值,此时需要使用训练时得到的统计值,比如使用每个batch计算得到的μ和的指数加权平均。

Softmax regression 多类分类问题

输出层神经元个数与分类数量一致,各神经元输出之和为1。softmax的命名是跟hardmax相对的,hardmax是指输出中只有一个1,其他均为0。

损失函数

后向传播

训练框架TensorFlow

两种实现方式

相关推荐
多巴胺与内啡肽.1 小时前
深度学习--自然语言处理统计语言与神经语言模型
深度学习·语言模型·自然语言处理
深度之眼2 小时前
2025时间序列都有哪些创新点可做——总结篇
人工智能·深度学习·机器学习·时间序列
不吃香菜?4 小时前
PyTorch 实现食物图像分类实战:从数据处理到模型训练
人工智能·深度学习
Light604 小时前
智启未来:深度解析Python Transformers库及其应用场景
开发语言·python·深度学习·自然语言处理·预训练模型·transformers库 |·|应用场景
数据智能老司机5 小时前
构建具备自主性的人工智能系统——在生成式人工智能系统中构建信任
深度学习·llm·aigc
谦行6 小时前
工欲善其事,必先利其器—— PyTorch 深度学习基础操作
pytorch·深度学习·ai编程
xwz小王子6 小时前
Nature Communications 面向形状可编程磁性软材料的数据驱动设计方法—基于随机设计探索与神经网络的协同优化框架
深度学习
生信碱移7 小时前
大语言模型时代,单细胞注释也需要集思广益(mLLMCelltype)
人工智能·经验分享·深度学习·语言模型·自然语言处理·数据挖掘·数据可视化
硅谷秋水8 小时前
通过模仿学习实现机器人灵巧操作:综述(上)
人工智能·深度学习·机器学习·计算机视觉·语言模型·机器人
开心快乐幸福一家人8 小时前
Spark-SQL与Hive集成及数据分析实践
人工智能·pytorch·深度学习