GoogleNet神经网络介绍

一、简介

GoogleNet,也称为GoogLeNet,是谷歌工程师设计的一种深度神经网络结构,它在2014年的ImageNet图像识别挑战赛中取得了冠军。该神经网络的设计特点主要体现在其深度和宽度上,通过引入名为Inception的核心子网络结构,使得网络能够在多个尺度上提取特征,从而增强了其预测能力。

AlexNet与VGG都只有一个输出层

GoogleNet有三个输出层(其中两个为辅助分类器)

二、inception结构

初始结构

之前的网络,比如AlexNet和VGG都是串行结构:将卷积层、最大池化下采样和全连接层连接起来。

inception结构所使用的是并行结构:在上一层输出之后,将得到的特征矩阵同时输入到4个分支中进行处理,处理之后,将我们所得到的四个分支的特征矩阵按深度进行拼接得到输出特征矩阵 。

第一个分支是 1x1 大小的卷积核

第二个分支是 3x3 大小的卷积核

第三个分支是 5x5 大小的卷积核

第四个分支是 3x3 大小的池化核的最大池化下采样 

通过这四个分支,得到不同尺度的特征矩阵。

ps:每个分支所得的特征矩阵高和宽必须相同,否则无法沿深度方向进行拼接。

降维的inception结构

图中三个黄色方框的 1x1 卷积核起到降维的作用。

具体的降维原理 

1、初始通道为512,使用64个 5x5 的卷积核进行卷积。

所需要参数计算公式:卷积核尺寸 x 输入特征矩阵的深度 x 卷积核的个数

第一种情况所需要的参数是 819200,非常大的一个数值。

2、初始通道为512,使用24个 1x1 的卷积核进行卷积,再使用64个 5x5 的卷积核进行卷积。

先使用24个 1x1 的卷积核进行卷积对输入特征矩阵进行降维,因为特征矩阵的深度是由卷积核的个数决定的, 所以会将512深度变为24深度,再进行计算所需要的参数个数。

将两部分使用卷积核的需要参数相加,即为全部所需要的参数,一共50688。

很明显,通过使用 1x1 的卷积核进行降维之后,所需要的参数大大减少。

降维的目的就是为了减少输入特征矩阵的深度,从而减少卷积参数,减少计算量。

 三、辅助分类器

具体实现

1、池化层

第一层是一个平均池化下采样:池化核 5x5, 步距为3,

第一个辅助分类器来自于 inception(4a) 的输出 14 x 14 x 512,第二个辅助分类器来自于 inception(4d) 的输出 14 x 14 x 528。

根据矩阵尺寸大小计算公式 out = (14 - 5 + 0) / 3 + 1,

所以第一个辅助分类器的输出为 4 x 4 x 512

第二个辅助分类器的输出为 4 x 4 x 528。(池化不改变特征矩阵的深度)

2、卷积降维

采用128个卷积核大小为 1x1 的卷积层进行卷积处理,目的是为了降低维度,并且使用了relu激活函数。

3、全连接层

采用节点为1024的全连接层,使用relu激活函数。

全连接层与全连接层之间使用dropout函数,以 70% 的比例随机失活神经元。(百分比可根据具体情况更改比例)

4、输出

输出层的节点个数对应数据集的类别个数, 再通过softmax激活函数得到概率分布。

图示说明

第一个辅助分类器来自于 inception(4a)

第二个辅助分类器来自于 inception(4d)

四、参数表格

第一列:一系列层的名称

第二列:卷积核或者是池化核的参数大小       

第三列:经过计算后的输出的特征矩阵的大小

辅助分类器中的参数

 # 1 x 1 :辅助分类器中1 x 1 卷积核的个数

#  3 x 3 reduce :在 3 x 3卷积前 1x1 卷积降维处理的个数

#  3 x 3 :辅助分类器中3 x 3 卷积核的个数

#  5 x 5 reduce :在 5 x 5卷积前 1x1 卷积降维处理的个数

#  5 x 5 : 辅助分类器中5 x 5 卷积核的个数

#  pool proj :在最大池化后进行的 1x1 卷积降维处理的个数

下图标注可帮助理解。

