几种经典的卷积神经网络

一、神经网络

二、卷积神经网络的架构

对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

非严格意义上来讲,下图中红框框起来的部分便可以理解为一个滤波器,即带着一组固定权重的神经元。多个滤波器叠加便成了卷积层。

卷积核也称为滤波器,如图卷积核的个数是2。滤波器的大小为3*3*3。经过wx+b后,再进行Relu。一个卷积核就形成1个通道4*4。如上有两个通道4*4*2。

三、几种经典卷积神经网络

1. LeNet-5

LeNet-5就在灰度图像上训练,这就是为什么它是32*32*1,该神经网络实际上 (这些灰度图像)与你上周所见的样本类似,第一步,你用一组6个,你用一组6个5*5步长为1的滤波器,因为用6个滤波器可以生成28*28*6的结果,同时步长为1 零填充,图像的尺寸将从32*32降低到28*28,然后LeNet用了一个池化层。而写这篇文章那时,人们更常见均值池化。如果你正在构建一个现代化的变体。你可能会改用最大池化。但是在这个例子中,你用宽为2步长为2的滤波器做均值池化。,结果是将维。即高和宽都以2的因子将维。因此我们得到14*14*6的体积结果。

接着你用另一层卷积层,这次你用一组16个滤波器,16个滤波器尺寸为5*5,因此得到16的体积结果。

这篇文章完成与1998年。你会从14*14将到10*10的结果。然后接着另一池化层,因此高和宽都以2的因子降低。然后得到5*5的结果。然后接下来一层是全连接层,

其自身120个神经单元中每个都全连接了这400个节点,然后最后一步是用这84维特征生成一个最终结果,y^包括10个预测值。与从0到9的10个数字相对应。

作为该网络结构的现代版,我们用softmax层来生成10个分类结果,尽管LeNet-5原先是用别的分类器做输出层。

这个是一个小型的神经网络,有大概60000个参数。 而如今经常可看到包含千万到亿量级参数的神经网络。

观察,从左至右,高度和宽度往往会下降。随着尺寸从32*32到28 到14.10,5,通道数是增加的。通道数从1增到6,16。

另外一种神经网络至今依然使用的模式是:你会一层或多层卷积层,随后是池化层。然后再是一层或多层卷积层,然后池化层。 然后是几层全连接层,然后输出。这种层次排列很常见。

人们用sigmoid和tanh非线性函数而不用ReLu非线性函数。因此你读文章会发现提及的sigmod和tanh,此外还些有趣的方式,即以现代标准来看这个网络级李安的方式很有趣。另外你会发现,如果有一个nh*nw*nc的网络结构,其中nc是通道数,然后f*f*nc维的滤波器,其中每个滤波器处理了每一维通道。但那时计算机非常慢,为了节省计算量和参数数量。原始LeNet-5有种比较疯狂的计算方法。其中不同滤波器会处理输入块的不同通道。这篇文章会讲到这些细节。而现在先进些的应用则不会有这种复杂方法。最后一件以前做现在没有再做的事是。原始LeNet-5在池化后有非线性处理。我想应是池化层后用了sigmoid非线性。

2.AlexNet

AlexNet 以227*227*3的图像开始,第一层用一组96个11*11步长4的滤波器。

这个网络结构实际上很像LeNet,但更大鉴于之前幻灯片中LeNet-5有60000个参数

AlexNet大概有6千万参数。而且AlexNet采用非常相似的构造板块,拥有更多隐藏神经元,在更多数据上训练。AlexNet在ImageNet数据库上训练,大数据库使它能有优秀的性能,使AlexNet比LeNet更好的另一因素是ReLU激活函数的使用。网络中很多层被分割到两块同GPU上,两块GPU可以相互通讯。局部相应归一层(LRN),这种层实际上用得很少。但局部响应归一(LRN)的基本思想是如果你观察这些块,顶上这些体积块中之一。13*13*256,不想要太多高激活率的神经元。随后许多研究者发现该层并不太管用

3. VGG

VGG有个优点是真正简化了神经网络结构,所以我们来认真分析下这个结构。

从图像开始,前两层是卷积层。即3*3的滤波器,且前两层用64个滤波器。

该网络总共有1亿3千8百万个参数,即使以现在标准衡量也是很大了,。但是VGG-16结构的简洁性也非常吸引人,看得出该结构相当统一,有几组卷积层,随后是池化层,以降低高和宽。如果你观察滤波器的数量,你有64个滤波器,然后两倍到128到256 到512。这里我想作者认为512够大,所以没再两倍增加。但是这种在每步粗略地双倍增加或在每组卷积层双倍增加的方式是设计这个网络时用的另一个简单原则。所以我认为这种相对统一性对研究者来说很有趣。

而该结构的主要缺点是,以训练参数的数量来看是非常大的网络,所以按这种比率减少或增加,是非常有条理性的。

### 卷积神经网络的主要类型及其结构 卷积神经网络(CNN)是一种特殊的前馈神经网络,其人工神经元能够响应部分覆盖范围内的周围单元[^2]。这种特性使得 CNN 特别适合于处理具有空间关系的数据,例如图像数据。 #### 主要类型卷积神经网络 1. **LeNet** LeNet 是最早的卷积神经网络之一,由 Yann LeCun 提出,主要用于手写字符识别任务。它的基本架构包括交替的卷积层和池化层,最终通过全连接层完成分类任务[^1]。 2. **AlexNet** AlexNet 是一种更深层次的卷积神经网络,在 ImageNet 大规模视觉识别挑战赛中取得了突破性的成果。相比于 LeNet,AlexNet 使用了更多的卷积层和更大的参数量,并引入了 ReLU 激活函数以及 Dropout 技术来减少过拟合。 3. **VGGNet** VGGNet 的特点是使用多个小型滤波器(通常是 \(3 \times 3\)),并通过堆叠多层实现深层网络结构。尽管计算成本较高,但其简单而有效的设计使其成为研究的基础模型之一。 4. **GoogLeNet (Inception Network)** GoogLeNet 引入了 Inception 模块的概念,该模块在同一层上并行执行多种尺寸的卷积操作并将结果拼接在一起。这种方法提高了特征提取能力的同时减少了参数数量。 5. **ResNet (残差网络)** ResNet 解决了非常深的神经网络中的梯度消失问题,通过引入短路连接(skip connections)允许信息绕过某些层传递到后续层。这极大地促进了超深网络的发展。 #### 应用领域 除了传统的计算机视觉和图像识别外,卷积神经网络还被广泛应用在其他领域: - 自然语言处理:利用一维卷积捕捉文本序列中的局部模式。 - 医疗影像分析:用于疾病诊断、病变检测等任务。 - 视频监控:实时目标跟踪与行为理解。 - 游戏AI开发:强化学习框架下的状态表示学习[^3]。 ```python import tensorflow as tf from tensorflow.keras import layers, models def create_cnn_model(): model = models.Sequential() # 添加第一个卷积层 model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3))) model.add(layers.MaxPooling2D((2, 2))) # 添加第二个卷积层 model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) # 展平层 model.add(layers.Flatten()) # 全连接层 model.add(layers.Dense(64, activation='relu')) # 输出层 model.add(layers.Dense(10, activation='softmax')) return model ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值