逻辑分布是一种常用的概率分布,其累积分布函数——逻辑函数(logistics function)——常见于逻辑回归(logistics regression)和神经网络。
其累积分布函数,即逻辑函数,为:
F(x;\mu,s)=1/(1+\exp(-(x-\mu)/s))
其中mu为均值,s为刻度参数(scale parameter),与标准差成比例。将累计分布函数画出来,如下图所示:
[图片来源:https://en.wikipedia.org/wiki/File:Logistic_cdf.svg]
可以看到曲线呈S形,并且曲线两段函数值增长比较平缓,在中部呈指数级增长。
其概率密度函数为:
[图片来源:https://en.wikipedia.org/wiki/File:Logistic_cdf.svg]
同样可以看出逻辑分布与正态分布非常相似,只是峰度(kurtosis)更高。
由于逻辑函数的特性(定义域无穷,值域[0,1]),其常常被应用于分类问题,即逻辑回归,是最常见的分类器之一。
逻辑分布的分位函数(quantile function)——即逆累积分布函数——是泛化的logit函数。
[描述来源:维基百科 URL:https://en.wikipedia.org/wiki/Local_optimum]
发展历史
逻辑分布、其有S形特点的累积分布函数(即逻辑函数)及其分位函数(即logit function)的应用十分广泛。
逻辑函数/曲线是由皮埃尔·弗朗索瓦·韦吕勒在1844到1845年间在研究人口增长的曲线时命名的,由于曲线呈S形,可以很好的模拟初始阶段指数增长、逐渐变得饱和、最后在成熟时停止增长的特点。
目前其最常见的应用之一是逻辑回归(logistics regression),一种用于模拟分类因变量的模型,如模拟0-1变量。逻辑回归可以视为误差项服从逻辑分布的潜变量(latent variable)模型。由于逻辑分布和正态分布的形状相似,逻辑回归中的逻辑分布与概率回归(probit regression)中的正态分布的作用也一样,两种函数的估计值也很相似,但由于逻辑分布尾部更厚,其估计值一般更稳健一些。逻辑回归的延伸——条件随机场(conditional random field)——被应用于自然语言处理。
逻辑函数还常常被应用于神经网络中,作为激活函数的一种。不过由于sigmoid函数容易造成梯度消失的问题,在神经网络深度增加时会是一个很大的问题,现在对其的应用比较谨慎。
其在医学(模拟肿瘤的增长)、物理学、语言学(模拟语言适应性)等领域也都有广泛的应用。
主要事件
年份 | 事件 | 相关论文/Reference |
1844-1845 | 皮埃尔·弗朗索瓦·韦吕勒命名了逻辑函数/曲线 | Verhulst Pierre-François (1845). Recherches mathématiques sur la loi d'accroissement de la population. [Mathematical Researches into the Law of Population Growth Increase]. Nouveaux Mémoires de l'Académie Royale des Sciences et Belles-Lettres de Bruxelles. 18: 1–42. |
1958 | David Cox提出了逻辑回归 | Cox, DR (1958). The regression analysis of binary sequences (with discussion). J Roy Stat Soc B. 20: 215–242. |
1989 | Ken-Ichi Funahashi证明了有至少一层hidden layer、激活函数为sigmoid函数的神经网络可以模拟任何非线性函数 | Ken-Ichi F.. (1989). On the approximate realization of continuous mappings by neural networks. Neural Networks. 2(3): 183-192. |
1998 | LeCun等人提出sigmoid函数在原点处不对称的特性会导致反向传播神经网络训练时收敛更快 | LeCun, Y.; Bottou, L.; Orr, G.; Muller, K. (1998). Orr, G.; Muller, K., eds. Efficient BackProp (PDF). Neural Networks: Tricks of the trade. Springer. ISBN 3-540-65311-2. |
发展分析
瓶颈
逻辑分布在机器学习领域发展的瓶颈主要如上文所述,当神经网络的层数加深,使用sigmoid函数作为激活函数会造成梯度消失的问题。
未来发展方向
目前有不少研究集中于对激活函数的改进,如Google的Batch Normalization方法让sigmoid函数可以重新被使用。
Contributor: Yuanyuan Li