写在前边,大纲基于吴恩达机器学习系列课程,以机器学习西瓜书作为补充。
大部分靠随堂记的笔记写成,所以可能概念上很不清楚
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特征缩放
使得开始时特征的数量级在差不多相近的水平上,加快收敛
- 最大最小归一化:$x_i=\frac{x_i-min}{max-min}$
- 均值归一化:$x_i=\frac{x_i-\mu}{max-min}$
- 标准化:$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过度拟合
无法泛化。
解决方法:
- 减少变量个数
- 正则化,加入惩罚项(缩小某些不重要项的权重?)
过度拟合时,加入惩罚项,那么修改代价函数
RegulaziedLinearRegression
$\lambda$称为正规化参数
对梯度下降法:
对正则方程,有解析求解法,这里直接给出结果:
其中:
并且不加证明的给出矩阵$\pmb{X}^T\pmb{X}+\lambda\pmb{L}$一定是可逆的