卷积神经网络Convolutional Neural Networks(CNN)

合集下载

深度学习中的卷积神经网络与循环神经网络

深度学习中的卷积神经网络与循环神经网络

深度学习中的卷积神经网络与循环神经网络深度学习是目前人工智能领域最为炙手可热的技术之一,它在图像识别、语音识别、自然语言处理等领域都取得了显著的成就。

而在深度学习领域中,卷积神经网络和循环神经网络是两个重要的模型,它们在不同的任务中展现出了卓越的性能。

本文将重点介绍卷积神经网络和循环神经网络的原理、结构和应用,旨在帮助读者更好地理解这两种神经网络模型。

一、卷积神经网络(Convolutional Neural Network,CNN)1.1原理卷积神经网络是受到生物视觉系统的启发而提出的一种深度学习模型,它模拟了人类视觉皮层的工作原理。

在卷积神经网络中,包含了卷积层、池化层和全连接层等组件。

卷积层是卷积神经网络的核心组件,它通过卷积操作从输入数据中提取特征。

卷积操作可以有效地减少参数数量,并且能够捕捉数据中的局部特征。

此外,卷积操作还具有平移不变性,能够识别特征在不同位置的模式。

池化层通常紧跟在卷积层后面,它的作用是降低特征图的尺寸,并减少模型对位置的敏感度。

常见的池化操作有最大池化和平均池化,它们分别选择特征图中的最大值和平均值作为输出。

全连接层是卷积神经网络中的最后一层,它将特征图展平成一维向量,并通过全连接操作将提取的特征进行分类或回归。

1.2结构卷积神经网络通常由多个卷积层、池化层和全连接层构成,其中卷积层和池化层交替出现,而全连接层通常出现在网络的最后一部分。

卷积神经网络的结构可以根据具体的任务进行调整,以达到更好的性能。

1.3应用卷积神经网络在图像识别、物体检测、人脸识别等领域取得了巨大的成功。

以ImageNet图像识别比赛为例,卷积神经网络模型始终是各种比赛的最佳选择,它在复杂的图像数据上展现了出色的识别性能。

此外,卷积神经网络还被广泛应用于医学影像识别、自动驾驶、智能安防等领域。

二、循环神经网络(Recurrent Neural Network,RNN)2.1原理循环神经网络是一种能够处理时序数据的神经网络模型,它具有记忆能力,能够对序列数据进行建模。

神经网络中的卷积神经网络与循环神经网络对比

神经网络中的卷积神经网络与循环神经网络对比

神经网络中的卷积神经网络与循环神经网络对比神经网络是一种模仿人类大脑神经元网络结构和功能的计算模型。

在神经网络中,卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)是两种常见的架构,它们在处理不同类型的数据和任务上有着各自的优势。

卷积神经网络是一种专门用于处理具有网格状结构的数据的神经网络。

它的主要特点是通过卷积层和池化层来提取输入数据的空间特征,并通过全连接层进行分类或回归。

卷积层中的卷积操作可以有效地捕捉到图像、音频等数据中的局部特征,而池化层则用于降低数据维度和参数量,提高模型的泛化能力。

与之不同,循环神经网络是一种用于处理序列数据的神经网络。

它的主要特点是通过循环单元来处理输入序列中的时序信息,并将之前的状态信息传递到下一个时间步。

循环神经网络在自然语言处理、语音识别等任务中有着广泛的应用。

它能够处理变长序列数据,并且能够捕捉到序列中的长期依赖关系。

卷积神经网络和循环神经网络在结构上有所不同。

卷积神经网络通常由多个卷积层、池化层和全连接层组成,层与层之间是前向传播的关系。

而循环神经网络则通过循环单元的连接,将信息在时间维度上传递。

这种循环的结构使得循环神经网络能够处理变长序列数据,并具有一定的记忆能力。

在应用上,卷积神经网络主要用于图像识别、目标检测和语义分割等任务。

由于卷积层的局部连接和权值共享,卷积神经网络在处理图像等数据时具有较强的特征提取能力和计算效率。

而循环神经网络则主要用于自然语言处理、语音识别和机器翻译等任务。

循环神经网络通过循环单元的记忆机制,能够捕捉到序列数据中的上下文信息,对于处理时序数据具有较好的效果。

然而,卷积神经网络和循环神经网络也存在一些限制和挑战。

卷积神经网络在处理长期依赖关系的序列数据时效果较差,循环神经网络在处理图像等数据时计算量较大。

