编码器/解码器模型如何在深度学习中学习?

Posted

技术标签:

【中文标题】编码器/解码器模型如何在深度学习中学习?【英文标题】:How do Encoder/Decoder models learn in Deep Learning? 【发布时间】:2018-11-04 14:25:36 【问题描述】:

在了解了一些深度学习中的编码器/解码器模型(主要是在 Keras 中)之后,我仍然无法理解学习发生在哪里。

编码器只是创建特征图,然后解码器尝试使用 BackProp 尽可能接近结果,还是在训练模型时编码器也学习?

最后一个问题:如果我理解正确,过滤器相当于经典机器学习模型中的节点,通过改变权重来学习,对吗?

【问题讨论】:

【参考方案1】:

编码器学习输入数据的压缩表示,而解码器尝试学习如何仅使用此压缩表示来尽可能最好地重建原始输入数据。假设初始权重(通常是随机设置的)产生 e 的重构误差。在训练期间,编码器和解码器层的权重都被调整,以减少 e

稍后,通常会移除解码器层,并将编码器层的输出(压缩表示)用作输入的特征图。

压缩表示是什么意思?如果您的输入是大小为 20 * 20 = 400 个元素的图像,则编码器层的大小可能为 100,压缩因子为 4。换句话说,您正在学习如何仅使用 400 个元素捕获数据的本质100,同时仍然能够以最小的错误重构 400 个元素的数据。

关于过滤器等同于节点并更改权重以在训练期间学习输入的最佳表示,您是正确的。

【讨论】:

以上是关于编码器/解码器模型如何在深度学习中学习?的主要内容,如果未能解决你的问题,请参考以下文章

如何减小 opencv 中学习模型的大小(用于 CvBoost)?

在实践中学习深度学习框架的建议

Keras深度学习实战(40)——音频生成

《神经网络与深度学习》 常用模型之自编码器

风险中性的深度学习选股策略

如何获得深度学习模型的平均绝对误差 (MAE)