本文主要是介绍理解分类器(linear)为什么可以做语义方向的指导?(解纠缠),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客
在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多的编辑后的图像,这就完成了解纠缠。
那么为什么分类器可以做方向上的引导呢?
分类器的实现:
nn.linear(D, classification_num)
分类器的本质是矩阵,训练生成器的本质上是寻找一个决策边界,将不同类别的数据分开。
线性分类器的决策边界可以表示为:w^T z + b = y 其中 w 是权重向量,z 是输入向量(在我们的例子中是图像的潜在表示),b 是偏置项。
权重向量 w 的几何意义:
- w 实际上是垂直于决策边界的向量。
- 它指向的是使得分类器输出增加最快的方向。(是使得正例(具有该属性的图像)和负例(不具有该属性的图像)区分最明显的方向。因此,这个方向恰好是在潜在空间中最能体现该属性变化的方向)
- 换句话说,沿着 w 的方向移动,属性的"强度"变化最大。
如何对图像进行进行某个方向的移动?
训练方法:
这样就训练好了一个分类器
推理方法(向某个方向进行图像生成):
只需要使用 rep′ = rep + s*w 即可完成
通俗理解可以认为是沿着某个属性(w)向前走,走的快慢由s决定
https://arxiv.org/abs/2111.15640
这篇关于理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!