自动编码器是一种特定得深度学习模型, 那么我们想要改进有哪些方法呢?
首先我们可以在深度上面考虑: 神经网络为什么要“深”?

因为深度达到一定程度之后, 可以提升泛化能力, 所以神经网络要深.
其次我们可以在稀疏性上考虑: 压缩特征一定要少于输入特征吗?
自动编码器隐层的神经元数量少于输入层数量,称为欠完备. 而自动编码器隐层的神经元数量大于输入层数量,称为过完备. 欠完备神经元少, 这样就比较稠密, 而过完备神经元多, 这样就比较稀疏. 所以推荐使用逐层减少的架构(欠完备),然后加入稀疏惩罚.
最后我们可以在抗噪上进行考虑:如何让模型能够对抗噪声,提升泛化性?
深度学习模型并不可靠,数据加入微小噪声,结果会天差地别. 所以我们需要让模型负重前行,主动让数据充满噪声.
下面我们举个栗子:

在这里我们使用的损失函数是:loss = , 还有其他图像数据集增强方法:随机旋转,翻转图像均可有效提升模型泛化能力.
下面我们梳理一下改进自编码器的代码书写流程:
1. 数据读取--> 数据集扩充(去噪)
2. 模型搭建-->卷积编码器和反卷积编码器
3. 模型训练-->添加L1惩罚项(稀疏)
4. 模型比较
下面我们按照步骤来进行代码的编写
1. 数据读取--> 数据集扩充(去噪)
import torch
import torchvision
import numpy as np
import matpl

本文探讨了自动编码器的深度学习模型改进方法,包括增加网络深度、利用欠完备架构和加入稀疏惩罚,以及通过数据增强和添加L1惩罚项提高模型的泛化能力和抗噪性。
最低0.47元/天 解锁文章
1140

被折叠的 条评论
为什么被折叠?



