神经网络参数记录

batch_size

batch_size跑的太大,GPU会发挥平行运算的优势、跑的超快,但结果可能会坏掉。

总结:

1)batch数太小,而类别又比较多的时候,真的可能会导致loss函数震荡而不收敛,尤其是在你的网络比较复杂的时候。

2)随着batchsize增大,处理相同的数据量的速度越快。

3)随着batchsize增大,达到相同精度所需要的epoch数量越来越多。

4)由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。

5)由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

6)过大的batchsize的结果是网络很容易收敛到一些不好的局部最优点。同样太小的batch也存在一些问题,比如训练速度很慢,训练不容易收敛等。

epoch

迭代的次数,一个时期 = 所有训练样本的一个正向传递和一个反向传递。

softmax

softmax函数,也叫做归一化指数函数,它可以将一个包含任意实数的的K维向量z压缩到另一个k维向量$\sigma$

池化

1.前向传播

最大子采样函数取区域内所有神经元的最大值(max-pooling)。以下图为例,输入数据X为44,采样核size为2,stride为2,no padding。输入数据大小类似卷积层的计算方法,(input_width+2pad-pool_size)/stride+1。前向传播中不仅要计算pool区域内的最大值,还要记录该最大值所在输入数据中的位置,目的是为了在反向传播中,需要把梯度值传到对应最大值所在的位置。

《神经网络参数记录》

2.反向传播

还是引用上图,通过前向传播已知,梯度值对应上一层输出的最大值位置。具体过程如下:
《神经网络参数记录》

我搭的神经网络不work该怎么办!看看这11条新手最容易犯的错误

Ref

最大池化层(Maxpool Layer)

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注