知行编程网知行编程网  2021-12-29 19:43 知行编程网 隐藏边栏 |   抢沙发  26 
文章评分 0 次,平均分 0.0

缘起逻辑回归

逻辑回归模型是用于二类分类的机器学习模型(不要说逻辑回归可以做多类分类啊喂,那是二类分类器的组合策略问题,而与逻辑回归分类器本身的构造没有半毛钱关系啊)。

我们知道,在逻辑回归中,用于预测样本类别的假设函数为

深入深出Sigmoid与Softmax的血缘关系


(小夕要讲大事,忽略偏置项参数和向量转置这种细节啦),其中sigmoid函数的图像看起来是这样的:

深入深出Sigmoid与Softmax的血缘关系


因此,我们将深入深出Sigmoid与Softmax的血缘关系的样本预测为正类别(记为类别1),将深入深出Sigmoid与Softmax的血缘关系的样本预测为负类别(记为类别0)。因此对于sigmoid(z)函数来说,z=0的点就是用来分类的临界点。所以在逻辑回归中,深入深出Sigmoid与Softmax的血缘关系的点就是分类的临界点。

可是你有想过为什么吗?(是的,这并不是拍脑袋决定的)

如果觉得小夕的这种问法很奇怪,那小夕换一种问法,你知道深入深出Sigmoid与Softmax的血缘关系是代表什么意思吗?它难道仅仅代表了“特征向量与模型参数做内积”这么肤浅的含义吗?

听小夕慢慢讲,手指慢慢划,跟上思路哦。

首先,模型参数深入深出Sigmoid与Softmax的血缘关系是个向量,维数与样本的维数一致(忽略偏置项这种细节问题啦),为了好看,下文用w来代替深入深出Sigmoid与Softmax的血缘关系

我们来好好看看这个所谓的模型参数w。这个w在本质上是深入深出Sigmoid与Softmax的血缘关系,记为深入深出Sigmoid与Softmax的血缘关系。诶?怎么能这样呢?如何理解被拆出来的这两个w呢?

其实只要把深入深出Sigmoid与Softmax的血缘关系这个向量看作是对类别1的直接描述,将向量深入深出Sigmoid与Softmax的血缘关系看作是对类别0的直接描述,新世界的大门就打开了。还记得前面小夕讲的,在逻辑回归模型中,本质上用来预测类别的临界点就是深入深出Sigmoid与Softmax的血缘关系,也就是深入深出Sigmoid与Softmax的血缘关系,这代表什么意思呢?

我们知道,对于向量a和向量b,假设它们的长度都为1,那么当向量a与向量b夹角最小时,它们的内积,也就是深入深出Sigmoid与Softmax的血缘关系会最大。当然了,推广到更一般的说法,不限制a与b的长度,则当a与b夹角最小时,我们称a与b的余弦相似度最大


而两向量的夹角越小意味着什么呢?意味着这两个向量越相似呀,意味着越亲密呀。所以深入深出Sigmoid与Softmax的血缘关系就意味着类别1与特征向量x的亲密度减去类别0与x的亲密度。因此当逻辑回归的假设函数深入深出Sigmoid与Softmax的血缘关系时,也就是深入深出Sigmoid与Softmax的血缘关系时,就代表着特征向量x,也就是样本,与类别1更亲密,因此类别预测为1。同样的道理,当x与类别0更亲密时,类别预测为0。


继续,我们将上述神奇的逻辑放到逻辑回归模型的假设函数深入深出Sigmoid与Softmax的血缘关系的展开式中,将深入深出Sigmoid与Softmax的血缘关系替换为我们上面的深入深出Sigmoid与Softmax的血缘关系得:

深入深出Sigmoid与Softmax的血缘关系


等等,有没有惊恐的发现什么?还记得小夕在上一篇文章《逻辑回归》中得到的这个结论吗?:

深入深出Sigmoid与Softmax的血缘关系


天呐,逻辑回归的假设函数竟然与P(Y=1|X)一模一样!都是深入深出Sigmoid与Softmax的血缘关系!!这个sigmoid函数到底是什么?一切真的都是因为巧合吗?不行,小夕非要一探究竟!来,手术刀拿来,解剖!

Sigmoid

 

为了美观,我们直接用w1代替深入深出Sigmoid与Softmax的血缘关系,用w0代替深入深出Sigmoid与Softmax的血缘关系

深入深出Sigmoid与Softmax的血缘关系


如果我们令分子分母同除以深入深出Sigmoid与Softmax的血缘关系。。。得:

深入深出Sigmoid与Softmax的血缘关系


!!!有没有被震惊到!
小夕在前面讲了,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与Softmax的血缘关系,那么我们效仿一下sigmoid,类别j与x的亲密度占x与所有类别亲密度之和的比例即:

深入深出Sigmoid与Softmax的血缘关系


将分母用深入深出Sigmoid与Softmax的血缘关系整理一下,发现了没有!这就是深度学习中广泛应用的大名鼎鼎的Softmax函数:

深入深出Sigmoid与Softmax的血缘关系


哎,原来看似深不可测的Softmax函数,只是Sigmoid的一种推广形式,其深邃意义与Sigmoid并无二致。哎,失望,Softmax也就这样啦╮(╯▽╰)╭怪小夕咯?

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享