神经网络最后一层处理

神经网络最后一层处理

通常,根据目标任务的不同,神经网络的最后一层处理方式也会不同。这篇文章将根据任务类型分别讨论。

回归任务

如果目标任务的预测值在 ( − ∞ , + ∞ ) (-\infty,+\infty)(−∞,+∞),一般默认不使用激活函数,意味着神经网络的输入和输出是线性关系。不过,以这种目标为任务的神经网络,一般在隐藏层使用非线性激活函数,在输出层不使用激活函数。
如果目标任务的预测值在 [ 0 , + ∞ ) [0,+\infty)[0 ,+∞),一般使用ReLU,例如房价预测的回归任务。和上面一样,在隐藏层一般可以使用非线性激活函数,输出层使用ReLU函数。

分类任务

二分类

二分类任务一般使用 Sigmoid,使输出的值集中在 ( 0 , 1 ) (0,1)(0 ,1 ) 之间,也就是一个概率值,通常还需要搭配二分类交叉熵。作二分类时,输出的值一般用向量表示,含两个数值(也就是两个神经元),分别对应两个类别。其中一个大于0.5,则认为神经网络的结果属于对应0.5位置的类别。

多分类

多分类任务一般使用softmax,使输出的值集中在 ( 0 , 1 ) (0,1)(0 ,1 ) 之间,与二分类相似。多分类的最后一层通常由全连接层+Softmax(分类网络)组成,如下图所示:

神经网络最后一层处理
由于Softmax常常会搭配one-hot的标签使用,所以经过Softmax的最后一层,往往会选择最后一层的神经元输出中最大的值对应的索引,作为整层神经元最后的结果。
全连接层将倒数第二层的神经元个数压缩/扩张到分类的数量K(如八分类对应的分类数为8),每个神经元为一个实数,经过softmax,将这K个数映射到 ( 0 , 1 ) (0,1)(0 ,1 ) 之间的实数,也就是概率,而且这K个实数之和为1。

推荐阅读:神经网络最后一层需要激活函数吗?

Original: https://blog.csdn.net/Frank_LJiang/article/details/123480116
Author: lijfrank
Title: 神经网络最后一层处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/623373/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球