目录

  • 1. 论文&代码源
  • 2. 论文亮点
  • 3. 多视角的生成对抗网络
    • 3.1 网络生成历程
    • 3.2 网络结构
    • 3.3 损失函数
      • 3.3.1 判别器损失(Discriminator Loss)
      • 3.3.2 视角分类损失(View Classification Loss)
      • 3.3.3 循环一致性损失(Cycle Consistency Loss)
      • 3.3.4 识别损失(Identification Loss)
      • 3.3.5 完整目标损失函数(Full Objective)
    • 3.4 其他细节分析
      • 3.4.1 跨数据集的多视角生成
      • 3.4.2 多数据集训练
      • 3.4.3 真假步态图像之间数据集的适应性
    • 3.5 实验实施
      • 3.5.1 网络结构
      • 3.5.2 训练过程
  • 4. 实验结果
  • 5. 总结
  • 0. 知识补充
    • 0.1 奇异值分解(SVD)
    • 0.2 生成对抗网络(GAN)
      • 0.2.1 基本概念
      • 0.2.2 其他生成网络
      • 0.2.3 损失函数
      • 0.2.4 训练流程
    • 0.3 t-SNE

1. 论文&代码源

《Multi-View Gait Image Generation for Cross-View Gait Recognition》
论文地址:https://ieeexplore.ieee.org/document/9349211/
代码下载地址: 作者未提供源代码?

2. 论文亮点

在现实中难以在各种不同视角下捕捉步态数据,跨视角的步态识别是根据已知试图的步态数据识别未知视图下的步态数据。
跨视角的步态识别方法主要有两种:视角转换模型(VTM)和视角不变特征提取。
视角转换模型(View Transformation Model)的基础是奇异值分解(SVD),相关内容参见知识补充部分。

  1. 不同视角下的步态图像由单一生成器自动生成。可以利用不同受试者和不同数据集共同提取步态特征,还可以使单一生成器学习到不同受试者和数据集更丰富的步态信息,增加假样本的多样性。
  2. 对真假步态样本进行基于投影最大平均差异(MMD)的域对齐,减少假样本生成过程产生的域转移带来的影响。
  3. 添加相同或不同数据集生成的假样本扩展数据集,提高步态分类模型的泛化能力。

3. 多视角的生成对抗网络

3.1 网络生成历程

