昨天晚上参加阿里巴巴的实习面试,各种被虐。面试了将近90分钟,才做了3个题,加上项目的介绍。在机器学习方面,问到了一个伯努利分布的最大似然估计的推导,想到逻辑回归的推导就是利用最大似然估计,然后就套用了其推导过程。可能前面被说的有点迷糊了,导致最后也没有完整的推导出来,最失败的一次面试了。
对于阿里的暑期实习面试,其实问得内容还是都比较基础的。准备了很多关于特征工程、集成学习等内容,结果都没有考察到。反而被考的基础知识没有准备的比较清楚。这里对伯努利分布以及其最大似然估计做了一个详细的推导,其它的概率模型可以套用该模版。
祝看到此文章的小伙伴都能找到好的工作…
伯努利分布,又名0-1分布,是一个离散概率分布。典型的示例是抛一个比较特殊的硬币,每次抛硬币只有两种结果,正面和负面。抛出硬币正面的概率为 p p p ,抛出负面的概率则为 1 − p 1-p 1−p 。因此,对于随机变量 X X X ,则有:
f ( X = 1 ) = p f ( X = 0 ) = 1 − p \begin{aligned} f(X=1) & = p \\ f(X=0) & =1-p \end{aligned} f(X=1)f(X=0)=p=1−p
由于随机变量 X X X 只有 0 和 1 两个值, X X X 的概率分布函数可写为:
(1) f ( X ) = p x ( 1 − p ) 1 − x 0 < p < 1 f(X)=p^x(1-p)^{1-x}\qquad\text{$0<p<1$}\tag{1} f(X)=px(1−p)1−x0<p<1(1)
在概率论和统计学中,数学期望(或均值)是试验中每次可能结果的概率乘以其结果的总和。它反映了随机变量平均取值的大小。
离散型随机变量 X X X 的数学期望为一切可能的取值 x i x_i xi 与对应的概率 p ( x i ) p(x_i) p(xi) 的乘积之和,即如果随机变量的取值为集合 { x 1 , x 2 , ⋯   , x n } \lbrace x_1,x_2,\cdots, x_n \rbrace {x1,x2,⋯,xn} ,每个取值对应的概率为 { p ( x 1 ) , p ( x 2 ) , ⋯   , p ( x n ) } \lbrace p(x_1),p(x_2),\cdots, p(x_n) \rbrace {p(x1),p(x2),⋯,p(xn)} ,则有:
(2) E ( X ) = ∑ i = 1 n x n p ( x n ) E(X) =\sum_{i=1}^{n}x_np(x_n) \tag{2} E(X)=i=1∑nxnp(xn)(2)
因此,对于伯努利分布,其数学期望为:
E ( X ) = 1 ⋅ p + 0 ⋅ ( 1 − p ) = p E(X)=1\cdot p + 0\cdot (1-p)=p E(X)=1⋅p+0⋅(1−p)=p
对于随机变量 X X X ,其方差和数学期望的公式满足:
(3) V a r ( X ) = E ( ( X − E ( X ) ) 2 ) = E ( x 2 ) − [ E ( x ) ] 2 Var(X)=E((X-E(X))^2)=E(x^2)-[E(x)]^2\tag{3} Var(X)=E((X−E(X))2)=E(x2)−[E(x)]2(3)
一个随机变量的方差就是衡量随机变量和其数学期望之间的偏离程度。
公式推导如下:
V a r ( X ) = E ( ( X − E ( X ) ) 2 ) = E ( X 2 − 2 X ⋅ E ( X ) + [ E ( X ) ] 2 ) = E ( X 2 ) − 2 ⋅ E ( X ) ⋅ E ( X ) + [ E ( X ) ] 2 = E ( X 2 ) − [ E ( X ) ] 2 \begin{aligned} Var(X)&=E((X-E(X))^2)\\ &=E(X^2-2X\cdot E(X)+[E(X)]^2)\\ &=E(X^2)-2\cdot E(X) \cdot E(X) + [E(X)]^2\\ &=E(X^2)-[E(X)]^2 \end{aligned} Var(X)=E((X−E(X))2)=E(X2−2X⋅E(X)+[E(X)]2)=E(X2)−2⋅E(X)⋅E(X)+[E(X)]2=E(X2)−[E(X)]2
对于伯努利分布,有 E ( X 2 ) = E ( X ) E(X^2)=E(X) E(X2)=E(X) 。因此,其方差为:
V a r ( X ) = p − p 2 = p ( 1 − p ) Var(X)=p-p^2=p(1-p) Var(X)=p−p2=p(1−p)
在统计学中,最大似然估计(MLE),也称为极大似然估计,是用来估计一个概率模型的参数的方法。其目的就是:利用已知的样本结果,反推最有可能导致这样结果的参数值。
由于样本集中的样本都是独立同分布,现以伯努利分布来推导其参数 p p p 最大似然估计。记已知的样本集为:
D = { x 1 , x 2 , ⋯   , x n } D=\lbrace x_1,x_2,\cdots,x_n\rbrace D={x1,x2,⋯,xn}
其似然函数为:
(4) L ( p ∣ x 1 , ⋯   , x n ) = f ( X ∣ p ) = f ( x 1 , x 2 , ⋯   , x n ∣ p ) = ∏ i = 1 n f ( x i ∣ p ) = ∏ i = 1 n p x i ( 1 − p ) 1 − x i \begin{aligned} L(p|x_1,\cdots,x_n)&=f(X|p)\\ &=f(x_1,x_2,\cdots,x_n|p)\\ &=\prod_{i=1}^n{f(x_i|p)}\\ &=\prod_{i=1}^n{p^{x_i}(1-p)^{1-x_i}}\tag{4} \end{aligned} L(p∣x1,⋯,xn)=f(X∣p)=f(x1,x2,⋯,xn∣p)=i=1∏nf(xi∣p)=i=1∏npxi(1−p)1−xi(4)
由于有连乘运算,通常对似然函数取对数来计算,即对数似然函数。因此其对数似然函数为:
(5) L = log ∏ i = 1 n f ( x i ∣ p ) = ∑ i = 1 n log f ( x i ∣ p ) = ∑ i = 1 n [ x i log p + ( 1 − x i ) log ( 1 − p ) ] \begin{aligned} L&=\log \prod_{i=1}^nf(x_i|p)\\ &=\sum_{i=1}^n{\log f(x_i|p)}\\ &=\sum_{i=1}^n{[x_i\log p+(1-x_i)\log (1-p)]}\tag{5} \end{aligned} L=logi=1∏nf(xi∣p)=i=1∑nlogf(xi∣p)=i=1∑n[xilogp+(1−xi)log(1−p)](5)
等式 ( 5 ) (5) (5) 其实就是逻辑回归中使用到的交叉熵了。
p ^ = arg max p L ( p ∣ X ) = arg max p ∑ i = 1 n [ x i log p + ( 1 − x i ) log ( 1 − p ) ] \begin{aligned} \hat{p}&=\arg \max_{p}L(p|X)\\ &=\arg \max_p {\sum_{i=1}^n{[x_i\log p+(1-x_i)\log (1-p)]}} \end{aligned} p^=argpmaxL(p∣X)=argpmaxi=1∑n[xilogp+(1−xi)log(1−p)]
因此,最大似然估计其实就是求似然函数的极值点,将对数似然函数对参数 p p p 求导:
∂ L ∂ p = ∑ i = 1 n [ x i p + 1 − x i p − 1 ] = ∑ i = 1 n p − x i p ( p − 1 ) = 0 \begin{aligned} \frac{\partial L}{\partial p}&=\sum_{i=1}^n{[\frac{x_i}{p}+\frac{1-x_i}{p-1}]}\\ &=\sum_{i=1}^n{\frac{p-x_i}{p(p-1)}}=0 \end{aligned} ∂p∂L=i=1∑n[pxi+p−11−xi]=i=1∑np(p−1)p−xi=0
从而得到伯努利的最大似然估计为:
∑ i = 1 n ( p − x i ) = 0    ⟹    p = 1 n ∑ i = 1 n x i \begin{aligned} &\sum_{i=1}^{n}{(p-x_i)}=0\\ \implies &p=\frac{1}{n}\sum_{i=1}^n{x_i} \end{aligned} ⟹i=1∑n(p−xi)=0p=n1i=1∑nxi
求概率模型的最大似然估计的一般步骤如下:
相信了解逻辑回归算法的小伙伴已经看出来了,对逻辑回归的推导其实质上也是最大似然估计算法。在逻辑回归中,其概率分布函数不再是 f ( x ) = p x ( 1 − p ) 1 − x f(x)=p^x(1-p)^{1-x} f(x)=px(1−p)1−x ,而是:
(6) P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\theta)=(h_{\theta}(x))^y(1-h_{\theta}(x))^{1-y}\tag{6} P(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y(6)
其中:
(7) h θ ( x ) = 1 1 + e − z = 1 1 + e − θ T x h_{\theta}(x)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-\theta^{T} x}}\tag{7} hθ(x)=1+e−z1=1+e−θTx1(7)
详细过程参见:逻辑回归推导