这次的开课发表者是
暴露sir概述:本科毕业于谷歌最高科学家Geoffrey Hinton (图灵奖获得者,被称为神经网络之父),深度学习之祖的爱丁堡大学( Edinburgh University )。 研究生来自香港浸会大学( HKBU )国际电子电气工程协会( IEEE )院士刘继明( jiming LIU )。 曾任融链科技项目总监、金力软件项目经理。 参加了公安部旗下的商汤投标的监控摄像头的面部检查项目。 熟悉物体检测语义分割NLP的自然语言处理和AI项目的全堆着陆WANN无权重机器人等国内外的顶尖技术。
人脸识别是一种实际分析、计算和识别人脸特征的生物识别技术,其目的是收集摄像机和摄像机包含人脸的照片和视频,检测和跟踪其中的人脸,识别和识别人脸。
人脸识别技术发展到今天,主要有两种用途
①颜面检验:颜面检验进行了1:1的对照。 也就是说,我们首先向面部识别系统传达我是张三,然后检验站在机器前面的“我”是否是张三。
②人脸识别:人脸识别进行1:N的对照。 也就是说,系统在收集了我的一张照片之后,会自动从数万人或者数百万人的仓库中找出“我是谁”。
“磨脸”是脸部识别中更具体感受的部分,实际上脸部识别给大家带来的不仅仅是“磨脸”。
目前,人脸识别技术已广泛应用于金融、防盗、交通、电子商务、娱乐等领域。
知道了什么是脸部识别之后,出了问题——是怎么实现的呢?
关于人脸识别目前有很多经典算法:基于几何特征法、局部特征分析法、弹性模型法、特征人脸法、神经网络法等
神经网络法在人脸识别中的应用与上述几种方法相比具有一定的优势。 很难显式地描述人脸识别的许多规则和规则,但神经网络法通过学习过程可以得到对这些规则和规则的隐性表达,其适应性更强,一般也更容易实现。
卷积神经网络( CNN )的前段包括卷积和池化操作,可以进行图像特征提取和降维,近年来由于计算机计算能力的提高,很多人趋向于这个方向。
因此,在此次公开授课中,以SNNNN为技术背景,介绍了面部识别的基本想法
首先用人脸的检测方法检测脸的位置,根据返回的坐标、大小用排列切片的方法切出脸,把切出的小图像送到训练的卷积神经网络模型中,得到脸的分类结果,最后在原始图像中加入框架,把其结果写在框架的上端。
当然,实现以上步骤的前提是有能够进行脸部识别训练的模型。 因为训练的好坏直接影响认识的准确度。
因此,本课以训练为重点,对从LeNet向VGG-Nets的网络体系结构的进化进行了简单的说明。
亮点:定义了CNN的基本框架的卷积层、池化层、全连接层; 是CNN的祖先。
亮点:更深的网络数据扩展ReLU; dropout; LRN。
亮点:网络结构虽然不太改善,但只是调整了参与,性能比AlexNet提高得多。
亮点:卷积图层使用较小的滤镜大小和间距。 与AlexNet相比,可以看出VGG-Nets卷积核的大小仍然很小。 例如,用于AlexNet第一层卷积层的卷积核大小为11*11,这是一个大卷积核。 相反,观察VGG-Nets,所使用的卷积核的大小只不过是1×1和3×3的小卷积核,取代了大的filter大小。
CNN从90年代的LeNet到21世纪初沉默了10年,12年LeNet再次迎来了第二个春天,从ZF-Net到VGG-Nets,网络越来越深,结构越来越复杂,解决反向传播时的梯度消失的方法也越来越巧妙 但是,没有变化的是CNN的基本框架是卷积层、池层和全连接层。 层数不变,但CNN的流动不变。 因此,只要充分理解卷积层、池化层和全部连接层,就能找到开始CNN的技巧。
收缩层( Convolution )
关于卷积层,我们先来看一下被称为“卷积运算”的东西。
上图的大网表示照片,用颜色填充的网表示卷积核,卷积核的大小为3*3。 如果执行一个步长的卷积运算,卷积核心会一次向右移动一个像素(移动到边界时返回左端,下移一个单位)。 卷积核每个单元都有权重,上图的卷积核有9个权重。 在卷积核移动过程中,将图像上的像素与卷积核的相应权重相乘,最后将所有乘积相加得到一个输出。 上图经过卷积形成了6*4的图。
理解卷积操作后,看一下卷积的特点。
在传统的神经网络中,神经元都必须连接到图像上的像素。 这样,权重的数量就会变得庞大,网络的训练也变得困难。 在包含卷积层的神经网络中,每个神经元的权重数相当于卷积核的大小,没有神经元,只与对应的图像部分的像素相连。 这大大减少了权重的数量。 此外,可以设置卷积运算的步骤。 将上图卷积运算的步骤设定为3时,假设每次卷积都没有重复区域(对超出边界的部分补充自定义值)。
局部感官的直觉感官如下:
ps :使用局部感知的理由是,图像中距离近的部分被认为相关性大,距离远的部分相关性小。 对于卷积操作,步骤设置对应于距离的透视。 但是,步长大小设置没有值。 用户需要尝试一下。
在介绍参数共享之前,应该知道卷积核的权重是通过学习得到的,卷积过程中卷积核的权重不变,这就是参数共享的思想。 这表明我们通过一个卷积核的操作提取了原图不同位置的相同特征。 简而言之,在一个图像中的不同位置处的相同目标,其特征基本相同。
过程如下图所示
正如权重共享的部分所说的那样,我们在一个卷积核操作中可能只能得到一些特征,从而导入了多核卷积。 每个卷积核学习不同的特征(每个卷积核学习不同的权重)提取原图特征。
上图的图像通过三个卷积核的卷积操作得到三个特征图。 注意,在多核卷积的过程中,每一卷积核的大小必须相同。
池层( Pooling )
池化层虽然降低了各个特征图的维度,但可以保持大部分的重要信息。
池化层夹在连续的卷积层之间,压缩数据和参数的量,减少拟合,池化层没有参数。 它只是对上层给出的结果的减采样(数据压缩)。
下采样有两种常见的方法
①Max pooling :选择最大的,定义空间邻域,从窗口内的修正特征图中提取最大的要素,证明最大池化更有效。
②Average pooling :平均定义空间附近,根据窗口内的修正特征图计算平均值。
这是因为无论是max pool还是average pool,如果得分信息被丢弃,则一部分信息不会损坏识别结果,或者卷积后的Feature Map中有识别物体不需要的冗馀信息。 我们缩减采样是为了排除这些冗长的信息,不会损害识别结果。
完全连接( Fully connected )
所有神经元都加权连接到全连接层,通常全连接层位于卷积神经网络的尾部。 在前面的卷积层捕捉到足以识别图像的特征后,接下来是如何分类的。 通常,卷积网络的最后,把末端得到的长方体平整成长向量,送到全连接层,与输出层一起进行分类。 例如,在下图中我们进行的图像分类是4个分类问题,所以卷积神经网络的输出层有4个神经元。
我们认为是从卷积神经网络的卷积层、池化层及全连接层描述卷积神经网络,进行全连接层间的特征提取,全连接层分类,这是卷积神经网络的核心。
三者与卷积神经网络的关系可以理解如下
卷积神经网络在形式上与我们的“人民代表大会制度”相似。 卷积核的数量相当于候选人,根据图像中的特征激活不同的“候选人”(卷积核)。 池化层(仅指最大池化)起着“合票”的作用,不同的特征对不同的“候选人”有各自的喜好。 全连接相当于“代表选举”,各地区选出的代表对最终结果进行“投票”,全连接保证receiptive field是整个图像,图像的各部分(所谓全代表)有权影响最终结果。
列举栗子:以VGG-16为例,在224x224x3的输入的最后一层进行卷积时,如果输出为7x7x512,最后一层为含有4096个神经元的FC,则卷积核能够通过7x7x512x4096的全局卷积实现。 通过统合特征点representation并将其作为值输出,具有大幅减少特征点位置对分类带来的影响的优点。
让我举一个简单的栗子
如上图所示
猫在不同的位置
输出的feature值相同
但是位置不同
对电脑来说
特征值相同
但是,特征量的位置不同
那个分类结果也许不一样
此时
全连接层filter的作用是
猫在哪儿都没关系
只有猫
所以我让filter找到这只猫
事实上,我们把feature map
合并为一个值
这个价钱很大,有猫
如果这个值很小的话,可能没有猫
和这只猫没有多大关系
稳健性得到了极大的强化
因为空间结构的特性将被忽略
因此,所有连接层都不适合使用
按方位查找Pattern的任务
例如segmentation
全连接层中的一层神经元
可以看作多项式
我们使用很多神经元拟合数据分布
但是,完全连接的层只有一个
有时不能解决非线性问题
如果你有两层
或以上的完全连接层
现在可以很好地解决非线性问题了
我们都知道
全连接层之前的作用是提取特征
完全理解层的作用是分类
我们现在的任务是区别照片是否是猫
假设这个神经网络模型受到了训练
全连接层已为人所知
当我们得到这些特征时,
你可以判断这东东是猫
因为全连接层的作用主要是实现分类
根据下图
我们可以
红神经元表明发现(活化)了这一特征
同一层的其他神经元
猫的特征不清楚吗
找不到吗
把这些特征结合起来,
发现最符合要求的是猫
OK我想这是一只猫
猫的头有这样的特点
我们的下一步是
就是找出猫头的特征
例如眼睛或耳朵
道理就像区别猫一样
当我们发现这些特征时,
神经元被激活
这个细节的特征是怎么来的
它来自前面的卷积层,池化层
总连接层参数非常多
(可占网络参数整体的80%左右)
PS:Google net在vgg-nets之后导入Inception结构,不是单纯的卷积激活的传统操作,而是中间层的辅助LOSS单元,后续的所有连接层都被单纯的全局平均pooling所取代的ResNet在网络结构中变大
最后,sir以Facenet和Face Recognition为训练模式,让孩子们实践了面部识别的全过程。