笔记:ML-LHY-5 Logistic Regression

这节课主要介绍 逻辑回归(Logistic Regression)以及多类别的逻辑回归(Softmax Regression)
Logistic Regression和Linear Regression关系以及为什么Logistic Regression不能用Squared Error
Logistic Regression是一种Discriminative 方法和上节课假设高斯分布求概率的Generative 做比较
Multi-class Classification问题,即Softmax Regression
从Logistic Regression的限制到Logistic Regression的连接,再到Neural Network
pdf 视频

Step 1: Function Set

Logistic Regression

上节课最后waring部分:
P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) = 1 1 + P ( x ∣ C 2 ) P ( C 2 ) P ( x ∣ C 1 ) P ( C 1 ) = 1 1 + exp ⁡ ( − z ) = σ ( z ) P\left(C_{1} \mid x\right)=\frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)+P\left(x \mid C_{2}\right) P\left(C_{2}\right)} \\\\ =\frac{1}{1+\frac{P\left(x \mid C_{2}\right) P\left(C_{2}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}}=\frac{1}{1+\exp (-z)}=\sigma(z) P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)=1+P(xC1)P(C1)P(xC2)P(C2)1=1+exp(z)1=σ(z)
中间推导过程省略…
在这里插入图片描述
因此:
P ( C 1 ∣ x ) = σ ( z ) = σ ( w ⋅ x + b ) = 1 1 + exp ⁡ ( − z ) P\left(C_{1} \mid x\right)=\sigma(z)=\sigma(w \cdot x+b)=\frac{1}{1+\exp (-z)} P(C1x)=σ(z)=σ(wx+b)=1+exp(z)1

在这里插入图片描述
σ ( z ) \sigma(z) σ(z)就是一个Sigmoid函数,输出也符合概率在0~1范围内。
最终定义这么一个函数:
f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w, b}(x)=P_{w, b}\left(C_{1} \mid x\right) fw,b(x)=Pw,b(C1x)

Linear Regression

而Linear Regression的函数:
f w , b ( x ) = ∑ i w i x i + b f_{w, b}(x)=\sum_{i} w_{i} x_{i}+b fw,b(x)=iwixi+b
输出可以是任何值

Step 2: Goodness of a Function (Loss Function)

Logistic Regression

如果训练数据如下:
x 1 x 2 x 3 x N C 1 C 1 C 2 ⋯ ⋯ C 1 \begin{array}{ccccc} x^{1} & x^{2} & x^{3} & & x^{N} \\ C_{1} & C_{1} & C_{2} & \cdots \cdots & C_{1} \end{array} x1C1x2C1x3C2xNC1
定义一个函数L
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}\left(x^{1}\right) f_{w, b}\left(x^{2}\right)\left(1-f_{w, b}\left(x^{3}\right)\right) \cdots f_{w, b}\left(x^{N}\right) L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)
其中 f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w, b}(x)=P_{w, b}\left(C_{1} \mid x\right) fw,b(x)=Pw,b(C1x),需要求最大的L也就是当w、b使得L最大,就找到最好的函数 z z z,即:
w ∗ , b ∗ = arg ⁡ max ⁡ w , b L ( w , b ) = arg ⁡ min ⁡ w , b − ln ⁡ L ( w , b ) w^{*}, b^{*}=\arg \max _{w, b} L(w, b) = \arg \min _{w, b}-\ln L(w, b) w,b=argw,bmaxL(w,b)=argw,bminlnL(w,b)


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}\left(x^{1}\right) f_{w, b}\left(x^{2}\right)\left(1-f_{w, b}\left(x^{3}\right)\right) \cdots f_{w, b}\left(x^{N}\right) L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)
而:
− ln ⁡ L ( w , b ) = ln ⁡ f w , b ( x 1 ) + ln ⁡ f w , b ( x 2 ) + ln ⁡ ( 1 − f w , b ( x 3 ) ) ⋯ = ∑ n − [ y ^ n ln ⁡ f w , b ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f w , b ( x n ) ) ] -\ln L(w, b)=\ln f_{w, b}\left(x^{1}\right)+\ln f_{w, b}\left(x^{2}\right)+\ln \left(1-f_{w, b}\left(x^{3}\right)\right) \cdots\\ =\sum_{n}-\left[\hat{y}^{n} \ln f_{w, b}\left(x^{n}\right)+\left(1-\hat{y}^{n}\right) \ln \left(1-f_{w, b}\left(x^{n}\right)\right)\right] lnL(w,b)=lnfw,b(x1)+lnfw,b(x2)+ln(1fw,b(x3))=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]
其中, y ^ n : 1 \hat{y}^{n}: 1 y^n:1 for class 1,0 for class 2,
推导过程:
− ln ⁡ L ( w , b ) = − ln ⁡ f w , b ( x 1 ) − ln ⁡ f w , b ( x 2 ) − ln ⁡ ( 1 − f w , b ( x 3 ) ) \begin{array}{r} -\ln L(w, b) \\ =-\ln f_{w, b}\left(x^{1}\right) \\ -\ln f_{w, b}\left(x^{2}\right) \\ -\ln \left(1-f_{w, b}\left(x^{3}\right)\right) \end{array} lnL(w,b)=lnfw,b(x1)lnfw,b(x2)ln(1fw,b(x3))
转为(这一步这么做事什么公式推到的吗?个人认为是根据 y ^ n \hat{y}^{n} y^n的值刚和可以凑出下面形式,并且这种形式统一,便于表示):
· − [ y ^ 1 ln ⁡ f ( x 1 ) + ( 1 − y ^ 1 ) ln ⁡ ( 1 − f ( x 1 ) ) ] − [ y ^ 2 ln ⁡ f ( x 2 ) + ( 1 − y ^ 2 ) ln ⁡ ( 1 − f ( x 2 ) ) ] − [ y ^ 3 ln ⁡ f ( x 3 ) + ( 1 − y ^ 3 ) ln ⁡ ( 1 − f ( x 3 ) ) ] \begin{array}{l} -\left[\hat{y}^{1} \ln f\left(x^{1}\right)+\left(1-\hat{y}^{1}\right) \ln \left(1-f\left(x^{1}\right)\right)\right] \\ -\left[\hat{y}^{2} \ln f\left(x^{2}\right)+\left(1-\hat{y}^{2}\right) \ln \left(1-f\left(x^{2}\right)\right)\right] \\ -\left[\hat{y}^{3} \ln f\left(x^{3}\right)+\left(1-\hat{y}^{3}\right) \ln \left(1-f\left(x^{3}\right)\right)\right] \end{array} [y^1lnf(x1)+(1y^1)ln(1f(x1))][y^2lnf(x2)+(1y^2)ln(1f(x2))][y^3lnf(x3)+(1y^3)ln(1f(x3))]
如果把 y ^ n \hat{y}^{n} y^n的值带入,刚好可以装换:
在这里插入图片描述


