文章目录
Datawhale X 李宏毅苹果书 AI夏令营《深度学习详解》
Datawhale 学习手册:https://linklearner.com/activity/16/15/43
学习链接:https://github.com/datawhalechina/leedl-tutorial
PDF下载:
地址:https://github.com/datawhalechina/leedl-tutorial/releases
链接: https://pan.baidu.com/s/1ZKuXfkXHoyyvPR1-CP-Ffw 提取码: 2t6m
3.7 批量归一化
概述与背景知识
在深度学习中,优化问题的核心挑战之一是最小化损失函数,使得模型能够更好地拟合训练数据。在分类任务中,交叉熵损失函数通常比均方误差损失函数更为常用,因为它能提供更好的梯度信息,有助于优化过程。
主要概念
- 交叉熵: 衡量两个概率分布之间的差异,常用于分类任务。
- 均方误差: 测量预测值与真实值之间差异的平方的平均值,通常用于回归任务。
详细内容
- 交叉熵与均方误差对比: 当使用均方误差作为损失函数时,在某些情况下,梯度可能变得非常小,导致优化过程缓慢或停滞。相反,交叉熵损失函数即使在误差较大时也能提供较大的梯度,有助于优化过程。
- 实验示例: 考虑一个三类分类问题,网络输出三个值 y 1 , y 2 , y 3 y_1, y_2, y_3 y1,y2,y3,经过softmax转换为 y 1 ′ , y 2 ′ , y 3 ′ y'_1, y'_2, y'_3 y1′,y2′,y3′。假设正确标签为 1 , 0 , 0 1, 0, 0 1,0,0^T,那么通过可视化损失函数表面可以看到,使用交叉熵损失函数时,优化过程能够顺利地沿着梯度下降,而使用均方误差时则可能陷入平坦区域,梯度接近于零。
重点知识
- 使用交叉熵作为损失函数可以改善优化过程,尤其是在初始阶段。
实例
- 可视化损失函数: 通过可视化不同损失函数下的误差表面,可以看出交叉熵损失函数能够提供更加稳定的梯度,帮助优化算法更快地找到最优解。
内容总结
- 在分类任务中,交叉熵损失函数相比均方误差损失函数能够提供更好的梯度,有助于提高优化效率。
延伸学习
- 梯度消失问题: 了解梯度消失问题及其对优化过程的影响。
- 激活函数: 研究不同的激活函数对梯度的影响。
参考资料
3.7.1 考虑深度学习
概述与背景知识
批量归一化是一种在神经网络训练过程中对中间层输出进行归一化的技术,目的是改善优化过程,减少训练时间。
主要概念
- 批量归一化: 通过对一批数据的特征进行标准化处理,使其具有相同的分布,从而简化优化过程。
- 特征归一化: 通过标准化处理,使每个特征具有相似的数值范围。
详细内容
-
特征归一化: 通过计算每个特征的平均值和标准差,将其转换为均值为0,标准差为1的标准正态分布。
x ~ r i = x r i − μ i σ i \tilde{x}_{ri} = \frac{x_{ri} - \mu_i}{\sigma_i} x~ri=σixri−μi
-
深度学习中的归一化: 在深度学习中,除了输入特征外,中间层的输出也需要进行归一化,以保持分布稳定。例如,对于第 ( i ) 个样本的输出 ( z_i ),计算其平均值 ( \mu ) 和标准差 ( \sigma )。
μ = 1 n ∑ i = 1 n z i , σ = 1 n ∑ i = 1 n ( z i − μ ) 2 \mu = \frac{1}{n}\sum_{i=1}^{n} z_i, \quad \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}