三、深度学习基础5(Softmax、Batch_Size)

Softmax 函数

softmax 用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

图像映射过程如下图所示:

softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为 1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!

Batch_Size

Batch 的选择,首先决定的是下降的方向。
如果数据集比较小,可以采用全数据集的形式。优点是:
1、由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。
2、由于不同权重的梯度值差别巨大,因此选取一个全局的学习率很困难。 Full Batch Learning 可以使用 Rprop 只基于梯度符号并且针对性单独更新各权值。 

对于较大的数据集,以完整数据集的形式,缺点是:
1、随着数据集的海量增长和内存限制,一次性载入所有的数据进来变得越来越不可行。
2、以 Rprop 的方式迭代,会由于各个 Batch 之间的采样差异性,各次梯度修正值相互抵消,无法修正。这才有了后来 RMSProp 的妥协方案。

在合理范围内,增大 Batch_Size 有何好处

1、内存利用率提高了,大矩阵乘法的并行化效率提高。
2、跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
3、在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。

盲目增大 Batch_Size 有何坏处

1、内存利用率提高了,但是内存容量可能撑不住了。
2、跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
3、Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。

调节 Batch_Size 对训练效果影响到底如何

1、Batch_Size 太小,可能导致算法不收敛。
2、随着 Batch_Size 增大,处理相同数据量的速度越快。                                                            3、随着 Batch_Size 增大,达到相同精度所需要的 epoch 数量越来越多。
4、由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。
5、由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最
最终收敛精度最好。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年4月28日
下一篇 2022年4月28日

相关推荐