7.机器学习——Logistic Regression

上一章的分类可以推导了 P ( C 1 ∣ x ) = σ ( z ) = 1 1 + e − z P(C_1|x)=\sigma(z)=\frac{1}{1+e^{-z}} P(C1x)=σ(z)=1+ez1,并且在Gaussian的distribution下考虑class 1和class 2共用 Σ \Sigma Σ,可以得到一个线性的z(其实很多其他的Probability model经过化简以后也都可以得到同样的结果)
P w , b ( C 1 ∣ x ) = σ ( z ) = 1 1 + e − z P_{w,b}(C_1|x)=\sigma(z)=\frac{1}{1+e^{-z}} Pw,b(C1x)=σ(z)=1+ez1
z = w ⋅ x + b = ∑ i w i x i + b   z=w\cdot x+b=\sum\limits_i w_ix_i+b \ z=wx+b=iwixi+b 这里的w和x都是vector,两者的乘积是inner product,从上式中我们可以看出,现在这个model(function set)是受w和b控制的,因此我们不必要再去像前面一样计算一大堆东西,而是用这个全新的由w和b决定的model——Logistic Regression(逻辑回归)

Step 1:function set

这里的function set就是Logistic Regression——逻辑回归
w i w_i wi:weight, b b b:bias, σ ( z ) \sigma(z) σ(z):sigmoid function, x i x_i xi:input
在这里插入图片描述

Step2 定义损失函数

在这里插入图片描述
由于 L ( w , b ) L(w,b) L(w,b)是乘积项的形式,为了方便计算,我们将上式做个变换:
在这里插入图片描述
由于class 1和class 2的概率表达式不统一,上面的式子无法写成统一的形式,为了统一格式,这里将Logistic Regression里的所有Training data都打上0和1的标签,即output y ^ = 1 \hat{y}=1 y^=1代表class 1,output y ^ = 0 \hat{y}=0 y^=0代表class 2,于是上式进一步改写成:
在这里插入图片描述

现在已经有了统一的格式,我们就可以把要minimize的对象写成一个summation的形式: − ln ⁡ L ( w , b ) = ∑ n − [ y ^ n ln ⁡ f w , b ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f w , b ( x n ) ) ] -\ln L(w,b)=\sum\limits_n -[\hat{y}^n \ln f_{w,b}(x^n)+(1-\hat{y}^n) \ln(1-f_{w,b}(x^n))] lnL(w,b)=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))] 这里 x n x^n xn表示第n个样本点, y ^ n \hat{y}^n y^n表示第n个样本点的class标签(1表示class 1,0表示class 2),最终这个summation的形式,里面其实是两个Bernouli distribution(两点分布)的cross entropy(交叉熵)
在这里插入图片描述

step 3:Find the best function

实际上就是去找到使loss function即交叉熵之和最小的那组参数 w ∗ , b ∗ w^*,b^* w,b就行了,这里用gradient descent的方法进行运算就ok
结果竟然异常的简洁,gradient descent每次update只需要做: w i = w i − η ∑ n − ( y ^ n − f w , b ( x n ) ) x i n w_i=w_i-\eta \sum\limits_{n}-(\hat{y}^n-f_{w,b}(x^n))x_i^n wi=wiηn(y^nfw,b(xn))xin 那这个式子到底代表着什么意思呢?现在你的update取决于三件事:
learning rate,是你自己设定的
x i x_i xi,来自于data
y ^ n − f w , b ( x n ) \hat{y}^n-f_{w,b}(x^n) y^nfw,b(xn),代表function的output跟理想target的差距有多大,如果离目标越远,update的步伐就要越大

Logistic Regression V.s. Linear Regression

在这里插入图片描述

损失函数:为什么不学线性回归用平方误差?

在这里插入图片描述
如果是交叉熵,距离target越远,微分值就越大,就可以做到距离target越远,更新参数越快。
而平方误差在距离target很远的时候,微分值非常小,会造成移动的速度非常慢,这就是很差的效果了。

判别模型v.s. 生成模型

逻辑回归的方法称为Discriminative(判别)方法;上一篇中用高斯来描述后验概率,称为 Generative(生成) 方法。它们的函数集都是一样的。
在这里插入图片描述

  • 如果是逻辑回归,就可以直接用梯度下降法找出w和b;
  • 如果是概率生成模型,像上篇那样求出 μ 1 , μ 2 μ^1,μ^2 μ1,μ2 ,协方差矩阵的逆,然后就能算出w和b。

用逻辑回归和概率生成模型找出来的w和b是不一样的。结果是逻辑回归的效果好一些。

Generative model和discriminative model的差别就在于,Generative的model它有做了某些假设,假设你的data来自于某个概率模型;而Discriminative的model是完全不作任何假设的

判别方法不一定比生成方法好

生成方法的优势:生成方法会自己脑补,受到数据量的影响比较小。 对于噪声数据有更好的鲁棒性(robust)。

语音识别是 Generative 的方法,DNN只是其中的一块而已;因为还是需要算一个先验概率,就是某句话被说出来的概率,而估计某句话被说出来的概率不需要声音数据,只需要爬很多的句子,就能计算某句话出现的几率。

多类别分类

在这里插入图片描述

softmax的意思是对最大值做强化,因为在做第一步的时候,对z取exponential会使大的值和小的值之间的差距被拉得更开,也就是强化大的值

为什么Softmax的输出可以用来估计后验概率?

  1. 设我们用的是Gaussian distribution(共用covariance),经过一般推导以后可以得到softmax的function,
  2. 从information theory也可以推导出softmax function,Maximum entropy本质内容和Logistic Regression是一样的,它是从另一个观点来切入为什么我们的classifier长这样子

定义target

保证所有class之间的关系是一样的,这里使用类似于one-hot编码的方式
在这里插入图片描述
二元分类一样,多元分类问题也是通过极大似然估计法得到最终的交叉熵表达式的,这里不再赘述。

逻辑回归的限制

在这里插入图片描述
这个平面上无论怎么画直线都不可能把图中的两个class分隔开来

特征转换

特征转换:找一个比较好的feature space,让Logistic Regression能够处理。
在这里插入图片描述

级联逻辑回归模型

我们把一个input的x分为x1和x2,两个逻辑回归进行特征转换得到 x 1 ′ , x 2 ′ x_1^{'},x_2^{'} x1,x2,再进行新一轮的分类
在这里插入图片描述

当面对多元分类问题,需要用到多个Logistic Regression来画出多条直线划分所有的类,每一个Logistic Regression对应它要检测的那个类。
.在这里插入图片描述

我们把每一个Logistic Regression叫做一个neuron(神经元),把这些Logistic Regression串起来所形成的network,就叫做Neural Network,就是类神经网路,这个东西就是Deep Learning!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值