卷积神经网络CNN
简述卷积神经网络(CNN)和循环神经网络(RNN)的原理及应用场景

简述卷积神经网络(CNN)和循环神经网络(RNN)的原理及应用场景卷积神经网络(CNN)和循环神经网络(RNN)是当前深度学习领域最为重要和广泛应用的两种神经网络模型。
它们分别在计算机视觉和自然语言处理等领域取得了巨大的成功。
本文将从原理和应用场景两个方面进行详细介绍。
一、卷积神经网络(CNN)的原理及应用场景卷积神经网络(CNN)是一种专门用于处理具有网格结构数据的深度学习模型。
它最初是为了解决计算机视觉中的图像分类问题而提出的,但现在已经广泛应用于图像识别、目标检测、语义分割等多个领域。
1.1 原理卷积神经网络(CNN)主要由卷积层、池化层和全连接层组成。
其中,卷积层是CNN最重要的组成部分,它通过一系列滤波器对输入数据进行特征提取。
滤波器通过与输入数据进行点乘操作,得到特征图(feature map),从而捕捉到输入数据中的局部特征。
池化层用于减小特征图的尺寸,并保留重要特征。
常见的池化操作有最大池化和平均池化。
最大池化选择每个区域中的最大值作为输出,平均池化则选择每个区域的平均值作为输出。
这样可以减小特征图的尺寸,减少参数数量,从而降低计算复杂度。
全连接层将特征图转换为一维向量,并通过一系列全连接层进行分类或回归等任务。
全连接层中的每个神经元都与上一层中所有神经元相连,这样可以充分利用上一层提取到的特征进行分类。
1.2 应用场景卷积神经网络(CNN)在计算机视觉领域有着广泛应用。
其中最典型的应用场景是图像分类和目标检测。
在图像分类任务中,CNN可以通过学习到的特征提取器将输入图像分为不同类别。
例如,在ImageNet数据集上进行分类任务时,CNN可以实现对1000个不同类别进行准确分类。
在目标检测任务中,CNN可以识别并定位输入图像中存在的多个目标。
通过在卷积网络之后加入额外的回归和分类层,可以实现对目标位置和类别进行同时预测。
此外,在语义分割、人脸识别、图像生成等领域,CNN也有着广泛的应用。
一文看懂卷积神经网络-CNN(基本原理独特价值实际应用)

⼀⽂看懂卷积神经⽹络-CNN(基本原理独特价值实际应⽤)卷积神经⽹络 – CNN 最擅长的就是图⽚的处理。
它受到⼈类视觉神经系统的启发。
CNN 有2⼤特点:能够有效的将⼤数据量的图⽚降维成⼩数据量能够有效的保留图⽚特征,符合图⽚处理的原则⽬前 CNN 已经得到了⼴泛的应⽤,⽐如:⼈脸识别、⾃动驾驶、美图秀秀、安防等很多领域。
CNN 解决了什么问题?在 CNN 出现之前,图像对于⼈⼯智能来说是⼀个难题,有2个原因:图像需要处理的数据量太⼤,导致成本很⾼,效率很低图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不⾼下⾯就详细说明⼀下这2个问题:需要处理的数据量太⼤图像是由像素构成的,每个像素⼜是由颜⾊构成的。
现在随随便便⼀张图⽚都是 1000×1000 像素以上的,每个像素都有RGB 3个参数来表⽰颜⾊信息。
假如我们处理⼀张 1000×1000 像素的图⽚,我们就需要处理3百万个参数!1000×1000×3=3,000,000这么⼤量的数据处理起来是⾮常消耗资源的,⽽且这只是⼀张不算太⼤的图⽚!卷积神经⽹络 – CNN 解决的第⼀个问题就是「将复杂问题简化」,把⼤量参数降维成少量参数,再做处理。
更重要的是:我们在⼤部分场景下,降维并不会影响结果。
⽐如1000像素的图⽚缩⼩成200像素,并不影响⾁眼认出来图⽚中是⼀只猫还是⼀只狗,机器也是如此。
保留图像特征图⽚数字化的传统⽅式我们简化⼀下,就类似下图的过程:图像简单数字化⽆法保留图像特征图像的内容假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产⽣完全不同的数据表达。
但是从视觉的⾓度来看,图像的内容(本质)并没有发⽣变化,只是位置发⽣了变化。
(本质)并没有发⽣变化,只是位置发⽣了变化所以当我们移动图像中的物体,⽤传统的⽅式的得出来的参数会差异很⼤!这是不符合图像处理的要求的。
⽽ CNN 解决了这个问题,他⽤类似视觉的⽅式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。
卷积神经网络在医学图像自动分析中的应用