为了克服这些问题,研究者们提出了一些改进的网络结构,如长短时记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU),它们在一定程度上解决了循环神经网络的梯度消失和梯度爆炸问题。

卷积神经网络算法分析及图像处理示例

卷积神经网络算法分析及图像处理示例

卷积神经网络算法分析及图像处理示例1. 引言1.1 介绍卷积神经网络算法卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习神经网络,广泛应用于图像识别、语音识别等领域。

它的特点是具有一种特殊的结构,在图像处理中有较好的表现。

卷积神经网络主要由卷积层、池化层和全连接层组成,其中卷积层负责提取图像特征,池化层负责降采样,全连接层用于分类或回归。

卷积层中的卷积操作可以有效提取图像的局部特征,通过多次卷积操作可以逐步提取更高级别的特征。

而池化层则可以减少参数数量,降低计算复杂度,提高模型的鲁棒性。

卷积神经网络通过反向传播算法进行训练,通过优化器进行参数更新,实现对图像特征的自动学习。

在图像分类、目标检测、人脸识别等任务中,卷积神经网络展现出较好的性能。

它在图像处理中的应用日益广泛,成为目前图像处理领域的主流算法之一。

卷积神经网络算法在图像处理领域具有重要的意义,为解决图像识别难题提供了强有力的工具。

在接下来的内容中,我们将详细分析卷积神经网络的原理、应用、优劣势以及图像处理示例,来进一步探讨卷积神经网络在图像处理中的作用和未来发展趋势。

1.2 概述图像处理的重要性图像处理在当今社会中扮演着越来越重要的角色。

随着数字技术的不断进步和普及,图像处理已经渗透到了我们日常生活的方方面面。

从社交媒体上的图片滤镜,到医学领域的医学影像诊断,再到智能交通系统中的车辆识别,图像处理技术的应用无处不在。

图像处理可以帮助我们更好地理解和利用视觉信息。

人类的视觉系统是一种强大的信息处理系统,但有时候我们需要借助计算机的帮助来理解和处理大量的图像数据。

通过图像处理算法,我们可以实现图像的增强、分割、分类等功能,从而更好地理解图像所蕴含的信息。

图像处理在很多领域中发挥着重要作用。

在医学领域,图像处理技术可以帮助医生更准确地诊断疾病;在安防领域,图像处理可以实现视频监控和人脸识别等功能;在商业领域,图像处理可以实现产品识别和广告推广等功能。

卷积神经网络CNN

卷积神经网络CNN

卷积神经网络(CNN)一、简介卷积神经网络(Convolutional Neural Networks,简称CNN)是近年发展起来,并引起广泛重视的一种高效的识别方法。

1962年,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的局部互连网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络[1](Convolutional Neural Networks-简称CNN)7863。

现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。

Fukushima在1980年基于神经元间的局部连通性和图像的层次组织转换,为解决模式识别问题,提出的新识别机(Neocognitron)是卷积神经网络的第一个实现网络[2]。

他指出,当在不同位置应用具有相同参数的神经元作为前一层的patches时,能够实现平移不变性1296。

随着1986年BP算法以及T-C问题[3](即权值共享和池化)9508的提出,LeCun和其合作者遵循这一想法,使用误差梯度(the error gradient)设计和训练卷积神经网络,在一些模式识别任务中获得了最先进的性能[4][5]。

在1998年,他们建立了一个多层人工神经网络,被称为LeNet-5[5],用于手写数字分类, 这是第一个正式的卷积神经网络模型3579。

类似于一般的神经网络,LeNet-5有多层,利用BP算法来训练参数。

它可以获得原始图像的有效表示,使得直接从原始像素(几乎不经过预处理)中识别视觉模式成为可能。

然而,由于当时大型训练数据和计算能力的缺乏,使得LeNet-5在面对更复杂的问题时,如大规模图像和视频分类,不能表现出良好的性能。

因此,在接下来近十年的时间里,卷积神经网络的相关研究趋于停滞,原因有两个:一是研究人员意识到多层神经网络在进行BP训练时的计算量极其之大,当时的硬件计算能力完全不可能实现;二是包括SVM在内的浅层机器学习算法也渐渐开始暂露头脚。

卷积神经网络的常见结构及应用领域

卷积神经网络的常见结构及应用领域

卷积神经网络的常见结构及应用领域随着人工智能技术的不断发展,卷积神经网络(Convolutional Neural Network,简称CNN)已经成为计算机视觉领域的重要工具。

