Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA

解纠缠也对应于属性编辑,比如人脸的属性编辑,将人脸变微笑、变衰老,其中每一个属性变化也对应了一种有意义的latent direction 。想要应用这种direction可以分为两种方式:有监督的linear-probe(线性探针)和无监督的PCA方式。

总结来讲,它们都是通过找到某种属性变化对应的语义方向,然后让给定的图像向这个方向偏移,从而得到该属性变化。

To infer them, we explore two techniques: supervised, by normalizing the linear-probe’s weight matrix, and unsupervised, through PCA decomposition [100] (details at Appendix E.3).

cite:【2023 】 + SODA Bottleneck Diffusion Models for Representation Learning

1、有监督的linear classification

线性探针(linear probe)是一种简单的线性分类器,需要预先知道图像对应的标签,通常用于评估神经网络的表示学习效果。在这里,线性探针用于识别潜在空间中的语义方向

训练:

  1. 训练一个线性分类器

    • 先在潜在空间中训练一个线性分类器(线性探针),该分类器的任务是区分不同的语义属性。例如,“微笑”与“无微笑”,“变老”与“未变老”等。
    • 线性探针的输入是潜在空间的表示,输出是这些表示的语义标签。
  2. 获取权重矩阵(有点类似于nn.Embedding())

    训练好的线性探针会有一个权重矩阵,这个权重矩阵表示了每个潜在表示与分类标签之间的关系。权重矩阵中的每一行对应一个分类标签,每一列对应输入特征的一个维度。
  3. 标准化权重矩阵

    对线性探针的权重矩阵进行标准化,得到每个语义属性对应的方向向量。

    标准化的过程通常是将每列向量除以其范数,以确保每个方向向量的长度相同,从而在潜在空间中保持一致的尺度。

推理:

利用得到的每个语义属性对应的方向向量,通过将原始图像向这个方向偏移即可

具体操作步骤看:理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)-CSDN博客

2、无监督的PCA方式

训练:

  1. 采样1000-10000个图像
  2. encoder为latent z
  3. 然后通过PCA得到最大的变化方向 s_j
  4. 沿着最大变化方向进行移动可以得到一系列的latent code z,变化的方向为 z + s_j * t,其中 t \in\left[-\sqrt{\lambda_{j}}, \sqrt{\lambda_{j}}\right]\lambda_{j}是特征值、\sqrt{\lambda_{j}}是沿着s_j方向的标准差
  5. 然后decoder这些z得到一系列图像
  6. 通过肉眼观察这些图像是什么属性发生了变化,这样就会知道这种direction对应的是哪种属性变化

推理:

这样在采样过程中就可以通过给定一个图像,然后得到要被改变的属性的一系列图像。

cite:【2023 】 + SODA Bottleneck Diffusion Models for Representation Learning

人脸属性编辑的属性怎么做的?_stylegan2的人脸属性编辑-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值