卷积神经网络在医学图像自动分析中的应用卷积神经网络(Convolutional Neural Network,CNN)是一种基于人工神经网络的算法。
它在图像、语音、文本等领域的人工智能应用中表现出色,并在医学图像自动分析中展示了强大的潜力和效果。
本文将详细讨论CNN在医学图像自动分析中的应用。
一、什么是卷积神经网络?卷积神经网络是一种多层神经网络结构,其中包含卷积层、池化层、全连接层等组件。
它们通过不断学习图像结构和特征,进行高效自动分类和识别。
CNN首次被应用于手写数字识别和图像分类等领域,而后广泛地应用于医学图像自动分析中。
二、 CNN在医学图像自动分析中的优点医学图像是对人类身体状况和生理结构的重要记录形式,但传统的图像分析方法会受到分辨率、噪声、光照、姿态、尺度等多种因素的影响。
而卷积神经网络具有以下优点:1.自动特征提取CNN对于医学图像的自动特征提取十分有效。
其基于神经网络结构的卷积层可自动提取图像的局部特征,形成特征映射。
经过池化层的处理,可提高特征的鲁棒性,降低数据维度以减少过拟合的可能性。
2.高准确率CNN在医学图像的自动分类和识别方面十分有效,其精度可高达98%以上。
该算法通过对大量数据的学习和分类,使用卷积和池化操作将图像的特征映射转换为输出值,从而实现自动识别。
3.灵活性CNN的神经网络架构具有灵活性,可根据不同的输入图像尺寸、分辨率、颜色等建立不同的网络结构。
同时,CNN还具有可训练性,通过调整网络权重和偏置,可不断优化算法的表现。
三、医学图像自动分析中的应用场景卷积神经网络在医学图像自动分析中的应用场景包括以下几个方面:1.肺结节分类肺结节是肺癌的早期诊断标志之一,CNN可有效自动分类不同类型的肺结节。
例如,肺结节的大小、边缘、形态、纹理等特征可被CNN自动提取并进行分类。
2.脑部影像分析CNN可应用于自动分析脑部影像的病症,例如卒中、脑癌、颅内出血等。
其自动学习的能力可以大大减少专业医师对脑部影像所需的时间和劳动量。
深度学习技术中的卷积神经网络结构和特点解析

深度学习技术中的卷积神经网络结构和特点解析卷积神经网络(Convolutional Neural Network,CNN)是当今深度学习技术中最重要的模型之一。
它被广泛应用于计算机视觉、自然语言处理、语音识别等领域。
本文将解析卷积神经网络的结构和特点,帮助读者更好地理解和运用这一强大的深度学习工具。
一、卷积神经网络的结构卷积神经网络由多层神经网络组成,每一层由多个神经元组成。
其中,最重要的几层是卷积层(Convolutional Layer)、池化层(Pooling Layer)和全连接层(Fully Connected Layer)。
1. 卷积层:卷积层是卷积神经网络的核心层之一。
它通过使用一组可学习的滤波器(或称为卷积核)对输入数据进行卷积操作,并生成特征图(Feature Map)。
卷积操作通过在输入数据中滑动卷积核,并在每个位置上执行点乘运算,得到对应位置的特征。
卷积层的特点在于共享权重。
这意味着在同一层的不同位置使用的卷积核是相同的,因此卷积层的参数量大大减少,使得网络更加简化。
2. 池化层:池化层用于对卷积层的特征进行降维和抽象。
它通过固定大小的滑动窗口在特征图上进行采样,并将采样结果汇聚为一个值。
常见的池化方法有最大池化和平均池化。
池化层能够减少参数数量,降低过拟合的风险,同时也增强特征的不变性和鲁棒性,使得网络对于输入数据的微小变化具有更好的鲁棒性。
3. 全连接层:全连接层是卷积神经网络的最后一层,也是输出层。
它将前面的隐藏层与最终的分类器相连,将特征转化为概率或标签。
全连接层的每个神经元与前一层中的所有神经元都有连接关系。
全连接层的作用是将抽取到的特征与实际标签进行匹配,从而进行最终的分类判断。
二、卷积神经网络的特点1. 局部感知性:卷积神经网络通过卷积操作对输入数据进行特征提取,并利用池化操作定位和提取最显著的特征。
这种局部感知性使得网络对于局部信息具有更好的提取和理解能力。
卷积神经网络(CNN)介绍

