卷积神经网络简介(学习笔记02)

今天主要讲讲卷积神经网络,相关的介绍其实网上很有很多,这里主要是写写自己的理解,笔记有点乱,请见谅!~!

对于每个训练实例,算法将其发送到网络中,并计算每个连续层中每个神经元的输出(这是正向的过程,和做预测一样)。然后它会度量网络的输出误差(对比预测值和实际的输出值),然后它会计算每个神经元对输出神经元的误差的贡献度。之后它会继续测量这些误差贡献度中有多少是来自于前一个隐藏层中的每一个神经元,这个过程一直持续到输入层(也就是第一层)。

简而言之,对于每个训练实例,首先是做反向传播算法做一次预测(正向过程),然后度量误差,然后反向遍历每个层次来度量每个连接的误差贡献度(反向过程),最后再微调每个连接的权重来降低误差(梯度下降)

感知器:输入什么就输出什么,外加一个额外的偏差特征。但是感知器和逻辑分类器相反,它不能输出某个概率值,他只能根据一个固定的阈值来做分类预测。所以感知有许多的限制,但是这些限制是可以通过多个感知器堆叠起来的方式消除,这就是多层感知器。

卷积神经网络最重要的构建模块就是卷积层。卷积层说白了就是只接受视野里的像素连接。这种结构允许网络集中在第一个隐藏层的低阶特征中,使用一个filter进行卷积,然后再下一个隐藏层中将其包装成一个高级的特征。具体可见下图:

在这里插入图片描述

用gif可能更简单明了一点。

在这里插入图片描述

内存问题:在预测过程中,一旦你完成了完成了下一层的计算,该层对内存的占用会立即释放。所以你只需要两层连续计算所需要的内存。但是在计算的时候,所有正向计算期间所有的计算数值都要留下来进行反向传递,所以内存大小至少为所有层的大小总和。

如果训练内存不够而崩溃,可以尝试减少训练批次的尺度,或者减小训练步幅或训练图层,或者用16位浮点代替32位浮点,或者直接采用分布式。

接下来讲讲池化层:在理解了卷积层的基础上,池化层就很好理解了。官方的定义是通过对输入图层进行二次采样以减少计算负担,内存利用率和参数数量(减少过拟合的风险)。换句话说就是人为地科学地减少计算工作量。

池化层和卷积层一样,都是每个神经元连接到上个输出中的矩阵接受视野中的有限神经元上。同样的,我们还需要定义接受野的大小,步幅和填充大小。然后是使用聚合函数进行聚合输入(max,mean等)。

举个栗子:比如内核为2*2,步幅为2,两个方向各减少1/2,整个面积就减少了1/4,如是最大池化层,那每个内核中最大的输入值才会进入下一层,其他的输入都会被丢弃。

一个典型的CNN架构是堆叠几个卷积层,然后是一个池化层,然后是另外几个卷积层(+ReLU),之后是另一个池化层,以此类推。在这个过程中,图像会越变越小,由于卷积层,它会变得越来越深。最后在堆栈的顶层,添加了几个由全连接层组成的常规前反馈网络,最后输出预测。具体可见下图​:​

在这里插入图片描述

最后我们来说下CNN的优点

  • 由于全连接层是部分连接的,且高度重复使用其权重,所以他的训练速度更快,减少了过拟合的风险,并且需要更少的训练数据。

  • 当CNN学会某个特定的特征方法时,它可以在图片的任何部分使用此方法并检测到特定的特征,这可以更好地应对具有复杂特征的图片。

  • CNN架构嵌入了关于像素组合的先验知识,使得它可以知道附近的像素是否接近。所以底层通常识别图像小区域的特征,在高层中,将低层识别到的特征组合成大特征。

参考资料:https://www.zybuluo.com/hanbingtao/note/485480

今天的学习笔记就分享到这了,我们下回见!~!

最后打个小广告,我的公众号,会写点学习心得,喜欢可以关注下!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值