(1)对于深度神经网络,中间的隐层的输出必须有一个激活函数。否则多个隐层的作用和没有隐层相同。这个激活函数不一定是sigmoid,常见的有sigmoid、tanh、relu等。
(2)对于二分类问题,输出层是sigmoid函数。这是因为sigmoid函数可以把实数域光滑的映射到[0,1]空间。函数值恰好可以解释为属于正类的概率(概率的取值范围是0~1)。
另外,sigmoid函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数(3)对于多分类问题,输出层就必须是softmax函数了。softmax函数是sigmoid函数的推广。
理论上讲任何一个连续的非多项式、常数函数都可以做为BP的激活函数,而且这都是已经在数学上证明过的问题。
但sigmoid函数相对其他函数有它自身的优点,比如说光滑性,鲁棒性,以及在求导的时候可以用它自身的某种形式来表示。这一点在做数值试验的时候很重要,因为权值的反向传播,要求激活函数的导数 。
多层就有多个导数,如果用一般的连续函数,这对计算机的存储和运算都是一个问题,此外还要考虑整个模型的收敛速度,我上面提到连续函数都可以做激活函数。
但是相应的Sigmoidal型函数的收敛速度还是比较快的,(相同的结构前提下)还有就是BP在做分类问题的时候,Sigmoidal函数能比较好的执行这一条件,关于连续函数可以做激活函数的证明,可以在IEEEtrans.onneuralnetworks和NeuralNetworks以及NeuralComputating和NeuralComputation上找到。
因为:非线性激活函数可以拓展神经网络的表达能力。如果用线性激活函数,多层的神经网络和单层的就没有区别,只能表达线性逻辑。严格来讲ReLU函数算是分段线性函数。
中间隐层激活函数选用线性函数(例如恒等函数)不好,是因为算下来多层网络和单层网络一个效果。其实激活函数的存在是为了神经网络更好的拟合目标函数。
初等数学用法在初级代数与解析几何,线性函数是只拥有一个变量的一阶多项式函数,又或者是常数函数。因为,采用直角坐标系,这些函数的图象是直线,所以,这些函数是线性的。
要注意的是,与x轴垂直的直线不是线性函数。(因为输入值不对应唯一输出值,所以它不符合函数的定义)。
楼主你好!根据你的描述,让我来给你回答!翻译为激活函数(activationfunction)会更好。激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。
希望能帮到你,如果满意,请记得采纳哦~~~。