ai(五)
5 逻辑回归
step1 逻辑回归的函数集

将函数集可视化:
逻辑回归模型和线性回归的对比:
step2 定义损失函数

利用最大似然估计找到最合适的w,bw,bw,b .也就是w∗,b∗w^*,b^*w∗,b∗
将训练集数字化(1对应class1,0对应class 2),并且w∗,b∗=argmaxw,bL(w,b)w^*,b^*=arg max_{w,b}L(w,b)w∗,b∗=argmaxw,bL(w,b)求max通过取负自然对数转化为求min :
将−lnL(w,b)-lnL(w,b)−lnL(w,b)改写:
![[attachment/Pasted image 20260322224922.png]] 
图中蓝色划线部分代表两个伯努利分布(Bernoulli distribution,0-1分布或两点分布)的交叉熵(cross entropy)
交叉熵:假设有两个分布p和q,这两个分布之间交叉熵的计算方式就是H(p,q)H(p,q)H(p,q)
交叉熵的值表示这两个分布有多接近。如果两个分布一摸一样,那么计算出来的交叉熵就是0
将逻辑回归的损失函数与线性回归的损失函数做对比:
对于逻辑函数的损失函数的直观理解:找到参数w,bw,bw,b ,将 模型输出和y^n\hat{y}^ny^n 看作两个伯努利分布,这两个分布越接近越好。
step3 找最好函数
利用梯度下降求解:
先分别对lnfw,b(xn)、ln(1−fw,b(xn)lnf_{w,b}(x^n)、ln(1-f_{w,b}(x^n)lnfw,b(xn)、ln(1−fw,b(xn) 对wiw_iwi的偏微分
![![[attachment/Pasted image 20260323085258.png]]](https://i-blog.csdnimg.cn/direct/18628f74652d41d9a0bc076c466c5bee.png)
然后求整个LLL损失函数对wiw_iwi 的偏微分![![[attachment/Pasted image 20260323085326.png]]](https://i-blog.csdnimg.cn/direct/305cda1940984f8b9cee27c5d101f001.png)
WiW_iWi 的更新取决于学习率ηηη、xinx_i^nxin 和紫色划线部分(预测值与真实值的差距) 对于如何挑选最好的 function,逻辑回归与线性回归的对比:
- 逻辑回归:真实值y^\hat{y}y^ 只能是0或者1,模型输出(functionfunctionfunction)范围确定,只能在(0,1)之间
- 线性回归:真实值与模型输出都可以是任意值

损失函数:为什么不用线性回归的平方误差
对于梯度下降寻找最优function的停止点是微分为0的地方。对逻辑回归如果使用平方误差作为损失函数:
假设 yn=1y^n=1yn=1 ,如果 fw,b(xn)=1f_w,_b(x_n)=1fw,b(xn)=1,就是非常接近target,会导致偏微分中第一部分为0,从而偏微分为0;而 fw,b(xn)=0f_w,_b(x_n)=0fw,b(xn)=0,会导致第二部分为0,从而偏微分也是0。→\rightarrow→ 参数停止更新,从而导致找到w,bw,bw,b不是w∗,b∗w^*,b^*w∗,b∗
对于w,bw,bw,b参数变化,对这两种损失函数画图:

- 交叉熵:距离y^\hat{y}y^ 真实值越远,微分越大,更新参数更快
- 平方差:距离真实值很远的时候,微分很小,导致参数更新缓慢,效果不好
判别模型 vs 生成模型
逻辑回归的方法→\rightarrow→ Discriminative(判别方法)
使用高斯分布描述后验概率 →\rightarrow→ Generative (生成方法)
两者函数集都是一样的:
- 逻辑回归:直接用梯度下降找出w,bw,bw,b
- 概率生成模型:先通过最大似然估计找到μ1、μ2,∑−1\mu^1、\mu^2,\sum^{-1}μ1、μ2,∑−1 后,计算w,bw,bw,b
逻辑回归模型与概率生成模型找出来的w,bw,bw,b 是不一样的。
图中只考虑了两个因素,如果考虑所有因素。逻辑回归的效果更好。
一个好玩的例子

假设:训练数据中有13组数据,类别1为(1,1),类别二为(1,0),(0,1),(0,0).
测试数据给(1,1),人类判断自然是类别1.但如果用朴素贝叶斯分类器(Naive Bayes):
朴素贝叶斯分类器:xxx属于CiC_iCi的概率等于每个特征属于CiC_iCi 概率的乘积。
计算出P(C1∣x)P(C_1|x)P(C1∣x) 的结果小于0.5,也就是说朴素贝叶斯分类器来说,测试数据是属于类别2
造成原因:训练集的数据量太小
判别方法不一定比生成方法好
- 训练数据量很小:
- 判别方法没有做任何假设,看着训练集来训练,训练数量越大,error越小
- 生成方法会自己脑补,受到数据集的影响比较小 →\rightarrow→ 对于噪声数据有更好的鲁棒性
多类别分类
Softmax
假设:三个类别,每个类被都有自己的w,bw,bw,b
把z1,z2,z3z_1,z_2,z_3z1,z2,z3 放进softmax的方程中:ezi∑j=1ezj\frac{e^{z_i}}{\sum_{j=1}e^{z_j}}∑j=1ezjezi
原本ziz_izi 可以是任意值,经过softmax处理后被限制,都在0和1之间。softmax做的事就是对最大值进行强化。
上图中,输入xxx属于类别1的概率是0.88,属于类别2的概率是0.12,属于类别3的概率是0.softmax的输出是用于估计后验概率(posterior probability),为什么可以?
为什么softmax的输出可以用来估计后验概率?
1.生成模型推导
假设3个类别,这3个类别都是高斯分布,共用一个协方差矩阵。使用上篇提到的方法进行推导能够推导出softmax
2.指数簇分布的特性
信息论学科中有Maximum Entropy(最大熵)的概念,也可以推出softmax。对信息论学科中的最大熵,指数簇分布的最大熵等价于其指数形式的最大似然界,二项式的最大熵解等价于其指数形式的最大似然,多项式的最大熵等价于多项式分布指数形式的最大似然。
指数簇分布最大熵的特性 →\rightarrow→ sigmoid函数
softmax中真实值的定义
![![[attachment/Pasted image 20260323141234.png]]](https://i-blog.csdnimg.cn/direct/c27ee182fb4b4b7794c2b3f273fc855d.png)
直接定义y1^,y2^,y3^\hat{y_1},\hat{y_2},\hat{y_3}y1^,y2^,y3^ 数值会导致类别1、类别2、类别3存在某种关系。
将y^\hat{y}y^定义为矩阵就可以避免这个问题。
逻辑回归的限制

对于这样的数据使用逻辑回归处理的话,会出现下面的情况:
始终无法实现将同一类别的数据分在一起
特征转换

- x1x_1x1 :转化为到点(0,0)的距离
- x2x_2x2 :转化为到点(1,1)的距离
经过这样的转换可以进行逻辑回归。但是一般特征转换的方式不好找,并且这种方式过于依赖人工寻找,而不是机器。所以…
初级逻辑回归模型
可以将很多的逻辑回归连接到一起,就可以实现特征转换。
图中使用两个逻辑回归对x1,x2x_1,x_2x1,x2进行特征转换得到x1′,x2′x_1^{'},x_2^{'}x1′,x2′ ,然后将转换后的特征再输入一个逻辑回归进行分类。
最终实现可以通过逻辑回归进行分类的目的。
深度学习
在这里插入图片描述
一个逻辑回归的输入可以来源于其他逻辑回归的输出,这个逻辑回归的输出可以是其他逻辑回归的输入。
- 神经元(Neuron):每个逻辑回归陈伟一个神经元
- 神经网络(Neural Network):这些神经元连接起来的网络
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)