第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】
a. 为什么在神经网络中加入非线性是必须的?
答:神经网络的每一层主要是由 隐藏+**函数构成。
隐藏:wX+b的形势实现线性变换
**函数如:sigmoid,relu完成非线性变换
由于N个线性变换的叠加最终还是线性变换。因此,如果没有**函数完成非线性变换,则神经网络无法完成对非线性任务的回归及分类任务。
b. 写出下列每个**函数的表达式及其导数。在x∈[−5,5] y∈[−10,10]范围内绘制原函数及其导数的图像。总结各**函数的利弊。
i. ReLU
在z=0时,通常给定导数1,0,当然z=0的情况很少。
ii. Sigmoid
导数为:
iii. Tanh
导数为:
c. 分类与回归的区别,以及softmax的作用
分类的output为离散指,且多数情况下为 one-hot 形势,准确率通常用 cross entropy (CE)类似的方法来计算
回归的output往往是连续数字,准确率通常用 MSE\MSE类似的方法计算
d. 独立手推ce损失函数
e. 批量梯度下降,随机梯度下降,小批量梯度下降这三种分别是什么意思,通常会用哪一种?为什么?其他两种的缺点是什么?
1)批量梯度下降
对全量集数据进行梯度计算,寻找负梯度方向进行优化
优点:
- 相比随机梯度下降更为稳定,避免受到个别数据扰动导致整体训练方向跑偏。
缺点:
- 耗资源:对于超大样本的情况下几乎不可能完成(由于需要将全部数据导入内存进行梯度计算,会导致内存不够用)
2)随机梯度下降
随机选取某一样本计算梯度,寻找负梯度方向进行优化
优点
- 速度相比批量梯度下降显著提升
缺点
- 很耗时间:对每一个梯度计算,优化,循环往复,总体耗时更长
- 可能出现局部最优或者无法优化的情况:由于部分样本可能噪音很大,因此可能出现某些样本的负梯度扰动导致整体训练方向偏离比较大。无法找到真正的最优化方向。
3)小批量梯度下降
结合披露梯度下降与随机梯度下降方法,折中方式,选择小批量样本进行梯度计算,寻找负梯度方向进行优化
优点:
- 随着batch size 的增大,个别噪音数据的扰动降低到最小,整体优化方向与完整的披露梯度下降相差不大。
- 根据自己机器的内存设定适合的batch size,重复利用计算资源。
- 在时间与资源方面取得平衡
- 可实现并行优化
缺点:
- 引入了batch size 参数,事实上,batch size参数的选择也成为了优化网络参数的一个关键问题。
关于batch size参数选择的影响:
1)合理范围内,增大batch size 好处:
- 内存利用率提升,大矩阵乘法并行化效率提升
- 完成一整个epoch所需迭代次数减少
- batch size越大,负梯度方向越准确,震荡越小
2)盲目增大batch size的坏处
- 可能导致在某些时间点,内存容量扛不住,导致崩溃
- 完成一个epoch的迭代次数减少,对于要达到相同精度,所花的时间可能大大增加,参数修正也显得更加缓慢。
**函数部分参考文章: