谁能解释下matlab sigmoid函数 函数

【BP网络】为什么神经元的激活函数是sigmoid型?_人工智能吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:50,042贴子:
【BP网络】为什么神经元的激活函数是sigmoid型?收藏
矩网智慧镇楼 ()
百度云天智提供语音技术,文字识别,人脸识别,深度学习PaddlePaddle和自然语言NLP等人工智能产品及解决方案[使用场景]:智能客服/智能推荐/身份认证/内容审核/增强现实等.
为什么不是这样子?
上面信息熵下面中心极限定理
时间概率性
一切初始的条件将会导致一个可预测的结果 这就是不稳定性
问题在于 打破这个定向
所以人类的思考方式一定是超自然规律的 数学解释不了神经冲动的结果的
人类的智慧成长是在歪理干涉下完成的
求LJ人工智能所说的《神经网络与机器学习》!!!
LZ好人,来跟我们一起做人工智能资料吧
美国人工智能专业,出国留学优选天道,51个哈佛,71个耶鲁,986个哥大,录取战绩业内领先.美国人工智能专业录取条件解析,天道资深留学专家为你量身定做美国理科专业名校之路!
BP和逻辑回归类似,逻辑回归为什么用sigmoid函数?理解逻辑回归的目的就能回答这个问题。许多生物神经元的输入输出函数逼近正态分布的积分,也类似sigmoid,它的理由是信息熵最大化。这和BP是两回事。
事实上用Sin cos 等非直线函数就可以替代。只是把网络弄成非线性的而已。都是线性函数复合还是线性函数,线性函数引入非线性函数这是原因。
BP神经网络中的激活函数为什么要用sigmoid型这个问题很简单。现在大多数人在用的就是BP了。BP权值的调整采用 Gradient Descent 公式ΔW=-η(偏E/偏w),这个公式要求网络期望输出和单次训练差值(误差E)求导。所以要求输出值处处可导。。。。s函数正好满足处处可导。
假设现在有5个数字,分别是a=0.8,b=1.5,c=1.2,d=1.9,e=10,它们的关系是a&c&b&d&e。e特别大,有可能是样本采集失误出现的错误数据,经过sigmoid变换,可以看到这几个数据的差异变小了,但大小关系仍然是a&c&b&d&e。根据函数图像可知,sigmoid函数可以在保持数据大小关系不变的情况下使特别大或特别小的数变得普通,这一特性很适用于分类问题和bp网络数据的处理。purelin(45度直线)可以用于最后一层的输出。箕舌线会破坏数据的大小关系,使元素的特征变得混乱,不适用。
实际工作中,有好几种激活函数都是可用的,sigmoid用的最多。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或逻辑斯谛分布中的sigmoid函数来源于最大熵原理,通过拉格朗日乘数法(寻找变量受一个或多个条件限制的的方法)求偏导得出。论文The
equivalence of logistic regression and maximum entropy models 中有详细推导过程。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1618次
排名:千里之外
原创:19篇
(2)(1)(12)(1)(2)(2)(1)下次自动登录
现在的位置:
& 综合 & 正文
绘制 sigmoid函数
//用来计算从-4到4之间的sigmoid函数值的静态函数public class Uitility...{
public static PointF[] GetPoints()
PointF[] mypos=new PointF[<span style="COLOR: #0];
int j=<span style="COLOR: #;
for(double i=-<span style="COLOR: #;i&=<span style="COLOR: #;i+=<span style="COLOR: #.02)
mypos[j]= new PointF((float)i,(float)Sigmoid(i));
public static double Sigmoid(double x)
return <span style="COLOR: #/(<span style="COLOR: #+Math.Pow(Math.E,-x));
}}//调用函数,完成函数的picturebox1上的绘制Graphics grfx=pictureBox1.CreateGraphics();
int picwidth=pictureBox1.Wint picheight=pictureBox1.Hfloat midx=(float)picwidth/<span style="COLOR: #;float midy=(float)picheight/<span style="COLOR: #;Pen bb=new Pen(Brushes.Black,<span style="COLOR: #);grfx.DrawLine(Pens.Red,new Point(<span style="COLOR: #,picheight-<span style="COLOR: #),new Point(picwidth,picheight-<span style="COLOR: #));//横坐标grfx.DrawLine(Pens.Red,new Point((int)midx,picheight),new Point((int)midx,<span style="COLOR: #));PointF[] cc=Uitility.GetPoints();PointF[] realone=new PointF[cc.Length];int cclen=cc.L
//将与坐标无关的数值转换成与坐标相关的点for(int i=<span style="COLOR: #;i&i++)...{
float fx=cc[i].X*picwidth/<span style="COLOR: #+
float fy=cc[i].Y*
realone[i]=new PointF(fx,-fy+picheight);}grfx.DrawLines(bb,realone);
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 sigmoid核函数 的文章

 

随机推荐