zoukankan      html  css  js  c++  java
  • 卷积神经网络

    卷积神经网络比神经网络多了卷积2个字,但是其实一般多了2个层:卷积层和池化层。卷积层的作用主要是用来提取特征的,而且能保存好空间结构,因为在全连接层,直接把向量给拉平了。设立多个卷积层,就能提取各种各样的特征。然后就是池化层,它的作用是降采样,就是去除一些图片中“不重要”的东西(把平面维度变小,比如100*100*3变成50*50*3),比如人脸识别,人脸一般在中间,所以图片边框就会降采样多。

    1.卷积层

    卷积其实和滑动窗口算法比较相似,是一个小的卷积核(例如5*5*3),在一个大的输入图像中滑动(例如32*32*3),在滑动匹配的时候,卷积核会和图像上的像素进行内积,如下图,最后滑动完会生成一个28*28*1的激活映射(这里为1的原因是因为在乘的时候也拉平了向量,所以1个卷积核只能生成1个深度为1的激活映射,当有N个卷积核的时候,就会生成深度为N的激活映射,其实也就对应着这个图像的N个特征)

    下面是举例卷积核移动会产生激活映射的例子,形成一个公式输出激活映射大小=(N-F)/stride+1,N是图像的大小,F是卷积核的大小,stride是步长,步长就是卷积核一次移动多少距离(这里一般来说都是正方形,如果不是正方形也可以处理为正方形):

    但是这里有个问题,当步长为3时,得到的就不是整数了,就会形成不对称的特征,所以这个时候不能直接移动3,那怎么办呢,添加0补充!一般来说,卷积核的大小为3,5,7,然后0填充分别为1,2,3,也就是(F-1)/2

    2.池化层

    池化层就是为了降采样,说白了就是减小像素的数量,一般会使用最大化池,即设定一个最大值N,然后在各个N*N(这个值一般为2)方块中取最大值,如下图:

    3.总结

    总的过程一般顺序是卷积--→池化–→全连接层。当然为了更好的提取特征和减少计算(降采样),卷积和池化可能会差穿进行,下图是一个很好的例子:

    会在最后的POOL(池化)层输出给全连接层,然后全连接层通过前面神经网络的方法计算出每个分类的分数,从而进行图像分类。

  • 相关阅读:
    实习生Python炫技却被主管教育?原来是这样!
    Python炫技操作却被骂,为啥?
    你要是能学会这招,还能没有小姐姐吗!
    用Python快速从深层嵌套 JSON 中找到特定的 Key
    哪儿网领域驱动设计(DDD)实践之路 Qunar技术沙龙 2021-05-11
    闲鱼单体应用Serverless化拆分实践 原创 柬超 闲鱼技术 今天
    // context canceled ctx := context.Background()
    Virtual DOM(虚拟DOM)
    新一代Web技术栈的演进:SSR/SSG/ISR/DPR都在做什么?
    延迟队列浅析 原创 张浩 网易传媒技术团队 2019-08-02
  • 原文地址:https://www.cnblogs.com/tangmiao/p/8202722.html
Copyright © 2011-2022 走看看