集团公司网站改版方案,360商城官网,微信公众号网址,dede苗木网站模板#x1f308;个人主页: 鑫宝Code #x1f525;热门专栏: 闲话杂谈#xff5c; 炫酷HTML | JavaScript基础 #x1f4ab;个人格言: 如无必要#xff0c;勿增实体 文章目录 Sigmoid函数#xff1a;机器学习中的关键激活函数1. 引言2. Sigmoid函数定义3.… 个人主页: 鑫宝Code 热门专栏: 闲话杂谈 炫酷HTML | JavaScript基础 个人格言: 如无必要勿增实体 文章目录 Sigmoid函数机器学习中的关键激活函数1. 引言2. Sigmoid函数定义3. Sigmoid函数的图像特性4. Sigmoid函数的导数5. Sigmoid函数在机器学习中的应用5.1 二元分类5.2 神经网络激活函数5.3 门控循环单元GRU 6. Sigmoid函数的优点7. Sigmoid函数的缺点8. Sigmoid函数的替代品9. 结论 Sigmoid函数机器学习中的关键激活函数
1. 引言
在机器学习和深度学习领域激活函数扮演着至关重要的角色。它们为神经网络引入非线性使得网络能够学习复杂的模式。Sigmoid函数是最早被广泛使用的激活函数之一至今仍在许多应用中发挥重要作用。本文将深入探讨Sigmoid函数的定义、特性、应用以及优缺点。
2. Sigmoid函数定义
Sigmoid函数也称为逻辑函数Logistic Function是一种常见的S型函数。其数学表达式为 S ( x ) 1 1 e − x S(x) \frac{1}{1 e^{-x}} S(x)1e−x1
其中e是自然对数的底数约等于2.71828。
3. Sigmoid函数的图像特性
Sigmoid函数具有以下几个重要的图像特性
函数值域在(0, 1)之间在原点(0, 0.5)处对称在x趋近于正无穷时y趋近于1在x趋近于负无穷时y趋近于0函数曲线呈S型在中间部分近似线性两端逐渐平缓
4. Sigmoid函数的导数
Sigmoid函数的导数有一个非常优雅的形式这也是它在早期神经网络中广泛使用的原因之一。Sigmoid函数的导数可以用函数本身表示 S ′ ( x ) S ( x ) ( 1 − S ( x ) ) S(x) S(x)(1 - S(x)) S′(x)S(x)(1−S(x))
证明如下 S ′ ( x ) d d x ( 1 1 e − x ) e − x ( 1 e − x ) 2 1 1 e − x ⋅ e − x 1 e − x 1 1 e − x ⋅ ( 1 − 1 1 e − x ) S ( x ) ( 1 − S ( x ) ) \begin{align*} S(x) \frac{d}{dx}\left(\frac{1}{1 e^{-x}}\right) \\ \frac{e^{-x}}{(1 e^{-x})^2} \\ \frac{1}{1 e^{-x}} \cdot \frac{e^{-x}}{1 e^{-x}} \\ \frac{1}{1 e^{-x}} \cdot (1 - \frac{1}{1 e^{-x}}) \\ S(x)(1 - S(x)) \end{align*} S′(x)dxd(1e−x1)(1e−x)2e−x1e−x1⋅1e−xe−x1e−x1⋅(1−1e−x1)S(x)(1−S(x))
这个简洁的导数形式使得在神经网络的反向传播过程中计算梯度变得非常方便。
5. Sigmoid函数在机器学习中的应用
5.1 二元分类
Sigmoid函数最常见的应用之一是在逻辑回归中用于二元分类。由于Sigmoid函数的输出范围在0到1之间我们可以将其解释为某一类别的概率。通常我们设置一个阈值如0.5当输出大于阈值时归为一类小于阈值时归为另一类。
在逻辑回归中模型可以表示为 P ( y 1 ∣ x ) 1 1 e − ( β 0 β 1 x 1 β 2 x 2 . . . β n x n ) P(y1|x) \frac{1}{1 e^{-(\beta_0 \beta_1x_1 \beta_2x_2 ... \beta_nx_n)}} P(y1∣x)1e−(β0β1x1β2x2...βnxn)1
其中x是输入特征β是模型参数。
5.2 神经网络激活函数
在传统的前馈神经网络中Sigmoid函数常被用作隐藏层和输出层的激活函数。它将神经元的输出压缩到(0, 1)范围内这种特性使得Sigmoid函数在早期神经网络中非常流行。
对于一个神经元其输出可以表示为 y S ( w x b ) 1 1 e − ( w x b ) y S(wx b) \frac{1}{1 e^{-(wx b)}} yS(wxb)1e−(wxb)1
其中w是权重x是输入b是偏置。
5.3 门控循环单元GRU
在更复杂的神经网络结构中如门控循环单元GRUSigmoid函数也扮演着重要角色。GRU使用Sigmoid函数来控制信息的流动具体来说在更新门和重置门中使用Sigmoid函数。
GRU的更新门和重置门的计算如下 z t σ ( W z ⋅ [ h t − 1 , x t ] ) z_t \sigma(W_z \cdot [h_{t-1}, x_t]) ztσ(Wz⋅[ht−1,xt]) r t σ ( W r ⋅ [ h t − 1 , x t ] ) r_t \sigma(W_r \cdot [h_{t-1}, x_t]) rtσ(Wr⋅[ht−1,xt])
其中σ表示Sigmoid函数z_t是更新门r_t是重置门。
6. Sigmoid函数的优点 输出范围有界Sigmoid函数的输出始终在0和1之间这使得它在某些应用中非常有用例如在需要将输出解释为概率的情况下。 平滑和连续Sigmoid函数是平滑和连续的这意味着它在整个定义域内都是可微的。这对于基于梯度的优化算法非常重要。 非线性Sigmoid函数引入了非线性使得神经网络能够学习复杂的非线性关系。 导数简单Sigmoid函数的导数形式简单可以用函数本身表示这在计算梯度时非常方便。
7. Sigmoid函数的缺点
尽管Sigmoid函数有许多优点但它也存在一些限制 梯度消失问题当输入值很大或很小时Sigmoid函数的梯度接近于0这可能导致深层网络中的梯度消失问题。 输出不是零中心的Sigmoid函数的输出范围是(0, 1)这意味着输出总是正的。这可能导致后续层的梯度更新出现zigzag现象。 计算复杂度Sigmoid函数涉及指数运算计算复杂度相对较高。 软饱和性在输入的绝对值较大时函数的变化率接近于0这可能导致学习过程变慢。
8. Sigmoid函数的替代品
由于Sigmoid函数存在一些限制研究人员提出了一些替代函数 ReLURectified Linear Unit f ( x ) m a x ( 0 , x ) f(x) max(0, x) f(x)max(0,x) ReLU解决了梯度消失问题并且计算简单现在已经成为许多深度学习模型的默认选择。 Tanh函数 f ( x ) e x − e − x e x e − x f(x) \frac{e^x - e^{-x}}{e^x e^{-x}} f(x)exe−xex−e−x Tanh函数的输出范围是(-1, 1)是零中心的但仍然存在梯度消失问题。
Leaky ReLU f ( x ) { x , if x 0 α x , otherwise f(x) \begin{cases} x, \text{if } x 0 \\ \alpha x, \text{otherwise} \end{cases} f(x){x,αx,if x0otherwise 其中α是一个小的正常数通常为0.01。Leaky ReLU解决了ReLU在负值区间梯度为0的问题。
9. 结论
Sigmoid函数在机器学习和深度学习的发展历程中扮演了重要角色。尽管在深度神经网络中已经不再是首选的激活函数但在某些特定应用中如二元分类和某些循环神经网络结构中Sigmoid函数仍然是一个有力的工具。
理解Sigmoid函数的特性、优点和局限性对于选择合适的激活函数和设计有效的神经网络架构至关重要。作为机器学习从业者我们应该熟悉各种激活函数并根据具体问题选择最合适的函数。
在未来随着神经网络架构和训练技术的不断发展我们可能会看到更多新型激活函数的出现。然而Sigmoid函数作为机器学习中的基础概念其重要性将永远不会被低估。