Clustering 聚类
K-means
Hierarchical Agglomerative Clustering
Dimension Reduction 降维
PCA
找到一个方向w1,使得数据x投影在这个方向上,方差最大,这样在这个维度上还可以轻易区分各个数据z1
当需要投影到多维的时候,再找一个方向w2,使得x投影在这上方差最大,其中w2和w1是垂直的
w1是方差矩阵S的对应特征值最大的特征向量
w2是方差矩阵S的对应特征值最二大的特征向量
使用SVD分解X得到
k为要压缩的维度,即找到的特征值前k大的特征向量组成U
PCA可以看作自编码器,但是缺少各个维度的垂直限制
寻找每个人的潜在属性,可以使用SVD
如果缺少部分数据,只使用已知的数据进行梯度下降求解
Wrod Embedding
词语的one-hot编码太占空间,并且不能体现词和词之间的关系
embedding就是将这些词投影到其他空间,在这个空间上,可以体现词和词之间的关系
将wi-1的onehot编码输入网络,网络的输出是wi-1下一个词的预测概率,网络的隐含层Z就是预测出的wi的embeding
可以使用前多个词,来预测下一个词
w1应该等于w2
这点应该就是wi-2和wi-1是无序的,颠倒顺序也要得到相同的输出
这样为什么不直接将wi-2+wi-1得到结果直接作为输入?
Neighbor Embedding
local linear embedding(LLE)
wij已知,求zi zj,要选取计算几个neighbor
Laplacian Eigenmaps 拉普拉斯特征映射
t-SNE t-distributed stochastic neighbor embedding
之前的方法,只考虑的同一class的点,在新空间中也要很接近,但是对于不同class的点没有使他们的距离更远,因此得到的接过,不同类别的点也都会聚集在一起,不利于可视化
其中t-SNE使考虑每个点和其他所有点的similarity,计算量比较大
因此可能会先使用其他方法做降维,然后再用t-SNE降到两维
t-SNE在新空间的similiary的函数是使用了t分布,与原空间的simliliary函数不同
在原来空间,距离很近,则新空间中,距离也很近
在原来空间,距离很远,则新空间中,距离会变得更远
因此不同类别之间的距离会拉开,更有利用可视化
Auto-Encoder
auto-encoder可以用来做网络的pre-train,找到比较好的参数初始值
对每一个层参数,作为auto-encoder的hidden layer进行训练,得到的参数就是初始参数值
依此,进行每层参数的训练,之前层的参数要记得固定住
如果hidden layer的维度大于输入的维度,记得要对hidden layer做L1或者L2正则化,防止网络什么都没学到
auto-encoder用于denoise去噪
auto-encoder for CNN
unpool就是记住之前的pool的位置,然后unpool就是将数值直接恢复到原来pool的位置上
deconv其实就是在做conv,只不过是对要做deconv的特征图进行padding到做完conv能得到需要的尺寸
如何评价encoder的好坏?
其实就是类似GAN,使用一个辨别器来判断embedding是不是好的
auto-encoder用于feature disentangle
就是语音中,包含有句子的信息,和说话的人的信息,需要分离这两个信息
用GAN的思想,对embedding第一部分,用一个辨别器,使得这个辨别器辨别语者是谁,训练encoder骗过这个辨别器,则第一部分就只剩下句子的信息了
或者采用重新设计网络,使用IN来去掉global信息(语者信息)
auto-encoder用于discrete represent
Generative Model 生成模型
pixelRNN
变分自编码器 Variational auto-encoder
其中,m就是普通encoder得到的embedding,e为从高斯分布采样的数值,是高斯分布的方差,需要encoder自己学习到,即网络自己学习到noise的范围
decoder的输入是增加过noise的code
z是在无限多个attribute中间选取一个attribute
VAE无法产生新的东西,都是对数据库的东西进行线性组合
GAN
conditional GAN 条件GAN
unsupervised conditional GAN
用于风格转换