A. 人工智能 --- 激活函数

A. 激活函数
	激活函数分类
		Sigmoid函数
			优点
				便于求导的平滑函数
			缺点
				容易出现gradient vanishing
				函数输出并不是zero-centered
				幂运算相对来讲比较耗时
		tanh函数
			它解决了zero-centered的输出问题,然而,gradient vanishing的问题和幂运算的问题仍然存在。
		ReLU 激活函数
			优点
				解决了gradient vanishing问题 (在正区间)
				计算速度非常快,只需要判断输入是否大于0
				收敛速度远快于sigmoid和tanh
			缺点
				ReLU的输出不是zero-centered
				Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: 
					(1) 非常不幸的参数初始化,这种情况比较少见
					(2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。
		Leaky ReLU函数
			人们为了解决Dead ReLU Problem,提出了将ReLU的前半段设为而非0。另外一种直观的想法是基于参数的方法,即Parametric ReLU:,其中可由back propagation学出来。理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。
		ELU (Exponential Linear Units) 函数:ELU也是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点,以及:类似于Leaky ReLU,理论上虽然好于ReLU,但在实际使用中目前并没有好的证据ELU总是优于ReLU。
			优点
				不会有Deal ReLU问题
				输出的均值接近0,zero-centered
	总结
		建议使用ReLU函数,但是要注意初始化和learning rate的设置;可以尝试使用Leaky ReLU或ELU函数;不建议使用tanh,尤其是sigmoid函数。

猜你喜欢

转载自blog.csdn.net/micklongen/article/details/89789050