CS229 学习笔记 Part 1
此笔记为我的 CS229 的学习笔记之一,由 Andrew Ng 的 CS229 Lecture notes 和 课堂录像整理而来。用于记录所学到的内容。记录顺序重新编排过,并非是课程原本的教学顺序,并且省略了课程中的一些推导过程,所以适合学习后整理备忘使用,不适合用于同步辅助学习。
广义线性模型是所学到的 Linear Regression 以及 Logistic Regression 的推广形式(更准确的说,这两种模型都属于 GLM 的特殊情况)。它有三个关键假设(Assumptions)构成:
- $ y \mid x;\theta\sim ExponentialFamily(\eta) $ :对于固定的参数 $\theta$ 以及给定 $x$, $y$ 的分布服从某一指数分布族(如高斯分布、伯努利分布、Softmax分布)
- 对于给定的 $x$ ,目标是预测 $T(y)$ 的值。换一种说法就是,我们定义假设函数 $h(x) = E[y\mid x]$
- natural parameter $\eta$ 和 输入 $x$ 是线性相关的, $\eta = \theta^ \mathrm{ T } x$ (其中,当输入 $x$ 和 $\eta$ 是向量的时候, $\eta_i = \theta_i^ \mathrm{T}x$)
以上三个假设,一般只有第一个需要我们决定所使用的分布,其他两个假设都是直接定义。关键的地方来了,通过选择不同的_指数分布族_分布,我们能够得到不同的模型:
- 高斯分布,则得到 Linear Regression
- 伯努利分布,则得到 Logistic Regression
- Softmax 分布,得到 Softmax Regression
其中,Lenear Regression 为回归模型 (regression), Logistic Regression 和 Softmax Regression 都是分类模型 (classification)。
则我猜测,是否根据所假设的分布是离散分布还是连续分布,分别能够得到分类模型和回归模型呢?有待后续的学习验证。
- 假设 $y$ 服从的分布,并将所假设的分布化为标准的指数分布族标准形式:$$ p(y;\eta) = b(y)\exp(\eta^\mathrm{T}T(y)-a(\eta))$$
- 使用 $\eta$ 表示出 $E[y\mid x;\theta]$,则我们得到了使用 $\eta$ 表示的假设函数 $h_\theta(\eta)$
- 根据假设3,$\eta = \theta^ \mathrm{ T } x$,直接代入假设函数,得到 $h_\theta(x)$
之后:
- 通过得到的假设函数,我们能够定义出代价函数 (Cost function) 或 似然函数 (likelihood)
- 通过优化方法如梯度下降、牛顿法,以最小化代价函数或者最大化似然函数,得到最优的 $\theta$ 值。
包括以下三种子类:
- Batch Gradient Descent
- Mini-batch Gradient Descent
- Stochastic Gradient Descent
三种方法的主要区别在于,每一步优化所使用的样本数量大小:
- Batch 使用__全部__样本计算平均梯度后才进行一步更新;
- Mini-batch 使用__一小部分__样本计算平均梯度就进行一步更新;
- Stochastic 使用__一个__样本,计算梯度,进行更新
牛顿法用于寻找函数零点位置的优化方法,使用函数的导数(梯度)来计算参数的变化量,从而更新参数
由于我们需要寻找函数的极大值(极小值),则我们可以通过牛顿法寻找原函数的一阶导数的零点,将优化问题转化为寻找零点问题,以此来寻找原函数的极大值(极小值)。
牛顿法在二维的参数更新公式为:
$$\theta := \theta - \Delta$$ $$\Delta = \frac{f^\prime(\theta)}{f^{\prime\prime}(\theta)}$$
多维时,参数更新公式变为:
$$\theta := \theta - H^{-1}\nabla_\theta \ell(\theta)$$
简单的模型介绍就不说了,只记录这门课程给我额外学习到的一些知识点。
首先是 Linear Regression 使用的是最小平方误差法 LMS 来进行函数优化并寻找最优 $\theta$ 值的。在我第一次学习到这个方法的时候,仅仅是觉得这个误差函数很有道理,感觉能说得过去,并没有理解其背后的理论基础。
Andrew Ng 使用概率学上的解释,告诉了我,为什么使用最小平方误差法。
我们使用假设函数 $h(x) = \theta^\mathrm{T}x^{(i)}$ 来作为给定输入 $x$ 时,对 $y$ 的预测,则我们可以得到这样一个等式
$$y^{(i)} = \theta^\mathrm{T}x^{(i)} + \epsilon^{(i)}$$
$\epsilon^{(i)}$ 是误差项,包括了未被找到的特征或随机噪声。此时,我们假设:
- 误差都是独立同分布的
- 误差项符合高斯分布
则有$\epsilon^{(i)}\sim \cal{N}(0,\sigma^2) $,即 $y^{(i)} - \theta^\mathrm{T}x^{(i)}\sim \cal{N}(0,\sigma^2) $
省略一部分推导,我们能够得到对数似然函数
$$\ell (\theta) = m\log \frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{\sigma^2}\cdot\frac{1}{2}\sum_{i=1}^{m} (y^{(i)} - \theta^\mathrm{T}x^{(i)})^2$$
则当我们最大化对数似然函数时,即最小化
$$\frac{1}{2}\sum_{i=1}^{m}(y^{(i)} - \theta^\mathrm{T}x^{(i)})^2$$
即最小化平方误差。
最终我们得到结论:当我们对数据的分布进行以上假设时,最大化对数似然函数相当于最小化平方误差。
这是一种 Linear Regression 的特殊形式,它在误差函数中增加了一项权重,变为$\sum_i w^{(i)}(y^{(i)} - \theta^\mathrm{T}x^{(i)})^2$
其中 $w^{(i)}$ 就是非负权重,对于需要重点拟合的区域 $w^{(i)}$ 会比较大。$w^{(i)}$ 并不需要满足和为1的约束,因为他不是概率分布,只是单纯的惩罚项。
通常来说,对于权重 $w^{(i)}$ 的选择,我们使用以下函数
$$w^{(i)} = \exp(-\frac{(x^{(i)} - x)^2}{2\tau^2})$$
需要注意的是,这个函数和高斯分布没有关系,仅仅是常规的钟形函数而已。参数 $\tau$ 影响了当远离所求点 $x$ 时权值下降的速度。
则对于权重较大的区域,所求得的曲线拟合程度较高。这一方法在预测的时候,通常将待预测区域的权重提高,然后重新拟合曲线。所以每一次预测都需要重新拟合曲线,使得它在训练样本较大时效率比较低。
阅读量 -