与全连接神经网络不同,卷积神经网络每一层中的节点并不是与前一层的所有神经元节点相连,而是只与前一层的部分节点相连。并且和每一个节点相连的那些通路的权重都是相同的。举例来说,对于二维卷积神经网络,其权重就是卷积核里面的那些值,这些值从上而下,从左到右要将图像中每个对应区域卷积一遍然后将积求和输入到下一层节点中激活,得到下一层的特征图。因此其权重和偏置更新公式与全连接神经网络不通。通过卷积核替代权重矩阵的意义在于:1. 降低的计算量;2. 权重得到共享,降低了参数量。
UFLDL(Unsupervised feature learning and deep learning tutorial)课程只给出了线性回归,Logistic回归,多层神经网络等公式推导,对于CNN只给出了结论,缺乏公式推导过程。
根据《Deep learning》这本书的描述,卷积神经网络有3个核心思想:
1. 稀疏交互(sparse interactions),即每个节点通过固定个(一般等于卷积核元素的数目,远小于前一层节点数)连接与下一层的神经元节点相连; 尽管是稀疏连接,但是在更深层的神经单元中,其可以间接地连接到全部或大部分输入图像。如果采用了步幅卷积或者池化操作,那么这种间接连接全部图像的可能性将会增加。
2. 参数共享(parameter sharing),以2D卷积为例,每一层都通过固定的卷积核产生下一层的特征图,而这个卷积核将从上到下、从左到右遍历图像每一个对应区域;
3. 等变表示(equivariant representations),卷积和参数共享的形式使得神经网络具有平移等变形,即f(g(x))=g(f(x))。另外,pooling操作也可以使网络具有局部平移不变形。局部平移不变形是一个很有用的性质,尤其是当我们只关心某个特征是否出现而不关心它出现的具体位置时。池化可以看作增加了一个无线强的先验,这一层学的函数必须具有对少量平移的不变形。
一般说的神经网络的一层包括了那个仿射变换、探测级的非线性激活函数,和池化操作,如下图所示:
二、预备知识:
1. 二维卷积的计算。
一、引言与全连接神经网络不同,卷积神经网络每一层中的节点并不是与前一层的所有神经元节点相连,而是只与前一层的部分节点相连。并且和每一个节点相连的那些通路的权重都是相同的。举例来说,对于二维卷积神经网络,其权重就是卷积核里面的那些值,这些值从上而下,从左到右要将图像中每个对应区域卷积一遍然后将积求和输入到下一层节点中激活,得到下一层的特征图。因此其权重和偏置更新公式与全连接神经网络不通。通过卷积核替代权重矩阵的意义在于:1. 降低的计算量;2. 权重得到共享,降低了参数量。UFLDL(Unsuperv
在上篇《
CNN
卷
积
神经网络
学习笔记2:网络结构》中,已经介绍了
CNN
的网络结构的详细构成,我们已经可以初始化一个自己的
CNN
网络了,接下来就是要用训练得到一个确定的
CNN
的模型,也就是确定
CNN
的
参数
。
CNN
本质上就是人工
神经网络
的一种,只是在前几层的处理上有所不同,我们可以把卷
积
核看成是人工
神经网络
里的权值W,而采样层实质上也是一种卷
积
运算。所以可以基于人工
神经网络
的权值
更新
的方法来
卷
积
神经网络
(Convolutional Neural Network,
CNN
)
卷
积
卷
积
核
神经网络
公式
卷
积
运算方式 补0(zero padding)池化(Pooling)
激活函数RelU (Rectified Linear Units) 全连接层(Fully connected layers)
标准卷
积
计算举例1 x 1 卷
积
计算举例 全连接层计算举例常见的几种卷
积
神经网络
介绍 LeNet AlexNet VGGNet ResNet
超
参数
:在模型训练之前需要设置的
参数
,而不是通过训练得到的
参数
数据。比如:学习率,深层
神经网络
隐藏层数。
模型
参数
:模型要学习的
参数
,比如:权重W和偏置b,其是在网络训练过程中自动学习和
更新
。
在深度学习中,在我们搭建好
神经网络
模型之后,最重要的是
参数
学习。在此之前, 我们先要弄懂,什么是前向算法和反向传播算法。
前向算法:从网络输入到网络最终输出的过程称为前...
比如输入是一个32x32x3的图像,3表示RGB三通道,每个filter/kernel是5x5x3,一个卷
积
核产生一个feature map,下图中,有6个5x5x3的卷
积
核,故输出6个feature map(activation map),大小即为28x28x6。
下图中,第二层到第三层,其中每个卷
积
核大小为5x5x6,这里的6就是28x28x6中的6,两者需...
卷
积
神经网络
是一种前馈型
神经网络
, 受生物自然视觉认知机制启发而来的. 现在,
CNN
已经成为众多科学领域的研究热点之一, 特别是在模式分类领域, 由于该网络避免了对图像的复杂前期预处理, 可以直接输入原始图像, 因而得到了更为广泛的应用. 可应用于图像分类, 目标识别, 目标检测, 语义分割等等. 本文介绍可用于图像分类的卷
积
神经网络
的基本结构.
深度学习是一种特殊的机器学习,通过学习将世界...
### 回答1:
卷
积
神经网络
(Convolutional Neural Network,
CNN
)是一种常用于图像识别和计算机视觉任务的深度学习模型。其理论
推导
过程如下:
1. 卷
积
操作:
CNN
的核心操作是卷
积
操作。卷
积
操作是指将输入图像与一个称为卷
积
核的小矩阵进行卷
积
运算,生成一张新的特征图。卷
积
运算可以有效地提取图像的局部特征,由于权重共享机制,使得卷
积
网络能够处理大规模图像且减少
参数
的数量。
2. 激活函数:卷
积
操作后,需要对特征图进行非线性变换,引入了激活函数。常用的激活函数有ReLU(Rectified Linear Unit)、Sigmoid和Tanh等。
3. 池化操作:在卷
积
操作后,通常会进行池化操作。池化操作通过在特征图上滑动一个固定大小的窗口,将窗口内的特征进行聚合,生成新的特征图。池化操作能够压缩特征图的空间尺寸并保留主要特征,减少网络对位置的敏感性。
4. 全连接层:经过多次卷
积
和池化操作后,得到的特征图需要通过全连接层进行分类或回归。全连接层将特征图展开成一维向量,与权重矩阵相乘后经过激活函数得到最终的输出结果。
5. 损失函数与优化:在训练过程中,需要定义一个损失函数来度量模型输出与真实值之间的差异。常用的损失函数有均方误差损失和交叉熵损失。通过反向传播算法,计算损失函数对网络中各个
参数
的梯度,并使用梯度下降优化算法来
更新
参数
,使得模型能够逐渐收敛。
以上就是
CNN
的理论
推导
详细过程,包括卷
积
操作、激活函数、池化操作、全连接层和损失函数与优化等关键步骤。通过这些过程,
CNN
能够自动从输入图像中提取特征,并进行有效的分类与预测。
### 回答2:
CNN
(卷
积
神经网络
)是一种经典的深度学习模型,主要用于图像处理和模式识别任务。以下是
CNN
的理论
推导
过程的详细步骤:
1. 卷
积
操作:
CNN
的核心是卷
积
操作,它通过将图像与一个卷
积
核进行卷
积
运算来提取特征。卷
积
操作是通过将卷
积
核滑动到图像的每个位置,将每个位置上的像素与卷
积
核中的权重相乘,然后求和得到输出特征图的一个像素。
2. 激活函数:卷
积
操作之后通常会使用激活函数来引入非线性。常用的激活函数包括ReLU、Sigmoid和Tanh等。激活函数能够增加网络的表达能力,使其能够更好地拟合复杂的数据分布。
3. 池化操作:在卷
积
操作之后,通常会加入池化层来减小特征图的尺寸,并降低网络的计算复杂度。常用的池化操作包括最大池化和平均池化,它们分别选取特定区域中的最大值或平均值作为输出。
4. 多层堆叠:
CNN
通常由多个卷
积
层、激活函数层和池化层堆叠而成。通过多层堆叠,网络能够在不同层次上提取图像的不同抽象特征。
5. 全连接层:在经过多层的卷
积
和池化之后,通常会添加全连接层来进行最后的分类。全连接层中的神经元与前一层的所有神经元相连接,它能够结合前面层次提取的特征来进行分类。
6. 损失函数和优化:在训练
CNN
时,需要定义一个损失函数来度量模型的预测值与真实值之间的差异,并使用优化算法来最小化损失函数。常用的优化算法包括梯度下降法和反向传播算法。
总的来说,
CNN
通过堆叠卷
积
、激活、池化和全连接层的方式,以及使用损失函数和优化算法来实现对图像的特征提取和分类。通过反向传播算法,
CNN
能够自动学习到适合特定任务的卷
积
核和网络
参数
,从而提高模型的预测准确性。
### 回答3:
卷
积
神经网络
(Convolutional Neural Network,简称
CNN
)是一种广泛应用于图像处理和识别任务的深度学习模型。它的核心思想是通过卷
积
操作来提取图像中的特征,并通过深层次的网络结构实现对特征的高级抽象和分类。
CNN
的理论
推导
包含以下的详细过程:
1. 数据预处理:在使用
CNN
之前,需要对输入数据进行预处理。常见的预处理方法包括图像的归一化、标准化和平衡化等操作,以便提高模型的训练效果。
2. 卷
积
操作:卷
积
是
CNN
的核心操作,它通过在输入图像上滑动一个固定大小的卷
积
核(也称为滤波器)来提取局部的特征。卷
积
核与输入图像的对应位置相乘,并将结果相加得到输出特征图。
3. 激活函数:卷
积
操作后,需要对输出进行激活函数处理。常用的激活函数有ReLU、Sigmoid和Tanh等,它们能够增加网络的非线性表达能力,并提高模型的性能。
4. 池化操作:池化是一种降采样操作,它能够通过减少特征图的尺寸,提取更加鲁棒的特征,并减少模型的
参数
数量。常见的池化操作有最大池化和平均池化,它们分别选择局部区域内的最大值和平均值作为输出。
5. 全连接层:在经过多次卷
积
和池化操作后,最后一层通常是全连接层。全连接层将前一层的输出展平成一个向量,并通过矩阵运算和激活函数处理,得到最终的分类结果。
6. 损失函数:为了评价模型的性能,需要定义损失函数来衡量模型的预测值与真实标签之间的差异。常见的损失函数有交叉熵损失函数和均方误差损失函数等。
7. 反向传播:通过反向传播算法,从输出层到输入层逐层计算每个
参数
对损失的贡献,并根据损失的梯度
更新
参数
,以使得模型的输出更加接近真实标签。
8. 模型训练:通过迭代训练样本,
更新
模型的
参数
,使得模型在训练数据上的损失逐渐减小。常见的优化算法有随机梯度下降和Adam等。
以上是
CNN
的理论
推导
的详细过程,通过以上的步骤,我们可以得到一个训练好的
CNN
模型,用于图像处理和识别任务。