一层近似长的层序列

数据挖掘 深度学习 正则化
2022-02-23 22:46:31

考虑以下情况:有一个包含很多层的深度神经网络,为了加快推理速度或出于正则化目的,人们希望降低模型的复杂性。

i到 的层j,有效地执行一些非线性变换:

RdiRdj
在哪里didj是输入的维度ithjth层。有没有通过一些线性的搜索来近似这种非线性变换的研究 - 使用激活函数搜索卷积层,它尽可能接近多层的动作。

这种近似的损失函数可以只是一个 MSE 误差,其中输入是Rdi和输出 - 激活Rdj. 我看到了一个可能的问题,即从一个高维空间映射到另一个高维空间需要大量训练数据来进行可靠估计,但是,我想知道,文献中是否采用了这种方法?

1个回答

可以使用教师/学生模型方法(至少据我所知)。它通常用于替换所有图层,但没有什么可以阻止您将其应用于图层子集。

首先,您创建训练数据,通过(经过训练的)网络运行您的训练数据,并将输入到第 i 层记录为您的新训练数据xy

您现在只是(!)想要设计一个模型来获取x和生成y. 理想情况下,使用比当前使用的层 i 到 j 更少的权重。

如果这些层是完全连接的 NN,那么这就是自动编码器背后的想法。如果是 Transformer,那么尝试使用一个注意力 + FCNN 层,看看误差会有多低。如果它以不可接受的错误率变平,也许你需要尝试两层。如果是 CNN,那么我不太确定它会起作用;我的预感会是保持相同数量的层数和卷积大小,并且在每层中使用更少的特征会取得更好的成功。

无论如何,当你训练了这个学生模型后,你可以将它插入到你的原始模型中,以替换层 i 到 j。(然后可能会进行一些微调训练。)

注意:如果你的层有残余连接,你必须仔细考虑它们是如何处理的。当它先前期望该层的输出时,将输出馈送到该层可能i-1th很糟糕。特别是如果数据的维度不同。j+1thjth