当生成器接受图像作为输入时,生成器可以将输入图像转移到目标图像定义的域中,实现域的转移任务。给定成对的样本,域的转移任务可以通过监督学习的方式实现(如pix2pix方法)。
(问题1)但步态图像是离散的,不同视角下很难实现无偏差对齐,因此基于非配对的无监督GANs更加适用。
在某一视角下,U→V\mathbf U \to \mathbf VU→V需构建GA,DAG_A, D_AGA​,DA​;V→U\mathbf V \to \mathbf UV→U需构建GB,DBG_B, D_BGB​,DB​,假设有kkk个视角,则需要训练k(k−1)k(k-1)k(k−1)次。
这里不太明白
(问题2)当数据量较少时,难以训练多个GANs,从而容易出现过拟合现象,所以作者提出了训练一个以目标视图标签为条件的条件GAN来控制生成步态图像的视图的单一生成器G,实现多视角映射,MvGGAN具体工作原理如下:
(引出此方法)
{给定输入图像序列X={x1,x2,...,xN},目标视角标签c由G(X,v)→Y得到输出图像序列Y={y1,y2,...,yN}判别器预测输出图像视角和身份的真假\begin{cases} 给定输入图像序列X=\{x_1, x_2, ..., x_N\},目标视角标签c\\ 由G(X, v)\to Y得到输出图像序列Y=\{y_1, y_2, ..., y_N\}\\ 判别器预测输出图像视角和身份的真假\\ \end{cases} ⎩⎪⎨⎪⎧​给定输入图像序列X={x1​,x2​,...,xN​},目标视角标签c由G(X,v)→Y得到输出图像序列Y={y1​,y2​,...,yN​}判别器预测输出图像视角和身份的真假​
MvGGANMvGGANMvGGAN类似StarGANStarGANStarGAN,区别在于:

StarGAN MvGGAN
将图像从一个域转换到另一个域,不需要保留身份信息 生成更多的多域多样的假样本,需要保留身份信息作为训练数据

3.2 网络结构


上图中的角度仅是示意作用。生成器共有2个初始输入量:原始步态图像(0°0°0°)、目标步态角度(90°90°90°),这两个输入量将输出一组角度为90°90°90°的假图像(Fake image);还有2个过程输入量:原始步态角度(0°0°0°)、假图像(90°90°90°),这两个输入量将输出一组角度为0°0°0°重建图像(Reconstructed image)(假中假)。
角度均为90°90°90°的真假图像输入判别器(Discriminator)和识别判别器(Identification discriminator),分别计算判别损失、视角分类损失和判别损失。

3.3 损失函数

3.3.1 判别器损失(Discriminator Loss)

我们需要判断生成器输出图像的真假概率,判别器尝试去区分出假的图像,生成器则去尽力“欺骗”判别器,这样在判别器上的对抗损失函数如下:
Ladv=EX[log⁡D(X)]+EX,vt[log⁡(1−D(G(X,vt)))](1)L_{adv} = \Bbb E_X[\log D(X)] + \Bbb E_{X,v_t}[\log (1-D(G(X, v_t)))]\qquad(1)Ladv​=EX​[logD(X)]+EX,vt​​[log(1−D(G(X,vt​)))](1)
其中,G(X,vt)G(X,v_t)G(X,vt​)表示输入图像序列XXX基于视角vtv_tvt​在生成器中进行生成。

3.3.2 视角分类损失(View Classification Loss)

为了生成特定视角vtv_tvt​下的步态图像,需要通过视角分类网络将生成的步态样本归入相应的视角vtv_tvt​中。假设有kkk个视角,在判别器DDD上增加一个具有kkk个输出节点的分类器实现视角的分类。视角分类网络表示为DviewD_{view}Dview​,首先需要对DviewD_{view}Dview​进行优化,将真实的步态图像作为输入,相应的真实的视角标签作为输出,优化过程的损失函数如下:
Lviewreal=EX,vt[log⁡Dview(vt∣X)]L_{view}^{real} = \Bbb E_{X,v_t} [\log D_{view}(v_t|X)]Lviewreal​=EX,vt​​[logDview​(vt​∣X)]
其中,Dview(vt∣X)D_{view}(v_t|X)Dview​(vt​∣X)表示输入图像XXX属于视角vtv_tvt​的可能性(概率值)。这个损失是负值?
此网络还用于将GGG生成的假图像正确地分类到目标视角vtv_tvt​中,因此GGG需要最小化以下损失函数:
Lviewfake=EX,vt[−log⁡Dview(vt∣Y)]=EX,vt[−log⁡Dview(vt∣G(X,vt))](2)L_{view}^{fake} = \Bbb E_{X,v_t} [-\log D_{view}(v_t|Y)]\\ = \Bbb E_{X,v_t} [-\log D_{view}(v_t|G(X,v_t))]\qquad(2)Lviewfake​=EX,vt​​[−logDview​(vt​∣Y)]=EX,vt​​[−logDview​(vt​∣G(X,vt​))](2)

3.3.3 循环一致性损失(Cycle Consistency Loss)

前面两种损失的衡量目的是为了生成看起来更为真实且属于目标视角的步态图像,但是除了视角变化外,还可能存在其他方面的变化(如:着装、携带物等),这样会使得生成结果变得难以控制。为了保留输入步态样本的其他步态信息,同时只改变视角单一元素,此处引入循环一致性损失函数,以尽可能地保留视角变化之外的步态信息
Lrec=EX,v,vt[∣∣X−G(G(X,vt),v)∣∣1](3)L_{rec} = \Bbb E_{X,v,v_t}[||X-G(G(X,v_t), v)||_1]\qquad(3)Lrec​=EX,v,vt​​[∣∣X−G(G(X,vt​),v)∣∣1​](3)
其中,生成器GGG被使用了两次,一次是G(X,vt)G(X, v_t)G(X,vt​)生成视角vtv_tvt​下的(假)步态图像,另一次是G(G(X,vt),v)G(G(X, v_t), v)G(G(X,vt​),v)重建视角vvv下的原始输入序列。

3.3.4 识别损失(Identification Loss)

重建损失试图保留输入序列中每一个步态图像的结构信息以及视角信息,但是这种损失的构建是将每一个步态图像分别进行处理的,并没有考虑不同图像帧之间的关系。实际情况是,步态是一连串帧组成的动态信息,逐帧计算损失可能会导致主体识别失误。因此需要设计一个识别判别器DidD_{id}Did​。识别判别器将原始步态数据序列和生成器输出的步态图像序列作为一个训练数据对,并产生该数据对是否来自同一个人的概率,如果来自同一主体,则输出为111,否则输出000,损失函数如下:
Lid=EX[log⁡Did(X)]+vEX,vt[log⁡(1−Did(G(X,vt)))](4)L_{id} = \Bbb E_X[\log D_{id}(X)] +v \Bbb E_{X,v_t}[\log (1-D_{id}(G(X, v_t)))]\qquad(4)Lid​=EX​[logDid​(X)]+vEX,vt​​[log(1−Did​(G(X,vt​)))](4)
为了充分利用动静态的步态信息,文章设计了基于LBLBLB网络的识别判别器结构。

3.3.5 完整目标损失函数(Full Objective)

结合以上4个损失函数,可以得到最终的目标损失函数:
L(G,D)=Ladv+λviewLviewreal+λviewLviewfake+λrecLrec+λidLid(5)L(G, D) = L_{adv}+ \lambda_{view}L_{view}^{real} + \lambda_{view}L_{view}^{fake} + \lambda_{rec}L_{rec} + \lambda_{id}L_{id}\qquad(5)L(G,D)=Ladv​+λview​Lviewreal​+λview​Lviewfake​+λrec​Lrec​+λid​Lid​(5)
其中,GGG试图最小化这个目标损失,而DDD则试图将其最大化,λ\lambdaλ是超参数(机器学习模型里面的框架参数),用于控制不同损失函数在优化过程中的重要性(权重占比)。

3.4 其他细节分析

3.4.1 跨数据集的多视角生成

通过控制视角标签向量vtv_tvt​来控制生成步态图像的目标视角,如果vtv_tvt​由来自包括k1k_1k1​个视角的数据集AAA组成,那么就可以在k1k_1k1​个视角下生成步态样本。此外,将包括k2k_2k2​个视角的数据集BBB与vtv_tvt​结合起来,那么MvGGANMvGGANMvGGAN就可以在k1+k2k_1+k_2k1​+k2​个视角下生成步态样本。通过这种方式,数据集AAA和数据集BBB都将包括k1+k2k_1+k_2k1​+k2​个视角,两个数据集都被扩展到包含更多的样本。
为了实现上述文字所描述的目标,作者依据StarGANStarGANStarGAN方法,定义了一个统一的标签向量v~\tilde vv~:
v~=[v1,...,vn,m](6)\tilde v = [v_1, ..., v_n, m]\qquad(6)v~=[v1​,...,vn​,m](6)
其中,viv_ivi​表示的是数据集中第iii个向量标签,mmm是一个nnn维的独热向量,如果mmm的第iii个元素是111,说明生成的步态图像的目标视角是第iii个。

3.4.2 多数据集训练

在步态识别中,除了视角差异,着装和携带物也是两个十分重要的影响因素,因此作者假设同一个着装条件或相同携带物的步态样本作为同一个“域”,前面提到kkk代表数据集中有kkk个视角标签,整体是一个kkk维的独热向量。现在需要将代表着装或携带物属性的标签与kkk进行串联,形成一个统一的标签向量uuu,有u=[k,d]u=[k, d]u=[k,d],其中ddd代表着装或携带物条件的独热向量。
在现实生活中,着装和携带物的变化是多种多样的,从而应当对应不同的域,但是实验过程中难以实现,所以作者仅针对CASIA-B数据集涉及的两种典型着装(夏装和大衣),以及两种典型携带物(双肩包和单肩包)进行实验。
在实验过程中,将“nm”、“bg”和“cl”类型视为三个域。

3.4.3 真假步态图像之间数据集的适应性

由于作者使用的是单一生成器来生成不同行走条件下(甚至不同数据集)的假步态图像,理论上,真假步态图像之间应该存在分布差异,因此,作者使用t-SNE方法将真假步态图像的分布进行可视化操作,如下图所示:

标签0-4为假步态图像,5-9为真步态图像。左图中的假步态图像涵盖了来自CASIA-B和OU-MVLP数据集的22个不同的视角,真步态图像仅涵盖来自CASIA-B的11个不同的视角;右图仅显示在90°视角下的真假步态图像,不难看出二者在分布上存在明显的差异。
为了解决上述问题,作者引入域对齐方法,学习一个特征映射函数F(⋅)F(\cdot)F(⋅)以减少真假步态图像的分布差异。真步态特征集合为Dr={xri,yri}i=1n\mathcal D_r = \{\mathbf x_{r_i},y_{r_i}\}_{i=1}^nDr​={xri​​,yri​​}i=1n​,假步态特征集合为Df={xfj,yfj}j=n+1n+m\mathcal D_f = \{\mathbf x_{f_j},y_{f_j}\}_{j=n+1}^{n+m}Df​={xfj​​,yfj​​}j=n+1n+m​,以及标签空间Yr=Yf\mathcal Y_r=\mathcal Y_fYr​=Yf​。不同数据集之间的分布差异由边际分布(P)主导,同一数据集的样本分布差异由条件分布(Q)主导,考虑这两方面因素,作者提出:
DF(Dr,Df)=(1−η)DF(Pr,Pf)+η∑c=1CDF(c)(Qr,Qf)(7)D_F(\mathcal D_r, \mathcal D_f) = (1-\eta)D_F(P_r,P_f)+\eta \sum_{c=1}^C D_F^{(c)}(Q_r,Q_f)\qquad(7)DF​(Dr​,Df​)=(1−η)DF​(Pr​,Pf​)+ηc=1∑C​DF(c)​(Qr​,Qf​)(7)
其中,η\etaη是平衡边际分布和条件分布的自适应因子;c∈1,...,Cc \in 1,...,Cc∈1,...,C表示步态图像主体的ID,DF(Pr,Pf)D_F(P_r,P_f)DF​(Pr​,Pf​)为边际分布排列,DF(c)(Qr,Qf)D_F^{(c)}(Q_r,Q_f)DF(c)​(Qr​,Qf​)是ID为ccc的条件分布排列。
真假步态图像之间的分布差异可以通过最大平均值差异(Maximum Mean Discrepancy, MMD) 来进行计算,具体计算公式为:
DF(Dr,Df)=(1−η)∣∣E[F(xr)]−E[F(xf)]∣∣HK2+η∑c=1C∣∣E[F(xr(c))]−E[F(xf(c))]∣∣HK2(8)D_F(\mathcal D_r, \mathcal D_f) = (1-\eta)||\Bbb E[F(\mathbf x_r)]-\Bbb E[F(\mathbf x_f)]||_{\mathcal H_K}^2 \\+ \eta \sum _{c=1}^C||\Bbb E[F(\mathbf x_r^{(c)})]-\Bbb E[F(\mathbf x_f^{(c)})]||_{\mathcal H_K}^2\qquad(8)DF​(Dr​,Df​)=(1−η)∣∣E[F(xr​)]−E[F(xf​)]∣∣HK​2​+ηc=1∑C​∣∣E[F(xr(c)​)]−E[F(xf(c)​)]∣∣HK​2​(8)
其中,E[⋅]\Bbb E[\cdot]E[⋅]是嵌入特征的均值;HK\mathcal H_KHK​表示的是再生核希伯尔特空间(Reproducing Kernel Hilbert Space, RKHS),基于表示定理(Representer Theorem),公式(8)(8)(8)可以表示为
DF(Dr,Df)=tr(FTMF)(9)D_F(\mathcal D_r, \mathcal D_f) = \text {tr}(\mathbf F^T \mathbf {MF}) \qquad(9)DF​(Dr​,Df​)=tr(FTMF)(9)
其中,F∈R(n+m)×d\mathcal F \in \Bbb R^{(n+m)\times d}F∈R(n+m)×d是每个样本的特征向量连接成的特征矩阵,在特征矩阵中每一行代表真假样本x\mathbf xx的特征向量F(x)F(\mathbf x)F(x),ddd是特征向量F(x)F(\mathbf x)F(x)的维度。
MMD的矩阵M=(1−η)M0+η∑c=1CMc(10)\mathbf M = (1- \eta)\mathbf M_0 +\eta \sum_{c=1}^C \mathbf M_c \qquad(10)M=(1−η)M0​+η∑c=1C​Mc​(10)用于计算矩阵F\mathbf FF中步态特征的分布差异(distribution divergence),公式(10)(10)(10)中各元素的计算式如下:
(M0)ij={1n2,xi,xj∈Dr1m2,xi,xj∈Dj−1mn,others(11)(\mathbf M_0)_{ij}= \begin{cases} \frac 1{n^2}, &{\mathbf x_i,\mathbf x_j \in \mathcal D_r} \\ \frac 1{m^2}, &{\mathbf x_i,\mathbf x_j \in \mathcal D_j} \\ -\frac 1{mn}, & \text {others} \\ \end{cases} \qquad(11)(M0​)ij​=⎩⎪⎨⎪⎧​n21​,m21​,−mn1​,​xi​,xj​∈Dr​xi​,xj​∈Dj​others​(11)
(Mc)ij={1nc2,xi,xj∈Dr(c)1mc2,xi,xj∈Dj(c)−1mcnc,xi∈Dr(c),xj∈Df(c)orxi∈Df(c),xj∈Dr(c)0,others(12)(\mathbf M_c)_{ij}= \begin{cases} \frac 1{n_c^2}, &{\mathbf x_i,\mathbf x_j \in \mathcal D_r^{(c)}} \\ \frac 1{m_c^2}, &{\mathbf x_i,\mathbf x_j \in \mathcal D_j^{(c)}} \\ -\frac 1{m_c n_c}, &{\mathbf x_i \in D_r^{(c)},\mathbf x_j \in \mathcal D_f^{(c)} \space or \space \mathbf x_i \in D_f^{(c)},\mathbf x_j \in \mathcal D_r^{(c)} } \\ 0, & \text {others} \end{cases} \qquad(12) (Mc​)ij​=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​nc2​1​,mc2​1​,−mc​nc​1​,0,​xi​,xj​∈Dr(c)​xi​,xj​∈Dj(c)​xi​∈Dr(c)​,xj​∈Df(c)​ or xi​∈Df(c)​,xj​∈Dr(c)​others​(12)
其中ncn_cnc​,mcm_cmc​分别表示受试者ccc的真假样本数量。实验中,对于同一数据集生成的假步态样本,设置η=0.8\eta = 0.8η=0.8,跨数据集生成的假步态样本,设置η=0.2\eta = 0.2η=0.2。

为了减少真假样本的分布差异,映射函数FFF在训练过程中需要最小化公式(7)(7)(7)中的目标函数。在本文中,映射函数FFF被构建为一个多层全连接网络——输入的步态特征可以从步态分类网络的任何一层提取。作者将中间层的节点数设为为1024,原因是:域对齐网络的目的是减少真假步态图像之间的分布差异,也就是说,我们只要求真假图像的整体分布一致,单幅图像的合并特征不受约束,实验发现中间层1024个节点数足以实现分布对齐。更多的节点数会增加计算成本和过拟合风险,并且不会带来性能的提高。对齐后的步态特征被输入到步态分类网络的下一层,完成训练或测试。

3.5 实验实施

3.5.1 网络结构

生成器参考StarGAN模型,判别器使用PatchGAN模型,判别损失采用【A comprehensive study on cross-view gait based human identification with deep CNN】文章中的LB网络。

3.5.2 训练过程

在损失函数Ladv\mathcal L_{adv}Ladv​中采用Wasserstein GAN(WGAN),来稳定对抗性训练过程。
超参数设置λview=1\lambda_{view} = 1λview​=1,λrec=10\lambda_{rec} = 10λrec​=10,λid=5\lambda_{id} = 5λid​=5,使用Adam优化生成器和判别器。batch size为161616,判别器每更新五次,生成器更新一次。学习率初值为0.00010.00010.0001,epoch值为505050,学习率会随着迭代线性衰减到000。

4. 实验结果





5. 总结

在本文中,作者基于多视角步态生成对抗网络(MvGGAN),在不同的步态数据集下生成不同视角的假步态样本。MvGGAN包括一个生成器和一个判别器,前者在几种行走条件下生成假步态样本,后者实现了对抗性训练并保留了人的身份信息。通过向原始步态数据集添加生成的假步态样本,并在真实样本和假样本之间进行域对齐操作,使得基于深度学习的步态分类网络的性能可以得到明显改善。

本文证明了通过向原始步态数据集添加假样本,来提高跨视角步态识别性能是切实可行的,同时也证明了在一个数据集的不同视角或其他行走条件下为另一个数据集生成假样本同样可行。跨数据集的步态图像生成相当重要,因为它可以使步态分类网络在尽可能多的行走条件下学习步态信息,并提高现实场景中(含有大量未登记的步态样本)步态识别的性能。

0. 知识补充

0.1 奇异值分解(SVD)

奇异值分解(Singular Value Decomposition)是在机器学习领域广泛应用的算法,不仅可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域,是很多机器学习算法实现的基础。

特征值和特征向量
Aw=λwAw = \lambda wAw=λw
其中,AAA是n×nn \times nn×n维的矩阵,www是一个nnn维向量(特征向量),λ\lambdaλ是与特征向量www相对应的特征值。
特征值和特征向量求出后,可以将矩阵AAA进行特征分解:
A=WΣW−1A = W \Sigma W^{-1}A=WΣW−1
其中,WWW是由nnn个特征向量w1,w2,...,wnw_1, w_2, ..., w_nw1​,w2​,...,wn​组成的n×nn \times nn×n维矩阵,Σ\SigmaΣ是由特征向量wiw_iwi​对应的特征值λi\lambda _iλi​在主对角线上组成的对角阵。
若AAA不是n×nn \times nn×n维的方阵,而是行列数不相同的m×nm \times nm×n维矩阵,那么就需要进行奇异值分解。

SVD
A=UΣVTA = U \Sigma V^TA=UΣVT
其中,U∈Rm×mU \in \mathbf R^{m \times m}U∈Rm×m,Σ∈Rm×n\Sigma \in \mathbf R^{m \times n}Σ∈Rm×n,V∈Rn×nV \in \mathbf R^{n \times n}V∈Rn×n,Σ\SigmaΣ除主对角线上的元素以外均为000,主对角线上的元素即为奇异值,UUU和VVV均为正定矩阵(酉矩阵),满足UTU=I,VTV=IU^TU=I, V^TV=IUTU=I,VTV=I。
对矩阵的转置ATA^TAT和矩阵AAA做乘法,得到一个n×nn \times nn×n维的方阵,对这一方阵进行特征分解,得到特征值和特征向量满足下式:
(ATA)vi=λvi(A^TA)v_i = \lambda v_i(ATA)vi​=λvi​
其中,由特征向量viv_ivi​组成的矩阵VVV就是奇异值分解公式中的VVV;同理,
(AAT)ui=λui(AA^T)u_i = \lambda u_i(AAT)ui​=λui​
一般将矩阵UUU成为左奇异向量。
接下来求解Σ\SigmaΣ矩阵。
A=UΣVT→AV=UΣVTV=UΣ→Avi=uiσi→σi=AviuiA = U \Sigma V^T \to AV =U \Sigma V^TV=U \Sigma \\ \to Av_i = u_i \sigma_i\\ \to \sigma_i = \frac{Av_i}{u_i}A=UΣVT→AV=UΣVTV=UΣ→Avi​=ui​σi​→σi​=ui​Avi​​
经过以上推导,就可以求出各个奇异值σi\sigma_iσi​,从而求出Σ\SigmaΣ矩阵。
此外,还有一种求解Σ\SigmaΣ矩阵的方法,就是从前面定义(ATA)(A^TA)(ATA)的特征矩阵是VVV,(AAT)(AA^T)(AAT)的特征矩阵是UUU,这一点入手。以VVV矩阵为例:
A=UΣVT→AT=(UΣVT)T=VΣUT→ATA=(VΣUT)(UΣVT)=VΣ2VTA = U \Sigma V^T \\ \to A^T = (U \Sigma V^T)^T = V \Sigma U^T \\ \to A^TA = (V \Sigma U^T)(U \Sigma V^T)=V \Sigma^2V^TA=UΣVT→AT=(UΣVT)T=VΣUT→ATA=(VΣUT)(UΣVT)=VΣ2VT
上面的推导过程说明ATAA^TAATA的特征向量组成的矩阵就是VVV,而且特征值矩阵是奇异值矩阵的平方,即
σi=λi\sigma_i = \sqrt \lambda_iσi​=λ​i​

0.2 生成对抗网络(GAN)

0.2.1 基本概念

生成对抗网络(Generate Adversarial Networks)是一种生成模型,主要由判别器生成器两部分构成。
判别器(discriminator): 数学表示为y=f(x)y= f(x)y=f(x)或条件概率分布p(y∣x)p(y|x)p(y∣x)。当输入训练集图片为xxx时,判别器输出分类标签yyy,学习的是输入图片xxx与输出标签yyy的映射关系。
生成器(generator): 数学表示为概率分布p(x)p(x)p(x)。没有约束条件的生成器是一种无监督模型,将给定的简单先验分布π(z)\pi (z)π(z)(通常是高斯分布)映射为训练集图片的像素概率分布p(x)p(x)p(x),即输出一张服从p(x)p(x)p(x)分布的具有训练集特征的图片。

0.2.2 其他生成网络

  1. 自回归模型(AutoRegressive model, AR)
  2. 变分自编码器(Variational AutoEncoder, VAE)
  3. 基于流的生成模型(Flow-based generator model)

0.2.3 损失函数

L=min⁡max⁡V(D,G)=Ex∼pdata(x)[logD(x)]+EZ∼pz(x)[log(1−D(z))]L = \min\max V(D,G)= \mathbf E_{x \sim p_{data}(x)}[logD(x)]+ \mathbf E_{Z \sim p_{z}(x)}[log(1-D(z))]L=minmaxV(D,G)=Ex∼pdata​(x)​[logD(x)]+EZ∼pz​(x)​[log(1−D(z))]
逐层来看
V(D,G)V(D,G)V(D,G)是生成(假)样本和真实样本的差异;
max⁡V(D,G)\max V(D,G)maxV(D,G)生成器固定,最大化交叉熵损失,更新判别器;
min⁡max⁡V(D,G)\min\max V(D,G)minmaxV(D,G)生成器在最大化交叉熵损失的前提下,最小化这个损失。

0.2.4 训练流程

先训练判别器
将训练集数据(training set)打上真标签,生成器生成的假图片(fake image)打上假标签,二者组成batch送入判别器进行训练。计算loss时,使判别器对training set判别趋近于真,fake image趋近于假,此过程只更新判别器参数。
再训练生成器
将高斯分布噪声zzz(random noise)送入生成器,将生成器生成的fake image打上真标签送入判别器,计算loss时,使判别器对fake image判别趋近于真,此过程只更新生成器参数。

0.3 t-SNE

t-SNE的主要用途是可视化和探索高维数据。 它由Laurens van der Maatens和Geoffrey Hinton在JMLR第九卷(2008年)中开发并出版。 t-SNE的主要目标是将多维数据集转换为低维数据集。 相对于其他的降维算法,对于数据可视化而言t-SNE的效果最好。 如果我们将t-SNE应用于n维数据,它将智能地将n维数据映射到3d甚至2d数据,并且原始数据的相对相似性非常好。与PCA一样,t-SNE不是线性降维技术,它遵循非线性,这是它可以捕获高维数据的复杂流形结构的主要原因。

参考博客:

生成对抗网络GAN损失函数loss的简单理解

GAN的Loss的比较研究(1)——传统GAN的Loss的理解1

奇异值分解

奇异值分解(SVD)原理与在降维中的应用

矩阵的奇异值与特征值有什么相似之处与区别之处

t-SNE:可视化效果最好的降维算法

【步态识别】MvGGAN 基于多视角步态生成对抗网络 算法学习《Multi-View Gait Image Generation for Cross-View Gait Recognition》相关推荐

  1. 基于深度卷积的生成对抗网络

    生成对抗网络(GAN) GAN分为两部分,生成器和鉴别器 生成器 接受要用于伪造的数据(数据可以是准备好的,用于伪造成真实数据风格的素材,也可以像图中一样,是杂乱随机的数据点) 理想情况下,它能够输出 ...

  2. 基于语义分割和生成对抗网络的缺陷检测算法

    一.缺陷类型 如下图所示,缺陷类型主要有缺损和裂纹两个类型. 二.语义分割网络 FCN网络 网上介绍FCN的教程很多,在这里不再详细讲述,具体请参考链接: https://www.cnblogs.co ...

  3. 资源 | 《GAN实战:生成对抗网络深度学习》牛津大学Jakub著作(附下载)

    来源:专知 本文共1000字,建议阅读5分钟. 本书囊括了关于GAN的定义.训练.变体等,是关于GAN的最好的书籍之一. [ 导读 ]生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可 ...

  4. 【深度学习实战】从零开始深度学习(五):生成对抗网络——深度学习中的非监督学习问题

    参考资料: <PyTorch深度学习>(人民邮电出版社)第7章 生成网络 PyTorch官方文档 廖星宇著<深度学习入门之Pytorch>第6章 生成对抗网络 其他参考的网络资 ...

  5. 【图像识别-步态识别】基于计算机视觉实现步态周期检测与步态角度特征提取附MATLAB源码

    1 内容介绍 人体步态是人行走的姿态.它作为一种新的行为特征,具有非接触性.可感知性和非侵犯性.难以伪装和隐藏.易于捕捉等特点,而且在系统的低分辨率下.一定距离时它是唯一可感知的特征.步态识别就是根据 ...

  6. 【步态识别】基于CNN、步态能量图+HOG特征提取的步态识别算法的MATLAB仿真

    卷积层的结构如下所示: 具体可以看如下的网址: 这个是传统的卷积神经网络.我们按这个进行设计.仿真结果如下: 他的识别率为88.89%. 然后我这里介绍下我们的改进思路,改进思路如下所示: 此外, 影 ...

  7. 基于生成对抗网络的医学数据域适应研究

    点击上方蓝字关注我们 基于生成对抗网络的医学数据域适应研究 于胡飞, 温景熙, 辛江, 唐艳 中南大学计算机学院,湖南 长沙 410083   摘要:在医疗影像辅助诊断研究中,研究者通常使用不同医院( ...

  8. 【论文笔记】基于生成对抗网络的强化学习算法的研究

    目录 摘要 关键词 0 引言 1 相关理论 1.1 强化学习理论 1.2 生成对抗网络理论 1.3 基于生成对抗网络的强化学习算法 1.3.1 算法总体结构框架 2 实验与分析 3 总结 摘要 解决: ...

  9. GANs:生成对抗网络系列及应用

    GANs Goodfellow和Bengio等人发表在NIPS 2014年的文章Generative Adversarial Network是生成对抗网络的开创文章,论文思想启发自博弈论中的二人零和博 ...

最新文章

  1. html调用百度地图语音播报,实现百度地图导航演示的语音播放功能
  2. 章鱼有9个大脑能编辑基因,智商高到无法理解,为何没发展出文明
  3. 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)
  4. DIY斑竹管理初稿的确定
  5. UnityShader20.1:CommandBuffer初见(下)
  6. echarts 雷达图_【带着canvas去流浪】绘制雷达图
  7. 网络是怎样连接起来的
  8. 差分约束——vijos1589
  9. 改变世界的十大计算机病毒(图)
  10. Pillow的下载与安装
  11. 2023年最新谷歌Google帐号Gmail邮箱账号怎么注册成功的方法与教程?
  12. Go语言基本语法 (下)
  13. 无线打印服务器与什么打印机相配,网络打印服务器-本地打印机和网络打印机有什么区别? 爱问知识人...
  14. matlab实现车辆自适应巡航系统acc控制
  15. Veri3.SDF后仿真时序检查
  16. java助教面试自我介绍_助教面试自我介绍参考
  17. 大数据 清华 覃征_清华大学覃征.PPT
  18. 京喜无货源怎么样?京东2020严打无货源后,能带给京喜什么利益?
  19. 淮阴工学院C语言考试题库,淮阴工学院c++实验报告实验九类和对象
  20. 时隔一年,微软总算把这个框架开源了

热门文章

  1. 中国医科大学本科毕业论文答辩PPT模板
  2. C文件操作、读写文件 C++文件读写、文件操作
  3. leetcode-simple-共25题-02
  4. Lr预设(手机+电脑):时尚明亮ins室内舒适干净居家摄影Lightroom滤镜调色预设
  5. 对于数字的排序(数组形式)
  6. 处理乱码文件,邮件,应用程序。。。。。。
  7. SkyWalking 调研记录
  8. 三菱伺服放大器内部故障及处理方法
  9. 韩国-电动踏板车热潮改变摩托车市场
  10. bootmgr快速修复win7_小白教程 | U盘重装win7系统