卷积神经网络CNN实战6

93 篇文章 10 订阅
20 篇文章 2 订阅

卷积神经网络过拟合

在这里插入图片描述

卷积神经网络正则化和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个单元即可。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值