再回到上面:
∑ n − [ y ^ n ln ⁡ f w , b ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f w , b ( x n ) ) ] \sum_{n}-\left[\hat{y}^{n} \ln f_{w, b}\left(x^{n}\right)+\left(1-\hat{y}^{n}\right) \ln \left(1-f_{w, b}\left(x^{n}\right)\right)\right] n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]
就是交叉熵(Cross entropy)在伯努利分布中的表示
因此最终
L ( f ) = ∑ n C ( f ( x n ) , y ^ n ) L(f)=\sum_{n} C\left(f\left(x^{n}\right), \hat{y}^{n}\right) L(f)=nC(f(xn),y^n)
其中 y ^ n : 1 \hat{y}^{n}: 1 y^n:1 for class 1,0 for class 2
C ( f ( x n ) , y ^ n ) = − [ y ^ n ln ⁡ f ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f ( x n ) ) ] C\left(f\left(x^{n}\right), \hat{y}^{n}\right)=-\left[\hat{y}^{n} \ln f\left(x^{n}\right)+\left(1-\hat{y}^{n}\right) \ln \left(1-f\left(x^{n}\right)\right)\right] C(f(xn),y^n)=[y^nlnf(xn)+(1y^n)ln(1f(xn))]

Linear Regression

用平方误差做为损失函数求最好的拟合函数
L ( f ) = 1 2 ∑ n ( f ( x n ) − y ^ n ) 2 L(f)=\frac{1}{2} \sum_{n}\left(f\left(x^{n}\right)-\hat{y}^{n}\right)^{2} L(f)=21n(f(xn)y^n)2
其中, y ^ n : \hat{y}^{n}: y^n: a real number

Step 3: Find the best function

Logistic Regression

具体步骤就不写了,也是求梯度,最后:
w i ← w i − η ∑ n ( y ^ n − f w , b ( x n ) ) x i n w_{i} \leftarrow w_{i}-\eta \sum_{n}\left(\hat{y}^{n}-f_{w, b}\left(x^{n}\right)\right) x_{i}^{n} wiwiηn(y^nfw,b(xn))xin

Linear Regression

也是
w i ← w i − η ∑ n ( y ^ n − f w , b ( x n ) ) x i n w_{i} \leftarrow w_{i}-\eta \sum_{n}\left(\hat{y}^{n}-f_{w, b}\left(x^{n}\right)\right) x_{i}^{n} wiwiηn(y^nfw,b(xn))xin

Logistic Regression + Square Error

最后解释下为什么Logistic Regression不能用 Square Error;
在这里插入图片描述
在这里插入图片描述
可以看到这么做的后果就是在很容易出现梯度为0的情况,不管距离极值多远。下图更直观:
在这里插入图片描述

Generative v.s . Discriminative

