神经网络中为啥要用sigmoid函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络中为啥要用sigmoid函数?相关的知识,希望对你有一定的参考价值。

书上介绍的时候都是直接就提出sigmoid函数,但是没有说明为什么要用这个函数,以及这个函数是怎么来的?有谁能解释一下吗?复制粘贴的就不要了,就是简单说明一下为什么要用这个函数,是因为它有什么重要的特性?谢谢啦

Sigmoid函数,即f(x)=1/(1+e-x).神经元的非线性作用函数.
人工神经网络的学习算法-BP算法
神经网络的学习是基于一组样本进行的,它包括输入和输出(这里用期望输出表示),输入和输出有多少个分量就有多少个输入和输出神经元与之对应.最初神经网络的权值(Weight)和阈值(Threshold)是任意给定的,学习就是逐渐调整权值和阈值使得网络的实际输出和期望输出一致.
我们假设样本有P个,输入层有N个神经元,隐含层有K个神经元,输出层有M个神经元.Xj为输入层神经元j的输入,Hj为隐含层神经元j的输出,Fj为输出层神经元j的实际输出,Rj为输出层神经元j的期望输出,前一层的输出即为后一层的输入.Whji是输入层神经元i与隐含层神经元j之间的连接权值,Thj是隐含神经元j的阈值,Woji是隐含层神经元i与输出层神经元j之间的连接权值,Toj是输出神经元j的阈值.神经元的非线性作用函数是Sigmoid函数,即f(x)=1/(1+e-x).
参考技术A 抑制两头,对中间细微变化敏感。使NN对特征识别度更好本回答被提问者采纳 参考技术B 就是把数据归一化,有利于训练,产生结果。
当然可以不用归一化。追问

那要归一化为什么不用别的函数?那么多函数干嘛就选这个?

追答

不为什么。人家喜欢用这个,你看着不喜欢,可以用你自己的函数。

追问

额,算了我再看看别人怎么回答吧,不好意思

以上是关于神经网络中为啥要用sigmoid函数?的主要内容,如果未能解决你的问题,请参考以下文章

神经网络为啥要用sigmoid函数?为啥要映射到0-1之间?求解释

为啥Matlab训练神经网络用不了GPU

matlba中小括号的作用 matlab中那些函数的参数为啥有的要用小括号,有的不用呢?

为啥 Matlab R2010 不能从 R2007 加载神经网络对象?

为啥我的 MATLAB 神经网络在使用并行处理时训练速度较慢?

为啥会存在激活函数?