线性层的效果?

数据挖掘 神经网络 回归 音频识别
2022-02-10 09:08:11

在过去的几个月里,我处理了一个回归问题,将一个框架音频文件转换为一组 mfcc 功能,用于语音识别应用程序

我尝试了很多不同的网络结构、Cnn、不同的归一化技术、不同的优化器、添加更多层等等。

但最后我得到了一些不错的结果,但我不明白为什么.. 我所做的是我添加了一个线性层作为输出,并且不知何故将错误最小化,并且有点困惑为什么线性层会有那么多影响?...

我的意思是仍然试图将实际输出拟合到所需的输出?..为什么激活函数在这里很重要?...我的意思是根据误差调整权重,那么为什么神经网络更擅长调整输出为线性而非非线性时的误差(如:tanh、Relu).. ?

2个回答

如果你正在执行回归,你通常会有一个线性的最后一层。

最有可能在您的情况下 - 尽管您没有说 - 您的目标变量的范围超出(-1.0,+1.0)。许多标准激活函数具有受限的输出值。例如,sigmoid 激活只能输出 (0.0, 1.0) 范围内的值,而 ReLU 激活只能输出正值。如果目标值超出了他们的范围,他们将永远无法匹配它,损失值将会很高。

这里要吸取的教训是,在输出层中使用哪种激活函数很重要。该函数必须能够输出目标变量的全范围值。

这里有一篇关于隐藏和输出激活函数的短文。

为什么要使用激活函数?

我的一个回归模型实际上在线性隐藏和输出激活方面表现最好。就像文章所述,线性函数的线性函数仍然是线性的,但根据我的经验,有时数据最好是这样建模的。

此外,麻省理工学院的深度学习书从第 181 页开始的第 6 章中对各种激活函数进行了很好的细分。