0%

机器学习笔记一

写在前边,大纲基于吴恩达机器学习系列课程,以机器学习西瓜书作为补充。
大部分靠随堂记的笔记写成,所以可能概念上很不清楚
MH 2021.06.12

什么是机器学习

NULL

线性模型

LinearRegression线性回归

基于输入数据,由假设函数去预测值。

有m个数据的输入,每个数据有n个特征项。记输入数据为

取列向量:

m个数据对应实际的输出值:

假设函数是输入项的线性组合,记$h_{\theta}$为假设函数即:

我们也可以把常数归入系数中去,实际上吴恩达的课程就是这么做的:

由此我们可以有:

现在的问题是如何求出系数向量,使得假设函数能很好的去预测,一个很直观的想法就是如果假设函数能很好的去预测,那么同样的假设函数对训练集(train set)也应该取得很好的效果(未考虑 过拟合),而正好在高中阶段我们就已经接触过这一方面的概念,即最小二乘法的线性规划。

其中的原理是定义了一个距离函数,最小二乘法能让该距离函数的取值最小。我们也定义一代价函数(cost function)

正定方程求解

取极值时,导数为0,如果对于凸函数,为极小值点,此时有:

要求$\pmb{X}^T\pmb{X}$为满秩矩阵

但是也可以不满秩,在Otcave中可以使用pinv

梯度下降法求解

梯度是函数变化最快的点,负梯度是下降最快的方向,对于一个凸函数,我们沿着其负梯度一路走下,肯定能到达一个局部最优点,对于只有一个谷底的凸函数,我们一定能到达最优点。
由此得到一个迭代式

$\alpha$为学习率,只要学习率足够小,$J$每次迭代都会变小。选择合适的学习率很重要,太大反复,太小太慢。

迭代退出条件可设置为结果小于某一值或者自己设置步数,注意的是不能随时更新系数的值,要等待所有新系数的都被计算出来后才能更新

FeaturingScalling特征缩放

使得开始时特征的数量级在差不多相近的水平上,加快收敛

  1. 最大最小归一化:$x_i=\frac{x_i-min}{max-min}$
  2. 均值归一化:$x_i=\frac{x_i-\mu}{max-min}$
  3. 标准化:$x_i=\frac{x_i-\mu}{\sigma}$

LogisticRegressionClassification逻辑回归分类问题

考虑一个分类问题,我们并不关心预测的值是什么,而只关心它是不是。如对于一个二分类问题,其输出只有是与不是。在这类问题中:

有m个数据的输入,每个数据有n个特征项

$\pmb{xi}=[x{i1},x{i2},\cdots,x{in}]^T$代表第i个输入数据,$x_{ij}$代表第i个输入数据的第j个特征。其中$x_i0 = 1$

m个数据对应实际的输出值:

如何开发一个算法使得其能正确的分类呢。考虑上面的线性回归,我们可以把预测值与是与否联系起来,如是设置一个一个边界,在靠边界区分。西瓜书使用了“广义线性模型”,寻找一个单调可微函数将分类任务的真实标记与预测值联系起来。(为什么一定要单调可微)

对二分类问题,记z为预测值,y为标记值,采用阶跃函数

但阶跃函数在0点不可微,所以要找一个代替函数

Sigmoid函数

又:

那么代价函数就不能使用LinearRegression一样的代价函数了,如果这么去使用会得到一个波浪型的函数图像,为非凸函数,存在多个局部最小值。
考虑到这是个概率问题,且要确定的是参数,在《概率论与数理统计》第7章参数估计中有依样本均值估计总体的方法。

最大似然估计法

若总体$X$的分布形式$p(x;\theta)$已知,其中$\theta\in\Theta$为未知参数,$\Theta$是$\theta$可能的取值范围。

$X_1, \cdots, X_m$来自是来自总体的样本,

其值为$x_1, \cdots, x_m$,

称$L(\theta)=\Pi_{i=1}^mp(x_i;\theta)$为参数$\theta$的似然函数。

很容易看出似然函数其实就是$X_1,\cdots,X_m$一起发生的可能性,即联合概率。很直观的,如果我们观察到了这些样本值,就很有把握去说能使得似然函数取最大值的,参数$\theta$是最好去符合总体的参数。

对应LogisticRegression问题,训练集对应的值为$\pmb{Y}$。问题转为

很明显$yi$与$h{\pmb{\theta}}(\pmb{x_i})$为0-1分布

而最大似然函数的求解方法
三步走

我们先对$h_{\theta}(\pmb{x})=g(\pmb{\theta}^T\pmb{x})=\frac{1}{1+e^{-\theta^T\pmb{x}}}$求导看看

定义cost function$=-y\ln{h{\theta}}-(1-y)\ln(1-h{\theta})$
$J=\frac{1}{m}\sum_{i=1}^{m}cost_i$
可用梯度下降法,不断重复:

即有$\pmb{\theta}=\pmb{X}^T[h_\theta-\pmb{Y}]/m$

Overfitting过度拟合

无法泛化。
解决方法:

  1. 减少变量个数
  2. 正则化,加入惩罚项(缩小某些不重要项的权重?)

过度拟合时,加入惩罚项,那么修改代价函数

RegulaziedLinearRegression

$\lambda$称为正规化参数
对梯度下降法:

对正则方程,有解析求解法,这里直接给出结果:

其中:

并且不加证明的给出矩阵$\pmb{X}^T\pmb{X}+\lambda\pmb{L}$一定是可逆的

RegulaziedLogisticRegression