Logistic Regression是Discriminative方法
用概率分布(例如高斯、伯努利)来描述后验概率(属于哪个类的概率)是Generative方法
在这里插入图片描述
一般来说Discriminative 方准确度大于Generative方法,因为Generative引入了假设,比如假设数据是高斯分布,而这个假设就削弱了对数据的敏感程度
举个例子:
在这里插入图片描述
求[1, 1]为c1的概率。自觉认为[1,1]应该为c1.
如果用朴素贝叶斯(x1, x2独立):
P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P\left(C_{1} \mid x\right)=\frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)+P\left(x \mid C_{2}\right) P\left(C_{2}\right)} P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)
P ( C 1 ) = ∣ 1 13 P ( x 1 = 1 ∣ C 1 ) = 1 P ( x 2 = 1 ∣ C 1 ) = 1 P ( C 2 ) = 12 13 P ( x 1 = 1 ∣ C 2 ) = 1 3 P ( x 2 = 1 ∣ C 2 ) = 1 3 \begin{array}{lll} P\left(C_{1}\right)=\mid \frac{1}{13} & P\left(x_{1}=1 \mid C_{1}\right)=1 & P\left(x_{2}=1 \mid C_{1}\right)=1 \\ P\left(C_{2}\right)=\frac{12}{13} & P\left(x_{1}=1 \mid C_{2}\right)=\frac{1}{3} & P\left(x_{2}=1 \mid C_{2}\right)=\frac{1}{3} \end{array} P(C1)=131P(C2)=1312P(x1=1C1)=1P(x1=1C2)=31P(x2=1C1)=1P(x2=1C2)=31

于是:
在这里插入图片描述
发现[1, 1]为c1的概率 < 0.5,是因为朴素贝叶斯没有考虑x1和x2的相关性,而我们自觉认为的时候考虑了相关性,这里只是拿朴素贝叶斯做个例子,如果使用高斯Generative的方法也是会有这种情况出现,而Discriminative 没有引入这种假设,完全是由数据算出来的,因此在数据量大时候,Discriminative 更能反应数据的分布、拟合函数而Generative方法适合数据量少时,引入的假设也许对拟合数据有帮助
总结使用Generative的情况:

  • 在训练数据比较少时,概率分布的假设是有必要的
  • 概率分布的假设,能更好处理噪音
  • 先验(假设概率分布)和类相关概率是可以的,来自不同来源的估计(比如语音识别,是一句话被说出的概率(先验概率\Generative)+识别模型(Discriminative )概率共同产生)

Multi-class Classification

多组w、b参数求属于C1、C2、C3的概率:
C 1 : w 1 , b 1 z 1 = w 1 ⋅ x + b 1 C 2 : w 2 , b 2 z 2 = w 2 ⋅ x + b 2 C 3 : w 3 , b 3 z 3 = w 3 ⋅ x + b 3 \begin{array}{ll} \mathrm{C}_{1}: w^{1}, b_{1} & z_{1}=w^{1} \cdot x+b_{1} \\ \mathrm{C}_{2}: w^{2}, b_{2} & z_{2}=w^{2} \cdot x+b_{2} \\ \mathrm{C}_{3}: w^{3}, b_{3} & z_{3}=w^{3} \cdot x+b_{3} \end{array} C1:w1,b1C2:w2,b2C3:w3,b3z1=w1x+b1z2=w2x+b2z3=w3x+b3
下面解释softmax吧z->y:
在这里插入图片描述
很直观了,之前一直不理解为什么叫softmax,原来是想把大的值拉的更大,因为是做幂操作,所以就叫softmax,求完后
1 > y i > 0 1>y_{i}>0 1>yi>0
∑ i y i = 1 \sum_{i} y_{i}=1 iyi=1
y i = P ( C i ∣ x ) y_{i}=P\left(C_{i} \mid x\right) yi=P(Cix)
怎么求误差呢:
在这里插入图片描述
还是用交叉熵,目标值用one hot编码

单个Logistic Regression的限制

考虑以下数据:
在这里插入图片描述
Logistic Regression是线性边界,所以没法直接分开红和绿所代表的2类,但是可以先做一个变换:
x 1 ′ :  distance to  [ 0 0 ] x 2 ′ :  distance to  [ 1 1 ] \begin{aligned} &x_{1}^{\prime}: \text { distance to }\left[\begin{array}{l} 0 \\ 0 \end{array}\right]\\ &x_{2}^{\prime}: \text { distance to }\left[\begin{array}{l} 1 \\ 1 \end{array}\right] \end{aligned} x1: distance to [00]x2: distance to [11]
于是就有:
在这里插入图片描述
因此可以一刀切,但是不能每次都做这种转换,那样就不够智能
所以这个转换可以用Logistic Regression来做
在这里插入图片描述
x 1 x_1 x1 x 2 x_2 x2通过一组参数(2个w和b)输出 x 1 ′ x_{1}^{\prime} x1,而 x 1 ′ x_{1}^{\prime} x1的值代表的情况如右上,这就是一种装换,同理还可以用不同的一组参数(2个w和b)输出 x 2 ′ x_{2}^{\prime} x2,用转换好的 x 1 ′ , x 2 ′ x_{1}^{\prime},x_{2}^{\prime} x1x2再进行分类,就可以划分开了

在这里插入图片描述
而这种多个Logistic Regression实际就Neural Network吧单个Logistic Regression看做Neuron
在这里插入图片描述

以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值