机器学习--基础算法一---线性回归&梯度下降

本文深入探讨了机器学习中的线性回归算法及其优化方法——梯度下降。讲解了线性回归的目标函数、正则化技术(如L2、L1和ElasticNet),并详细介绍了批量梯度下降、随机梯度下降及mini-batch GD的原理与应用。通过实例解析,帮助读者理解如何使用这些技术解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习—基础算法一

https://blog.youkuaiyun.com/fan2312/article/details/100854485

线性回归

  • 高斯分布
  • 最大似然估计
  • 最小二乘法的本质
  • 线性回归的目标函数: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2} \sum^{m}_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=21i=1m(hθ(x(i))y(i))2
  • 将目标函数增加平方和损失:
    J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J(\theta) = \frac{1}{2} \sum^{m}_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})^2 + \lambda \sum^{n}_{j=1}\theta^2_j J(θ)=21i=1m(hθ(x(i))y(i))2+λj=1nθj2
  • 复杂度惩罚因子
    • L2正则:防止过拟合
    • Ridge:
    • λ ∑ j = 1 n θ j 2 \lambda \sum^{n}_{j=1}\theta^2_j λj=1nθj2
  • LASSO:
    • L1正则
    • λ ∑ j = 1 n ∣ θ ∣ \lambda \sum^{n}_{j=1}|\theta| λj=1nθ
    • 可用于特征选择:最终 θ j \theta_j θj越小的特征越不重要
  • Elastic Net:
    • λ ( ρ ⋅ ∑ j = 1 n ∣ θ j ∣ + ( 1 − ρ ) ⋅ ∑ j = 1 n θ j 2 ) \lambda(\rho\cdot\sum^n_{j=1}|\theta_j| + (1-\rho)\cdot\sum^n_{j=1}\theta^2_j) λ(ρj=1nθj+(1ρ)j=1nθj2)
  • 交叉验证:选择超参数 λ \lambda λ

梯度下降算法

J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2} \sum^{m}_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=21i=1m(hθ(x(i))y(i))2

  • 初始化 θ \theta θ
  • 沿着负梯度方向迭代,更新后的 θ \theta θ使 J ( θ ) J(\theta) J(θ)更小
  • θ = θ − α ⋅ ∂ J ( θ ) ∂ θ \theta=\theta - \alpha\cdot\frac{\partial J(\theta)}{\partial \theta} θ=θαθJ(θ)
    • α : 学 习 率 、 步 长 \alpha:学习率、步长 α
  • 梯度方向
    • ∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 \frac{\partial}{\partial \theta_j}J(\theta) = \frac{\partial}{\partial \theta_j}\frac{1}{2}(h_{\theta}(x) -y)^2 θjJ(θ)=θj21(hθ(x)y)2
      = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( h θ ( x ) − y ) =2\cdot\frac{1}{2}(h_{\theta}(x)-y)\cdot\frac{\partial}{\partial\theta_j}(h_{\theta}(x)-y) =221(hθ(x)y)θj(hθ(x)y)
      = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( ∑ i = 0 n θ i x i − y ) =(h_{\theta}(x)-y)\cdot\frac{\partial}{\partial\theta_j}(\sum^{n}_{i=0}\theta_ix_i-y) =(hθ(x)y)θj(i=0nθixiy)
      = ( h θ ( x ) − y ) x j =(h_{\theta}(x)-y)x_j =(hθ(x)y)xj
  • 批量梯度下降(BGD)
    • 重复直至收敛{
      θ j : = θ j + α ∑ i = 1 m ( y i − h θ ( x ) ) \theta_j:=\theta_j +\alpha\sum^m_{i=1}(y^{i}-h_\theta(x)) θj:=θj+αi=1m(yihθ(x))
      }
    • 所有样本更新一次
    • 找到局部最小值即全局最小值
  • 随机梯度下降(SGD)
    • Loop{
      for i=1 to m, {
      θ j : = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j :=\theta_j+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)} θj:=θj+α(y(i)hθ(x(i)))xj(i)
       }
      }
    • 一个样本更新一次
    • 有可能跳过局部最小值
  • 优先选择SGD:速度快、有可能跳过局部最小值
  • 折中:mini-batch GD
    • 若干个样本更新梯度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王二小、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值