它以其优秀的图像处理能力和高效的计算速度,被广泛应用于图像分类、目标检测、图像生成等领域。

本文将介绍卷积神经网络的常见结构及其在不同领域的应用。

一、卷积神经网络的基本结构卷积神经网络由多个卷积层、池化层和全连接层组成。

其中,卷积层通过卷积操作提取图像的特征,池化层用于降低特征图的维度,全连接层用于分类或回归任务。

1. 卷积层卷积层是卷积神经网络的核心组成部分。

它利用卷积操作在图像上滑动一个可学习的滤波器,提取图像的局部特征。

卷积操作可以有效地减少参数数量,并保留图像的空间结构信息。

常见的卷积操作包括二维卷积、一维卷积和三维卷积,分别用于处理图像、文本和视频等数据。

2. 池化层池化层用于减少特征图的维度,降低计算复杂度,并增强模型的鲁棒性。

常见的池化操作包括最大池化和平均池化,它们分别选择局部区域中的最大值和平均值作为输出。

池化操作可以减小特征图的尺寸,同时保留重要的特征。

3. 全连接层全连接层将卷积层和池化层提取的特征映射转化为分类或回归结果。

它将所有的特征连接起来,并通过激活函数进行非线性变换。

全连接层通常包括一个或多个隐藏层和一个输出层,其中隐藏层的神经元数量和层数可以根据任务需求进行设计。

二、卷积神经网络的应用领域1. 图像分类图像分类是卷积神经网络最常见的应用之一。

通过训练,卷积神经网络可以自动学习图像的特征表示,并将图像分类到不同的类别中。

在图像分类任务中,卷积神经网络通常采用多个卷积层和池化层提取图像的特征,然后通过全连接层进行分类。

2. 目标检测目标检测是指在图像中定位和识别特定目标的任务。

卷积神经网络可以通过滑动窗口或区域建议网络(Region Proposal Network,简称RPN)来检测图像中的目标。

卷积神经网络与循环神经网络

卷积神经网络与循环神经网络

卷积神经网络与循环神经网络卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)是目前深度学习领域最为流行的两种神经网络架构。

它们分别适用于不同的数据类型和任务,能够有效地处理图像、语音、文本等各种形式的数据。

一、卷积神经网络卷积神经网络是一种专门用于处理格状数据(如图像)的神经网络模型。

它的核心思想是利用卷积操作对输入数据进行特征提取,然后通过池化操作减小特征图的尺寸,最后将提取到的特征输入全连接层进行分类或回归。

卷积神经网络的结构主要包括卷积层、池化层和全连接层。

1.1卷积层卷积层是卷积神经网络的核心组件,它通过卷积操作对输入数据进行特征提取。

卷积操作是指使用一个滤波器(也称为卷积核)在输入数据上进行滑动计算,得到对应位置的输出。

滤波器的参数是在训练过程中通过反向传播算法学习得到的。

在图像处理中,卷积操作可以帮助提取图像中的边缘、纹理、角点等特征。

卷积层一般会使用多个不同的滤波器,从而提取多个不同的特征。

1.2池化层池化层是利用池化操作对卷积层的输出进行降采样,从而减小特征图的尺寸。

常见的池化操作有最大池化和平均池化。

最大池化是保留每个区域内的最大值作为输出,平均池化是计算每个区域内的平均值作为输出。

池化操作的目的是减少计算复杂度和减小过拟合。

1.3全连接层全连接层是卷积神经网络的最后一层,它将池化层的输出作为输入进行分类或回归。

全连接层的每个神经元都与上一层的所有神经元相连,输出一个标量值。

全连接层通常使用一种称为softmax的函数将输出转化为概率分布,再根据不同任务进行相应的损失函数计算和优化。

卷积神经网络通过共享权重和局部感知野的设计,大大减少了模型参数的数量,同时也能够保留输入数据的局部结构特征。

这使得卷积神经网络在图像识别、目标检测、语义分割等计算机视觉任务中取得了很大的成功。

二、循环神经网络循环神经网络是一种专门用于处理序列数据(如语音、文本)的神经网络模型。

趋势分析之卷积神经网络

趋势分析之卷积神经网络

趋势分析之卷积神经网络卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。

由于卷积神经网络能够进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。

对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被大量应用于计算机视觉、自然语言处理等领域。

第一个卷积神经网络是1987年由Alexander Waibel等提出的时间延迟网络(Time Delay Neural Network, TDNN)。