大家可以在网上找GoogleNet整个神经网络的图片,再结合那一整张参数列表帮助自己更好的理解整个GoogleNet神经网络。 

### 回答1: 结合VGG网络结构和GoogLeNet网络结构特点的一个网络结构可以是这样:将VGG网络结构中的可分解块和GoogLeNet网络结构中的Inception模块结合在一起,使用多种尺寸的过滤器和不同层次的特征提取,以加强网络的表示能力,并使用具有非线性的激活函数来提高网络的泛化能力。 ### 回答2: 融合VGG网络结构和GoogLeNet网络结构的新网络结构,可以综合两者的特点,提高模型的性能。以下是一个简要描述该网络结构的示例: 为了融合VGG网络结构和GoogLeNet网络结构的特点,我们可以采用VGG网络中的卷积层堆叠和GoogLeNet网络中的Inception模块。 新网络结构示例: 1. 输入层:接受输入的图像数据。 2. 卷积层1:采用3x3卷积核,步长为1,数量为64,使用ReLU激活函数。 3. 卷积层2:采用3x3卷积核,步长为1,数量为64,使用ReLU激活函数。 4. 池化层1:采用2x2最大池化,步长为2,进行特征降维。 5. Inception模块1:包括多个不同大小卷积核的卷积层和一层池化层,使用ReLU激活函数。 6. Inception模块2:类似Inception模块1的结构,包括多个不同大小卷积核的卷积层和一层池化层,使用ReLU激活函数。 7. 池化层2:采用2x2最大池化,步长为2,进行特征降维。 8. 卷积层3:采用3x3卷积核,步长为1,数量为128,使用ReLU激活函数。 9. 卷积层4:采用3x3卷积核,步长为1,数量为128,使用ReLU激活函数。 10. 池化层3:采用2x2最大池化,步长为2,进行特征降维。 11. Inception模块3:类似Inception模块1的结构,包括多个不同大小卷积核的卷积层和一层池化层,使用ReLU激活函数。 12. Inception模块4:类似Inception模块1的结构,包括多个不同大小卷积核的卷积层和一层池化层,使用ReLU激活函数。 13. 全局平均池化层:对特征图进行平均池化,得到固定大小的特征向量。 14. 全连接层1:将特征向量与权重相乘,进行特征提取。 15. 全连接层2:将全连接层1的结果与权重相乘,得到最终的分类结果。 通过融合VGG网络结构和GoogLeNet网络结构的特点,这个新网络结构可以同时提取高层语义特征和低层细节特征,以增强模型在图像分类、目标检测等任务中的表现。 ### 回答3: 我帮你设计一个融合了VGG网络结构和GoogLeNet网络结构特点的新型网络结构。这个网络结构采用了VGG网络的深度和GoogLeNet网络的稀疏连接特点,以实现更好的性能和更高的效率。 首先,我们使用VGG网络的卷积层结构来提取特征。VGG网络以多个连续的卷积层和池化层为基础,使得网络具有较大的感受野。这样可以更好地捕获图像中的局部和全局特征。我们可以借鉴VGG网络的这一特点,并在我们的网络中引入类似的结构。 然后,我们引入GoogLeNet网络的稀疏连接特点。GoogLeNet网络使用了Inception模块,该模块通过同时采用多种卷积核大小和不同步长的卷积层,并将它们的输出连接在一起,从而增加网络的宽度和广度。这种稀疏连接结构可以进一步提升网络的性能,并减少参数的数量。 在我们的网络中,我们可以使用类似的Inception模块,但是在设计时还要考虑VGG网络的深度。我们可以在每个池化层后引入一个Inception模块,这样既保留了VGG网络的深度特点,又加入了GoogLeNet网络的稀疏连接特点。这样设计的网络既能够有效提取图像特征,又能够保持较少的参数量,以实现更高的效率。 此外,我们还可以在网络的最后引入全局平均池化和全连接层,以进行分类任务。全局平均池化可以将卷积层的输出转化为固定长度的特征向量,然后通过全连接层进行最终的分类。 综上所述,融合了VGG网络结构和GoogLeNet网络结构特点的网络结构具有深度特征提取和稀疏连接的优势。这样设计的网络在保持高效率的同时,仍然能够达到较好的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值