【ZJU-Machine Learning】卷积神经网络-最近流行的网络结构

VGGNet

在这里插入图片描述
为何要将2个3 * 3卷积核叠到一起?

因为2个叠到一起的3 * 3卷积核,感受野(Receptive Field)是7 * 7,大致可以替代7 * 7卷积核的作用。但这样做可以使参数更少 ,参数比例大致为18:49

用小卷积核代替大卷积核(可视野),以减少参数(但是增大了训练时间)

GoogLeNet

在这里插入图片描述

(1)22层
(2)inception 结构,用一些1 * 1, 3 * 3和5 * 5的小卷积核用固定方式组合到一起,来代替大的卷积核。达到增加感受野和减少参数的目的。
(3)500万参数,比ALEXNET小了12倍。
(4)ILSVRC’14 测试冠军(6.7% TOP 5 ERROR)

最初的Inception结构
在这里插入图片描述
改进的Inception结构
在这里插入图片描述
改进的Inception结构作为基础单元,叠加起来形成整个网络结构。
在这里插入图片描述

ResNet

在这里插入图片描述

(1)152层
(2)ILSVRC’15冠军,(3.57 TOP 5 ERROR)
(3)加入了前向输入机制,将前面层获得的特征图作为监督项输入到后面层。用这样的方法使深层网络训练能够收敛。
在这里插入图片描述

(1)作者首先发现了,训练一个浅层的网络,无论在训练集还是在测试集上,都比深层网络表现好,而且是在训练各个阶段持续的表现好。
(2)在这个例子中,既然20层的网络表现比56层的好,那么大不了另外36层什么事情也不做,于是产生了将浅层网络的输出直接加到后面层的想法。
(虽然网络变浅了,导致网络结构复杂度降低(空间复杂度、时间复杂度降低)的同时loss没有显著减小)
在这里插入图片描述
将浅层的输出直接加入到后面层去,促使深层网络能够表现更好。
在这里插入图片描述

训练技巧:
– Batch Normalization
– Xavier initialization
– SGD + Momentum (0.9)
– Learning Rate:0.1
– Batch size 256
– Weight decay 1e-5
– No dropout

基于ResNet的人脸验证

人脸验证的关键是将人脸图像映射到一个特征空间,在这个空间中同一个人的距离更近,不同人的距离更远。这里我们采用分类监督来学习这样一个特征空间。
用Caffe实现人脸验证,先训练一个人脸分类网络,接着把网络倒数第二个全连接层作为特征层(512维)。
(一)网络结构
首先定义一个28层的ResNet。

在这里插入图片描述
在这里插入图片描述
(二)优化目标
设计我们的目标函数。参照文献,我们把目标函数确定为最小化下式:

在这里插入图片描述

第一项是softmax loss;第二项是center loss。

在这里插入图片描述

训练的Solver文件,该文件指定了训练的网络以及必要的参数

在这里插入图片描述
运行训练脚本开始训练。训练的时候可以随时终止,手动调整学习率再恢复训练。这样子我们就基本完成了用Caffe训练一个卷积神经网络的过程。

修改Caffe,添加新的layer
有时候需要一些特殊的层或者目标函数。这时候我们需要自己实现。Caffe利用各种库
使其自身代码非常简洁,修改起来也很容易。
(三)训练集和预处理
采用Webface作为训练集,包含一万个不同的人。图像的预处理包括人脸检测、人脸关键点检测和对齐裁剪。在检测到人脸关键点之后,我们找到一个相似变换矩阵将人脸与预定义的标准形状对齐。
最终结果如图:
在这里插入图片描述

最后,从处理完的训练集中划分出一部分作为验证集。

  1. 网络结构:改进的RESNET (train_val.prototxt)
  2. 采用SGD训练,每隔一定的步数降低学习率。在训练的时候caffe会把loss记录到log文件中,通过解析log文件画出loss下降图:

在这里插入图片描述

(五)实验结果
测试集是LFW数据集,评测规则是给定两张图片,判断这两张图是否是同一个人。
我们根据特征之间的余弦距离判断两张人脸是否属于同一个人。在这个数据库上的10折交叉验证准确率最终是:99.18%。

在这里插入图片描述

部署到硬件上
在这里插入图片描述

迁移学习

有以下两种应用方式:
1、对不同的数据库,用待识别的数据库(可能很少量)对已训练的模型做微调(跨度可大可小)
2、在已训练好的模型后面,以输出的参数作为输入参数,再接一个神经网络进行训练

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值