使用S型函数有什么好处?

时间:2019-05-27 01:23:13

标签: python math machine-learning sigmoid

我将脚趾浸入神经网络,并从一些基本的感知器开始。在一个视频中,这个家伙正在解释如何制作一台可以“学习”如何区分两个阵列的机器。他解释了训练过程,但只是将所有输入和权重推到了S型功能中。我对S形函数进行了一些研究,想知道为什么将其用于机器学习以及程序员为什么要使用它来测试其输入。

3 个答案:

答案 0 :(得分:1)

此功能的作用是使数字介于0和1之间,通常用于监督分类问题。例如在二进制监督分类问题中,标签只有两个(例如下图),那么一个距离其他数据太远的数据将对分隔线产生太大影响。

但是当我们使用Sigmoid函数时,可以看到距离其他数据远的数据不会对分隔符产生太大影响。

此功能还可以向您显示概率。例如,如果您有新的数据可以预测,则可以使用该行并查看数据属于某个标签的可能性。 (看图片以更好地理解)

图片链接:https://pasteboard.co/IgLjcYN.jpg

NOTE : labels -> y  and feature -> x

答案 1 :(得分:0)

Sigmoid是可能的激活功能之一。激活功能的目的是将所有大小的所有可能值压缩到同一范围内。

这是一篇好文章-https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

答案 2 :(得分:0)

Sigmoid是非线性激活函数,广泛用于Logistic回归和人工神经网络。如果,我们看看它的Python实现,

import math

def sigmoid( x ):
    return 1 / ( 1 + math.exp( -x )) 

如果输入为负,则输出将小于0.5。如果输入为正,则输出大于0.5。

Sigmoid Curve

在机器学习中的用途:

在机器学习中,如果我们倾向于学习某些特征和二元特征之间的关系,那么我们在输出层使用S形函数(产生输出)。 0和1,我们可以设置决策边界并确定标签是0还是1。

此外,它们还用于人工神经网络的隐藏层中。 Sigmoid根据其输入(来自上一层)产生激活,然后将其乘以后续层的权重以产生进一步的激活。如果Sigmoid截获了更大的正值,则给出1的完全饱和点火。在负值较小的情况下,将产生0点火。因此,它会基于阈值产生激活值。

此外,由于输出介于0和1之间,因此其输出可以解释为特定类的概率

乙状结肠(以及用ReLU替代)的某些特殊问题:

  

Sigmoid遭受梯度消失的困扰。渐变色   NN相对于参数的输出变得如此之小,   NN朝着最小损失方向迈出了较小的步伐   并最终停止学习。

此外,极大值或极小值将映射到四肢,即0或1,而不会导致模型输出的变化,而不会影响权重和偏差之类的参数。

使用ReLU可以解决此问题,因为它不会压缩输入信号(像S形曲线),因此解决了消失梯度问题。

相关问题