卷积神经网络(四)人脸识别和风格转换

人脸识别

1、One-shot learning(一次学习):

仅仅通过一张图片来完成人脸识别,即只能通过一个样本来学习.

similarity函数:

d(img1,img2) = degree of difference between images

识别任务(verification):

if d(img1,img2) ≤ τ:“same”;

else: “different”

 

2、Siamese网络:

将图片通过卷积神经网络转为128个编码,称为“encoding of x(i)”,记为f(x(i)).

 d(x(1),x(2)) = || f(x(1)) - f(x(2)) ||2.

 

3、Triplet loss(三元组损失):

(1)背景:

每组数据是三张图片,比对结果分别是“Positive”和“Negative”

希望的结果:|| f(A) - f(P) ||2 ≤ || f(A) - f(N) ||2 即 d(A, P) ≤ d(A, N),

即 || f(A) - f(P) ||2 - || f(A) - f(N) ||2 ≤ 0. 

避免 f(A) = f(P) = f(N) 的情况,需要对上式进行改进:

 || f(A) - f(P) ||2 - || f(A) - f(N) ||2 + α ≤ 0,

即 || f(A) - f(P) ||2 + α ≤  || f(A) - f(N) ||2.

其中 α 称为间隔(margin).

 

(2)损失函数:

Given 3 images A,P,N;

L(A,P,N) = max{|| f(A) - f(P) ||2 - || f(A) - f(N) ||+ α, 0}

J = ∑ L(A(i), P(i), N(i)),其中 i 从1 到 m.

训练集为1000个人的10000张照片(平均1人10张).

 

(3)选择三元组:

如果随机挑选三元组,d(A,P) + α ≤ d(A,N) 的条件很容易被满足,无法达到训练的效果,因此需要挑选满足 d(A,P) ≈ d(A,N) 的三元组.

 

4、面部验证与二分类:

当 y = 1时,判断为是同一个人;当 y = 0时,判断为不是同一个人.

 

风格迁移

1、什么是风格迁移(style transfer)?

 

2、代价函数:

J(G) = α*Jcontent(C,G) + β*Jstyle(S,G)

内容代价函数 Jcontent[l](C,G) = 1/2 * || a[l][C] - a[l][G] ||2  

风格损失函数 Jstyle(S,G):

  style matrix风格矩阵,用于计算两个每一对激活项之间的相关系数:

  

   

   

   Jstyle(S,G) = ∑ λ[l] * Jstyle[l](S,G)

posted @ 2019-11-19 11:09  橙同学的学习笔记  阅读(715)  评论(0编辑  收藏  举报