卷积神经网络(CNN)介绍一、基本概念CNN是卷积神经网络(Convolutional Neural Network)的缩写,是目前深度学习中应用广泛的一种神经网络型号,它是一种能够处理序列数据的深度学习模型,如语音识别、自然语言处理等在许多应用中被广泛使用。
CNN是一种前馈神经网络,每个神经元只与与其之前一段距离之内的神经元相连。
它具有强大的特征提取能力和权值共享机制,可以帮助识别出图像、音频和文本中的重要特征。
CNN将输入图像分成若干个子区域,每个子区域被称为卷积核,每个卷积核由若干个神经元组成。
每个卷积核得出一个特征图,这些特征图被拼接起来形成下一层的输入。
CNN在应用中通常包含卷积层、池化层、全连接层和Softmax 层等。
卷积层用于提取图像特征,池化层用于减少特征数量,全连接层用于分类,Softmax层用于输出最终分类结果。
然而,就像其他的技术一样,CNN在实践中也会遇到各种问题。
人工智能工程师在设计和调试CNN时,经常遇到的问题包括过拟合、欠拟合、梯度消失、训练速度慢等。
此外,当CNN 不起作用时,如何快速而准确地诊断相关问题也是一个极其重要的挑战。
二、故障分析与解决方案面对CNN故障,我们可以通过以下几个方面来进行诊断,并尝试找到解决方案。
1. 数据集问题CNN模型需要大量的数据才能训练出准确的模型。
如果训练集不够大,其结果可能会出现不准确的情况。
同时,过拟合也可能出现在训练集数据少,但是特征比较多时。
解决方案:增加训练集,尽可能丰富数据覆盖的范围。
此外,有效的数据预处理方法,如旋转、翻转、缩放等,也能有效地增加训练集的样本。
2. 设计问题CNN模型的设计非常重要,关系到CNN在应用中的准确性。
解决方案:对于CNN的设计,可以采用预训练模型,或选择较好的网络结构和优化算法。
3. 训练问题CNN模型需要进行“拟合”和“调整”,使其能够正确的分类图像。
解决方案:可以尝试增加训练次数或者采用其他的优化方法,如随机梯度下降(SGD)。
一文带你了解CNN(卷积神经网络)

