美文网首页深度学习
神经网络[输出层]激活函数的选择

神经网络[输出层]激活函数的选择

作者: 阿旭123 | 来源:发表于2020-12-01 15:37 被阅读0次

目录

1.输出层激活函数的选择

2.Softmax激活函数的特征

3.Softmax激活函数的实现以及优化

对于机器学习问题,通常可分为分类问题与回归问题两类。

分类问题是指最终解决的是数据属于哪一个类别,如是苹果还是橘子;

回归问题则是依据某一个输入预测一个(连续的)数值的问题。

对于不同类型的问题,我们设计神经网络在输出层所使用的激活函数不同。通常对于分类问题使用Softmax激活函数,对于回归问题,使用恒等激活函数,因为回归问题一般都是预测一个数值,并不需要通过激活函数进行特殊处理。

恒等激活函数(回归问题)

函数会将输入按照原样输出,对于输入信息不做任何改动。

如下图所示:

Softmax激活函数(分类问题)

softmax函数的作用

Softmax函数的主要作用是将输出类别转换为每一种类型的“概率”。输出特征所属的类别即为概率值最大所对应的分类。

softmax函数数学公式如下:

exp(x)是表示ex的指数函数(e是纳皮尔常数2.7182 . . .)。假设输出层共有n个神经元,计算第k个神经元的输出yk。如上式所示,softmax函数的分子是输入信号ak的指数函数,分母是所有输入信号的指数函数的和。如下图所示,输出层通过箭头与所有输入层信号相连,受所有输入信号的影响。

softmax函数的特征:

1,输出为0到1之间的实数,

2,输出值的总和为1.因此可以把softmax函数的输出解释为“概率”。

这里需要注意的是,即便使用了softmax函数,各个元素之间的大小关系也不会改变。这是因为指数函数( y = exp(x))是单调递增函数。实际上,上例中 a的各元素的大小关系和 y的各元素的大小关系并没有改变。比如, a的最大值是第2个元素, y的最大值也仍是第2个元素。

Softmax激活函数的代码实现

注意:由于softmax函数的实现中要进行指数函数的运算,如果幂次值很大时,如e^100,指数函数的值很容易变得非常大,会发生溢出,为了解决这个问题,需要对softmax函数进行优化改进,具体推导公式如下:

其中C’可以为任意值,但是为了防止溢出,一般会使用输入信号中的最大值,用每一个值减去输入信号中的最大值(ai-C’)。

改进后的softmax函数代码如下:

上述代码中的(a-c)就是为了防止溢出,其中c是输入层信号中的最大值。

具体示例如下:

可以看出改进前,函数发生了溢出输出值为nan,改进后的函数可以正确计算。

总结

1. 通常输出层激活函数,对于分类问题选择softmax,对于回归问题选择恒等函数;

2. softmax函数在实现时需要注意指数计算的溢出问题,可以通过输入信号减去输入层的最大值后进行计算,防止溢出。

如果想关注更多深度学习相关内容,请进入链接《深度学习专栏》进行了解,谢谢!

相关文章

  • 如何选择激活函数

    激活函数在设计神经网络上很关键。隐藏层的激活函数影响的是学习,输出层影响的是输出。 概述:1.激活函数2.隐藏层的...

  • Chapter3_神经网络

    神经网络 输入层(第0层)->中间层(隐藏层)->输出层(最后一层) 隐藏层的激活函数 将输入信号的总和转换为输出...

  • 神经网络[输出层]激活函数的选择

    目录 1.输出层激活函数的选择 2.Softmax激活函数的特征 3.Softmax激活函数的实现以及优化 对于机...

  • Softmax、交叉熵损失函数及导数

    这是一个简单的神经网络,输出层的激活函数为SoftMax,根据定义,输出层各节点的输出值为: 其中是该节点的输入 ...

  • 16 keras激活函数

    激活函数也是神经网络中一个很重的部分。每一层的网络输出都要经过激活函数。比较常用的有linear,sigmoid,...

  • 算法学习笔记——神经网络

    关键词:输入层、输出层、中间层、单元\节点、感知器、BP神经网络、激活函数、深度学习、梯度下降、损失函数、反向传播...

  • Task6 神经网络基础

    任务 前馈神经网络、网络层数、输入层、隐藏层、输出层、隐藏单元、激活函数的概念。 感知机相关;定义简单的几层网络(...

  • 其他神经网络类型

    RBF径向基网络: 是一种单隐层前馈神经网络,使用径向基函数作为激活函数,输出层是对隐层神经元输出的线性组合 Pa...

  • 激活函数

    为什么使用激活函数 如果没有激活函数,神经网络就变成了线性模型,输出是输入的线性组合,使用一层与使用多层没有区别。...

  • BP神经网络——Python简单实现三层神经网络(Numpy)

    BP神经网络(BPNN)基本由以下组件组成: 输入层隐藏层输出层各层之间的权重每个隐藏层的激活函数(此中将用Sig...

网友评论

    本文标题:神经网络[输出层]激活函数的选择

    本文链接:https://www.haomeiwen.com/subject/azdkwktx.html