机器学习 (六): Sigmoid 公式推导和理解
Sigmoid推导和理解
- 前言
- Sigmoid 和损失函数无关
- Sigmoid 是什么?
- Sigmoid 的假设
- Sigmoid 的推导
- 我的理解
前言
说道逻辑回归就会想到 Sigmoid 函数, 它是一个实数域到 ( 0 , 1 ) (0, 1) (0,1) 的映射, 可以被解释为概率, 但为什么是这个公式?
Sigmoid 和损失函数无关
首先, 逻辑回归的损失函数为
L ( X , Y , θ ) = − ∑ i = 1 n y ( i ) l o g ( y ^ ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − y ^ ( i ) ) L(X,Y,\theta) = -\sum_{i=1}^ny^{(i)}log(\hat y^{(i)}) + (1-y^{(i)})log(1-\hat y^{(i)}) L(X,Y,θ)=−∑i=1ny(i)log(y^(i))+(1−y(i))log(1−y^(i))
其中 y ^ ( i ) = s i g m o i d ( θ T x ) \hat y^{(i)} = sigmoid(\theta^T x) y^(i)=sigmoid(θTx)
这个公式是怎么来的, 我们来推导一下:
设一个概率模型 P ( Y = 1 ∣ X = x ) = f ( x , θ ) P(Y=1|X=x)= f(x, \theta) P(Y=1∣X=x)=f(x,θ), 简写为 P ( y ∣ x ) P(y|x) P(y∣x)
那么对于给定的训练集 X = { x ( 1 ) , x ( 2 ) , . . . , x ( n ) } X=\{x^{(1)},x^{(2)},…,x^{(n)}\} X={ x(1),x(2),…,x(n)} 和 Y = { y ( 1 ) , y ( 2 ) , . . . , y ( n ) } Y=\{y^{(1)},y^{(2)},…,y^{(n)}\} Y={ y(1),y(2),…,y(n)}, 对该模型的参数 θ \theta θ 进行 极大似然估计, 得到
θ ^ = a r g m a x θ ∏ i = 1 n P ( y ( i ) ∣ x ( i ) ) \hat\theta = argmax_\theta \prod_{i=1}^nP(y^{(i)}|x^{(i)}) θ^=argmaxθ∏i=1nP(y(i)∣x(i))
对右式取 l o g log log 并展开, 得到
a r g m a x θ ∑ i = 1 n l o g ( P ( Y = 1 ∣ x ( i ) ) y ( i ) ) + l o g ( P ( Y = 0 ∣ x ( i ) ) 1 − y ( i ) ) argmax_\theta\sum_{i=1}^nlog(P(Y=1|x^{(i)})^{y(i)})+log(P(Y=0|x^{(i)})^{1-y(i)}) argmaxθ∑i=1nlog(P(Y=1∣x(i))y(i))+log(P(Y=0∣x(i))1−y(i))
化简得到
a r g m a x θ ∑ i = 1 n y ( i ) l o g ( f ( x , θ ) ) + ( 1 − y ( i ) ) l o g ( 1 − f ( x , θ ) ) argmax_\theta\sum_{i=1}^ny^{(i)}log(f(x,\theta))+(1-y^{(i)})log(1-f(x,\theta)) argmaxθ∑i=1ny(i)log(f(x,θ))+(1−y(i))log(1−f(x,θ))
和逻辑回归的损失函数形式一样, 因此, 可以得出结论:
对于任何0-1二分类概率模型, 它的极大似然估计就是逻辑回归的损失函数, 与二分类模型的具体函数实现无关.
Sigmoid 是什么?
Sigmoid 的假设
首先, Sigmoid 函数对样本数据的分布只提出了一个假设:
属于不同类别的特征值服从均值不同, 方差相同的正态分布, 即
P ( x ∣ Y = 0 ) ∼ N ( μ 0 , σ ) P(x|Y=0)\sim N(\mu_0,\sigma) P(x∣Y=0)∼N(μ0,σ)
P ( x ∣ Y = 1 ) ∼ N ( μ 1 , σ ) P(x|Y=1)\sim N(\mu_1,\sigma) P(x∣Y=1)∼N(μ1,σ)
Sigmoid 的推导
惊了, 由上述假设即可推出 Sigmoid 函数.
因 为 P ( x , y ) = P ( x ∣ y ) P ( y ) = P ( y ∣ x ) P ( x ) 所 以 P ( Y = 0 ∣ x ) P ( Y = 1 ∣ x ) = P ( Y = 0 , x ) P ( x ) P ( Y = 1 , x ) P ( x ) = P ( Y = 0 , x ) P ( Y = 1 , x ) = P ( x ∣ Y = 1 ) P ( Y = 1 ) P ( x ∣ Y = 0 ) P ( Y = 0 ) 两 边 取 对 数 得 到 l o g ( P ( Y = 0 ∣ x ) P ( Y = 1 ∣ x ) ) = l o g ( P ( x ∣ Y = 1 ) P ( Y = 1 ) P ( x ∣ Y = 0 ) P ( Y = 0 ) ) 其 中 P ( Y = 1 ) 和 P ( Y = 0 ) 是 先 验 概 率 为 常 数 , 而 P ( x ∣ Y = 1 ) 和 P ( x ∣ Y = 0 ) 服 从 正 态 分 布 所 以 l o g ( P ( Y = 0 ∣ x ) P ( Y = 1 ∣ x ) ) = l o g ( N ( μ 0 , σ ) N ( μ 1 , σ ) ) + C = ( x − μ 1 ) 2 2 σ 2 − ( x − μ 0 ) 2 2 σ 2 + C 化 简 得 l o g ( P ( Y = 0 ∣ x ) P ( Y = 1 ∣ x ) ) = ( μ 1 − μ 0 ) σ 2 x + C = θ T x ( 给 x 增 加 一 个 维 度 省 掉 常 数 项 ) 两 边 取 e x p 得 到 P ( y ∣ x ) 1 − P ( y ∣ x ) = e θ T x 化 简 得 到 P ( y ∣ x ) = 1 1 + e − θ T x 即 为 S i g m o i d 函 数 \begin{aligned} 因为 P(x,y)=P(x|y)P(y)=P(y|x)P(x) \\ 所以 \frac{P(Y=0|x)}{P(Y=1|x)}=\frac{P(Y=0,x)P(x)}{P(Y=1,x)P(x)}=\frac{P(Y=0,x)}{P(Y=1,x)}\\=\frac{P(x|Y=1)P(Y=1)}{P(x|Y=0)P(Y=0)}\\ 两边取对数得到\\log(\frac{P(Y=0|x)}{P(Y=1|x)})=log(\frac{P(x|Y=1)P(Y=1)}{P(x|Y=0)P(Y=0)})\\ 其中 P(Y=1) 和 P(Y=0) 是先验概率为常数, 而 P(x|Y=1)和P(x|Y=0)服从正态分布\\ 所以log(\frac{P(Y=0|x)}{P(Y=1|x)})=log(\frac{N(\mu0,\sigma)}{N(\mu1,\sigma)})+C=\frac{(x-\mu_1)^2}{2\sigma^2}-\frac{(x-\mu_0)^2}{2\sigma^2}+C\\ 化简得log(\frac{P(Y=0|x)}{P(Y=1|x)})=\frac{(\mu_1-\mu_0)}{\sigma^2}x+C=\theta^Tx && (给 x 增加一个维度省掉常数项)\\ 两边取 exp得到 \frac{P(y|x)}{1-P(y|x)}=e^{\theta^Tx} \\ 化简得到 P(y|x)=\frac{1}{1+e^{-\theta^Tx}} \\ 即为Sigmoid 函数 \end{aligned} 因为P(x,y)=P(x∣y)P(y)=P(y∣x)P(x)所以P(Y=1∣x)P(Y=0∣x)=P(Y=1,x)P(x)P(Y=0,x)P(x)=P(Y=1,x)P(Y=0,x)=P(x∣Y=0)P(Y=0)P(x∣Y=1)P(Y=1)两边取对数得到log(P(Y=1∣x)P(Y=0∣x))=log(P(x∣Y=0)P(Y=0)P(x∣Y=1)P(Y=1))其中P(Y=1)和P(Y=0)是先验概率为常数,而P(x∣Y=1)和P(x∣Y=0)服从正态分布所以log(P(Y=1∣x)P(Y=0∣x))=log(N(μ1,σ)N(μ0,σ))+C=2σ2(x−μ1)2−2σ2(x−μ0)2+C化简得log(P(Y=1∣x)P(Y=0∣x))=σ2(μ1−μ0)x+C=θTx两边取exp得到1−P(y∣x)P(y∣x)=eθTx化简得到P(y∣x)=1+e−θTx1即为Sigmoid函数(给x增加一个维度省掉常数项)
我的理解
对于分属两个不同类别的随机变量 X 0 , X 1 X_0, X_1 X0,X1, 如果它们服从的是均值不同但是方差相同的正态分布, 那么它们的概率的概率分布就是 S i g m o i d Sigmoid Sigmoid 形式.
仅此而已.
还没有评论,来说两句吧...