TDNN是一个应用于语音识别问题的卷积神经网络,使用FFT预处理的语音信号作为输入,其隐含层由2个一维卷积核组成,以提取频率域上的平移不变特征。

卷积神经网络热度变化图下面我们将用Trend analysis分析卷积神经网络领域内的研究热点。

(点击链接即可进入Convolutional Neural Networks Trend Analysis:https:///topic/trend?query=Convolutional%20Neural%20Networks)卷积神经网络长期以来是图像识别领域的核心算法之一,并在大量学习数据时有稳定的表现。

对于一般的大规模图像分类问题,卷积神经网络可用于构建阶层分类器(hierarchical classifier),也可以在精细分类识别(fine-grained recognition)中用于提取图像的判别特征以供其它分类器进行学习。

深度学习知识:卷积神经网络与循环神经网络的比较

深度学习知识:卷积神经网络与循环神经网络的比较

深度学习知识:卷积神经网络与循环神经网络的比较深度学习领域的两种主要神经网络模型,分别是卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)。

这两种模型都是使用多层神经元结构进行数据特征提取和高级模式识别。

但它们的结构和应用领域存在很大差异。

本文将对CNN和RNN进行比较,探讨它们的优缺点和适用场景,帮助读者更好地理解深度神经网络。

一、卷积神经网络(CNN)1. CNN的基本结构CNN主要是由卷积层(Convolutional Layer)、池化层(Pooling Layer)、全连接层(Fully Connected Layer)三种层次结构组成。

在CNN中,卷积层和池化层是特征提取的主要手段,而全连接层则负责对特征进行归一化和分类。

卷积层是CNN的核心部分,其主要目的是从输入的原始图像中学习特征。

它由多个卷积核组成,每个卷积核都会在不同位置扫描整个输入图像,提取局部特征并输出为一个特征图。

卷积操作可以有效地减少输入数据的规模,并且可根据不同的感受野大小和数量灵活调整卷积核的参数。

池化层是在卷积层之后的一种降采样操作,主要是为了减少卷积特征的数据量,提高网络的计算效率和鲁棒性。

在池化操作中,对每个特征图进行固定大小的滑动窗口采样,取窗口中的最大值或平均值作为该特征图的代表。

池化层可以保留最显著的特征,提高模型的判别能力。

全连接层是在传统神经网络中常用的结构,在CNN中用于分类器构建。

它将高维的卷积特征映射到指定的目标标签空间,实现图像的识别和分类。

2. CNN的优点和适用场景(1)有效的特征提取能力:CNN对于图像、语音、自然语言处理等输入数据具有很强的特征提取能力。

基于其卷积核和池化操作的局部特征提取,可自动学习和提取抽象的特征,进而实现强大的识别和分类能力。

(2)可灵活处理高维数据:CNN可以处理高维数据,例如三维立体图像数据等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

卷积神经网络Convolutional Neural Networks(CNN)一、什么是卷积首先回顾一下,数字图像处理中我们用卷积模板和原始图像的像素卷积。

过程如下:Step 1、先将模板旋转180度(又称折叠)Step 2、然后让模板依次和原始图像重叠,并且计算重叠部分的数值乘积之和以2D为例先对模板K做折叠,然后依次覆盖图像I,并且计算重叠部分的数值乘积之和依次进行到最后,会多出一圈,得到最后的卷积结果卷积的意义(图像处理而言);对图像使用不同的卷积模板,对图像做不同的处理。

比如平滑模板可以使图像模糊,并且可以减少噪声、锐化模板可以使图像的轮廓变得清晰。

二、卷积网络的结构2.1 从BP网络到卷积网络回想一下BP神经网络。

BP网络每一层节点是一个线性的一维排列状态,层与层的网络节点之间是全连接的。

这样设想一下,如果BP网络中层与层之间的节点连接不再是全连接,而是局部连接的。

这样,就是一种最简单的一维卷积网络。

如果我们把上述这个思路扩展到二维,这就是我们在大多数参考资料上看到的卷积神经网络。

具体参看下图:图1:全连接的2D 网络(BP网络)图2:局部连接的2D网络(卷积网络)现在我们考虑单隐层结构,上图左:全连接网络。

如果我们有1000x1000像素的图像,有1百万个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。

上图右:局部连接网络,每一个节点与上层节点同位置附近10x10的窗口相连接,则1百万个隐层神经元就只有100w乘以100,即10^8个参数。

