这部分与数理统计中的多元线性回归(最小二乘法),一些优化迭代算法以及简单的矩阵微分有重叠,比较简单,主要引入了一些概念,不过也是新瓶装旧酒,没什么新的东西。
术语与记号含义
为输入变量或特征(features),
为输出变量.
训练集(training set): 输入集 输出集
监督学习(supervised learning)问题实际上是: 给定训练集,
通过学习得到映射
使得 能够很好地对 进行预测, 又被称为假设(hypothesis).
如果 是连续集/不可列, 那么确定
的过程称为回归(regression)问题; 如果 是离散集/可列, 那么确定
的过程称为分类(classification)问题.
本部分将解决线性回归问题与二元分类问题.
训练集实际上就是样本的集合捏
自然对数用 而不是
和概率论中的记号区分
这部分会出现很多概率论中的东西, 一些记号做如下修改:
- 密度函数用 而不是
- 01分布/伯努利分布 的参数
写成 为了与概率密度做区分,
伯努利分布记作 太长了,
还是用二项分布的记号简记为 吧.
- 随机变量不再用大写字母, 当说某个依赖于参数的随机变量服从某个分布时,
参数写明, 以正态分布为例, 写成 如果是条件分布, 比如在随机变量 已知的条件下 服从正态分布, 则写成
线性回归
线性函数的形式较为简单且性质较好, 是我们常常研究的对象, 此时 具有
的形式, 就像多元线性回归那样, 为了简便令
于是就有 对于给定 要确定
采用的方法和多元线性回归基本一致,
在这里是选择使代价函数(cost function)值最小的参数 即下面的优化问题
在多元线性回归部分,
并无系数 这里加上 , 可以在求导的时候系数不出现 并无大碍.
多元线性回归部分已经给出了该问题的闭式解(又称为normal equations):
这里的
与多元线性回归的 含义基本一致,
表达也相同, 注意大小写即可. 在多元线性回归部分同样给出了为什么最小二乘法采用平方而不是四次方之类的原因.
这部分不再赘述, 下面介绍用优化算法求解上述优化问题的做法.
借助最速下降法求解
根据最速下降法的迭代公式: 在这里, 迭代过程中要执行赋值语句 其中步长
又被称为学习率(learning rate), 且 于是迭代公式为
CS229的notes里给出的是固定步长而不是最优步长.
随机梯度下降SGD
上面这种梯度下降法又被称为batch gradient descent,
每次迭代都需要遍历整个训练集 当
不太大时这种方法是行之有效的且收敛的, 但是 太大的时候这种方式显然代价太高,
此时随机算法就有更大的优势. 随机梯度下降(stochastic gradient descent,
SGD)每次只
局部加权回归(locally
weighted regression)
局部加权回归的思想是, 在求 时更关注 附近的训练样本,
即让这部分在代价函数中的占比更大, 而远离 的那部分训练样本占比变小一些,
于是给每一项增加权重
代价函数修改为 其中 是 的函数, 保证在确定
的时候将重点放在要预测的值得附近. 容易看出 时 而 时
这权重的设置符合我们的预期.
的形式很像正态分布的概率密度(不过两者并无直接关系), 参数 被称为bandwidth参数,
大小会影响权重的分布导致过拟合 (overfit) 或你和不足 (underfit),
具体如何影响的细节见习题.
的另一种形式是 其中 是可逆矩阵.
参数学习算法(parametric learning
algorithm)与非参数学习(non-parametric learning algorithm):
分类与 logistic 回归
分类问题中最简单的一种就是 即二元分类的情形, 此时 可以表示为 等等集合, 被称为 negtive class, 被称为 positive class.
离散的问题往往不是那么好处理,
于是我们希望将二元分类问题转化为连续的问题并用回归的方式来解决.
单位阶跃函数 满足值为
但不好处理,
一个方案是选择其他形状与其相似的连续函数并采用四舍五入的处理, sigmond
函数 是一个很好的选择,
同时我们想利用线性回归得到的 毕竟 sigmond
函数只有在 时 时 与 显然不会满足这种关系,
于是可以可以构造代价函数为 下面根据代价函数确定参数
由于最小二乘法与 MLE 在求解参数 时是一脉相承的,
因此在这里我们将使用 MLE 确定参数
(毕竟最小二乘法仅仅适用于线性回归), 需要构造概率密度. 由于 不妨设 则
这里采用了条件概率的记号 因为 的值是依赖于 的, 而其中使用了分号 而不是逗号, 是因为 是参数而非随机变量,
如果使用逗号的话, 写在
的后面就认为
也是随机变量了.
为了在计算过程的简便, 将这两种情况合并, 可以将 的条件概率密度
于是在训练集样本相互独立的条件下, 似然函数 为了便于求导取对数: 满足 考虑每一个 有
如果能注意到 满足 的话, 用链式法则求
不失为更好的选择.
这导函数的零点显然是无法用初等函数显式表达出来, 于是可以考虑用最速下降法或牛顿法, 迭代过程中更新公式分别为
注意这里是
因为是求最大值的优化问题: 应沿梯度方向迭代而不是负梯度方向.
将这与线性回归的最速下降法迭代公式作比较,
可以很惊讶地发现两者的形式是完全吻合的.
牛顿法: 其中 这里采用的是最原始的牛顿法而不是修正牛顿法.
通过构造的概率密度得到的 具有非常好的性质, 它在 是凸的,
因此无需再考虑最速下降法或牛顿法会陷入局部最优解的情况了,
因为凸优化问题的局部最优解一定是全局最优解.
广义线性模型(GLM)
不管是线性回归还是 logistics 回归, 它们都隶属于概率论中的回归分析,
也就是说 总是一个随机变量,
依赖于自变量 和参数 以及随机误差 若假定 那么 其中
对于分类问题,
比如二元分类问题, 在广义线性模型中, 的分布不再局限于上面两种形式,
最常见的是指数类型的分布, 这类分布满足概率密度为: 叫做指数分布族(Exponential family), 其中参数
称为自然参数 (natural
parameter/canonical parameter), 都是 的函数, 被称为充分统计量(sufficient
statistic), 对于常见的分布, 一般有 ; 是 的函数, 它的主要作用是保证 使其符合概率密度应满足的特点.
显然, 伯努利分布和正态分布都是指数类型的分布, 下面将说明这一点.
伯努利分布:
设 则 显然就有
且 于是
正态分布:
设 则 需要注意的是, 在回归分析时我们并没有用到 这意味着 对于我们构造代价函数 以及最终确定参数 并无影响, 因此它可以是任意的,
为了计算简便, 可以令
事实上也可以将
考虑在内, 不过就需要更一般的指数类型的分布的概率密度:
三个假设
对于回归问题和分类问题, 我们想根据自变量 预测随机变量 的值, 为了得到广义线性模型,
做出下面的三个假设:
- 其中
为自然参数为 的指数族分布.
- 自然参数 与自变量 满足线性关系:
这三个假设看起来很突兀, 下面一一做解释:
为什么是指数族分布?
我们假设
服从指数族分布主要有两个原因:
指数分布具有良好的性质, 若随机变量 则 的期望与方差的形式非常简洁,
我们现在来计算一下.
期望: 注意到 于是定义随机变量 于是 且根据随机变量函数的期望, 有 这就意味着 即
上面交换积分和求导的次序原则上需要证明一致收敛之类的, 在这里不是重点,
就略去了, 同时用到了概率密度 的规范性. 若 则上面的积分都是在整个
上进行的.
这里的期望算子 即对多维随机变量的每一维求期望. 梯度 按理来说是列向量即 这里为了方便就不区分 与 的区别了.
上面的 "注意到" 好像有点突兀, 也可以从其他角度来求,
但关键还是要想到对
求导以及交换积分和求导次序, 因为 这时候出现了
积分后就是期望了, 而且剩下一项刚好是概率密度, 积分后就为 了.
方差: 即函数
的黑塞矩阵.
常见的大多数分布都属于指数分布族.
比如上面提到过的正态分布与伯努利分布, 以及指数分布, 二项分布, 多项分布,
泊松分布, 分布, 分布等等, 都属于指数分布族,
而这些分布又可以刻画大多数问题, 所以假定 服从指数族分布是有一定道理的.
这里补充了
分布和 分布,
以及对其他分布属于指数分布族的验证.
代价函数为什么是期望?
这里确定
的过程与回归分析并无二致, 关于连续型随机变量
的解释, 见回归分析, 实际上就是对随机误差期望为 的假定,
也可以借助参数估计的无偏性来理解.
离散型随机变量与连续型随机变量有一点不同
为什么是线性关系?
线性关系的假定可以看作是一种约定俗成,
这大概是因为因为线性关系具有诸多良好的性质, 就像局部加权回归那样,
如果只关注预测值附近的样本的话, 线性近似带来的误差并不是很大.
更精确的拟合所提高的精度相比计算的代价可能并不那么诱人.
反正是我瞎说的捏
借助广义线性模型解决多分类问题:
softmax regression
说了那么多理论和计算, 该看个例子了. 在前面解决了二元分类,
现在我们来看如何用 GLM 解决多分类问题. 多分类问题中, 表示有
类. 在给定 的条件下, 设 其中
的每一维都是概率, 满足
对于命题 记号
表示若 为真则 若 为假则 比如
(为什么这也要煞有介事地写个映射)
于是概率密度可以写成: 将其与指数族分布的概率密度对照, 则有
然后就发现出问题了, 此时 那代价函数就恒为 了, 显然不对.
问题出在哪里了呢? 因为 满足了 所以这 个参数有一个多余的, 于是用 替换掉 那么自然参数就满足 而不是 了,
不过下面的运算过程为了简便仍然用 , 现在置 则 于是就有
以及 为了求出 先求出 与
之间的关系, 这相当于是解方程:
解出 于是 且
其中
于是
这是一个 维向量, 其中第
维是参数 的预测值,
利用所有维度可以求出 的预测值.
如果想要求出最佳参数, 采用 MLE 并利用梯度法和牛顿法进行求解即可,
似然函数为