目录
绪论-资料介绍
- 频率派->统计机器学习
- 贝叶斯派->概率图模型
书籍:统计学习方法,西瓜书,PRML,MLAPP,ESL,DeepLearning.
视频:台大的林轩田,基石,技法;张志华机器学习导论,统计机器学习;吴恩达cs229;徐亦达概率模型;台大李宏毅ML2017,MLDS2018;
绪论-频率派vs贝叶斯派
频率派的观点
∑:连加;∏:连乘;𝑃(A|𝐵):B条件下A的概率
MLE:极大似然估计
最大熵模型中的对数似然函数的解释:最大熵模型中的对数似然函数的解释
贝叶斯派的观点
贝叶斯:概率图模型,求积分
P(X| θ \theta θ):似然;P( θ \theta θ):先验概率;P( θ \theta θ|X):后验概率
MAP:最大后验概率估计
分母是积分所以是一个常量,所以整个值正比于分子
监督学习与无监督学习
监督学习:必须要有训练集与测试样本,在训练集中找规律,而对测试样本使用这种规律。
无监督学习:非监督学习没有训练集,只有一组数据,在该组数据集内寻找规律。
单变量线性回归
模型表示
例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。
一种可能的表达方式为:
因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
代价函数
代价函数 有助于我们弄清楚如何把最有可能的直线与我们的数据相拟合。
1.二维
模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差。
右图便是代价函数
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价
函数
最小。
2.三维
我们绘制一个等高线图,三个坐标分别为𝜃0和𝜃1 和𝐽(𝜃0, 𝜃1):
右图便是代价函数
梯度下降
能够自动地找出能使代价函数𝐽 最小化的参数𝜃0和𝜃1的值。
批量梯度下降算法的公式为:
斜率越小,下降的越慢。斜率为0时,就不会下降。
多变量线性回归
多维特征
例子:对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(𝑥1,𝑥1, . . . , 𝑥𝑛)。
公式可以简化为:
多变量梯度下降
我们也构建一个代价函数,则这个代价函数是所有建模误差的平方和,即:
其中:
梯度下降法实践 1-特征缩放
面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。
以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000 平方英尺,而房间数量的值则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
解决的方法是尝试将所有特征的尺度都尽量缩放到-1 到 1 之间。
梯度下降法实践 2-学习率
梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。
也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值进行比较,但通常看上面这样的图表更好。
梯度下降算法的每次迭代受到学习率的影响,如果学习率𝑎过小,则达到收敛所需的迭代次数会非常高;如果学习率𝑎过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。 通常可以考虑尝试些学习率: 𝛼 = 0.01,0.03,0.1,0.3,1,3,10。
特征和多项式回归
如房价预测问题
线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方或者三次方。
注:如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。
正规方程
到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程方法是更好的解决方案。如:
运用正规方程方法求解参数:
总结一下,只要特征变量的数目并不大,标准方程是一个很好的计算参数𝜃的替代方法。具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法。
逻辑回归
分类问题
预测的变量 y是离散的值,我们将学习一种叫做逻辑回归算法。
二元的分类问题:将因变量可能属于的两个类分别称为负向类和正向类,则因变量 y∈0,1,其中 0 表示负向类,1 表示正向类。
如果我们要用线性回归算法来解决一个分类问题,对于分类, 𝑧 取值为 0 或者 1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,即使所有训练样本的标签 𝑧 都等于 0 或 1。尽管我们知道标签应该取值 0 或者 1,但是如果算法得到的值远大于 1 或者远小于 0 的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间。
顺便说一下,逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法,它适用于标签 y 取值离散的情况,如:1 0 0 1。
假说表示
分类问题中,要用什么样的函数来表示我们的假设。此前我们说过,希望我们的分类器的输出值在 0 和 1 之间,因此,我们希望想出一个满足某个性质的假设函数,这个性质是它的预测值要在 0 和 1 之间。
根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出 0 或 1,
我们可以预测:
可以看出,线性回归模型,因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。
我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑
回归模型的假设是:
其中: X 代表特征向量 g 代表逻辑函数是一个常用的逻辑函数为 S 形函数,公式为:
该函数的图像为:
例如,如果对于给定的𝑦,通过已经确定的参数计算得出ℎ 𝜃 (x) = 0.7,则表示有 70%的几率𝑧为正向类,相应地𝑧为负向类的几率为 1-0.7=0.3。
判定边界
现在讲下决策边界的概念。这个概念能更好地帮助我们理解逻辑回归的假设函数在计算什么。
圆表达式:(x-a)²+(y-b)²=r² 。
代价函数
下面介绍如何拟合逻辑回归模型的参数 θ \theta θ。具体来说,我要定义用来拟合代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。
怎么选择参数 θ \theta θ?
在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的
参数了。算法为:
推导过程:
在下节中,我们会把单训练样本的代价函数的这些理念进一步发展,然后给出整个训练集的代价函数的定义,我们还会找到一种比我们目前用的更简单的写法,基于这些推导出的结果,我们将应用梯度下降法得到我们的逻辑回归算法。
简化的成本函数和梯度下降
我们将会找出一种稍微简单一点的方法来写代价函数,来替换我们现在用的方法。同时我们还要弄清楚如何运用梯度下降法,来拟合出逻辑回归的参数。因此看懂这节,你就应该知道如何实现一个完整的逻辑回归算法。
所以我们想要尽量减小这一项,这将我们将得到某个参数 θ \theta θ。
如果我们给出一个新的样本,假如某个特征 x,我们可以用拟合训练样本的参数 θ \theta θ,来
输出对假设的预测。
另外,我们假设的输出,实际上就是这个概率值:p(y = 1|x; θ \theta θ),就是关于 x以 θ \theta θ为参
数,y = 1 的概率,你可以认为我们的假设就是估计 y = 1 的概率,所以,接下来就是弄清楚如何最大限度地最小化代价函数J( θ \theta θ),作为一个关于 θ \theta