机器学习基础(林軒田)笔记之十
来源:互联网 发布:比特币交易 知乎 编辑:程序博客网 时间:2024/06/15 05:03
Logistic Regression (Logistic线性回归)
回顾
第九讲我们着重介绍了线性回归问题,在使用平方误差的情况下线性回归假设集的解为。
Logistic Regression Problem
如果按照之前的二分类方法来分析心脏病复发的问题,则输出为。若含有噪声,则目标函数使用目标分布P表示:。
此时的学习流程如下:
但是在实际中,我们通常是告知患者心脏病复发的可能性,而不是确切的会不会复发。此类问题被称为软二元分类问题,目标函数为:。
此分类为题的理想数据集如下:
但是实际中我们我们无法得到心脏病复发的确切几率,而仅仅能得到心脏病是否复发,实际的数据集如下:
进而:
现在的问题就是如何给出假设函数集H,根据之前的经验,我们对输入特征的各个属性进行加权求和:
进而,我们利用Logistic函数将得到的加权和转换到0到1之间:
从而,得到假设函数为:。
Logistic函数定义(单调,可微):
Logistic回归的假设集:
三种线性模型的比较:
线性分类使用的0/1损失函数,线性回归使用的平方损失函数,本节讨论Logistic回归的损失函数。
由目标函数可得:
假设存在一个数据集,则由目标函数产生这种数据样本的概率:
进而:
上式中未知,但是我们知道假设函数,我们用替代得到:
假设假设函数和很接近,则产生数据集D的可能性(称之为似然)与产生数据集D的可能性也很接近。如果产生了数据集D,则可以认为产生该数据集的可能性很大,那么可以推断出假设函数g为似然最大的假设函数。
进而:
Logistic函数的一个性质:
进而:
可以写为:
观察可知,对最大值的求取是没有影响的,最值只与函数对每个样本的连乘相关,即:
将最大值问题转换为最小值问题(加一个负号),另外乘以以保证与之前的错误衡量机制类似:
进而:
注:上图中的错误表达式称为交叉熵错误。
上一节中我们求得了Logistic的损失函数,进一步我们需要求得使得最小的。
观察得:
求解:
进一步:
假设一种特殊情况:所有的,则,此时与同号,即线性可分。除去此特殊情况,当加权和为0时,此时不能使用线性回归中使用的闭式求解方法来求解最小值。
针对上述情况,我们使用在PLA中使用的迭代思路来求解最小值:
即:当与同号时,不修改参数向量,当与异号时按照上图中步骤二修改参数向量。
上图中表示步长,v表示更行的方向。
此方法中如何设计和v成为解决问题的关键。在PLA中,v是错误修正,在Logistic回归算法中我们针对其来找到一种快速求的最佳w的方法。由上一节我们已知,是一个可微的的连续的凸函数,则上图中的最低点所对应的w向量即是我们要求的w。
为了使得v仅代表方向的变化,我们将其归一化为单位向量;代表更新的步长。即在固定,时,我们可以沿着最快的方向找到使得最小的w。
下面我们介绍一种线性近似的方法:
上面的迭代方法仍然是一个非线性带约束的式子,我们可考虑将其转换成一个近似的式子,进而通过求解使得近似式子最小的w来间接的达到求解使得最小的w的值。
首先,回忆一下一维空间中的泰勒展开式:
同理,当很小时,可以将展开为:
因此可以与近似:
上式中已知,为一给定正数,因此上式化为求:
两个向量乘积最小为其方向相反,又由于v被归一化为单位向量,因此:
进而:
上式说明,w每次沿着梯度的反方向移动一小步,按照此方法可以快速找到使得最小的w,此方法称之为梯度下降法。
下面介绍对求解的影响:
由上图可知:当过小时,w的更新速度过慢;过大时,下降过程不稳定,可能出现越更新越高的情形;最佳的是使得随着梯度的下降而下降,即与成正比,如上图右所示。
从而,我们可以给出一种新的给值方法:
进而:
上式中称之为固定学习率。
Logistic回归算法的求解步骤归结为下:
- 机器学习基础(林軒田)笔记之十
- 机器学习基础(林軒田)笔记之三
- 机器学习基础(林軒田)笔记之二
- 机器学习基础(林軒田)笔记之四
- 机器学习基础(林軒田)笔记之五
- 机器学习基础(林軒田)笔记之六
- 机器学习基础(林軒田)笔记之七
- 机器学习基础(林軒田)笔记之八
- 机器学习基础(林軒田)笔记之九
- 机器学习基础(林軒田)笔记之十一
- [心得]机器学习基础之线性代数笔记
- 斯坦福机器学习笔记十
- 十、机器学习系统设计笔记之计算机视觉
- 机器学习基础(林軒田)笔记之一
- 机器学习笔记--机器学习的基础
- java基础学习笔记之十--反射(1)
- Android学习笔记十之Android基础UI一
- Android学习笔记十之Android基础UI一
- java中this的用法
- 剑指offer面试题52
- BZOJ[1750/3384]: [Usaco2005 qua]Apple Catching
- JZOJ 4586 Ned 的难题【NOIP2016模拟7.7】
- 测试硬盘IO性能的心酸历程
- 机器学习基础(林軒田)笔记之十
- jQuery 知识点总结
- 关于MSP430-Flash超过64K的读写操作方法
- 1020: 部分A+B
- ionic navbutton有时候会消失的bug
- Ubuntu12.04-root权限的获取与退出
- ZZULIOJ 1912: 小火山的爱情密码 (尺取法)
- Oracle 的网络
- Mathematica数据处理(4)