机器学习知识点复习
1. 线性回归
1.1 什么是线性回归?
回归算法是一种有监督学习算法,用于构建一个算法模型(函数)来表示特征(自变量X)与标签(因变量Y)之间的映射关系,当X与Y之间为线性关系时,称其为线性回归模型,其表达式如下:
y ^ = w x + b \hat y=wx+b y^=wx+b
线性回归通过不断从数据集中学习参数w和b,最终得到一个最优的模型,使得预测值 y ^ \hat y y^ 与真实值 y y y 尽可能的接近。
1.2 线性回归的求解方法
1.2.1 最小二乘法
最小二乘法是一种数学优化方法,它通过最小化误差的平方和寻找数据的最佳函数匹配。
通常情况下,使用最小二乘法来估计回归方程中的回归系数,即模型中待学习的参数。
使用残差来衡量模型与数据点的拟合度,残差定义为真实值 y y y与模型预测值 y ^ \hat y y^ 之间的差异,损失函数定义为残差平方和,最小二乘法通过最小化残差平方和来找到最佳参数值。
将要求解的参数 w 和 b 看作是损失函数的自变量,则有:
L ( w , b ) = ∑ i = 1 n ( y ^ i − y i ) 2 = ∑ i = 1 n ( w x i + b − y i ) 2 L(w,b)= \sum \limits _{i=1}^n(\hat y_i - y_i) ^2= \sum \limits _{i=1}^n(wx_i+b-y_i) ^2 L(w,b)=i=1∑n(y^i−yi)2=i=1∑n(wxi+b−yi)2
L ( w , b ) L(w,b) L(w,b)分别对w和b求导,得:
令上述两式为0,可得到 w 和 b 最优解:
1.2.2 梯度下降法
梯度下降法的基本思想是:要找到某函数的最小值,最好的方法是沿着该函数的负梯度方向(下降最快的方向)探索。
梯度下降法的过程如下(以求解线性回归模型参数为例):
- 初始化待求解的模型参数 w w w 和 b b b
- 求解梯度,即损失函数关于模型参数的偏导数
- 通过给定的步长(学习率) α \alpha α 按上图公式对 w w w 和 b b b进行更新
- 重复上述过程,直到迭代次数达到某个指定值或损失函数值达到某个允许范围,此时所得到的 w w w 和 b b b即为所求的最终的模型参数。
1.3 三种梯度下降法的一般步骤过程,区别,优缺点
假设线性回归的模型的一般形式如下:
h θ ( x ) = ∑ j = 0 n θ j x j h_{\theta}(x)=\sum \limits_{j=0}^n\theta_jx_j hθ(x)=j=0∑nθjxj
对应的损失函数为:
J ( θ ) = 1 2 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 J(\theta)=\frac{1}{2m}\sum \limits_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))^2 J(θ)=2m1i=1∑m(y(i)−hθ(x(i)))2
1.3.1 批量梯度下降法BGD(Batch Gradient Descent)
(1) 基本思想:
- 每次迭代时,利用所有样本计算梯度来对参数进行更新
(2) 数学形式:
- 将损失函数对待求参数求偏导得: ∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m}\sum \limits_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j ∂θj∂J(θ)=−m1i=1∑m(y(i)−hθ(x(i)))xj(i)
- 将负梯度代入参数更新公式得: θ j ′ = θ j + α 1 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j'=\theta_j+\alpha\frac{1}{m}\sum \limits_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j θj′=θj+αm1i=1∑m(y(i)−hθ(x(i)))xj(i)
(3) 伪代码:
repeat{
θ j ′ = θ j + α 1 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j'=\theta_j+\alpha\frac{1}{m}\sum \limits_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j θj′=θj+αm1i=1∑m(y(i)−hθ(x(i)))xj(i)
}
(4) 优缺点:
- 优点:能得到全局最优解;易于并行实现
- 缺点:当样本数目很多时,训练过程会很慢。
1.3.2 随机梯度下降法SGD(Stochastic Gradient Descent)
(1) 基本思想:
- 每次迭代时,利用一个样本计算梯度来对参数进行更新
(2) 数学形式:
- 改写损失函数: J ( θ ) = 1 2 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 = 1 m ∑ i = 1 m c o s t ( θ , ( x ( i ) , y ( i ) ) ) J(\theta)=\frac{1}{2m}\sum \limits_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))^2=\frac{1}{m}\sum \limits_{i=1}^m cost(\theta,(x^{(i)},y^{(i)})) J(θ)=2m1i=1∑m(y(i)−hθ(x(i)))2=m1i=1∑mcost(θ,(x(i),y(i)))
- 单个样本的损失函数: c o s t ( θ ) ) = 1 2 ( y ( i ) − h θ ( x ( i ) ) ) 2 cost(\theta))=\frac{1}{2}(y^{(i)}-h_{\theta}(x^{(i)}))^2 cost(θ))=21(y(i)−hθ(x(i)))2
- 将损失函数对参数求偏导得: ∂ c o s t ( θ ) ) ∂ θ j = − ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \frac{\partial cost(\theta))}{\partial \theta_j}=-(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j ∂θj∂cost(θ))=−(y(i)−hθ(x(i)))xj(i)
- 将负梯度代入参数更新公式得: θ j ′ = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j'=\theta_j+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j θj′=θj+α(y(i)−hθ(x(i)))xj(i)
(3) 伪代码:
- Randomly shuffle dataset;
- repeat{
for i=1,…,m{
θ j ′ = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j'=\theta_j+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_j θj′=θj+α(y(i)−hθ(x(i)))xj(i)
}
}
(4) 优缺点:
- 优点:训练速度快;
- 缺点:准确度下降,并不是全局最优;不易于并行实现。
1.3.3 小批量梯度下降法MBGD(Mini-batch Gradient Descent)
(1) 基本思想:
- 每次迭代时,利用b个( 1 ≤ b ≤ m 1\le b\le m 1≤b≤m, 一般取10)样本计算梯度来对参数进行更新
(2) 伪代码:
- Set b=10, m=1000;
- repeat{
for i=1, 11, 21, …,991{
θ j ′ = θ j + α 1 10 ∑ k = i i + 9 ( y ( k ) − h θ ( x ( k ) ) ) x j ( k ) \theta_j'=\theta_j+\alpha\frac{1}{10}\sum \limits_{k=i}^{i+9}(y^{(k)}-h_{\theta}(x^{(k)}))x^{(k)}_j θj′=θj+α101k=i∑i+9(y(k)−hθ(x(k)))xj(k)
}
}
(3) 优缺点:
- 优点:算法的训练过程比较快,同时也保证了准确率
- 缺点:每次梯度的方向不确定,可能需要很长时间才能达到最优解
1.3.4 BGD、SGD、MBGD的区别
- 当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次,SGD算法中对于参数值更新m次,MBGD算法中对于参数值更新m/n次,相对来讲SGD算法的更新速度最快;
- SGD算法中对于每个样本都需要更新参数值,当样本值不太正常的时候,就有可能会导致本次的参数更新会产生相反的影响,也就是说SGD算法的结果并不是完全收敛的,而是在收敛结果处波动的;
- SGD算法是每个样本都更新一次参数值,所以SGD算法特别适合样本数据量大的情况以及在线机器学习(Online ML)。
2. 逻辑回归
2.1 什么是逻辑回归?
逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。
2.1.1 逻辑回归模型
逻辑回归模型是如下的条件概率分布:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=1|x;\theta)=h_{\theta}(x)\\ \quad P(y=0|x;\theta)=1-h_{\theta}(x) P(y=1∣x;θ)=hθ(x)P(y=0∣x;θ)=1−hθ(x)
可合并写成:
p ( y ∣ x ; θ ) = ( h θ ( x