详细解释CNN卷积神经网络各层的参数和链接个数的计算
demi 在 周三, 08/28/2019 - 17:46 提交
卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。
卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。
预处理的时候0中心化,最好数据增强一下,找预训练模型,ReLU激活函数,3*3卷积核,xavier初始化,sgd+momentum或者adam比较好用,bn(可以调大学习率,收敛很快),dropout(有bn可以去掉,最好加上,会训练慢一些),batch_size大一点,另外,多尺度训练效果拔群,前几层卷积核可以多一些。
随着深度卷积神经网络(CNN)在图像处理领域的快速发展,它已经成为机器视觉领域的一种标准,如图像分割、对象检测、场景标记、跟踪、文本检测等。然而,想要熟练掌握训练神经网络的能力并不是那么容易。比如,我们常常会遇到如下问题。你的数据和硬件有什么限制?你应该是从何种网络开始?你应该建立多少与卷积层相对的密集层?你的激励函数怎样去设置?即使你使用了最流行的激活函数,你也必须要用常规激活函数。
一般而言,深度卷积网络是一层又一层的。层的本质是特征图, 存贮输入数据或其中间表示值。一组卷积核则是联系前后两层的网络参数表达体, 训练的目标就是每个卷积核的权重参数组。
全连接神经网络,需要的参数过多,例如1000*1000的图像,则输入层有10^6个节点,若隐藏层也有10^6个节点,则输入层到隐藏层的参数有10^12个。CNN用局部感知和权值共享大大减少了参数,同时还具备其它优点。它们与自然图像自身具有的特性:特征的局部性与重复性完美贴合。
CNNs是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能。CNNs作为一个深度学习架构提出是为了最小化数据的预处理要求。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。
卷积和反卷积在CNN中经常被用到,想要彻底搞懂并不是那么容易。本文主要分三个部分来讲解卷积和反卷积,分别包括概念、工作过程、代码示例,其中代码实践部分主结合TensorFlow框架来进行实践。给大家介绍一个卷积过程的可视化工具,这个项目是github上面的一个开源项目。
神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt。
在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结。在阅读本文前,建议先研究DNN的反向传播算法:深度神经网络(DNN)反向传播算法(BP)
CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的对比,以及各种组合方式。