降维(4)AutoEncoder

AutoEncoder

理解为:(下图)高维数据(左测蓝色)通过某种网络变成低位数据(中间红色)后,又经过某种网络变回高维数据(右侧蓝色)。数据经过该模型前后没有变化,而中间的低维数据完全具有输入输出的高维数据的全部信息,所以可以用低维数据代表高维数据。

之所以叫AutoEncoder,而不叫AutoEncoderDecoder,是因为训练好之后只有encoder部分有用,decoder部分就不用了。

img

进入深度学习的思路之后,编码的网络是开放的,可以自由设计的。一个思路是端到端,将网络的输出设为你任务要的结果(如类别、序列等),过程中的某层嵌入都可以作为降维的低维结果。当然,这种低维结果其实是模型的副产品,因为任务已经解决。比如bert模型得到(中文的)字嵌入。

优点:

  • 能够学习到非线性特性
  • 降低数据维度

缺点:

  • 训练的计算成本高
  • 可解释性较差
  • 背后的数学知识复杂
  • 容易产生过度拟合的问题,尽管可以通过引入正则化策略缓解