首页 > 解决方案 > 为什么要在 CNN 卷积层中使用非线性激活函数?

问题描述

我正在参加麻省理工学院在 CNN 上的深度学习讲座之一。它说当将权重与像素值相乘时,可以对每个像素应用像 relu 这样的非线性激活函数。我理解为什么它应该应用于一个简单的神经网络,因为它在我们的输入数据中引入了非线性。但是我为什么要将它应用到单个像素上呢?还是我弄错了?

标签: machine-learningdeep-learningdata-scienceconv-neural-network

解决方案


你可能弄错了一点。

当他们说“将权重与像素值相乘”时 - 他们指的是将滤波器(权重 + 偏差)与图像的像素相乘的线性运算。如果你仔细想想,CNN 中的每个过滤器本质上都代表一个线性方程。

例如 - 如果我们正在查看一个 4*4 过滤器,该过滤器本质上是计算 x1 * w1 + x2 * w2 + x3 * w3 + x4 * w4 + b 它经过的图像的每个 4*4 补丁。(在上面的等式中,x1,x2,x4,x4 指的是图像的像素,而 w1,w2,w3,w4 指的是 CNN 滤波器中的权重)

现在,希望很清楚滤波器本质上是在计算线性方程。为了能够执行诸如图像分类之类的任务,我们需要一定程度的非线性。这是通过使用最流行的 ReLU 激活函数来实现的。

因此,您并没有将非线性应用于“像素”本身,而是将其应用于线性运算(例如在普通神经网络中) - 它由像素值乘以滤波器中的权重组成。

希望这可以消除您的疑问,请随时寻求更多帮助!


推荐阅读