tansig和logsig有什么区别,为什么BP神经网络喜欢用tansig

 原创文章,转载请说明来自《老饼讲解神经网络》:bp.bbbdata.com

关于《老饼讲解神经网络》:

本网结构化讲解神经网络的知识,原理和代码。

重现matlab神经网络工具箱的算法,是学习神经网络的好助手。 


目录

01. 公式分析

02. 特性分析

03. 导数分析

笔者的猜想


为什么BP神经网络一般使用tansig,相信这是很多人的困惑。

我们不妨来分析tansig和logsig的属性、特性、导数等方面,

试图找出为什么倾向使用tansig的原因.

01. 公式分析


公式

tansig和logsig公式如下:

分析

从两者的公式来看,两者并无多大差异,

tansig只是在logsig的基础上进行拉伸平移操作。

两者都依赖指数计算,计算复杂度上无差异。

因此,公式层面上,并不构成倾向选择tansig的理由。


02. 特性分析


特性

当tansig自变量为一维时,它是一条S形曲线。
● 它的取值区间为 (-1,1)                                           
● tansig非线性部分主要集中在【-1.7,1.7】之间,
● 在【-1.7,1.7】外,tansig逐渐趋向饱和。          


当logsig自变量为一维时,它是一条S形曲线。
● 它的取值区间为 (0,1)                                            
● logsig非线性部分主要集中在【-1.7,1.7】之间,
● 在【-1.7,1.7】外,logsig逐渐趋向饱和。          

分析

从特性的对比,我们并没有发现两者有质的区别,

因为tansig就是将logsig进行拉伸,平移到【-1,1】的取值区间。

在特性上并没有发现太大的区别,

唯一的区别是,两者取值范围不一样。

03. 导数分析


导数

tansig的导数为:
\textbf{tansig}'(x) = 1-\textbf{tansig}^2(x)


logsig的导数为:
\textbf{logsig}'(x) = \textbf{logsig}(x)(1-\textbf{logsig}(x))

分析

通过导数的对比,

它们两者都可以用自身的值求得导数值,

计算量也一致,

因此,导数上tansig也没有更大的优势,

并不构成倾向使用tansig的原因

直逼真相


通过以上方方面面的分析,我们几乎看不到tansig比logsig的优势好在哪。

那为什么要用tansig呢?

笔者的看法是,

一、统一输入范围。                  

二、充分利用激活函数活跃区间


我们知道,上一层的输入就是下一层的输出,

而tansig和logsig的活跃区间在【-1.7,1.7】之间,

在输入层,我们无疑把输入归一化到【-1,1】,

对利用第一个隐层的激活函数活跃区间更加有效。


而采用tansig,则在多隐层的情况下,

每层的输出,即下层的输入仍然是【-1,1】

这样每层的输入范围都是统一的,

且都是有效利用激活函数活跃区间的。


统一性是很有好处的,

至少在理论研究上,可以带来很多便利,

不然还要分别讨论输入层和隐层。


相关文章

​《BP神经网络梯度推导》

​​​​​​《BP神经网络提取的数学表达式》

《一个BP的完整建模流程》

猜你喜欢

转载自blog.csdn.net/dbat2015/article/details/125640108
今日推荐