如何在没有事先明确告知的情况下推断出神经网络中每一层的功能?

机器算法验证 神经网络 数理统计
2022-04-09 14:13:04

在有关深度学习的研究论文中,您通常会得到关于每一层如何运作的解释。

例如在 SRCNN,一个图像放大模型(https://arxiv.org/pdf/1501.00092.pdf),第一层提取补丁,第二层学习从低分辨率补丁到高分辨率补丁的非线性映射,第 3 层将高分辨率补丁重建为完整的高分辨率图像。

在此处输入图像描述

我的问题是如何推断每一层的作用?我很好地理解模型的代码(我认为)并且理解它们的超参数是什么,但我不知道如何为另一个网络架构生成像上面这样的图像。

有没有我可以遵循的程序来解决这些问题?和/或我只需要更好的数学理解?

谢谢。

编辑回答中引用的后续问题:

仅仅是研究人员在开始编码之前对每一层都有一个目标吗?还是你需要通过实验找出来(比如打印每一层的输出来看看它到底做了什么)?

1个回答

我从我的主管那里得到了答复,所以我想我会把它贴在这里,因为有几个人赞成。

首先,永远记住“层”是一个有点或超载的术语。例如,SRCNN 的每个高级层中可能有许多低级层。

在高层次上,SRCNN 似乎将原始像素数据映射到输入特征向量,然后将该输入特征向量映射到输出特征向量,然后将该输出特征向量映射回图像。

你会在机器学习中经常看到这种模式。即:(1)将非结构化的高维数据编码为低维输入特征向量,(2)将输入特征向量映射到输出特征向量,然后(3)解码/映射低维输出特征向量到最终预测(例如输出图像)。

在实践中,这是因为深度学习的非线性映射工具在处理低维特征向量时比处理高维输入(例如原始像素数据)效果更好,但也有很多理论支持为什么这是一件好事。

关于您的后续问题:这是一个混合体。建筑设计的一些想法来自理论,一些来自实践经验的直觉,还有一些来自实验和尝试不同的事物。