卷积层中的激活

数据挖掘 美国有线电视新闻网
2022-02-28 13:25:46

在 CNN 上,在卷积层中使用激活函数有什么用?

单个权重是否用于完整矩阵或可能会有所不同的每个像素或框?

2个回答

用法和往常一样,没有非线性激活,无论你使用多少层,结果仍然是线性模型。

对每个输出“像素”单独执行非线性激活:

在此处输入图像描述

激活函数和卷积层通常是分开的东西。只是它们通常一起使用,并且 keras 库有一个用于激活的参数,该参数在卷积之后应用在 keras 中。这并不总是一起应用功能的最佳顺序。

激活函数:我们有激活函数的输入数据。对于输入中的每个值,都会应用一个函数。例如,我们有 3 层 30x30 像素 (30x30x3)。激活函数应用于所有 2700 个值并返回相同的维度。结果是 30x30x3。例如,我们有 Relu,图像 RGB 颜色的输入是 0..255 值。输出不会与输入不同,因为所有值都是正数。

一个卷积层可以有相同的输入。例如,我们对所有数据应用深度为 3 的 3x3 过滤器,得到 28x28x3 的结果。如果我们在 keras 的卷积层中添加一个 relu 激活,这意味着我们将 28x28x3 作为输入并将 relu 应用于所有值并得到 28x28x3 的值作为输出。

正如另一个答案中提到的,激活函数是唯一增加非线性的东西。没有它,整个神经网络就等于线性回归。

最好的 CNN 之一是 Microsoft 的 ResNet。根据最新论文,在卷积之前应用激活显着改善了网络,并允许将深度从 152 层增加到 1000 层。所以 keras 应用激活的方式并不是 ResNet 的最佳方式。