- 内容介绍
- Sigmoid函数
- Sigmoid函数的性质与恒等式
- Sigmoid作为压缩函数
- Sigmoid作为神经网络中的激活函数
- 线性vs非线性?
- 为什么Sigmoid函数在神经网络中很重要?
无论是自己实现神经网络,还是使用内置的库进行神经网络学习,了解Sigmoid函数的重要性都是至关重要的。Sigmoid函数是了解神经网络如何学习复杂问题的关键。此功能还可作为发现其他功能的基础,这些功能可为深度学习体系结构中的监督学习提供高效和良好的解决方案。
在本文中,您将发现Sigmoid函数及其在学习神经网络示例中的作用。
您将了解:Sigmoid函数、线性与非线性可分性、如果使用Sigmoid单元,为什么神经网络可以建立复杂的决策边界?
Sigmoid函数Sigmoid函数是逻辑函数的一种特殊形式,通常用σ(X)或sig(X)表示。它是由以下方面提供的:
Sigmoid函数图是一条S形曲线,如下图中的绿线所示。图中还显示了粉红色的导数图。导数的表达式,以及一些重要的性质显示在右边。
其他一些属性包括:
- 域:(-∞,+∞)
- 范围:(0+1)
- σ(0)=0.5
- 这个函数是单调增加的。
- 该函数在任何地方都是连续的。
- 函数在其域中的任何地方都是可微的。
- 从数字上来说,计算这个函数的数值就足够了,例如,[-10,+10]。对于小于-10的值,函数的值几乎为零。对于大于10的值,函数的值几乎为1。
Sigmoid函数也称为压缩函数,因为它的域是所有实数的集合,其范围是(0,1)。因此,如果函数的输入要么是一个很大的负数,要么是一个非常大的正数, 输出总是在0到1之间,-∞和+∞之间的任何数字也是如此。
Sigmoid作为神经网络中的激活函数在神经网络中,Sigmoid函数被用作激活函数。为了回顾什么是激活函数,下图显示了激活函数在神经网络的一个层中的作用。输入的加权和通过激活函数传递,此输出充当下一层的输入。
当神经元的激活函数是Sigmoid函数时,它保证了这个单元的输出总是在0到1之间。而且,由于Sigmoid是一个非线性函数,这个单元的输出将是输入加权和的非线性函数。将Sigmoid函数作为激活函数的这样一个神经元被称为Sigmoid单元。
假设我们有一个典型的分类问题,其中我们在空间中有一组点,每个点被分配一个类标签。如果直线(或n维空间中的超平面)可以将这两类分开,那么我们就有一个线性可分的问题。另一方面,如果一条直线不足以划分这两个类,那么我们就有一个非线性可分问题。下图显示了二维空间中的数据。每个点都被分配一个红色或蓝色的类标签。左图显示了一个线性可分问题,需要一个线性边界来区分这两个类。右图显示了一个非线性可分问题,其中需要一个非线性决策边界.
对于三维空间,线性判定边界可以用平面方程来描述。对于n维空间,线性判定边界由超平面方程描述.
为什么Sigmoid函数在神经网络中很重要?如果在神经网络中使用线性激活函数,则该模型只能学习线性可分问题。然而,只要在隐层中加入一个隐层和一个Sigmoid激活函数,神经网络就可以很容易地学习一个非线性可分问题。利用非线性函数产生非线性边界,从而可以将Sigmoid函数应用到神经网络中学习复杂的决策函数。
在神经网络中,唯一可用作激活函数的非线性函数是单调递增函数。例如,sin(X)或cos(X)不能用作激活函数。此外,在实数空间中,激活函数应该是处处定义的,并且应该是连续的。函数还必须在实数的整个空间上是可微的。
通常,反向传播算法使用梯度下降来学习神经网络的权重。要推导出该算法,需要激活函数的导数。
Sigmoid函数是单调的、连续的和可微的,再加上它的导数可以用它本身来表示,这使得在神经网络中使用反向传播算法很容易推导出学习权值的更新方程。