⼀⽂带你了解CNN(卷积神经⽹络)⽬录前⾔⼀、CNN解决了什么问题?⼆、CNN⽹络的结构2.1 卷积层 - 提取特征卷积运算权重共享稀疏连接总结:标准的卷积操作卷积的意义1x1卷积的重⼤意义2.2 激活函数2.3 池化层(下采样) - 数据降维,避免过拟合2.4 全连接层 - 分类,输出结果三、Pytorch实现LeNet⽹络3.1 模型定义3.2 模型训练(使⽤GPU训练)3.3 训练和评估模型前⾔ 在学计算机视觉的这段时间⾥整理了不少的笔记,想着就把这些笔记再重新整理出来,然后写成Blog和⼤家⼀起分享。
⽬前的计划如下(以下⽹络全部使⽤Pytorch搭建):专题⼀:计算机视觉基础介绍CNN⽹络(计算机视觉的基础)浅谈VGG⽹络,介绍ResNet⽹络(⽹络特点是越来越深)介绍GoogLeNet⽹络(⽹络特点是越来越宽)介绍DenseNet⽹络(⼀个看似⼗分NB但是却实际上⽤得不多的⽹络)整理期间还会分享⼀些⾃⼰正在参加的⽐赛的Baseline专题⼆:GAN⽹络搭建普通的GAN⽹络卷积GAN条件GAN模式崩溃的问题及⽹络优化 以上会有相关代码实践,代码是基于Pytorch框架。
话不多说,我们先进⾏专题⼀的第⼀部分介绍,卷积神经⽹络。
⼀、CNN解决了什么问题? 在CNN出现之前,对于图像的处理⼀直都是⼀个很⼤的问题,⼀⽅⾯因为图像处理的数据量太⼤,⽐如⼀张512 x 512的灰度图,它的输⼊参数就已经达到了252144个,更别说1024x1024x3之类的彩⾊图,这也导致了它的处理成本⼗分昂贵且效率极低。
另⼀⽅⾯,图像在数字化的过程中很难保证原有的特征,这也导致了图像处理的准确率不⾼。
⽽CNN⽹络能够很好的解决以上两个问题。
对于第⼀个问题,CNN⽹络它能够很好的将复杂的问题简单化,将⼤量的参数降维成少量的参数再做处理。
也就是说,在⼤部分的场景下,我们使⽤降维不会影响结果。
⽐如在⽇常⽣活中,我们⽤⼀张1024x1024x3表⽰鸟的彩⾊图和⼀张100x100x3表⽰鸟的彩⾊图,我们基本上都能够⽤⾁眼辨别出这是⼀只鸟⽽不是⼀只狗。
神经网络与卷积神经网络(CNN)
神经网络与卷积神经网络(CNN)神经网络和卷积神经网络(Convolutional Neural Network, CNN)是两种常用的深度学习模型,被广泛应用于图像识别、语音识别、自然语言处理等领域。
本文将介绍神经网络和CNN的原理、应用以及优缺点。
一、神经网络神经网络是一种模拟人脑神经元间连接的计算模型,由输入层、隐藏层和输出层组成。
每个神经元接收上一层神经元传递的信息,并通过激活函数进行非线性变换,最终计算出输出结果。
通过不断调整神经元之间的连接权重,神经网络能够学习并逼近复杂的非线性函数。
神经网络的训练通常基于梯度下降算法,通过最小化损失函数,反向传播误差更新权重。
训练完成后,神经网络可以用于预测和分类任务。
神经网络的优点在于可以处理非线性关系,具有强大的逼近能力。
然而,它在图像处理任务上的表现并不理想,主要因为传统的神经网络无法充分利用图像的空间结构信息。
二、卷积神经网络(CNN)卷积神经网络是一种专门用于处理二维结构数据(如图像)的深度学习模型。
与传统神经网络不同的是,CNN引入了卷积层和池化层,通过局部感知和参数共享的方式提取图像的特征。
卷积层利用一组可学习的卷积核对输入数据进行卷积操作,提取出不同位置的特征。
卷积核的参数共享使得CNN对输入数据的平移不变性更强,可以减少模型的复杂性。
池化层则负责对卷积结果进行下采样,减小特征图的尺寸。
常用的池化操作有最大池化和平均池化,能够提取更具有鲁棒性的特征。
除了卷积层和池化层,CNN通常还包括全连接层和激活函数。
全连接层用于将特征图转化为分类结果,激活函数引入非线性变换。
CNN在图像处理任务上具有突出优势。
通过卷积和池化操作,CNN能够自动提取出图像的局部特征和整体形状,并且具有一定的平移不变性和尺度不变性。
三、神经网络与CNN的应用比较1. 图像识别:神经网络在图像识别上的表现相对较差,因为它不能有效利用图像的空间结构信息。
而CNN能够通过卷积和池化操作提取图像特征,具有更好的识别准确率。
卷积神经网络CNN
浅层神经网络的缺陷
于是,二0世纪九0年代,有更多各式各样的浅层模型相继被 提出,比如只有一层隐层节点的支撑向量机[SVM,Support Vector Machine]和Boosting,以及没有隐层节点的最大熵 方法[例如LR,Logistic Regression]等,在很多应用领域取 代了传统的神经网络.
这个惊人的结果为什么在之前没有发生?
原因当然包括算法的提升,比如dropout等防止过拟合技术,但最重 要的是,G自然图像OCR识别和人脸识别等问题, 并推出相应的桌面和移动搜索产品,二0一三年,深度学习模型被成功 应用于一般图片的识别和理解.
卷积神经网络提出的背景
浅层神经网络 大约二三十年前,神经网络曾经是机器学习领
域特别热门的一个方向,这种基于统计的机器 学习方法比起过去基于人工规则的专家系统, 在很多方面显示出优越性.
卷积神经网络提出的背景
但是后来,因为理论分析的难度,加上训练方法需要很多 经验和技巧,以及巨大的计算量和优化求解难度,神经网络 慢慢淡出了科研领域的主流方向.
值得指出的是,神经网络[如采用误差反向传播算法:Back Propagation,简称BP算法,通过梯度下降方法在训练过程 中修正权重使得网络误差最小]在层次深的情况下性能变 得很不理想[传播时容易出现所谓的梯度弥散Gradient Diffusion或称之为梯度消失,根源在于非凸目标代价函数 导致求解陷入局部最优,且这种情况随着网络层数的增加 而更加严重,即随着梯度的逐层不断消散导致其对网络权 重调整的作用越来越小],所以只能转而处理浅层结构[小 于等于三],从而限制了性能.
卷积神经网络
早在一九八九年,Yann LeCun [现纽约大学教授] 和他的同事 们就发表了卷积神经网络[Convolution Neural Networks, 简称CNN]的工作.
卷积神经网络CNN
卷积神经网络CNN一、引言卷积神经网络(Convolutional Neural Network, CNN)是一种常用的深度学习算法,特别适合于处理图像、语音、自然语言等多维度数据。
其重要特点是局部感知和参数共享,这使得它能够快速准确地识别图像特征,并在不同的任务和场景中取得良好的表现。
本文主要介绍卷积神经网络的基本结构、原理和应用。
二、卷积神经网络结构卷积神经网络的基本结构包括输入层、卷积层、池化层、全连接层和输出层等部分。
其中,输入层用来接收原始图像或数据,卷积层和池化层用来提取图像特征,全连接层用来进行分类和回归等任务,输出层则表示最终的输出结果。
下面详细介绍每个部分的作用和特点。
1. 输入层输入层是卷积神经网络的第一层,主要用来接收原始图像或数据。
通常情况下,输入层的数据是二维图像,即图像的宽度、高度和颜色通道。
例如,一张彩色图片的宽度和高度都是像素的数量,而颜色通道就是RGB三个通道。
2. 卷积层卷积层是卷积神经网络的核心层,负责提取图像特征。
它主要通过卷积运算的方式,对输入层的数据进行处理,产生新的特征图。
卷积操作的核心思想是权重共享,即同一个卷积核在不同的位置上进行卷积操作,得到的特征图是一样的,这样能够大大减少网络参数量,防止过拟合现象出现。
卷积操作的数学表达式如下:$$Y = W*X + b$$其中,$W$是卷积核,$X$是输入特征图,$b$是偏置项,$Y$是输出特征图。
在卷积操作中,卷积核的参数是需要学习的参数,它的大小通常为$K*K$($K$是卷积核的大小),步幅通常为$S$。
卷积操作的结果是一个二维数组,它被称为输出特征图。
在实际应用中,卷积核的大小和步幅需要根据不同的数据类型和任务而定。
3. 池化层池化层是卷积神经网络的一个可选层,主要用来减少特征图的大小和数量,从而提高网络性能。
它通常有两种类型:最大池化和平均池化。
最大池化是取一个特征图中的最大值作为输出,而平均池化是取一个特征图中的平均值作为输出。
cnn是什么意思
cnn是什么意思CNN是什么意思?——深入解析卷积神经网络引言:在当今互联网高速发展的时代,人工智能技术已经成为各行各业的热门话题,它以其强大的数据处理能力和智能决策能力,正逐渐改变着我们生活的方方面面。
而在人工智能领域中,卷积神经网络(Convolutional Neural Network,简称CNN)作为一种深度学习模型,占据着重要的地位。
本文将详细介绍CNN是什么意思,以及其基本原理、工作原理和应用场景等内容。
一、基本概念卷积神经网络(CNN)是一种人工神经网络,通过模拟人脑中神经元之间的连接关系,实现对图像、音频等非结构化数据的处理和分析。
相对于传统的全连接神经网络,CNN具有处理图像任务的优势,能够提取图像中的局部特征,并通过层层处理得到更高层次的抽象特征。
二、基本原理1. 卷积层卷积层是CNN的核心组成部分,它通过滑动窗口的方式,对输入数据进行卷积运算,从而提取特征。
在卷积运算过程中,使用一组称为卷积核或过滤器的小矩阵,通过对输入数据进行滑动和相乘累加的操作,得到卷积特征图。
2. 池化层池化层是CNN中的另一个重要组成部分,它通过降采样的方式,减少特征图的尺寸和参数数量,从而提高模型的鲁棒性和计算效率。
常见的池化方式有最大池化和平均池化,它们分别选取特征图中最大值和平均值作为输出。
3. 激活函数激活函数是CNN中用于引入非线性的一环,它对卷积层输出的结果进行非线性变换,增加网络的表达能力。
常用的激活函数有ReLU、Sigmoid和Tanh等,它们分别在不同场景下表现出不同的性能。
三、工作原理CNN的工作原理可以简单概括为:输入数据经过一系列的卷积层、池化层和全连接层的处理,最终得到输出结果。
具体流程如下:1. 输入层:接收原始数据,通常是图像或音频。
2. 卷积层:提取输入数据的局部特征。
3. 激活函数:引入非线性变换,增加网络的表达能力。
4. 池化层:减少特征图的尺寸和参数数量。
5. 全连接层:将池化层输出的特征进行分类或预测。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、动机
卷积神经网络(CNN)是多层感知机(MLP)的一个变种模型,它是从生物学概念中演化而来的。
从Hubel和Wiesel早期对猫的视觉皮层的研究工作,我们知道在视觉皮层存在一种细胞的复杂分布,,这些细胞对于外界的输入局部是很敏感的,它们被称为“感受野”(细胞),它们以某种方法来覆盖整个视觉域。
这些细胞就像一些滤波器一样,它们对输入的图像是局部敏感的,因此能够更好地挖掘出自然图像中的目标的空间关系信息。
此外,视觉皮层存在两类相关的细胞,S细胞(Simple Cell)和C(Complex Cell)细胞。
S细胞在自身的感受野内最大限度地对图像中类似边缘模式的刺激做出响应,而C 细胞具有更大的感受野,它可以对图像中产生刺激的模式的空间位置进行精准地定位。
视觉皮层作为目前已知的最为强大的视觉系统,广受关注。
学术领域出现了很多基于它的神经启发式模型。
比如:NeoCognitron [Fukushima], HMAX [Serre07]以及本教程要讨论的重点 LeNet-5 [LeCun98]。
2、稀疏连接
CNNs通过加强神经网络中相邻层之间节点的局部连接模式
(Local Connectivity Pattern)来挖掘自然图像(中的兴趣目标)的空间局部关联信息。
第m层隐层的节点与第m-1层的节点的局部子集,并具有空间连续视觉感受野的节点(就是m-1层节点中的一部分,这部分节点在m-1层都是相邻的)相连。
可以用下面的图来表示这种连接。
假设,m-1层为视网膜输入层(接受自然图像)。
根据上图的描述,在m-1层上面的m 层的神经元节点都具有宽度为3的感受野,m层每一个节点连接下面的视网膜层的3个相邻的节点。
m+1层的节点与它下面一层的节点有着相似的连接属性,所以m+1层的节点仍与m层中3个相邻的节点相连,但是对于输入层(视网膜层)连接数就变多了,在本图中是5。
这种结构把训练好的滤波器
(corresponding to the input producing the strongest response)构建成了一种空间局部模式(因为每个上层节点都只对感受野中的,连接的局部的下层节点有响应)。
根据上面图,多层堆积形成了滤波器(不再是线性的了),它也变得更具有全局性了(如包含了一大片的像素空间)。
比如,在上图中,第m+1层能够对宽度为5的非线性特征进行编码(就像素空间而言)。
3、权值共享
在CNNs中,每一个稀疏滤波器hi在整个感受野中是重复叠加的,这些重复的节点形式了一种特征图(feature map),这个特种图可以共享相同的参数,比如相同的权值矩阵和偏置向量。
在上图中,属于同一个特征图的三个隐层节点,因为需要共享相同颜色的权重, 他们的被限制成相同的。
在这里,梯度下降算法仍然可以用来训练这些共享的参数,只需要在原算
法的基础上稍作改动即可。
共享权重的梯度可以对共享参数的梯度进行简单的求和得到。
为什么对权值共享如此感兴趣呢?无论重复单元在感受野的什么位置,他们都可以检测
到特征。
此外,权值共享提供了一种高效的方式来实现这个,因为这种方式大大减少了需要学习(训练)的参数数目。
如果控制好模型的容量,CNN在解决计算机视觉问题上会有更好的泛化能力。
4、详细说明和标注说明
从概念上来说,特征图是通过对输入图像在一个线性滤波器上做卷积,增加一个偏置项,在此结果上再作用一个非线性函数得到的。
如果我们把某一层的第k个特征图记为hk,它的滤波器由权值Wk和偏置bk所决定,所以特征图的由下面公式定义(非线性函数取tanh):
卷积说明:
为了更好地表示数据,隐层由多个特征图构成,{hk,k=1,2,3 ...K}.权值W由4个参数决定(目标特征图的索引、源特征图的索引、源垂直位置的索引、源水平位置的索引)(可以说W是一个4维的张量),偏置b为一个向量,向量中的每一个元素对应一个特征图的索引。
我们用下图来表示:
上图是一个包含2层神经元节点的CNN,包括m-1层的4个特征图和m层的2个特征图(h0,h1)。
神经元在h0,h1的输出(像素)是由m-1层中在其2*2的感受野中的像素计算得到的。
这里注意感受野是如何跨越4个特征图的,权值W0,W1是3维的张量(3D tensor),一个表示输入特征图的索引,另外两个表示像素坐标。
总的来说,表示连接第m层第k个特征图的特征图上的每一个像素的权重,与之连接的是m-1层上第l个特征图中坐标为(i,j)的像素。
5、ConvOp
ConvOp是Theano中对卷积层的一个实现。
它重复了Scipy中
scipy.signal.convolve2d的函数功能,总的来讲,ConvOp包含了两个输入(参数):
(1)对应输入图像的mini-batch的4D张量。
每个张量的大小为:[mini-batch的大小,输入的特征图的数量,图像的高度,图像的宽度]。
(2)对应于权值W的4D张量。
每个张量的大小为:[m层的特征图数量,m-1层的特征图数量,滤波器的高度,滤波器的宽度]。
下面代码实现了Figure 1中的卷积层,输入包括了大小为120*160的3个特征图(对应RGB). 我们可以用两个具有9*9的感受野的卷积过滤器。
我们发现,随机初始化的的滤波器能够产生边缘检测算子的作用。
另外,我们使用了相同的公式对权值进行初始化,这些权值都是从一个范围为
[-1/fan-in, 1/fan-in]的均匀分布中采样得到的,fan-in是隐层的输入节点数目,在MLP。