机器学习知识点复习

机器学习知识点复习

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=1n(y^iyi)2=i=1n(wxi+byi)2
L ( w , b ) L(w,b) L(w,b)分别对w和b求导,得:
             在这里插入图片描述
令上述两式为0,可得到 w 和 b 最优解:
               在这里插入图片描述

1.2.2 梯度下降法

梯度下降法的基本思想是:要找到某函数的最小值,最好的方法是沿着该函数的负梯度方向(下降最快的方向)探索。

梯度下降法的过程如下(以求解线性回归模型参数为例):
                 在这里插入图片描述

  1. 初始化待求解的模型参数 w w w b b b
  2. 求解梯度,即损失函数关于模型参数的偏导数
  3. 通过给定的步长(学习率) α \alpha α 按上图公式对 w w w b b b进行更新
  4. 重复上述过程,直到迭代次数达到某个指定值或损失函数值达到某个允许范围,此时所得到的 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=0nθ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=1m(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 θjJ(θ)=m1i=1m(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=1m(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=1m(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=1m(y(i)hθ(x(i)))2=m1i=1mcost(θ,(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 θjcost(θ))=(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) 伪代码:

  1. Randomly shuffle dataset;
  2. 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 1bm, 一般取10)样本计算梯度来对参数进行更新

(2) 伪代码:

  1. Set b=10, m=1000;
  2. 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=ii+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=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)
可合并写成:
p ( y ∣ x ; θ ) = ( h θ ( x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值