机器学习:Sigmoid函数及Logistic回归模型

2019-11-14  本文已影响0人  Doawen

sigmoid函数是一个有着优美S形曲线的双弯曲数学函数,其在逻辑回归、人工神经网络中有着广泛的应用(sigmoid:adj. 乙状结肠的;C形的;S形的 n. S状弯曲)。在生物统计中,该函数也可以模仿一些情况下生物数量的 S 形曲线,起初阶段资源丰富大致是指数增长,然后随着资源受限开始变得饱和增加变慢,最后达到成熟时增加停止保持平衡。

Sigmoid函数及导数

f(z) = \frac{1}{1 + e^{-z}} = \frac{e^{z}}{1 + e^{z}}
f'(z) = (\frac{1}{1 + e^{-z}})' = -1 \times {(1 + e^{-z})}^{-2} \times (-1) \times e^{-z} \\ = \frac{e^{-z}}{{(1 + e^{-z})}^{-2}} = f(x) (1 - f(z))

sigmoid函数及导数

结合图像分析,其优点:

同时缺点:

python代码实现

# -*- coding: UTF-8 -*-

#导入科学计算库和绘图库
import numpy as np
import matplotlib.pyplot as plt

#定义函数计算s(x) = 1/(1+e^(-x))
def sigmoid(x):
    return 1./(1. + np.exp(-x))

#确定x值和y值范围
x = np.arange(-50, 50)
y = sigmoid(x)

#以x,y为轴,绘制Sigmoid及其导数
plt.plot(x, y)
plt.plot(x, y*(1-y))
plt.show()

Logistic回归模型

在搜索引擎广告排名决策中,为了预估每个广告的点击率,需要考虑广告位置、点击量、展示时间、受众人群等多个影响因素,这么多因素最好能用一个统一的数学模型来描述,而且这个模型能够随着数据量的增加越来越准确,这并非易事。早期很多经验值修正和近似的做法在整合各个特征时效果都不很好,后来工业界普遍采用逻辑回归模型(Logistic Regression / Logistic Model)。
逻辑回归模型指将一个事件出现的概率逐渐适应(回归)到一条S型逻辑曲线上,该曲线一开始变化快逐渐减慢最后饱和,上述sigmoid函数就是其中曲线之一(图形及特点详见上文)。
有了逻辑回归模型(sigmoid函数),就可以把各种信号(因素值)组合起来,不论组合成多大或多小的值最后都能得到一个概率分布。也可认为逻辑回归模型就是一种将影响概率的不同因素结合在一起的指数模型,例如z = a_0 + a_1x_1 + a_2x_2 + ... + a_kx_k中,每个x_i称为变量,表示影响概率的各种因子,a_i称为回归参数,表示每个因子的权重值,a_0是一个特殊参数与任何因子无关,可以保证在没有任何信息时,有一个稳定的概率分布,z是sigmoid函数的参数值,得出z后带入函数可得到位于(0,1)之间的概率值。
逻辑回归模型中的各参数的确定需要进行大量训练才能得出,和很多指数模型(如最大熵模型)一样,训练方法相似,可以采用通用的迭代算法GIS和改进的迭代算法IIS来实现,这两个算法知道就好,至今没多少人能搞懂和实现,希望以后有机会能学习一下。

参考:
《数学之美》吴军博士著

上一篇下一篇

猜你喜欢

热点阅读