对机器学习的学习我开始于二年级的《数据挖掘》课,当时袁老师对数据挖掘中的常用的算法做了一些介绍,但是这仅仅是个入门教学,我并没有深入了解的其中的原理。到现在我才深刻的意识到ML的重要性,我就抽空看了一些这方面的资料,整理了这一份文档。
机器学习算法包括,监督学习(回归、分类)以及非监督学习(聚类)。
梯度下降
其中$\alpha$为学习率一般为很小的数字(0.001-0.1),$\theta$为我们需要求解的参数,$J(\theta)$为能量函数或者为损失函数,通过上述公式可知,梯度下降是沿着损失函数梯度的反方向寻找迭代寻找最优值的过程。梯度下降容易陷入局部最极小点,所以我们要采取一定的措施来阻止这种现象的发生。
过拟合(Overfitting)
如果训练样本的特征过多,我们学习的假设可能在训练集上表现地很好,但是在验证集上表现地就不尽人意
避免过拟合
- 减少特征的大小
- 正则化
- 在保证所有特征都保留的情况下,限制$\theta$的大小,即Small values for parameters $ \theta_0,\theta_1,\theta_2…\theta_n$
- 当特征量很多时,该方式仍然表现的很好
- 交叉验证(Cross Validation)
正则化
线性回归
对于线性回归而言,其损失函数形式如下:
引入正则化之后的损失函数的形式为:
GD迭代求解参数
Repeat{
}
梯度下降法的学习率$\alpha$需要提前指定,并且还要制定收敛标准。
Normal Equation
上式是对线性回归正则化后的矩阵解。可以证明的是当$\lambda>0$时,求逆符号内部的式子总是可逆的。
逻辑回归
在没有加入正则化之前,逻辑回归的损失函数的形式是这样的:
加入正则项之后的形式为:
GD迭代求解参数
Repeat{
}
SVM支持向量机
支持向量机又被称作最大间距(Large Margin)分类器,损失函数的形式是:
其中:$h_{\theta}(x^{(i)})=\theta^Tx^{i}$,$cost_1$以及$cost_0$的形式如下图所示: