Press "Enter" to skip to content
写在前面
- 在这篇文章中, 我们继续学习线性模型, 如果时间地点允许, 我希望读者能拿着笔纸, 跟着一起推导一遍, 相信你会受益颇深.
基本形式
线性回归
- 给定数据集
, 其中
,
. '线性回归'(Linear Regression)试图学得一个线性模型以尽可能准确地预测实值输出标记.
- 我们先考虑一种最简单的情形: 输入属性的数目只有一个. 为便于讨论, 此时我们忽略关于属性的下表, 即
, 其中
, 对于离散属性, 若属性值间存在'序'(Order)关系, 可通过连续化, 将其转化为连续值.
- 线性回归试图学得:
, 使得 
- 如何确定w和b呢? 显然, 关键在于如何衡量
与
之间的差别, 我们可以试图让均方误差最小化:

- 均方误差有非常好的几何意义, 它对应了常用的欧几里得距离或简称'欧氏距离'(Euclidean Distance). 基于均方误差最小化来进行模型求解的方法称为'最小二乘法'(Least Square Method). 在线性回归中, 最小二乘法就是试图找到一条直线, 使所有样本到直线上的欧氏距离之和最小. 求解
和
使
最小化的过程, 称为线性回归模型的最小二乘'参数估计'(Parameter Estimation). 我们可以将
分别对
和
求导, 得到:


- 令上面两式为零, 可得
和
最优的闭式(Closed-Form)解:


其中
为
的均值.
- 假设数据集D, 样本由d个属性描述, 此时我们试图学得:
, 使得
, 这称为'多元线性回归'(Multivariate Linear Regression).
- 类似的, 用最小二乘法来对
和
进行估计. 为便于讨论, 我们把
和
吸收入向量形式
, 把数据集
表示为一个
大小的矩阵
, 其中每行对应一个示例, 该行前
个元素对应于示例的
个属性值, 最后一个元素恒置为1:

- 再把标记写成向量形式
, 则有:

- 令
, 对
求导得到:

- 令上式为零可得最优解的闭式解. 当
满秩矩阵(Full-Rank Matrix)或正定矩阵(Positive Definite Matrix), 令上式为零可得:

- 令
, 则最终学得的多元线性回归模型为:

- 然而, 现实任务中
旺旺不是满秩矩阵. 例如在许多任务中, 我们会遇到大量的变量, 其数目甚至超过样例数, 导致
的列数多于行数,
显然不满秩. 此时可以解出多个
, 它们都能使均方误差最小化. 选择哪一个解作为输出, 酱油学习算法的归纳偏好决定, 常见的做法是引入正则化(Regularization)项.
- 为了便于观察, 可以把线性回归模型简写为:

- 假设人为示例所对应的输出标记是在指数尺度上变化, 那就可以将输出标记的对数作为线性模型逼近的目标(对数线性回归):

- 如下图, 这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用.
对数几率回归
- 考虑二分类任务, 其输出标记
, 而线性回归模型产生的预测值
是实值, 浴室, 我们需要将实值
转换为
值. 最理想的是单位阶跃函数(Unit-Step Function).
- 单位阶跃函数(Unit-Step Function):
- 如下图, 若预测值
大于零就判为正例, 小于零则判为反例, 预测值为临界值零可任意判别:
- Sigmoid函数: 不难发现, 单位阶跃函数不连续, 不满足
单调可微. 于是我们希望找到一定程度上近似单位阶跃函数的'替代函数'(Surrogate Function), 并希望他单调可微. 对数几率函数(Logistic Function)正是这样的一个常用的替代函数, 这是一种Sigmoid函数, 它将
值转化为一个接近0或1的
值, 并且其输出值在
附近变化很陡.:

- 将对数作为
带入线性回归模型中:

- 可变化为:

- 若将
视为样本
作为正例的可能性, 则
是其反例可能性, 两者的比值:

- 称为'几率'(odds), 反映了
作为正例的相对可能性. 对几率取对数则得到'对数几率'(Log Odds, 亦称Logit):

- 不难发现, 这里其实是在用线性回归模型的预测结果去逼近真实标记的对数几率, 因此, 其对应的模型称为'对数几率回归'(Logistic Regression, 亦称Logit Regression). 特别注意到, 虽然他的名字是'回归', 单实际却是一种分类学习方法. 它不仅能预测出'类别', 而是可得到近似概率预测, 这对许多需利用概率辅助决策的任务很有用; 此外, 对率函数是任意阶可导的凸函数, 有很好的数学性质, 现有的许多数值优化算法都可直接用于求取最优解.
- 若将
视为类后验概率估计
, 则有:

- 显然有:


- 通过'极大似然法'(Maximum Lokelihood Method)来估计
和
. 给定数据集
, 对率回归模型最大化'对数似然'(Log-Likelihood):

- 令每个样本属于其真实标记的概率越大越好. 令
,
, 则
可简写为
. 再令
,
, 则有:

- 带入到上一步的结果, 则有:

- 根据凸优化理论, 经典的数值优化算法, 如梯度下降法(Gradient Descent Method), 牛顿法(Newton Method)等都可求得其最优解:

- 以牛顿法为例, 其第
轮迭代解的更新公式为:

- 其中关于
的一阶, 二阶导数分别为:


写在后面
- 在这里, 我们介绍了线性回归的一些基本概念与基本形式, 最后对对数几率回归函数进行了讨论. 如果看不懂最后的牛顿法, 不要紧. 可以先google补充, 如若还是不大理解, 我们仍然可以接下去学后续的内容, 影响不大.
- 明天, 我们将会继续学习线性判别分析与多分类学习小节中的内容.
Related
Be First to Comment