完整版:个人blog
选择、填空、简答、计算
分类
按数据标注情况分类:
-
监督学习:数据有标签,直接反馈,预测结果。
-
无监督学习:数据无标签,无反馈,寻找数据规律。
-
强化学习:有良好定义,或给出回报值|惩罚值,让智能体在不同的状态下选择行为方式。
按问题分类:
-
回归问题:函数输出标量(连续)
-
分类问题:给定类别选择,输出一个正确选项(离散)
监督学习
model:,b——bias,w——weight,——feature
训练集:第个标注数据记为。定义一个映射函数,对的函数记为。
损失函数
损失函数Loss计算真值与预测值之间的差值函数。
在训练过程中优化映射函数,使得在训练数据集上得到“损失”之和最小
大数定律,样本容量趋于无穷,经验风险趋于期望风险。所以实践中用经验风险估计期望风险。
过学习与欠学习
训练集上的表现 | 测试集上的表现 | 结论 |
---|---|---|
不好 | 不好 | 欠拟合 |
好 | 不好 | 过拟合 |
好 | 好 | 适度拟合 |
-
增加训练数据量。
-
使用正则化。
-
简化模型。
-
限制模型复杂度。
欠学习:
-
不能过度约束。
判别模型与生成模型
判别方法
判别方法直接学习判别函数f(x)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。
关心的是对给定输入 𝑥 ,应该预测什么样的输出 𝑦 。
生成方法
生成方法由数据学习输入和输出联合概率分布 𝑃(𝑥,𝑦) ,然后求出后验概率分布 𝑃(𝑦|𝑥) 作为预测的模型,即生成模型。这里以朴素贝叶斯为例,我们要求的目标可以通过:
求出输入输出的联合概率分布,然后通过贝叶斯公式:
求出后验概率分布。
可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。
线性回归与线性分类
线性回归
回归分析:分析不同变量之间存在关系的研究。
一元线性回归
学习模型:
损失函数:
优化方法:
最小二乘法。对参数w,b分别求导,令其导数值为0,在求取w和b的取值。
对b求偏导:
对w求偏导:
带入得出结果。
多元线性回归
数据特征维度n:自变量个数,模型参数量为n+1
也就是:
线性分类-对数几率回归
sigmoid函数-两类分类
-
概率形式输出:sigmoid函数单调递增,值域为(0,1),输出可作为概率值。
-
数据特征加权累加:这里z是输入数据x和回归函数的参数w内积结果(可视为x各维度进行加权叠加)
-
非线性变化:在0附近变化幅度大。
属于正例:
属于负例:
如果输入数据x属于正例的概率大于其属于负例的概率,即p(y=1|x)> 0.5,则输入数据x可被判断属于正例。
损失函数:
优化方法:对损失函数中的所有参数求偏导,
所有参数更新一遍:see all batches once=1 epoch
batch size*epoch=更新次数
softmax-多类分类
线性判别分析
Fisher线性判别分析
类内方差小,类间间隔大
需要完全将这两类分开,如果直接投影到横纵坐标,这两类合适有重叠。所以需要有投影曲线。
为第i类样本的均值向量。
-
最小化类内方差:最小化各个类别的协方差矩阵
-
最大化类间距离:m1,m2。。
得到最大化目标:
SVM支持向量机
硬间隔
结构风险最小化解决过学习问题。
支持向量机:寻找最佳超平面,使得每个类别中距离超平面最近的样本点到超平面的最小距离最大。
超平面:,w为超平面的法向量,与超平面的方向有关;b为bias项,标量,决定超平面到原点之间的距离。
由于法向量可任意放缩使得平面不唯一,添加约束。即例超平面最近的正负样本带入超平面方程后绝对值为1.
满足等号成立的样本称为支持向量
软间隔
允许部分错分给定的训练样本。
条件:每个类别中距离超平面最近样本到超平面的最小距离最大,不满足约束条件的样本数目尽可能少。
hinge损失函数
显然,正确分类的,所以值记录分类错误的损失。
决策树
输入特征:每个非叶子结点。输出类别:叶子结点。
树形结构中每个非叶子节点表示对分类目标在某个属性上的⼀个判断,每个 分⽀代表基于该属性做出的⼀个判断,最后树形结构中每个叶子节点代表⼀种分类结果。
不断选择属性值对样本集进行划分,直至每个子样本为同一个类别
经验信息熵(衡量样本集合“纯度”的指标):
条件熵:
信息增益(划分后熵的变化):
属性固有值:
信息增益率:
例子:
所以选择。
⚠️为了避免对取值数目较少的属性有所偏好,算法通常先找出信息增益较高的属性,再从中选择增益率最高的。
集成学习Ada Boost
核心思想:对于一个复杂的分类任务,将其分解为若干个子任务,然后将若干个子任务综合构建到一起,最终完成该复杂分类任务。
-
初始化训练样本的权值分布,每个样本都具有相同权重。
-
训练弱分类器,样本正确,再下一个训练集中,他的权值被降低,反之提高。用更新过的样本集训练下一个分类器。
-
将所有弱分类组合成强分类器。加大分类误差率小的弱分类器权重。
训练过程:
-
初始化权重:最初
-
优先选择最小错误率的弱分类器
错误率(如果,):
也就是所有错的权重加和
弱分类器权重:
更新训练样本数据分布权重:
实质就是乘exp(+&-)弱分类器权重后,再进行归一化使其加和为1
-
组合得到强分类器:
深度学习
梯度下降
gradient descent(梯度下降):
求Loss函数斜率,为正则向左,为负则向右,直到找到为0。
-
单变量:目标函数,则为微分为,起点为。则,,以此类推。
-
多变量:目标函数,则微分为,,则,以此类推。
代表所有参数,如果是在线性回归中,所有的 在每次更新中都要进行上述操作。
前馈神经网络
引入
这条蓝色的线可以拟合任何折线|曲线:
简单的一元线性回归到多元线性回归:
即矩阵运算:
引入多层,注意这里的w和b每层是不一样的!
内容
只包括输入层、隐藏层和输出层。
输入数据与第一个隐藏层所有的神经元相互连接
每层神经元只和相邻层神经元相联。两个相邻层之间的神经元完全成对连接,但层内的神经元不相互连接。全连接
神经元:线性加权求和,>0输出1,<0输出-1,解决二分类。
激活函数:使用非线性函数,对多个非线性函数进行组合,实现对输入信息的非线性转换。
-
sigmoid:在使用反向传播算法更新参数过程易出现导数过于接近0的情况,即梯度小时,并且随着网络深度增加会更加严重。
-
tanh:,在定义域单调递增,值域为(-1,1)。tanh函数在原点梯度更大,使用更容易收敛。同样有梯度小时问题。
-
ReLU:
大于等于0导数为常数,克服梯度消失问题,小于0总是0,参与分类等任务的神经元稀疏,克服过拟合。
-
softmax:,同样值域(-1,1)
损失函数:
-
均方误差:
-
交叉熵:,为真实分布的概率,为机器预测的概率分布。为了实现不同类别的模型比较——统一的比较方式熵(不确定到确定的难度)。
求熵:
p和q是两个概率模型!!!
是猫*机器判断是猫的概率+不是猫*机器判断不是猫的概率
卷积神经网络CNN
善于图像识别
解释版本1
输入:三维张量(维数大于2的矩阵)——图片的长,宽,和rgb三个颜色通道
矩阵中每个数值:颜色的强度
每个neural无需覆盖整个图像,看pattern(特征:嘴...)
每个neural关注一个感受野 自定义的!!(receptive field之间可重叠,感受野大小不同,通道数不同,非正方形):
捕捉到图像中的局部特征而不受其位置的影响
卷积核:有一组固定的权重(可以理解为要找的目标值)。
通过卷积核与图像(感受野:输入图像中该点及其领域区域点的取值)进行逐元素相乘然后相加。
-
步长:每次滑动的位置步长
-
卷积核大小 :changjian
-
填充值padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑到末尾位置,通俗地讲就是为了总长能被步长整除。
典型设置
-
每个感受野对应多个neural
-
共享参数:不同感受野的神经元共享参数(filter,滤波器),即weight一模一样。
解释版本2
有多个filter(其中的数值为待学习的未知参数),不断滑动生成64层的feature map特征图(可以看成一个新的图片),第二层的filter则为。filter的高度就是影响的channel。
Q:如果想捕捉图像中较大感受野的pattern,比如鸟嘴, 3x3大小的卷积核是否足够?为什么?
A:不会。第二层时实质对应着原始图像是(如果步长为1),所以会捕捉到。
池化
降采样——一组选一个最大|最小|平均把图像变小。
convolution——pooling交替运行
CNN中的卷积操作不满足尺度和旋转不变性(需要数据增广)
序列数据模型
向量集输入
多个向量输入,变长序列
单词eg:
-
One-hot Encoding:开一个全世界所有词汇数大小的向量,index=0处为1表示apple
-
Word Embedding(有语义):
语音(定长描述为一个向量),图数据(每个结点描述为一个向量),分子
输出
-
一对一输出(文字处理,语音识别,图):每个向量对应一个label
-
多对一输出(判断评价):多个向量对应一个输出
-
多对多输出:机器自己决定
一对一输出:
Q:每个向量放入全连接?——同样的东西输出相同?——上下文信息?
A:将相邻的上下文作为一个window放入全连接
想要考虑整个sequence(不定长?)windows开非常大,参数很多且容易overfit。 self-attention解决
深度学习应用
优化问题:加深网络无法得到更小的训练损失。
自注意力机制
使用场景
输入一整个sequence,考虑整个句子后然后得到同样多个向量,然后丢进全连接(full connect),出来后再attention+FC一次
self-attention处理整个句子上下文
原理
Q表示查询向量,K表示关键向量,V表示数值向量。
-
从input中找出跟相关的向量,考虑整个句子, 作为关联度?
求关联度:
-
dot-product:两个向量分别乘不同的矩阵然后再点乘
-
additive:两个向量分别乘不同的矩阵,串起来然后tanh
-
-
根据attention score抽取重要信息,将乘然后,让其与相乘然后结果相加( 的求解是同时进行的)
矩阵角度:
拼起来一次性求解
以上所有的单词都是同等地位的,缺失了位置信息
位置编码
-
公共设计为每个位置设置一个位置向量:
-
从数据中学习的
CNN vs self-attention:
CNN:感受野
self-attention:上下文为整张图像
应用
seq2seq:输入输出均为序列,输出序列的长度由模型来确定
语音识别,翻译,语音翻译,语音合成,聊天机器人
怎么做:
Transformer
Encoder
输入一排向量,输出一排向量。实际上RNN,CNN都可以实现,Transformer中用的是self-attention。
这里的block不能等同于layer,而是相当于好几层layer做的事情。self-attention——FC。
实际Transformer中使用的encoder:
进行self-attention时,将输出的a再用residual加上原来input的b,在进行layer norm标准化;FC中同时也要加上FC输入的向量,然后norm。
Decoder
Autoregressive (AT)
encoder的输出向量输入到decoder中,同时输入start的特殊token代表输出开始,第一个输出的向量经过了softmax,是一个包含全中文字符的向量表(概率最高的就是输出的字)。
然后将第一个输出的向量作为额外输入到decoder中。
Transformer的Decoder:
Masked-self-attention在输出时隐藏在其之后的向量,输出一个一个产生。
何时停下来?
在中文表中增加一个END的段,如果这个概率最高就结束了。
Non-autoregressive (NAT)
如何知道输出长度?
-
额外一个预测器预测输出的长度
-
输出一个足够长的序列,取END token前的部分
优点:并行,可控生成长度,生成稳定
缺点:通常比AT差
Encoder-Decoder
Training
事先输入ground truth,获得每个字的读音。
在输入时给正确答案ground truth。
Bert
Encoder的架构与Transformer相同。
Mask Input
看左右两边的sequence,掩盖要预测的,使用mask(special token)或者random token实现。使用的Transformer没有任何限制(可以读取之后的向量):
Next Sentence Prediction
读入两个句子,用sep连接,然后只读取CLS输出的向量,判断这两个句子是不是连接的。
通过pre-train生成做“填空题”的Bert模型,通过微调,实际可以完成与其无关的下游任务downstream tasks
微调Fine-tune
Case1 输入句子输出类别
只关注CLS输出的向量,经过softmax(图上省略)输出类别。
用已经经过pre-train的Bert(不是随机初始化的!!是已经会做填空题的)加上一些Sentence+判断类别的标注资料微调。
Case2 输入句子输出句子(词性标注)
Case3 输入多个句子输出一个类别
NLI判断:从前提是否可以得出假设,是否矛盾。
Case4 回答问题(答案为给出的文章片段)
输入文章和问题,输出两个正整数,根据索引从文章中截取
只需训练两个向量,即起始位置和结束位置:
工作原理
不同语境下的同一个字bert出的向量不一样,根据语境
GPT
省去find to的过程。小样本学习,单样本学习,零样本学习
使用者输入即直接给模型输入:
无监督学习
k均值聚类
n个无标注信息的数据聚类到k个集合。
n个m维数据
两个m维数据的欧氏距离:
越小越相似。
-
初始化:选择k个分散的数据作为聚类质心
-
对数据进行聚类:计算欧式距离,放入距离最近的聚类质心的集合中
-
更新聚类质心:根据集合中所有点取平均,如果变化很小或没有改变则结束
不足:
需要实现确定聚类数目
需要初始化聚类质心,且其对结果有较大影响
迭代执行,开销大
主成分分析
特征降维方法:数据应向方差最大的方向进行投影,使得数据所蕴含的信息没有丢失。
红优于绿
主要思想:将n维特征数据映射到i
维空间中,去除原始数据之间的冗余性。
协方差:
衡量两个变量之间的相关度
算法过程:
-
数据预处理 。 为平均值, 为标准差。
-
计算样本的协方差矩阵
-
求得协方差矩阵的特征向量和特征根
-
取前I个最大特征根所对应的特征向量组成映射矩阵
生成式人工智能
同一输入可以有不同的输出
自编码器
尽可能重建。输入的图片降维转为向量后再转回高维图片
用于下游任务
化繁为简:如何从生成 的图片向量?
如果只有两种,那么只需要0,1两种状态即可表示。
可能图片出来的样式只能几种,通过压缩来实现
生成模型
-
无条件生成:通过简单的分布获得高维向量的复杂分布
-
带条件生成:上面的情况增加条件
变分自编码器
去噪自编码器:输入加入噪点的,输出没有噪点的——联系Bert中的mask就是一种embedding
变分自编码器:
如果一张半月一张满月,期待生成3/4月的图,但使用自编码器是失真图,所以我们引入噪声,掩盖失真的空白编码点。把噪音无限拉长,使得对于每一个样本,它的编码会覆盖整个编码空间,不过我们得保证,在原编码附近编码的概率最高,离原编码点越远,编码概率越低。图像的编码就由原先离散的编码点变成了一条连续的编码分布曲线:
核心思想:将图像编码由离散变为连续
-
:直接产生原有的编码
-
:控制噪音干扰程度的编码,为随机噪音码分配权重。exp确认权重是正值 (要对他做限制,有最小值)
-
:加入噪点的图像编码
为了保证图片质量高,肯定希望噪音对自身生成图片的影响小,所以分配权重小, 无限区域负无穷。就有限制编码器走这样极端路径的作用,这也从直观上就能看出来,exp()-(1+)在=0处取得最小值,于是()就会避免被赋值为负无穷大。
高斯混合模型
任何一个数据的分布,都可以看做若干高斯分布的叠加。
直接用每一组高斯分布的参数作为一个编码值实现编码
则原始的分布P(X)为:(P(x|m)为结合的几率)
这种编码方式对应的是之前提到的离散的、有大量失真区域的编码方式,需要改进成为连续有效的编码,z~N(0,1),如下面所示:
由于 是一致的, 未知,而 ,要求解的是 和 两个函数的表达式。但是过于复杂,所以引入两个神经网络。
-
Decoder:求解 和 两个函数
-
Encoder:求解 ,q可以代表任何分布
我们希望P(x)越大越好,这等价于求解 。
VAE本质没有学习生成真实图像,VAE 可能只是对训练数据的记忆和模仿,难以产生全新的图像
扩散模型
概念
通过不断的denoise将噪音去除,index倒序。雕塑
Denoise
反复使用同一个denoise,还要输入noise的严重程度,即index。
根据图片和index产生一个全是噪音的向量,然后两者相减:
训练Noise Predicter
Q:真实噪音的ground truth如何产生?
A:前向&扩散过程,每次加入噪声。再逆向推理这样的输出和step x应该是怎样的输入(噪声)
考虑文字text-to-image
将文字额外输入Denoise中的Noise-Predicter
训练怎么改?——额外添加文字输入
数学原理
训练过程
实际的训练过程是根据的大小直接决定混入的噪音大小,一次性混入噪音!!!t是加噪的index
产生图
减去噪声后,还要再生成一次噪声加入到图片中。
极大似然估计法
稳定扩散模型
框架:文本编码器encoder——生成式模型生成中间压缩产物——解码器生成大图
三个model单独训练
文本解码器
diffusion model(扩散模型)的大小对模型好坏反而影响不大,主要是编码器中的所使用的模型。
图像生成模型评价指标
FID
将图片丢进CNN然后将输入和输出的图像比对,计算点之间的距离,越小越好。
CLIP
不同编码器得出的向量越相似,CLIP值越高
生成式模型
denoise
训练过程
如果是隐变量,noise不再像扩散模型一样加在图片上,而是加在中间产物上
运用模型
不断去噪声
解码器
不需要影像文字成对的资料。
中间产物:小图
成对的小图大图做训练
中间产物:隐变量
自编码器
生成对抗网络
输入固定的x,但是会随机生成z,生成的结果不同的y。——让机器有创造力,产生不同的回答!
生成器与判别器
不断地“对抗”,生成器越来越精细,判别器越来越严格
算法
-
初始化生成器和判别器
-
固定生成器的值,更新判别器(学习目标是让真实图像输出高分,生成图像输出低分;实质就是分为两类)
-
固定判别器,更新生成器(判别器生成的数值越大越好)
-
迭代训练
理论分析
为生成器生成出来的集合, 为真实的集合,将他们的之间的距离定义为Loss函数。
无需知道内容,直接进行采样
判别器:尽可能区分训练出来的和真实的
强化学习
即告诉机器结果是好是坏。
chatgpt:自监督学习+强化学习
-
智能体agent
-
环境environment
-
状态state:不是机器人当前的状态,而是环境所给的状态,即智能体所看到的(eg:看到了一杯水)
-
动作action:智能体影响环境
-
奖励reward:环境根据机器人所做的action给出评价
智能体为了不断改进action以maximize奖励。
AlphaGo:环境——对手,状态——当前局面,动作——下一步落子位置,奖励——赢|输|什么都没发生
supervised:对应局面获得应该下在哪里
reinforcement:在experiment学习
两个agent对话,然后用判别器判别和真人说的像不像
难点:
-
reward delay:开火之前的移动也很重要,但没有任何reward
-
智能体的动作同样影响看到的情景
课上讲无模型强化学习
基于策略的强化学习
要训练的是通过state应该有什么样的action。
基于价值的强化学习
价值函数:表示智能体在时刻t处于状态s时,按照策略π采取行动时所获得回报的期望。衡量了某个状态的好坏程度,反映了智能体从当前状态出发后还能获得多少好处。
贝尔曼方程:
折扣因子, 下一状态的价值, 到达下一状态的奖励值,其中 为策略。
利用贝尔曼方程联立求解:
动作—价值函数:只能题在时刻t处于状态s时,选择了动作a后,在t时刻后根据策略π采取行动所获得回报的期望。
只给了价值函数:
策略优化定理:
Q-learning
用一张表存储在各个状态下执行各种动作能够带来的价值。
训练过程:
-
初始化 函数
-
循环
-
初始化s为初始状态
-
循环
-
-
执行动作a,观察奖励R和下一个状态s'
-
更新
-
-
-
直到s是终止状态
-
-
直到 收敛
Final
选择、填空、简答、计算
大题
SVM支持向量机
思想:寻找最大分类间隔的超平面。
支持向量:离超平面最近的正负样本,只有支持向量才会对分类边界产生作用。
决策树
步骤
以信息增益(选大)|信息增益率(选大)|基尼指数为评判标准(选小)
-
求因变量的经验信息熵(衡量样本集合“纯度”的指标):
-
求各个随机变量的条件熵(每个随机变量有多少种值就有几项):
-
求信息增益,哪个大选择哪个划分:
-
求各个随机变量的固有值(类似于求因变量的信息熵):
进而求信息增益率:
-
基尼值(有几种类型减几次,随机抽取两个样本,其类别标记不一致的概率。如果每个都不一样,则为0):
属性a的基尼系数(在a=某种属性下因变量所占的比例和其他(即使可以分成三类,另外两类也看做同一类处理):
-
选基尼指数小的作为分类标准。
继续循环,注意第一次分类,分成两类后,每类的数据集大小改变,在第一次分类等于是或等于否的条件下!!!
剪枝
-
预剪枝:提前终止某些分支的声场
-
后剪枝:生成一颗完全数,再回头剪枝
减掉以后准确率提升
Ada Boost
-
初始化训练样本的权值分布,每个样本具有相同权重,为
-
优先选择最小错误率的弱分类器
错误率(如果,):
也就是所有错的样本权重加和
弱分类器权重:
更新训练样本数据分布权重:
其中, 是归一化因子
实质就是分对,分错为,然后将每一个权重乘对应分没分对加和得到,最后再求
-
组合得到强分类器:
强化学习
价值函数:表示智能体在时刻t处于状态s时,按照策略π采取行动时所获得回报的期望。衡量了某个状态的好坏程度,反映了智能体从当前状态出发后还能获得多少好处。
贝尔曼方程:
折扣因子, 下一状态的价值, 到达下一状态的奖励值,其中 为策略。
动作—价值函数:只能题在时刻t处于状态s时,选择了动作a后,在t时刻后根据策略π采取行动所获得回报的期望。 为移动到的位置的价值的最大值。
只给了价值函数:
策略优化定理:优化后选择回报更大的策略。
Q-learning
用一张表存储在各个状态下执行各种动作能够带来的价值。
训练过程:
-
初始化 函数
-
循环
-
初始化s为初始状态
-
循环
-
-
执行动作a,观察奖励R和下一个状态s'
-
更新
-
-
-
直到s是终止状态
-
-
直到 收敛
简答
(1)该标准化项与参数w无关,所以对w求导永远为0,对w的优化求解没有作用。
(2)L2标准化通过惩罚过大的参数w来避免过拟合, 小于0意味着该损失函数倾向于更大的w,从而激励过拟合,失去了标准化的作用。
深度学习与机器学习的区别?
-
数据:深度学习适合处理大数据,机器学习算法更适用于小数据
-
硬件:深度学习需要大量计算资源,比如GPU,机器学习对计算资源的需求相对较低
-
特征构建:深度学习从数据中学习特征,机器学习很多特征都需要手工构造
-
解决问题方式:深度学习通常利用“端到端”的方式构建模型,机器学习通常将问题分为几个步骤,每个步骤逐一解决,然后将结果组合。
在前馈神经网络中,所有的参数能否被初始化为0?如果不能,能否全部初始化为其他相同的值?原因是什么?
不能,也不能同时初始化为其他相同的值。如果被初始化相同的值后,在误差反向传播过程中,同一层的神经元所接受到的误差都相同,更新后这些参数的值仍然相同。不管经过多少轮迭代,同一层的神经元参数保持相同,因此无法学习到不同特征的重要程度,失去了学习特征的能力。
VAE推导
说明在K—均值聚类算法执行过程中,其目标函数 是严格递减的,并解释为什么K—均值聚类算法可以确保在有限步内收敛。
在每一次迭代中,目标函数都在逐步减小,数据点被分配到最近的簇中心后,簇中心会根据簇中的数据点重新计算,以最小化目标函数,使得目标函数的值不断减小。数据点和簇中心的数量是有限的,所以可以在有限步内收敛到最优解。
请回答以下关于自编码器相关问题。
(1)最小化重构误差的思想可以引申到(深度)自编码器。当采用一层线性编码器和一层线性解码 器的自编码器结构,并用梯度下降法通过最小化重构误差目标函数对编解码器参数进行优化 时,其结果跟佐佃佁得到的结果是否相同?为什么?
(2)变分自动编码器与传统自动编码器相比具有什么特点?请解释变分自动编码器如何实现潜在空 间的连续性和可解释性。
(1)不同。从目标函数思考。PCA需要正交约束,自编码器通常不需要。
(2)自编码器通常用于特征降维和还原,而变分自编码器面向生成任务,隐空间实现了从数值编码到数据分布的变化。