深度学习——卷积神经网络入门 (3)

  神经网络的学习能力受神经元个数与神经网络层次的深度影响,个数越多,层数越深,学习能力越强,越容易造成过拟合。为解决过拟合,有两种方法,一是正则化,通过在损失函数上加L1,或L2正则项。二是dropout方法Dropout:通过随机删除神经网络中的神经元来解决vefting问题,在每次迭代的时候,只使用部分神经元训练模型获取W和d的值一般情况下, 对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少overfitting。

  Dropout就是利用这个原理 ,每次丢掉一半左右的隐藏层神经元,相当于在不同的神经网络上进行训练,这样就减少了神经元之间的依赖性,即每个神经元不能依赖于某几个其它的神经元(指层与层之间相连接的神经元),使神经网络更加能学习到与其它神经元之间的更加健壮robust (鲁棒性)的特征。另外Dropout不仅减少overfitting, 还能提高测试集准确率。(训练数据集有时会降低)

深度学习——卷积神经网络入门

池化层:

池化的目的是为了缩小图像(或称为下采样(subsampled)或降采样(downsampled)),其主要目的有两个:

1、使得图像符合显示区域的大小;

2、生成对应图像的缩略图。

■在连续的卷积层中间存在的就是池化层,可以说每卷积计算后加上偏置项后就池化一次

主要功能是:通过逐步减小表征的空间尺寸来减小参数量和网络中的计算;池化层在每个特征图上独立操作。使用池化层替代卷积层可以达到压缩数据和参数的量,减小过拟合。

深度学习——卷积神经网络入门

拉平层:将池化后的特征图,拉伸成向量,

# 拉平层 [N, 28/4, 28/4, 64] ---> [N, 7*7*64] shape = pool2.get_shape() # [N, 7, 7, 64] flatten_shape = shape[1] * shape[2] * shape[3] flatted = tf.reshape(pool2, shape=[-1, flatten_shape])

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwjys.html