zoukankan      html  css  js  c++  java
  • 卷积神经网络(四)人脸识别和风格转换

    人脸识别

    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)

  • 相关阅读:
    leetcode 443: String Compression,357: Count Numbers with Unique Digits
    C++ 中 freopen()函数的用法
    filter
    map
    os.listdir
    os.path.join
    assert
    numpy中的axis和Pytorch中的dim参数
    mac中qq接收视频存放的位置
    requests
  • 原文地址:https://www.cnblogs.com/orangecyh/p/11885553.html
Copyright © 2011-2022 走看看