缘起逻辑回归
逻辑回归模型是用于二类分类的机器学习模型(不要说逻辑回归可以做多类分类啊喂,那是二类分类器的组合策略问题,而与逻辑回归分类器本身的构造没有半毛钱关系啊)。
我们知道,在逻辑回归中,用于预测样本类别的假设函数为
(小夕要讲大事,忽略偏置项参数和向量转置这种细节啦),其中sigmoid函数的图像看起来是这样的:
因此,我们将的样本预测为正类别(记为类别1),将的样本预测为负类别(记为类别0)。因此对于sigmoid(z)函数来说,z=0的点就是用来分类的临界点。所以在逻辑回归中,的点就是分类的临界点。
可是你有想过为什么吗?(是的,这并不是拍脑袋决定的)
如果觉得小夕的这种问法很奇怪,那小夕换一种问法,你知道是代表什么意思吗?它难道仅仅代表了“特征向量与模型参数做内积”这么肤浅的含义吗?
听小夕慢慢讲,手指慢慢划,跟上思路哦。
首先,模型参数是个向量,维数与样本的维数一致(忽略偏置项这种细节问题啦),为了好看,下文用w来代替。
我们来好好看看这个所谓的模型参数w。这个w在本质上是,记为。诶?怎么能这样呢?如何理解被拆出来的这两个w呢?
其实只要把这个向量看作是对类别1的直接描述,将向量看作是对类别0的直接描述,新世界的大门就打开了。还记得前面小夕讲的,在逻辑回归模型中,本质上用来预测类别的临界点就是,也就是,这代表什么意思呢?
我们知道,对于向量a和向量b,假设它们的长度都为1,那么当向量a与向量b夹角最小时,它们的内积,也就是会最大。当然了,推广到更一般的说法,不限制a与b的长度,则当a与b夹角最小时,我们称a与b的余弦相似度最大
而两向量的夹角越小意味着什么呢?意味着这两个向量越相似呀,意味着越亲密呀。所以就意味着类别1与特征向量x的亲密度减去类别0与x的亲密度。因此当逻辑回归的假设函数时,也就是时,就代表着特征向量x,也就是样本,与类别1更亲密,因此类别预测为1。同样的道理,当x与类别0更亲密时,类别预测为0。
继续,我们将上述神奇的逻辑放到逻辑回归模型的假设函数的展开式中,将替换为我们上面的得:
等等,有没有惊恐的发现什么?还记得小夕在上一篇文章《逻辑回归》中得到的这个结论吗?:
天呐,逻辑回归的假设函数竟然与P(Y=1|X)一模一样!都是!!这个sigmoid函数到底是什么?一切真的都是因为巧合吗?不行,小夕非要一探究竟!来,手术刀拿来,解剖!
Sigmoid
为了美观,我们直接用w1代替,用w0代替:
如果我们令分子分母同除以。。。得:
!!!有没有被震惊到!
小夕在前面讲了,w1与x的内积代表着w1与x的亲密度,这个不就代表着“类别1与x的亲密度占x与所有类别亲密度之和的比例”吗?
既然是比例,那肯定是0到1之间的数呀~而这个比例又可以解读为什么呢?不就是类别1在x心中的分量吗?当类别1在x心中的分量超过类别0在x心中的分量时,我们的逻辑回归模型当然要把类别1嫁给x呀~也就是将类别1作为预测的类别!
同时,这个分量越大,我们将类别1嫁给x后,会让x满意的概率就越大!所以这个比例又是类别1的后验概率P(y=1|x)呀!
看,一切都不是巧合吧。Sigmoid函数的意义,竟然如此深邃。
等等,虽然sigmoid(w1·x)代表"类别1与x的亲密度占x与所有类别亲密度之和的比例",但是显然这里只有两个类别,即1和0,也就是说Sigmoid是一个只能用于二类分类的函数。
那么如果我们要分类的类别超过2,我们能不能同样用一个函数来表示出“某类别与x的亲密度占x与所有类别亲密度之和的比例”呢?
Softmax
这一次,我们倒着来!假如我们的分类任务有k个类别,与前面用w1、w0来表示类别1、类别2一样,我们用w1、w2、w3...wk来表示各个类别。
根据前面的经验,这个“类别j与特征向量x的亲密度”貌似可以表示为,那么我们效仿一下sigmoid,类别j与x的亲密度占x与所有类别亲密度之和的比例即:
将分母用整理一下,发现了没有!这就是深度学习中广泛应用的大名鼎鼎的Softmax函数:
哎,原来看似深不可测的Softmax函数,只是Sigmoid的一种推广形式,其深邃意义与Sigmoid并无二致。哎,失望,Softmax也就这样啦╮(╯▽╰)╭怪小夕咯?