趋近智
在自动编码器的编码器部分,每层执行计算(输入乘以权重并加上偏置)后,会应用一个激活函数。可以将激活函数视为每个神经元的简单“把关者”。它决定哪些信息应该传递给下一层。如果没有这些函数,无论我们堆叠多少层,我们的网络都只能学习简单的线性关系。激活函数引入非线性,使得编码器能够从输入数据中学习更复杂的模式和表示。
修正线性单元(简称ReLU)是编码器隐藏层中最常用且效果最好的激活函数之一。
ReLU函数非常直接。如果函数的输入是正数,它会直接输出该输入值。如果输入是零或负数,则输出零。
从数学角度看,ReLU定义如下:
f(x)=max(0,x)这里 x 是神经元的输入。
我们来将其可视化:
ReLU函数在输入为正时直接输出输入值,否则输出零。
那么,为什么ReLU在编码器中如此受欢迎?
在构建编码器时,通常会将ReLU激活函数应用于每个隐藏层的输出。例如,如果编码器中的某个隐藏层为一个神经元计算出值 h1,则传递给下一层的实际输出将是 ReLU(h1)。这个过程在层中的所有神经元以及编码器中后续的隐藏层中重复,每一步都有助于将数据转换成更紧凑和抽象的表示。
尽管ReLU是编码器隐藏层的常用选择,但了解其他激活函数也很重要。例如,像“Leaky ReLU”或“参数化ReLU (PReLU)”这样的变体是为了解决“ReLU死亡”问题而开发的(当神经元的输入总是负数时,它们可能会卡在输出零)。然而,作为入门内容,理解ReLU提供了一个坚实的基础,因为它广泛有效且常用。激活函数的选择会影响自动编码器学习数据压缩的效果和速度。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造