第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

a.      为什么在神经网络中加入非线性是必须的?

答:神经网络的每一层主要是由 隐藏+**函数构成。

隐藏:wX+b的形势实现线性变换

**函数如:sigmoid,relu完成非线性变换

由于N个线性变换的叠加最终还是线性变换。因此,如果没有**函数完成非线性变换,则神经网络无法完成对非线性任务的回归及分类任务。


b.      写出下列每个**函数的表达式及其导数。在x∈[−5,5]  y∈[−10,10]范围内绘制原函数及其导数的图像。总结各**函数的利弊。

i.        ReLU

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

在z=0时,通常给定导数1,0,当然z=0的情况很少。

ii.       Sigmoid

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

导数为:

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

iii.     Tanh

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

导数为:

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】

第四周[任务1] 签到作业 过儿--《深度学习》花书训练营【第五期】


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的迭代次数减少,对于要达到相同精度,所花的时间可能大大增加,参数修正也显得更加缓慢。

 

**函数部分参考文章:

**函数的导数( Derivatives of activation functions)