当前位置:   article > 正文

卷积神经网络CNN实战6_神经网络隐藏层神经元数量相等

神经网络隐藏层神经元数量相等

卷积神经网络过拟合

在这里插入图片描述

卷积神经网络正则化和Dropout

神经网络的学习能力受神经元数目以及神经网络层次的影响,神经元数目越大,神经网络层次越高,那么神经网络的学习能力越强,那么就有可能出现过拟合的问题;(通俗来讲:神经网络的空间表达能力变得更紧丰富了)
Regularization:正则化,通过降低模型的复杂度,通过在cost函数上添加一个正则项的方式来降低overfitting,主要有L1和L2两种方式
Dropout:通过随机删除神经网络中的神经元来解决overfitting问题,在每次迭代的时候,只使用部分神经元训练模型获取W和d的值,参考:
《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》
http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf

一般情况下,对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少overfitting。Dropout就是利用这个原理,每次丢掉一半左右的隐藏层神经元,相当于在不同的神经网络上进行训练,这样就减少了神经元之间的依赖性,即每个神经元不能依赖于某几个其它的神经元(指层与层之间相连接的神经元),使神经网络更加能学习到与其它神经元之间的更加健壮robust(鲁棒性)的特征。另外Dropout不仅减少overfitting,还能提高准确率。
正则化是通过给cost函数添加正则项的方式来解决overfitting,Dropout是通过直接修改神经网络的结构来解决overfitting
在这里插入图片描述
在这里插入图片描述
一般都可以使用Dropout解决过拟合问题
回归算法中使用L2范数相比于Softmax分类器,更加难以优化
对于回归问题,首先考虑是否可以转化为分类问题,比如:用户对于商品的评分,
可以考虑将得分结果分成1~5分,这样就变成了一个分类问题。
如果实在没法转化为分类问题的,那么使用L2范数的时候要非常小心,比如在
L2范数之前不要使用Dropout。
一般建议使用L2范数或者Dropout来减少神经网络的过拟合。

卷积神经网络训练算法

和一般的机器学习算法一样,需要先定义Loss Function,衡量预测值和实际值之间的误差,一般使用平方和误差公式
找到最小损失函数的W和b的值,CNN中常使用的是SGD
其实就是一般深度学习中的BP算法;SGD需要计算W和b的偏导,BP算法就是计算偏导用的,BP算法的核心是求导链式法则。

在这里插入图片描述
在神经网络中一般采用Mini-batch SGD,主要包括以下四个步骤的循环:

  1. 采样一个batch的数据
  2. 前向计算损失loss
  3. 反向传播计算梯度(一个batch上所有样本的梯度和)
  4. 利用梯度更新权重参数

使用BP算法逐级求解出ΔW和Δd的值
根据SGD(随机梯度下降),迭代更新W和b
在这里插入图片描述

池化层误差反向传播

Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。
在这里插入图片描述
Maxpool 池化层反向传播,除最大值处继承上层梯度外,其他位置置零。

在这里插入图片描述
平均池化,我们需要把残差平均分成2*2=4份,传递到前边小区域的4个单元即可。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/313978
推荐阅读
相关标签
  

闽ICP备14008679号