李宏毅 4 神经网络训练不起来怎么办

本文探讨了神经网络训练中的局部最优和鞍点问题,以及批次与动量对训练的影响。解释了如何通过调整学习率和使用适应性学习率优化器来改进训练效果。此外,还讨论了损失函数的选择,特别是分类问题中为何使用交叉熵损失函数,并介绍了批次标准化在改变误差曲面中的作用。
摘要由CSDN通过智能技术生成

https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php

1. local minima and saddle point 局部最优和鞍点

https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/small-gradient-v7.pdf

local minima: 微分为零
saddle point: critical point 微分为零
在这里插入图片描述
根据泰勒展开公式,一次求导为0后可以看二次求导,判断是saddle point or local minima point.
如果红色二次求导部分恒大于0,则L(theta) > L(theta ') 恒成立,处于local minima。
如果红色二次求导部分恒小于0,则L(theta) < L(theta ') 恒成立,处于local maxima。
如果红色二次求导部分有时大于有时小于0,则处于saddle point。
在这里插入图片描述
在这里插入图片描述
当碰到saddle point 的时候,是可以通过特征向量/特征值判断方向的。
实际应用中已经很少用算特征值的方法了,因为当参数很多的时候,这种方法会运算量巨大。
在这里插入图片描述
当在一维的图中看上去是local minima, 在二维时看上去就是saddle point了.在实际训练时可能会有几十上百的参数,非常多维的。即使在训练非常好的时候,特征值也不一定全都是正的,也就是说都不是处于local minima, 而是在saddle point.
在这里插入图片描述

2. Batch and momentum 批次与动量

Batch

将数据集分为多个batch, 每一个batch都会算一次gradient更新参数。
重新打乱,再分一次batch(批次),每次这个动作就称为一个epoch(轮次).
在这里插入图片描述
large batch size(e.g. 20 个样本都在一个btach)批次计算, 更新一次需要遍历所有example, 历时长,但是很有效。
small batch size (e.g. 每个batch只有一个样本), 更新一次只需要遍历一个example, 每次更新的时间短, 但是不稳定。
但如果在平行运算中,两者的时间是差不多的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值