其权值连接个数比原来减少了四个数量级。

因此,卷积网络降低了网络模型的复杂度,减少了权值的数量。

该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。

2.2 卷积网络的结构卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。

卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的下采样层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。

图3 经典的卷积神经网络结构图原始图像的大小决定了输入向量的尺寸,隐层由C-层(特征提取层)和S-层(下采样层)组成,每层均包含多个平面。

C1层神经元提取图像的局部特征,因此每个神经元都与前一层的局部感受野(也就是局部输入窗口)相连。

C1层中各平面(由神经元构成)提取图像中不同的局部特征,如边缘特征,上下左右方向特征等,C1层中的输入是有由上一层局部窗口的数值和连接的权值的加权和(也就是卷积,后面会具体解释为什么是卷积),然后通过一个激活函数(如sigmoid 函数,反正切函数)得到C1层的输出,接下来S2层是下采样层,简单来书,由4个点下采样为1个点,也就是4个数的加权平均。

换句话说,就是我们把2*2的像素缩小成为一个像素,某种意义上来说可以认识是图像处理中的模糊。

然后按照这个C—S的结构继续构成隐层,当然这些隐层的连接都是局部相连的。

同时有人会问了,例如S2和C3层具体要怎么连接呢,为什么会从6张变成16张特征图呢。

C3层的特征图是由S2层图像的感受野和对应权值的卷积后,通过随机的组合而形成的,也就意味着S2层和C3层并不像C1层和S2层那样是一一对应的。

但当我们感受野的大小和图像一样时,我们经过特征提取后就变成一个像素了,这里我们开始使用全连接(这样才能完整的把特征保留)。

2.3 为什么给这种局部连接命名为卷积网络卷积网络第一个特点是连接权值远远小于BP网络的权值。

卷积神经网络另外一个特性是权值共享。

这样一来就更进一步减少了对网络权值的训练(毕竟权值是共享的,也就意味着有一些全是是相同的)。

权值共享是指同一平面层的神经元权值相同。

如何理解呢!看下图2,假设红色的点和黑色的点是C1层第一个特征图的2个不同神经元,感受窗口的大小是5*5的(意味着有25个连接),这2个神经元连接的权值是共享的(相同的)。

这样一来,C1层中的每个神经元的输入值,都有由原始图像和这个相同的连接权值的加权和构成的,想想看,这个过程是不是和卷积的过程很像呢!没错,就是由这个得名的。

同时这样一来,我们需要训练的权值就更少了,因为有很多都是相同的。

还没理解的话,接着看C1层是一个卷积层(也就是上面说的特征提取层),由6个特征图Feature Map构成。

特征图中每个神经元与输入中5*5的邻域相连。

特征图的大小为28*28。

C1层有156个可训练参数(每个滤波器5*5=25个unit参数和一个bias[偏置]参数,一共6个滤波器,共(5*5+1)*6=156个参数),共156*(28*28)=122,304个连接。

S2层是一个下采样层,有6个14*14的特征图。

特征图中的每个单元与C1中相对应特征图的2*2邻域相连接。

S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。

结果通过sigmoid函数计算。

每个单元的2*2感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。

S2层有12个可训练参数和5880个连接。

三、卷积网络的训练我们想想卷积网络到底有什么那些参数需要训练呢。

第一、卷积层中的卷积模板的权值。

第二、下采样层的2个参数(每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置),第三、学习特征的组合(例如S2到C3的组合方式)3.1 我们先回顾一下BP的反向传播算法3.1.1、Feedforward Pass前向传播在下面的推导中,我们采用平方误差代价函数。

我们讨论的是多类问题,共c类,共N个训练样本。

这里表示第n个样本对应的标签的第k维。

表示第n个样本对应的网络输出的第k个输出。

对于多类问题,输出一般组织为“one-of-c”的形式,也就是只有该输入对应的类的输出节点输出为正,其他类的位或者节点为0或者负数,这个取决于你输出层的激活函数。

sigmoid就是0,tanh 就是-1.因为在全部训练集上的误差只是每个训练样本的误差的总和,所以这里我们先考虑对于一个样本的BP。

对于第n个样本的误差,表示为:传统的全连接神经网络中,我们需要根据BP规则计算代价函数E关于网络每一个权值的偏导数。

我们用l来表示当前层,那么当前层的输出可以表示为:输出激活函数f(.)可以有很多种,一般是sigmoid函数或者双曲线正切函数。

