深度卷积神经网络基本介绍

深度卷积神经网络基本介绍nbsp nbsp nbsp nbsp 关于深度卷积神经网络的前世今生 就不在此处进行过多的介绍 在此 主要对网络的各个组成部分进行简要介绍 图 1 基本的深度卷积网络结构 nbsp nbsp nbsp nbsp 通过图 1 可知深度卷积神经网络主要是由输入层 卷积层 激活函数 池化层 全连接层和输出层组成 以下将以人脸识别为例对网络的各个组成部分进行简单的介绍 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 输入层 深度卷积网络可直接将图片作为网络的输入 通过训练提取特征 但是为了获得更好的

    关于深度卷积神经网络的前世今生,就不在此处进行过多的介绍。在此,主要对网络的各个组成部分进行简要介绍:

深度卷积神经网络基本介绍

图1 基本的深度卷积网络结构

        输入层:深度卷积网络可直接将图片作为网络的输入,通过训练提取特征,但是为了获得更好的效果,通常需要将图片进行预处理,在人脸识别中,就需要进行人脸检测等处理(MTCNN是一种较好的人脸检测方法)。此外,在样本不足的情况下会需要进行样本增强处理,包括旋转、平移,剪切、增加噪声、颜色变换等。

        卷积层:通过卷积运算实质是对输入进行另一种表示,若将卷积层视为黑盒子,那么我们可以将输出看作是输入的另外一种表示,而整个网络的训练也就是训练出这种表示所需的中间参数。图2为一般神经网络的示意图:

深度卷积神经网络基本介绍

        图2中w和b即为网络训练所需得到的参数,在卷积层中需要添加激活函数对运算进行非线性化。深度卷积网络将小的神经网络串联起来构成深度神经网络,主要有两种特殊的处理方式:

  1. 采用局部感受野:神经元仅与其相邻的上一层神经元相连接,通过对学习到的局部特征进行组合形成最后的全局特征。
  2. 采用权值共享:同一个卷积核在对不同的局部感受野进行操作时,采用相同的权值参数,能够减少网络运行过程中所需的参数计算量。通过每一层的多个卷积核获得图片的不同特征,不需要特意考虑特征在图片中的具体位置,该处理方式使得其在分析和处理图片任务上具有显著优势

深度卷积神经网络基本介绍

图3 卷积操作示意图

        图3为某个三维图进行卷积处理,同一卷积核对不同输入层进行卷积操作,得到一组输出,多个卷积核得到多少个输出。不同的图层和不同的输入图处理方法相似,中间的卷积运算时一种对参数进行处理的过程,而最后决定分类个数的是最后一层全连接层的个数。如100张图片,大小为32*32,图片为3维,即输入为100*32*32*3,通过大小为3*3的256个卷积核进行边缘补充后计算,输出为100*32*32*256,即在该层的卷积运算仅需对256个卷积核进行共享就可实现卷积操作,大大减少了所需参数。

        卷积运算输入和输出窗口的大小变化为:深度卷积神经网络基本介绍,其中W为输入的长/宽(输入长宽不一定相等),F为卷积核的大小,P为边缘补充个数,S为步长(卷积间隔个数),如图3中,输入为5*5,卷积核的大小为3*3,边缘补充为1,步长为2,其计算即为N=(5-3+1*2)/2+1,故而输出为3*3。

        vggnet通过实验证明三个3*3的卷积核效果比一个7*7的卷积核效果好,2个3*3的卷积核比一个5*5的网络效果好。此外,resnet提出的残差网络结构能有效的避免网络中参数泛华的问题。

深度卷积神经网络基本介绍

图4 平均池化和最大池化

      2*2的池化可以使特征图大小减半,后常采用大小为3*3,步长为2,pad=0的卷积核替换池化层,可实现类似的效果。

深度卷积神经网络基本介绍

图5 Relu函数及其改进函数

        全连接层:该层是网络中消耗参数最多的层,若全连接层的输入是4*4*100,全连接层的输出是512,则该层需要4*4*100* 512个参数;而一般的卷积层,若卷积核为4*4,输出为512,则仅需4*4*512个参数。常见的网络会含有两个全连接层,第二个全连接层的输出与分类个数的输出对应,而近期有文献表明,第一个卷积层是可以通过全局平均池化层等替换。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222567.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:29
下一篇 2026年3月17日 下午3:30


相关推荐

  • 文本分类算法之–贝叶斯分类算法的实现Java版本

    文本分类算法之–贝叶斯分类算法的实现Java版本package com.vista;import java.io.IOException;      import jeasy.analysis.MMAnalyzer;/*** 中文分词器*/public class ChineseSpliter {    /**    * 对给定的文本进行中文分词    * @param text 给定的文本   

    2022年5月30日
    32
  • ForkJoin使用「建议收藏」

    ForkJoin使用「建议收藏」Fork/Join框架是Java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情:  1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割  2.执行任务并合并结果:分割的子任务分别放到双端队列里,然后几个启动线程分别从双端队…

    2026年2月5日
    4
  • spring与quartz的整合[通俗易懂]

    spring与quartz的整合[通俗易懂]使用方法quartz是一个强大的任务调度框架,利用spring将其整合,添加较少的配置即可快速使用,主要步骤如下:0.导入需要的jar包或添加依赖,主要有spring-context-suppo

    2022年7月4日
    30
  • 数据结构 – 把二叉查找树转变成排序的双向链表(C++)

    数据结构 – 把二叉查找树转变成排序的双向链表(C++)分享一个大牛的人工智能教程 零基础 通俗易懂 风趣幽默 希望你也加入到人工智能的队伍中来 请点击 http www captainbed net 把二元查找树转变成排序的双向链表 byChimomo 思路 按照二叉树的中序遍历正好是按从小到大地顺序遍历全部节点 在遍历的过程中 更改它的逻辑结构 include lt iostream gt

    2026年3月19日
    2
  • Netfiex Conductor安装入门指南以及切换为mysql数据源

    Netfiex Conductor安装入门指南以及切换为mysql数据源通过 git 下载源码到本地 由于 Conductor 依赖于 gradle 编译 我们可以通过两种方式安装 gradle 通过命令 gradlewserve 自动下载 有点慢不建议 下载安装包 解压并配置环境变量到 bin 目录问题 如果你有数据源为 mysql 的需求可以按如下进行更改 publicinterf StringDB

    2026年3月17日
    2
  • Idea激活码永久有效Idea2021.1.3激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2021.1.3激活码教程-持续更新,一步到位Idea激活码永久有效2021.1.3激活码教程-Windows版永久激活-持续更新,Idea激活码2021.1.3成功激活

    2022年6月17日
    283

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号