版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010223750/article/details/52747895
引言
渣硕学习机器学习也有一段日子了,平时也是把最大似然、交叉熵、最小二乘法当做最常见的方法用了,久而久之,已经不太关注其来源。最近师兄们在忙着找工作,然后其中一个X姓师兄就在组会上提出说面试中问到为什么logistic回归的损失函数使用到的交叉熵而不是最小二乘,突然一下子懵逼了,平时使用的最多的方法,包括在神经网络中也是使用的是交叉熵的方法,也习惯了其所以然,却没有考虑过其之所以然的问题,这就很尴尬了。师兄说了一些原因,归咎起来,有几点:1,交叉熵方法更多的是用于分类,而最小二乘更多的是用于回归;1,方便计算。确实有这些方面的原因,后来回来之后,自己仔细思索了一下,回想起研一开始看过的为数不多的几集Andrew NG的斯坦福课程视频,突然有了些灵感,也觉得有些心得分享一下(PS:大神请让道,数学符号可能有些许不规范,在此为本渣硕的数学功底又捏了一把汗)。
从极大似然说去
极大似然是机器学习里面最基础的概念了,就轻微的再复述一下: 假设X的概率分布满足一个分布
f ( x ; θ )
,也就是在给定
θ
的情况下,x的分布情况,给定一串观测结果
x 1 , x 2 . . . x n
,我们现在是要估计参数
θ
,使得
P ( θ | X = x n )
最大,根据贝叶斯公式
P ( A | B ) = P ( B | A ) ⋅ P ( A )
我们可以通过使
P ( X = x n | θ )
最大来实现,这里
|
并不严格指的是条件概率,而是在给定的
θ
的情况下,
P ( X = x n )
的概率。而这个式子就是似然函数
ι ( θ )
。通过极大化似然函数,然后求取参数
θ
就能得到模型结果。
关于指数分布家族和广义线性模型GLM(General Linear Model)
因为这一部分涉及一些公式推导,而这些推导也只是一些简单的数学变换,所以这一部分直接引用的是牛顿方法&指数族分布&GLM 的文章,在这里向原作者表示感谢。指数族分布的公式为:
P ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) )
其中,
η
成为分布的自然参数(nature parameter);
T ( y )
是充分统计量(sufficient statistic),通常
T ( y ) = y
。当参数 a、b、T 都固定的时候,就定义了一个以η为参数的函数族。为什么要使用这种模式,WIKIPEDIA给出了一些原因,就不在这儿赘述了,读者可以自己去搜索,总之其有很多统计学方面的好处。
关于下面两种分布:
伯努利分布 伯努利分布式对于0、1问题建模的,
B e r n o u l l i ( φ ) , p ( y = 1 ; φ ) = φ ; p ( y = 0 ; φ ) = 1 − φ
下面将其推导成指数分布族形式:
P ( y ; θ ) = e x p ( y l o g ( φ 1 − φ ) + l o g ( 1 − φ ) )
对应于指数族的分布,可以得到:
b ( y ) = 1
T ( y ) = y
η = l o g ( φ 1 − φ ) ⇒ φ = 1 1 + e − η
a ( η ) = l o g ( 1 − φ )
高斯分布 下面对高斯分布进行推导,推导公式如下(为了方便计算,我们将方差 σ设置为1): 高斯分布的公式以及推导如下:
N ( μ , 1 ) = 1 2 π − − √ ( − 1 2 e x p ( − 1 2 ( y − μ ) 2 ) ) = 1 2 π − − √ e x p ( − 1 2 y 2 ) e x p ( μ y − 1 2 u 2 )
对比可知:
b ( y ) = 1 2 π − − √ e x p ( − 1 2 y 2 )
η = μ
a ( η ) = 1 2 μ 2
广义线性模型
指数族分布主要是为了导出广义线性模型,仔细观察伯努利分布和高斯分布的指数分布族形式中的η变量。可以发现,在伯努利的指数分布族形式中,η与伯努利分布的参数φ是一个logistic函数(下面会介绍logistic回归的推导)。此外,在高斯分布的指数分布族表示形式中,η与正态分布的参数μ相等,下面会根据它推导出普通最小二乘法(Ordinary Least Squares)。通过这两个例子,我们大致可以得到一个结论,η以不同的映射函数与其它概率分布函数中的参数发生联系,从而得到不同的模型,广义线性模型正是将指数分布族中的所有成员(每个成员正好有一个这样的联系)都作为线性模型的扩展,通过各种非线性的连接函数将线性函数映射到其他空间,从而大大扩大了线性模型可解决的问题。
下面我们看 GLM 的形式化定义,GLM 有三个假设: (1)
y | x ; θ E x p o n e n t i a l F a m i l y ( η )
;给定样本x与参数
θ
,样本分类y 服从指数分布族中的某个分布; (2) 给定一个 x,我们需要的目标函数为
h θ ( x ) = E [ T ( y ) | x ]
; (3)
η = θ T x
。 依据这三个假设,我们可以推导出logistic模型与普通最小二乘模型。首先根据伯努利分布推导Logistic模型,推导过程如下:
h θ ( x ) = E [ T ( y ) | x ] = E [ y | x ] = p ( y = 1 | x ; θ ) = φ = 1 1 + e − η = 1 1 + e − θ T x ( 1 )
公式第一行来自假设(2),公式第二行通过伯努利分布计算得出,第三行通过伯努利的指数分布族表示形式得出,然后在公式第四行,根据假设三替换变量得到。
同样,可以根据高斯分布推导出普通最小二乘,如下:
h θ ( x ) = E ( T ( y ) | x ) = E [ y | x ] = μ = η = θ T x ( 2 )
公式第一行来自假设(2),第二行是通过高斯分布
N ( μ , σ 2 )
计算得出,第三行是通过高斯分布的指数分布族形式表示得出,第四行即为假设(3)。
最大似然-交叉熵-最小二乘 的关系思考
上面的铺陈完毕,然后来看一看标题中提到的三者的关系。 首先看二项分布的概率:
P ( y ; φ ) = φ y ( 1 − φ ) ( 1 − y ) ( 3 )
其实该式子就是极大似然,为了使之能够满足指数家族分布,我们得到了
φ = 1 1 + e − θ T x ( 4 )
这也是上一part提到的logistic分布,(3)其对数似然函数是:
l ( φ ) = y l o g ( 1 − φ ) + ( 1 − y ) l o g ( 1 − φ ) ( 5 )
,而对于logistic回归,其交叉熵损失函数是:
− l ( φ )
,因此当寻找参数是交叉熵损失函数最小的时候,其实也是在求原来的分布
P ( y ; w , x )
似然函数值最大的过程。
同样对于高斯分布,似然函数为
L ( y ; σ = 1 , θ , x ) = 1 2 π − − √ ( − 1 2 e x p ( − 1 2 ( y − μ ) 2 ) ) ( 6 )
μ = θ T x ( 7 )
我们假设在线性回归问题中,
y
和
x
符合高斯分布,我们使用最小二乘法
m i n ( y − θ T x ) 2
来估计参数的过程,其实也就是求取似然函数(6)的极大值。这样,这两个损失函数就都找到了其似然函数的根据。
另一方面,我们来看下广义线性模型的假设的第二条
h θ ( x ) = E [ T ( y ) | x ]
;在对(5)和(6)求最大似然参数估计之后,那么
P ( y ; w , x )
就确定了,对于(5)式,当求出参数估计之后,代入y=1其实就求出了
P ( y = 1 ; w , x )
了也就是(4)式,而这就是其似然函数的期望(4)。同样,对于(6)式,求出最大似然参数估计之后,那么
P ( y ; w , x )
也就确定了,但是在线性回归问题中,我们需要知道y的确切值,而不是概率值,因此对于
P ( y ; w , x )
这个高斯分布,当参数w和x确定之后,我们想要得到y的值很自然的就想到的是使其概率最大的那个y值,而根据高斯分布规律知道,就是(7)式。经过上述分析,我们可以看出,当求出极大似然函数的参数估计之后,其对应的需要求取的值都知道了,而且等于期望,而且求取(5)和(6)的参数估计的也就是求取(4)和(7)的参数估计,而且我们需要的结果正好就是(4)(7)式,所以我们通过求取(4)(7)的参数估计不仅能够求出最大似然估计,而且能够直接得到我们需要的结果,所以对(4)式求最小交叉熵和对(7)式求取最小二乘的时候就等于求出了(5)(6)的极大似然参数估计,而且求出参数之后直接代入(5)(7)就能直接求出结果。
再来看一下广义线性模型的假设的第二条
h θ ( x ) = E [ T ( y ) | x ]
,就能更加明白期望的含义,所谓期望就是在当前条件下使该事情发生最大概率的那个值。
总结
通过一些过程的思考,感觉慢慢的了解了机器学习中很多的细节,文中相关概率符号可能有些错误,再次致歉,另外第一次在markdown编辑器中使用LaTeX函数,感觉还是很好用的,棒棒的
♡
。10月7日于北京。
参考文献
机器学习-牛顿方法&指数分布&GLM LaTeX一些符号