前沿技术第三章
3.神经网络优化和其他
总结
总结概括
1. 常用激活函数
• Sigmoid缺点:
◦ 易导致梯度消失:在靠近0和1的两端,梯度接近0,影响参数更新。
◦ 初始化权重需谨慎:若初始化权重过大,会导致神经元饱和,无法更新参数。
• ReLU优缺点(未详细提及,但作为对比):
◦ 优点:缓解梯度消失问题。
◦ 缺点:可能造成神经元死亡。
2. 常用损失函数
• 回归问题:
◦ MSE(均方误差):
▪ 优点:连续光滑,方便求导。
▪ 缺点:易导致梯度爆炸。
◦ MAE(平均绝对误差):
▪ 优点:梯度稳定,不易爆炸。
▪ 缺点:不光滑,不便求导。
◦ Smooth L1 Loss:
▪ 特点:对离群点更鲁棒,梯度变化小。
• 分类问题:
◦ 0-1损失函数:
▪ 不考虑误差程度,仅判断是否预测正确。
◦ 交叉熵损失函数:
▪ 应用广泛,描述模型与理想模型的距离。
◦ Softmax Loss:
▪ 适用于多分类问题。
◦ Logistic Loss:
▪ 用于二分类问题。
3. 深度模型优化方法
• 随机梯度下降(SGD):
◦ 每次使用一批数据计算梯度,避免全量数据计算的高成本。
◦ 优点:减少计算量,增加随机性,易于跳出局部极小点。
• 动量法(Momentum):
◦ 增加动量帮助跳出鞍点或局部极小点。
◦ 参数更新基于当前梯度和历史梯度。
• AdaGrad:
◦ 根据累积平方梯度调整学习率,平缓方向进步更大。
• RMSProp:
◦ 改进AdaGrad,引入衰减率,避免学习率过快递减。
• Adam:
◦ 结合RMSProp和Momentum,目前流行且高效。
4. 数据处理与训练技巧
• 数据预处理:
◦ 中心化:每个特征维度减去均值,使数据变为0均值。
◦ 标准化:调整不同特征维度的规模,常用方法包括除以标准差或缩放到[-1, 1]。
• 权重初始化:
◦ 全0初始化:不可取,导致权重失去不对称性。
◦ 随机初始化:打破对称性,但需注意初始化范围,避免梯度过小。
• 批标准化(Batch Normalization):
◦ 标准化过程可微,减少不合理初始化问题,加快收敛速度。
• 防止过拟合:
◦ Dropout:依概率P保留神经元,简单有效,广泛应用于深度学习。
大纲
联结主义(神经网络)大纲
一、常用的激活函数
• Sigmoid缺点
◦ 造成梯度消失
▪ 在靠近1和0的两端时,梯度接近0
▪ 导致模型不收敛
▪ 初始化权重需非常小心,否则多数神经元会饱和
• ReLU优缺点
◦ 未详细列出,需补充具体优缺点内容
• 其他激活函数
◦ 需补充具体内容
二、常用的损失函数
(一)回归问题
1 MSE均方误差
◦ 定义与公式
◦ 优点:连续光滑,方便求导
◦ 缺点:可能导致梯度爆炸
2 平均绝对误差(MAE)
◦ 定义与公式
◦ 优点:稳定梯度,不会导致梯度爆炸
◦ 缺点:在中心点不可求导
3 Smooth L1 Loss
◦ 定义与公式
◦ 优点:对离群点更鲁棒,梯度变化小
◦ 缺点:未明确提及
(二)分类问题
1 0-1损失函数
◦ 定义与公式
◦ 特点:实际应用较少,主要用于衡量其他损失函数效果
2 绝对值损失函数
◦ 内容未明确提及
3 交叉熵损失函数
◦ 重要性与应用范围
◦ 不同标签定义下的Loss表达式
4 Softmax Loss
◦ 多分类问题中的应用
5 Logistic Loss
◦ 内容未明确提及
三、深度模型中的优化
(一)优化目标
• 寻找参数θ以降低代价函数J(θ)
• 包括训练集性能评估与正则化项
(二)优化方法
1 批量算法
2 随机梯度下降(SGD)
◦ 动机与实现方式
◦ 小批量随机采样重要性
◦ 学习率选择策略
3 梯度下降法变式
◦ SGD特点
◦ Momentum
▪ 核心概念与作用
▪ 动量计算方法
◦ AdaGrad
▪ 算法机制与优势
◦ RMSProp
▪ 改进点与衰减率
◦ Adam
▪ RMSProp+Momentum结合
(三)优化器选择
• 当前主流优化算法
• 选择依据:使用者对算法熟悉程度及超参数调节能力
四、数据处理和训练技巧
(一)数据预处理
1 中心化
◦ 方法:每个特征维度减去相应均值
◦ 应用场景:图像数据等
2 标准化
◦ 方法:除以标准差或缩放到[-1,1]区间
◦ 目的:使不同特征维度处于相同规模
(二)权重初始化
1 全0初始化
◦ 缺点:破坏神经元独立性
2 随机初始化
◦ 方法:高斯随机化、均匀随机化
◦ 注意事项:避免初始化过小导致梯度流信号减弱
(三)批标准化(Batch Normalization)
• 核心思想:将标准化过程应用于神经网络每一层
• 优点:增强对不良初始化的鲁棒性,加快收敛速度
(四)防止过拟合
1 Dropout
◦ 核心思想:依概率P保留神经元
◦ 实现方式:每次训练时部分神经元被设置为0