NLP | Logistic Regression

1.模型数学本质

1.1 描述如下:

三个重要参数:weight bias sigmoid
首先定义: P w , b ( C 1 ∣ x ) ≥ 0.5 Pw,b(C_1| x)\geq0.5 Pw,b(C1x)0.5则取 C 1 C_1 C1,否则取 C 2 C_2 C2.
逻辑回归的数学表述如下:
f w , b ( x ) = σ ( z ) = 1 1 + e − z , z = ∑ i w i x i + b f_{w,b}(x)=\sigma(z)=\frac{1}{1+e^{-z}}\quad,\quad z=\sum_iw_ix_i+b fw,b(x)=σ(z)=1+ez1,z=iwixi+b
NLP | Logistic Regression_第1张图片
sigmoid function的作用:把输出结果控制在0-1之间。

1.2 求解步骤理解:

1.2.1

先假设训练数据集是由 P w , b ( C 1 ∣ x ) P_{w,b}(C1|x) Pw,b(C1∣x)的分布产生的,则产生这组训练数据的概率为:
L ( w , b ) = f w , b ( x 1 ) f w , b ( x 2 ) ( 1 − f w , b ( x 3 ) ) . . . f w , b ( x n ) L(w,b)=f_{w,b}(x_1)f_{w,b}(x_2)(1-f_{w,b}(x_3))...f_{w,b}(x_n) L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))...fw,b(xn)
也就是说,我们需要选择合适的 w w w b b b,使得产生这组训练数据的可能性最大,即求 L ( w , b ) L(w,b) L(w,b)的最大值。

a r g   m a x L ( w , b ) arg~maxL(w,b) arg maxL(w,b)等价于 a r g   m i n − l n L ( w , b ) arg~min -lnL(w,b) arg minlnL(w,b)
− l n L ( w , b ) = l n f w , b ( x 1 ) + l n f w , b ( x 2 ) + l n ( 1 − f w , b ( x 3 ) ) + . . . + l n f w , b ( x n ) = ∑ n − [ y ^ n l n f w , b ( x n ) + ( 1 − y ^ n ) l n ( 1 − f w , b ( x n ) ) ] -lnL(w,b)=lnf_{w,b}(x_1)+lnf_{w,b}(x_2)+ln(1-f_{w,b}(x_3))+...+lnf_{w,b}(x_n)\\ =\sum_n -[\hat{y}^nlnf_{w,b}(x^n)+(1-\hat{y}^n)ln(1-f_{w,b}(x^n))] lnL(w,b)=lnfw,b(x1)+lnfw,b(x2)+ln(1fw,b(x3))+...+lnfw,b(xn)=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]

而这里我们记 C ( f ( x n ) , y ^ n ) = − [ y ^ n l n f w , b ( x n ) + ( 1 − y ^ n ) l n ( 1 − f w , b ( x n ) ) ] C(f(x^n),\hat{y}^n)=-[\hat{y}^nlnf_{w,b}(x^n)+(1-\hat{y}^n)ln(1-f_{w,b}(x^n))] C(f(xn),y^n)=[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))],其实可以看出 C ( f ( x n ) , y ^ n ) C(f(x^n),\hat{y}^n) C(f(xn),y^n)是两个Bernouli分布的交叉熵(cross entropy)

1.2.2 交叉熵计算

H ( p , q ) = − ∑ x p ( x ) l n ( q ( x ) ) H(p,q)=-\sum_x p(x)ln(q(x)) H(p,q)=xp(x)ln(q(x))
代表两个分布的接近程度
NLP | Logistic Regression_第2张图片


到这里Logistic regression的极小化就可以写为 L ( f ) = ∑ n C ( f ( x n ) , y ^ n ) L(f)=\sum_nC(f(x^n),\hat{y}^n) L(f)=nC(f(xn),y^n)
仔细观察这个式子可以发现,由上面的叙述可知, C ( f ( x n ) , y ^ n ) C(f(x^n),\hat{y}^n) C(f(xn),y^n)定义的是两种分布的交叉熵,也就是 f ( x n ) f(x^n) f(xn) y ^ n \hat{y}^n y^n这两种分布的交叉熵,而交叉熵表达了两种分布的相似程度,越接近0表示越相似,那么 L ( f ) L(f) L(f)的极小化也就等价于:
选择合适的参数 w , b w,b w,b使得估计的 f ( x n ) f(x^n) f(xn)和实际的 y ^ n \hat{y}^n y^n的分布尽量接近

1.3 凸优化

采用随机梯度下降法不断更新 w w w b b b的值,以获取最优解。

1.4 logistic regression和linear regression的区别

1.4.1 区别NLP | Logistic Regression_第3张图片

虽然logistic regression和linear regression更新参数的公式一样,但实际上 y ^ n \hat{y}^n y^n f w , b ( x n ) f_{w,b}(x^n) fw,b(xn)的取值是不一样的, y ^ n \hat{y}^n y^n f w , b ( x n ) f_{w,b}(x^n) fw,b(xn)可以是任何值, f w , b f_{w,b} fw,b也不同。

1.4.2 loss函数

logistic regression和linear regression的loss函数为什么不一样(为什么logistic regression 不采用 square error而要用cross entropy)?:
如下图所示,对逻辑回归来说,黑色为cross entropy,红色为squre error。可以看出,se在边缘地区梯度下降非常平缓,基本上和中心地区梯度变化一致,所以当梯度下降很慢时,无法确定是否已经优化到最优值(即是否在中心区域);但对于cross entropy,边远地区梯度下降幅度很大,中心区域(最优值区域)梯度下降平缓,所以当梯度不再明显变化时可以很好的确定此处就是参数最优取值。
NLP | Logistic Regression_第4张图片

2.generative和discriminative区别:

generative eg.naive bayes:
discriminative: logistic regression
实际上这两种model的function set一模一样,对 P ( C 1 ∣ x ) P(C_1|x) P(C1x)的估计都是 P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P(C_1|x)=\sigma(w \cdot x+b) P(C1x)=σ(wx+b)
不一样的地方在于,generative model预先假设数据分布符合某个概率模型例如gaussian或bernouli,根据模型假设来求 w w w b b b的值;而logistic regression并没有这种假设,直接求取 w w w b b b的值。
NLP | Logistic Regression_第5张图片
实例如下,按照generative model,(1,1)反而会被划分为class 2.

思考一下可以发现,实际上对于class 2的训练数据,三组数据的x1和x2可以随意互换,并不会影响条件概率,例如改成[ (1,1)*4,(0,0)*4,(0,0)*4 ],即class 2的前两组数据的x2值互换,并不影响其条件概率.

NLP | Logistic Regression_第6张图片

3.逻辑回归用于多分类

NLP | Logistic Regression_第7张图片

你可能感兴趣的:(nlp,自然语言处理,机器学习,逻辑回归)