四、基于CNN卷积神经收集进行人脸辨认
我们先大年夜全连接收集谈起。Google的TensorFlow游乐场里可以直不雅的体验全连接神经收集的威力,这是游乐场的网址:http://playground.tensorflow.org/,浏览器里就可以做神经收集练习,且过程与结不雅可视化。如下图所示:

这个神经收集游乐场共有1000个练习点和1000个测试点,用于对4种不合图案划搀扶蓝色点与黄色点。DATA处可选择4种不合图案。
取进出脸特点值是最难的,那么深度进修是若何取特点值的?
全部收集的输入层是FEATURES(待解决问题的特点),例如x1和x2表示垂直或者程度切分来划分蓝色与黄色点,这是最轻易懂得的2种划分点的办法。其余5种其实不太轻易想到,这也是传统的专家体系才须要的,实际上,这个游乐场就是为了演示,1、好的神经收集只用最根本的x1,x2如许的输入层FEATURES就可以完美的实现;2、即使有很多种输入特点,我们其实并不清跋扈谁的权重最高,但好的神经收集会解决掉履┞封个问题。
隐层(HIDDEN LAYERS)可以随便设置层数,每个隐层可以设置神经元数。实际上神经收集并不是在计算力足够的情况下,层数越多越好或者每层神经元越多越好。好的神经收集架构模型是很难找到的。本文后面我们会重点讲几个CNN经典收集模型。然而,在这个例子中,多一些隐层和神经元可以更好地划分。
epoch是练习的轮数。红色框出的loss值是衡量练习结不雅的最重要指标,如不雅loss值一向是在降低,比如可以低到0.01如许,就说明这个收集练习的结不雅好。loss也可能降低一会又忽然上升,这就是不好的收集,大年夜家可以测验测验下。learning rate初始都邑设得高些,练习到后面都邑调低些。Activation是鼓励函数,今朝CNN都在应用Relu函数。
懂得了神经收集后,如今我们回到人脸辨认中来。每一层神经元就是一个f函数,膳绫擎的四层收集就是f1(f2(f3(f4(x))))。然而,就像上文所说,照片的像素太多了,全连接收集中随便率性两层之间每两个神经元都须要有一次计算。特别之前提到的,复杂的分类依附于许独裁函数合营运算才能达到目标。当前典范多收集都是多达100层以上,如不雅每层都有3*100*100个神经元,可想而知计算量有多大年夜!于是CNN卷积神经收集应运而生,它可以在大年夜幅降低运算量的同时保存全连接收集的威力。
CNN认为可以只半数张图片的一个矩形窗口做全连接运算(可称为卷积核),滑动这个窗口以雷同的权重参数w遍历整张图片后,可以获得下一层的输入,如下图所示:

CNN中认为同一层中的权重参数可以共享,因为同一张图片的各个不合区域具有必定的类似性。如许本来的全连接计算量过大年夜问题就解决了,如下图所示:

结合着之前的函数前向运算与矩阵,我们以一个动态图片直不雅的看一下前向运算过程:

年前最后一场技巧盛宴 | 1.27与京东、日记易、假贷宝技巧大年夜咖畅聊智能化运维成长趋势!
这里卷积核大年夜小与移动的步长stride、输出深度决定了下一层收集的大年夜小。同时,核大年夜小与stride步长在导致上一层矩阵不敷大年夜时,须要用padding来补0(如上图灰色的0)。以上就叫做卷积运算,如许的一层神经元称为卷积层。上图中W0和W1表示深度为2。
CNN卷积收集平日在每一层卷积层后加一个鼓励层,鼓励层就是一个函数,它把卷积层输出的数值以非线性的方法转换为另一个值,在保持大年夜小关系的同时束缚住值范围,使得全部收集可以或许练习下去。在人脸辨认中,平日都应用Relu函数作为鼓励层,Relu函数就是max(0,x),如下所示:

可见 Relu的计算量其实异常小!
CNN中还有一个池化层,当某一层输出的数据量过大年夜时,经由过程池化层可以对数据降维,在保持住特点的情况下削减数据量,例如下面的4*4矩阵经由过程取最大年夜值降维到2*2矩阵:

上图中经由过程对每个色彩块筛选出最大年夜数字进行池化,以减小计算数据量。
以上只是通用的CNN收集,因为人脸辨认应用中不是直接分类,而是有一个注册阶段,须要把照片的特点值掏出来。如不雅直接拿softmax分类前的数据作为特点值效不雅很不好,例如下图是直接将全连接层的输出转化为二维向量,在二维平面上经由过程色彩表示分类的可视化表示:

可奏效不雅并不好,中心的样本距离太近了。经由过程centor loss办法处理后,可以把特点值间的距朗攀扩大年夜,如下图所示:

如许掏出的特点值效不雅就会好很多。
实际练习resnet v1收集时,起首须要存眷练习集照片的质量,且要把不合尺寸的人脸照片resize到resnet1收集首层接收的尺寸大年夜小。别的除了膳绫擎提到的进修率和随机梯度降低中每一批batchsize图片的数量外,还须要精确的设置epochsize,因为每一轮epoch应当完全的遍历完练习集,而batchsize受限于硬件前提一般不变,但练习集可能一向在变大年夜,如许应保持epochsize*batchsize接近全部练习集。练习过程中须要密切存眷loss值是否在收敛,可恰当调节进修率。
推荐阅读
年前最后一场技巧盛宴 | 1.27与京东、日记易、假贷宝技巧大年夜咖畅聊智能化运维成长趋势! 月初,一篇题为《Docker公司已逝世》的文┞仿,预言了Docker公司将在2018年的某个时刻不复存在。>>>详细阅读
本文标题:深入浅出谈人脸识别技术
地址:http://www.17bianji.com/lsqh/40451.html
1/2 1