深度学习模型-AutoEncoder自编码

关注我的公众号YueTan进行交流探讨

AutoEncoder可以去噪、降维、异常检测

方式一

首先要构建其中的encoder部分,输入到embed。这部分是Autoencoder进行训练,得到降维后的特征representation。之后再接上MLP、CNN等继续训练得到最终label。

之后,在encoder部分后接decoder部分。其中decoder的输出要开始的输入一样。

训练autoencoder时,对于监督训练,可以同时把输入的x和目标的y作为目标。因此除了decoder得到一个重构的x之外,还可以再decoder之上继续加几层,让ae模型也学习到样本的标签。此时模型的关系就是

model.fit(X, (X, y))

这里值得注意的是,如果y是类别型,最后从decoder出来的层就需要sigmoid,或bce loss.

同时继续下一步的时候,可以从encoder部分接下一阶段模型,也可以从decoder部分接下一阶段模型。但都需要是接y输出之前。

在第二阶段时,输入先接第一阶段的带权重的encoder,甚至是encoder和原始输入的concat。之后接MLP或CNN等模型

方式二

方式二和方式一的主要区别在于单阶段训练。这样一来,相当于避免train和test一起可能有泄漏。

输入首先接encoder层,然后是decoder得到重构的x,然后继续接重构的y。紧接着就接初始输入和encoder层的concat,接着是MLP或CNN。

但同时,decoder的x要输出,decoder的y也输出,最终预测的y也进行输出。

model.fit(X, (X, y, y))

预测时,取model.predict(x_test)[-1],即只选取预测的y

方式三

使用train, test的全部数据,出了方式一,也可以用方式三。用全部数据进行降噪自回归的预训练。

ae模型训练的时候,也可以把train和test在一个epoch里,分别加上去训练。

encoder = Encoder()
model = AEEncoder(encoder)
for epoch in range(10):
	model.fit(x_train, x_train[:, 0])
	model.fit(x_valid, x_valid[:, 0]) 

encoder.save_weights("./encoder.weights")

后续倒入encoder的权重之后,再接其他的模型进行表示学习。

应用

autoencoder可直接用于异常检测,https://aistudio.baidu.com/aistudio/projectdetail/4522476

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YueTann

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值