人脸识别
人脸识别主要分为两部分,人脸验证(face verification )和人脸识别(face recognition),以下两个部分内容如图所示:
One- shot learning
- 人脸识别的难点之一是“一次学习”,即我们的数据库里,只会有着员工的一张照片,而不会有很多张照片。
- 目前来说解决这个问题,在于一个函数(similarity function),输入为两个图片,存在一个阈值,来进行判断
Siamese network (孪生网络)
Siamese 网络,实际上是将两个图片在同一个网络中进行卷积,得到一组矩阵,进行不同标记,然后计算他们之差范数的平方,进而得到值,如下图所示:
Triplet 损失
我们想要得到优质的编码,方法之一是定义一个三元组损失函数,然后应用梯度下降
在我们训练的时候,A,P,N选择是任意的,而对于一个数据及来说,上方的训练条件很容易满足,所以,我们训练要选择较难的数据,使得两边接近,才会使得梯度下降产生作用。
面部验证与二分类
这里对于我们,数据库内的已有照片,我们只需要计算一次,得到后存储数据,需要对比时候在进行调用,比每用一次就进行卷积,计算效率会提高很多。
神经风格迁移(neural style transfer )
将两种不同风格的图片进行合成,比较酷。点击这里参考
可视化理解卷积神经网络
这里,我们选取第一层神经网络,找到单元的最大激活函数,对于第一层来说,都是一些边缘或者阴影,颜色之类的简单图像,对于第二层,可视化更详细一些,之后也是如此。
代价函数
为了实现神经风格迁移,通过最小代价函数,生成任何想要的图像,如图两个超参数构成代价函数J,来判断我们生成的图片是否符合这两个。
内容代价函数Jcontent与风格代价函数Jstyle
我们在大家函数需要合理的选择层数L,如果L选择特别小,比如是1,会使得像素特别接近我们的原始图像,所以L选择既不是太浅也不是太深,我们可以使用VGG网络进行练习。
如上图,我们选择合适层数L后,对于一层,nc不同的通道,代表了由不同卷积核所提取的不同特征,反应了不同的图像。
G矩阵为风格矩阵,为每个对应元素在对应通道相乘得到,也叫(格拉姆矩阵)