算法进阶(二)之自动编码器改进技巧

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

自动编码器是一种特定得深度学习模型, 那么我们想要改进有哪些方法呢?

首先我们可以在深度上面考虑:  神经网络为什么要“深”?

因为深度达到一定程度之后, 可以提升泛化能力, 所以神经网络要深.

其次我们可以在稀疏性上考虑: 压缩特征一定要少于输入特征吗?

自动编码器隐层的神经元数量少于输入层数量,称为欠完备. 而自动编码器隐层的神经元数量大于输入层数量,称为过完备.  欠完备神经元少, 这样就比较稠密, 而过完备神经元多, 这样就比较稀疏.  所以推荐使用逐层减少的架构(欠完备),然后加入稀疏惩罚.

最后我们可以在抗噪上进行考虑:如何让模型能够对抗噪声,提升泛化性?

深度学习模型并不可靠,数据加入微小噪声,结果会天差地别. 所以我们需要让模型负重前行,主动让数据充满噪声.

下面我们举个栗子:

在这里我们使用的损失函数是:loss =$$ \frac{1}{N} \sum_{n=1}^{N}\left|x_{n}-f\left(x_{n}+\varepsilon\right)\right| $$ , 还有其他图像数据集增强方法:随机旋转,翻转图像均可有效提升模型泛化能力.

下面我们梳理一下改进自编码器的代码书写流程:

1. 数据读取--> 数据集扩充(去噪)

2. 模型搭建-->卷积编码器和反卷积编码器

3. 模型训练-->添加L1惩罚项(稀疏)

4. 模型比较

下面我们按照步骤来进行代码的编写

1. 数据读取--> 数据集扩充(去噪)

import torch
import torchvision
import numpy as np
import matpl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值