函数公式网 正切函数 4种激活函数详解,学着赚着

4种激活函数详解,学着赚着

本文用于整理入门深度学习过程中遇到的四种激活函数。 下面将从公式、代码和图像三个方面来介绍这些激活函数。 首先明确一下是哪四个:

下图A是一个线性可分的问题,也就是说,对于两类点(蓝点和绿点),可以通过a实现完全分类 直线。

当然,图像A是最理想最简单的二分类问题,但现实中往往存在一些非常复杂的线性不可分问题,比如图像B,你找不到任何一条直线可以将图像B分为 蓝点与绿点完全分开,必须圈出一条闭合曲线。

激活函数是帮助“绘制”这条闭合曲线的非线性函数。 在激活函数的帮助下,很多算法的处理能力都会增强,也可以处理线性不可分的问题。

在介绍逻辑回归的时候提到过Sigmoid函数。 其数学表达式为:

其中e为纳皮尔常数,其值为2.7182……其图像如下:

可以观察到图像的一些特征:

  • 曲线的取值范围为(0,1)
  • 当x = 0时, Sigmoid函数为0.5
  • 随着x的不断增大,Sigmoid函数的值无限趋近于1
  • 随着x的减小,Sigmoid函数的值无限趋近于0

对于梯度下降法来说,信息的更新很大程度上依赖于梯度,而Sigmoid函数一个明显的缺点就是当函数值特别接近0或1的两端时,因为 它的曲线已经几乎是平坦的,所以此时的梯度几乎为0,不利于权重的更新,会导致模型不收敛。

Sigmoid函数的代码如下:

importnumpyasnp
defsigmoid(x):
返回1
/(
1个
np.exp(-x))

Tanh函数

Tanh函数是一个双曲正切函数,其数学表达式为:

Tanh 函数和Sigmoid函数很相似,在图像上可以很好的体现:

这两个函数是一样的,当输入x值大或者小的时候,对应函数输出的y 值几乎相等,同样的缺点是梯度很小,不利于权重的更新; 不同的是Tanh函数的取值范围是(-1,1),当x=0时,输出函数值为0。

Tanh函数的代码如下:

importnumpyasnp
deftanh(x):

返回
(exp(x)-exp(-x))/(exp(x) exp(-x))

ReLu函数

ReLu是一个线性整流函数 ,又称修正线性单元,其函数的数学表达式为

Tanh是一个分段函数,其图像如下:

图像通俗易懂, 如果输入的x值小于0,则输出也为0; 如果输入的x值大于0,则直接输出x值。 需要注意的是,ReLu 函数在 x = 0 时是不连续的(不可导),但它也可以用作激活函数。

与Sigmoid函数和Tanh函数相比,ReLu函数的一个明显优势是在应用梯度下降法时收敛速度更快。 当输入值为整数时,不会出现梯度饱和问题,因为大于0的部分是线性关系,这使得ReLu成为使用最广泛的激活函数。

ReLu函数的代码如下:

importnumpyasnp
defrelu(x):
返回
np.最大值(
0
,x)

SoftMax函数

分类问题可以分为二分类问题和多分类问题。 Sigmoid函数更适合二分类问题,而SoftMax函数更适合多分类问题分类问题。

SoftMax函数的数学表达式为:

其中表示分类器的输出,i表示类别索引,类别总数为C,表示 当前元素的索引与所有元素的指数和之比。 简而言之,SoftMax函数将多个分类的输出值按比例转换为相对概率,使输出更容易理解和比较。

为了防止SoftMax函数在计算时出现上溢或下溢问题,通常会预先对V进行一些数值处理,即每个V都减去V中的最大值。假设 SoftMax函数的数学表达公式改为:

因为SoftMax函数计算的是概率,所以不能用图像显示。 SoftMax函数的代码如下:

importnumpyasnp
defsoftmax(x):
D=np.max(x)
exp_x=np.exp(x-D)

返回
exp_x/np.sum(exp_x)
阅读更多

本文来自网络,不代表函数公式网立场,转载请注明出处:https://www.cyhsb.com/zqhs-2/2906.html

方法规则都背熟了,定义域不再难——找函数定义域的方法

三角导数证明中的一种切线代入法赏析

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

返回顶部