降维(4)AutoEncoder
AutoEncoder
理解为:(下图)高维数据(左测蓝色)通过某种网络变成低位数据(中间红色)后,又经过某种网络变回高维数据(右侧蓝色)。数据经过该模型前后没有变化,而中间的低维数据完全具有输入输出的高维数据的全部信息,所以可以用低维数据代表高维数据。
之所以叫AutoEncoder,而不叫AutoEncoderDecoder,是因为训练好之后只有encoder部分有用,decoder部分就不用了。
进入深度学习的思路之后,编码的网络是开放的,可以自由设计的。一个思路是端到端,将网络的输出设为你任务要的结果(如类别、序列等),过程中的某层嵌入都可以作为降维的低维结果。当然,这种低维结果其实是模型的副产品,因为任务已经解决。比如bert模型得到(中文的)字嵌入。
优点:
- 能够学习到非线性特性
- 降低数据维度
缺点:
- 训练的计算成本高
- 可解释性较差
- 背后的数学知识复杂
- 容易产生过度拟合的问题,尽管可以通过引入正则化策略缓解