sigmoid将输出压缩到[0, 1],所以最后的输出平均值一般趋于0 。

所以如果将我们的训练数据归一化为零均值和方差为1,可以在梯度下降的过程中增加收敛性。

对于归一化的数据集来说,双曲线正切函数也是不错的选择。

3.1.2、Backpropagation Pass反向传播反向传播回来的误差可以看做是每个神经元的基的灵敏度sensitivities(灵敏度的意思就是我们的基b变化多少,误差会变化多少,也就是误差对基的变化率,也就是导数了),定义如下:(第二个等号是根据求导的链式法则得到的)因为∂u/∂b=1,所以∂E/∂b=∂E/∂u=δ,也就是说bias基的灵敏度∂E/∂b=δ和误差E对一个节点全部输入u的导数∂E/∂u是相等的。

这个导数就是让高层误差反向传播到底层的神来之笔。

反向传播就是用下面这条关系式:(下面这条式子表达的就是第l层的灵敏度,就是)公式(1)这里的“◦”表示每个元素相乘。

输出层的神经元的灵敏度是不一样的:最后,对每个神经元运用delta(即δ)规则进行权值更新。

具体来说就是,对一个给定的神经元,得到它的输入,然后用这个神经元的delta(即δ)来进行缩放。

用向量的形式表述就是,对于第l层,误差对于该层每一个权值(组合为矩阵)的导数是该层的输入(等于上一层的输出)与该层的灵敏度(该层每个神经元的δ组合成一个向量的形式)的叉乘。

然后得到的偏导数乘以一个负学习率就是该层的神经元的权值的更新了:公式(2)对于bias基的更新表达式差不多。

实际上,对于每一个权值(W)ij都有一个特定的学习率ηIj。

3.2 卷积神经网络3.2.1、Convolution Layers 卷积层我们现在关注网络中卷积层的BP更新。

在一个卷积层,上一层的特征maps被一个可学习的卷积核进行卷积,然后通过一个激活函数,就可以得到输出特征map。

每一个输出map可能是组合卷积多个输入maps的值:这里M j表示选择的输入maps的集合,那么到底选择哪些输入maps呢?有选择一对的或者三个的。

但下面我们会讨论如何去自动选择需要组合的特征maps。

每一个输出map会给一个额外的偏置b,但是对于一个特定的输出map,卷积每个输入maps的卷积核是不一样的。

也就是说,如果输出特征map j和输出特征map k都是从输入map i中卷积求和得到,那么对应的卷积核是不一样的。

Computing the Gradients梯度计算我们假定每个卷积层l都会接一个下采样层l+1 。

对于BP来说,根据上文我们知道,要想求得层l的每个神经元对应的权值的权值更新,就需要先求层l的每一个神经节点的灵敏度δ(也就是权值更新的公式(2))。

为了求这个灵敏度我们就需要先对下一层的节点(连接到当前层l的感兴趣节点的第l+1层的节点)的灵敏度求和(得到δl+1),然后乘以这些连接对应的权值(连接第l层感兴趣节点和第l+1层节点的权值)W。

再乘以当前层l的该神经元节点的输入u的激活函数f的导数值(也就是那个灵敏度反向传播的公式(1)的δl的求解),这样就可以得到当前层l每个神经节点对应的灵敏度δl了。

然而,因为下采样的存在,采样层的一个像素(神经元节点)对应的灵敏度δ对应于卷积层(上一层)的输出map的一块像素(采样窗口大小)。

因此,层l中的一个map的每个节点只与l+1层中相应map的一个节点连接。

为了有效计算层l的灵敏度,我们需要上采样upsample 这个下采样downsample层对应的灵敏度map(特征map中每个像素对应一个灵敏度,所以也组成一个map),这样才使得这个灵敏度map 大小与卷积层的map大小一致,然后再将层l的map的激活值的偏导数与从第l+1层的上采样得到的灵敏度map逐元素相乘(也就是公式(1))。

在下采样层map的权值都取一个相同值β,而且是一个常数。

所以我们只需要将上一个步骤得到的结果乘以一个β就可以完成第l层灵敏度δ的计算。

我们可以对卷积层中每一个特征map j重复相同的计算过程。

但很明显需要匹配相应的子采样层的map(参考公式(1)):up(.)表示一个上采样操作。

如果下采样的采样因子是n的话,它简单的将每个像素水平和垂直方向上拷贝n次。

相关文档
最新文档