讨论范围:二分类问题

只有 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 的计算。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