python中sigmoid函数_机器学习中 Sigmoid 函数的物理含义
讨论范围:二分类问题只有 2 个分类的情况,logistic 曲线可以简化为又叫 sigmoid 函数。1. Python 画 Sigmoid 函数的图像import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinedef sigmoid(x):return 1/(1+np.exp(-x))x = np.arange(-5.,
讨论范围:二分类问题
只有 2 个分类的情况,logistic 曲线可以简化为
又叫 sigmoid 函数。
1. Python 画 Sigmoid 函数的图像
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def sigmoid(x):
return 1/(1+np.exp(-x))
x = np.arange(-5., 5., 0.2)
y = sigmoid(x)
plt.plot(x, y)
2. 非数学的理解
作为对比,选择
这条直线。
判断一个对象的分类时,很难做到 100% 的把握,需要算概率。
横坐标是测量值,纵坐标是概率。
p 越大,属于 1 的概率越高,否则属于 0.
p = 0.5 是分界线,无法判断属于哪一个分类。
从 0.5 变到 0.6,基本可以认为属于分类 1,质的飞跃,虽然把握不大。
0.6 -> 0.7, 非常重要的改进。
从 0.9 变到 1,因为把握已经很大了,所以实际的帮助有限。
相对于
或者其他曲线,
Sigmoid 曲线更完美的阐述了这种变化。
3. 数学解释
作用域:将一个 (−∞ ,+∞ ) 之内的实数值变换到区间 [0,1]
测量值 X 的取值区间是 (−∞ ,+∞ ) ,概率 P 的取值区间是 [0,1]。
sigmoid函数,单调增,定义域是(−∞ ,+∞ ),值域是(0,1)。
虽然在 0 和 1 两个点上,不是闭区间。但也近乎完美的满足需求。
正因为单调递增,不套用 sigmoid(logistic) 函数,直接比较 X 的大小,也是不影响结果的。
所以,虽然 logistic 模型不是直线,但依旧属于线性分类器。
是否套用 sigmoid 函数,会影响 Loss 的计算。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)