背景去除如何帮助减少 CNN 中的计算量?

How does background removal help reduce computation in CNN?

我在很多论文中看到,背景去除的预处理有助于减少计算量。但为什么会这样呢?我的理解是,他的 CNN 工作在一个矩形 window 上,不管它是如何填充的,0 或正数。

有关示例,请参阅 this

在您提供的论文中,他们似乎没有将整个图像传递到网络。相反,它们似乎是 select 从非白色背景中提取较小的补丁。这是有道理的,因为它减少了数据中的噪声,但它也降低了计算复杂性,因为它对全连接层有影响。

假设输入图像的大小为h*w。在您的 CNN 中,图像通过一系列卷积和最大池化,结果,就在第一个完全连接层之前,您最终得到一个大小为

的特征图
sz=m*(h/k)*(w/d) 

其中m是特征平面的数量,而kd取决于层数,每个卷积和最大池化模块的参数(例如卷积核的大小等)。通常,我们会有 d==k。现在,假设您将其提供给一个完全连接的层,以生成一个包含 q 个参数的向量。这一层所做的基本上是矩阵乘法

A*x

其中 A 是大小为 q*sz 的矩阵,x 只是写成向量的特征图。

现在,假设您将大小为 (h/t)*(w/t) 的补丁传递给网络。你最终得到了一个大小为

的特征图
sz/(t^2)

鉴于其数据集中图像的大小,这大大减少了参数数量。此外,小补丁也意味着更大的批次,这也可以加速训练(更好的梯度近似)。

希望对您有所帮助。

根据@wlnirvana 的评论进行编辑: 是的,补丁大小是一个超参数。在我给出的示例中,它是通过 selecting t 设置的。考虑到数据集中图像的大小,我会说像 t>=6 这样的东西是现实的。至于这与背景去除有什么关系,引用论文(第3.1节):

"To reduce computation time and to focus our analysis on regions of the slide most likely to contain cancer metastasis..."

这意味着它们 select 仅在非背景区域周围进行修补。这是有道理的,因为将一个完全白色的补丁传递给网络只会浪费时间(在图 1 中,如果你随机 select 补丁,你可以有这么多 white/gray/useless 补丁,而不删除背景).我没有在他们的论文中找到关于补丁 selection 是如何完成的任何解释,但我假设在非背景区域中 selecting 一些像素 p_1,...,p_n,并且考虑 n 个大小为 (h/t)*(w/t) 的补丁,每个补丁都有意义。