Machine learning 在最后一层使用线性激活函数与像tanh这样的激活函数相比有什么好处吗?
我理解这个决定取决于任务,但让我解释一下 我正在设计一个模型,该模型使用一个卷积神经网络从给定的仪表板视频帧预测转向角,该神经网络的末尾有密集的层。在最后一个密集层中,我只有一个单元可以预测转向角 我的问题是,对于我的任务,下面的任一选项是否会显示性能的提升 a。获取地面真实转向角,转换为弧度,并使用tanh挤压它们,使其介于-1和1之间。在我的网络的最后一个密集层中,使用tanh激活函数 b。获取地面真实转向角。这些原始角度介于-420和420度之间。在最后一层中,使用线性激活 我试着从逻辑上考虑,在方案A中,损失可能会小得多,因为网络处理的数字要小得多。这将导致重量变化较小Machine learning 在最后一层使用线性激活函数与像tanh这样的激活函数相比有什么好处吗?,machine-learning,neural-network,computer-vision,deep-learning,conv-neural-network,Machine Learning,Neural Network,Computer Vision,Deep Learning,Conv Neural Network,我理解这个决定取决于任务,但让我解释一下 我正在设计一个模型,该模型使用一个卷积神经网络从给定的仪表板视频帧预测转向角,该神经网络的末尾有密集的层。在最后一个密集层中,我只有一个单元可以预测转向角 我的问题是,对于我的任务,下面的任一选项是否会显示性能的提升 a。获取地面真实转向角,转换为弧度,并使用tanh挤压它们,使其介于-1和1之间。在我的网络的最后一个密集层中,使用tanh激活函数 b。获取地面真实转向角。这些原始角度介于-420和420度之间。在最后一层中,使用线性激活 我试着从逻辑上
让我知道你的想法 神经网络中有两种类型的变量:权重和偏差(大多数情况下,还有其他变量,例如batchnorm所需的移动平均值和移动方差)。它们的行为有点不同,例如,偏差不会受到正则化器的惩罚,因此它们不会变小。因此,假设网络只处理少量数据是不准确的 尽管如此,偏见仍然需要学习,从性能上可以看出,学习较小的值更容易。从这个意义上讲,我宁愿选择
[-1,1]
目标范围超过[-420420]
。但是tanh
可能不是最佳激活函数:
- 使用
(就像使用tahn
),背部支撑时的饱和神经元。选择sigmoid
而没有具体原因可能会损害您的训练tahn
- 使用
向前和向后传球需要计算tahn
,这也相对昂贵exp
[-1,1]
范围
一般来说,如果您在隐藏层中有任何激活功能,ReLu
已被证明比sigmoid
工作得更好,尽管最近还提出了其他现代功能,例如leaky ReLu
,PRelu
,ELU
,等等。您可以尝试其中任何一种