笔记一、batch_size 非线性激活函数
一、深度学习中batch_size的大小对模型训练的影响。
在合理范围内,增加batch_size的好处:
- 提高了内存利用率以及大矩阵乘法的并行化效率。
- 跑完一次epoch所需要的迭代次数变少。
- 在一定范围内batch_size越大,其确定的下降方向越准,引起训练振荡越小。
盲目增大batch_size的坏处:
- 内存利用率提高了,但内存容量可能不够用。
- 跑完一次epoch所需的迭代次数减少,但要想达到相同的精度,所花费的时间大大增大,从而对参数的修正也显得更加缓慢。
- batch_size增大到一定程度,其确定的下降方向已经基本不再变化。
batch_size=1时:
- 无法实现并行化。
- 每次修正方向以各自样本的梯度方向修正,难以达到收敛。
二、激活函数为什么选取非线性函数
假如使用线性函数作为激活函数,每层输出都是上一层输入的线性函数,无论神经网络有多少多少层,输出都是输入的线性组合。例如:一个f(x)=kx(k≠0)作为激活函数,经过一个三层神经网络之后输出为y=k^3 x,无法发挥多层神经网络带来的优势。
相反使用非线性函数,激活函数给神经元引进了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样的神经网络就可以应用到众多的非线性模型中。
【参考】https://www.zhihu.com/question/32673260
https://blog.csdn.net/qq_34152244/article/details/100642157