IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【机器学习】梯度下降、岭回归、Lasso回归等 -> 正文阅读

[人工智能]【机器学习】梯度下降、岭回归、Lasso回归等

【机器学习】梯度下降、岭回归、Lasso回归等

0 简要复习线性回归(Linear Regression)

  • 线性回归模型函数: y ( x ) = β 0 + β 1 ? x 1 + β 2 ? x 2 y(x) = \beta_0+ \beta_1*x_1+ \beta_2*x_2 y(x)=β0?+β1??x1?+β2??x2? y ( x ) = ∑ i = 0 n b e t a i ? x i = B T X y(x) = \sum_{i=0}^{n} beta_i*x_i = B^TX y(x)=i=0n?betai??xi?=BTX
  • 参数估计的评价机制: 损失函数(loss function) 或 错误函数(error function) 或 评价函数 —— 真实值和预测值之间的误差,最小二乘思维
    • 均方误差损失函数(mean squared error loss): M S E = 1 n ∑ i = 1 n ( y i ^ ? y i ) 2 MSE=\frac{1}{n}\sum_{i=1}^{n}(\hat{y_i} -y_i)^2 MSE=n1?i=1n?(yi?^??yi?)2
    • 平方损失函数(Square Loss): J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) 2 = ( y ? X θ ) T ( y ? X θ ) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) -y^{(i)})^2 = (y-X\theta)^T(y-X\theta) J(θ)=21?i=1m?(hθ?(x(i))?y(i))2=(y?Xθ)T(y?Xθ),对x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,通过乘以0.5消除系数
    • 为什么损失函数要用平方和?
      • x,y的条件概率(正态分布): p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ e x p ( ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 ) p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}) p(y(i)x(i);θ)=2π ?σ1?exp(?2σ2(y(i)?θTx(i))2?)
      • 最大似然求解: 1 2 ∑ i = 1 m ( y ( i ) ? θ T x ( i ) ) 2 \frac{1}{2}\sum_{i=1}^{m}(y^{(i)} - \theta^Tx^{(i)})^2 21?i=1m?(y(i)?θTx(i))2
  • 目标:如何调整θ以使得J(θ)取得最小值 a r g m i n θ J ( θ ) argmin_\theta J(\theta) argminθ?J(θ)问题

1 梯度下降法

  • 梯度下降法问题:结果与初始点的选取有关,可能只能得到全局极小值
  • 注意点:此处不是随机梯度下降法(均方误差损失函数是凸函数);注意特征归一化
  • 步骤:
    • 第一步:首先对θ赋初值,初值选择:1)随机;2)全零向量
    • 第二步:迭代更新改变θ的值,使得J(θ)按梯度下降的方向进行减少,其中梯度方向由J(θ)对θ的偏导数的反方向确定,即: θ 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)?,以下为两种迭代更新方法:
      • 批梯度下降:对全部的训练数据求得误差后,再对θ进行更新,能够不断收敛
      • 增量梯度下降:每扫描一步都要对θ进行更新,不断在收敛处徘徊

2 最小二乘法 OLS

  • 方法:求偏导,即 θ = ( X T X ) ? 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)?1XTy
  • 缺点:要求X是列满秩;求矩阵的逆比较慢
    • 改进:对于不能直接求矩阵的逆的解决方案 —— θ = ( X T X + δ 2 I d ) ? 1 X T y \theta = (X^TX + \delta^2I_d)^{-1}X^Ty θ=(XTX+δ2Id?)?1XTy (这一步是工程实践结果,意外发现和 岭回归损失函数求偏导一样)

3 岭回归(Ridge Regression)与Lasso回归(Lasso Regression)

  • 描述/核心思想:
    • 通过损失最小二乘法的无偏性(有偏估计),以损失部分信息、降低精度为代价,提升数值稳定性泛化能力,获得回归系数更为符合实际、更可靠的回归方法
    • 特征选择
  • 特殊针对:
    • 训练样本数量少(甚至少于样本维数),即矩阵无法求逆;
    • 样本特征大量相似,即很多参数意义重复(共线性)
  • 损失函数:
    • 线性回归( J 0 = ( y ? X θ ) T ( y ? X θ ) ? o r ? ∑ i = 1 m ( h θ ( x i ) ? y i ) 2 J_0 = (y-X\theta)^T(y-X\theta) \ or\ \sum_{i=1}^{m}{(h_\theta (x^i ) - y^i )^2 } J0?=(y?Xθ)T(y?Xθ)?or?i=1m?(hθ?(xi)?yi)2),正则因子(模型参数向量的范数) * 其中m为观察数,n为变量数
    • 岭回归: J ( θ ) = J 0 + δ 2 ∑ j = 1 n θ j 2 J(\theta) = J_0 + \delta^2\sum_{j=1}^{n}\theta_j^2 J(θ)=J0?+δ2j=1n?θj2? θ T θ \theta^T\theta θTθ,L2范数,即高斯分布) —— 消除共线性;模的平方处理
    • Lasso回归: J ( θ ) = J 0 + δ 2 ∑ j = 1 n ∣ θ j ∣ J(\theta) = J_0 + \delta^2\sum_{j=1}^{n}|\theta_j| J(θ)=J0?+δ2j=1n?θj?(使用模型参数向量的L1范数,即拉普拉斯分布)—— 压缩变量(降维);模的平方处理
  • 理解:
    • 上侧用梯度下降求解J0,下侧为正则项的公式
  • 差异:
    • Lasso能够实现提取有用特征、删除无效变量(即将系数设置零,直接消除影响)
    • Lasso回归计算更复杂,因为第一范数不是连续可导的

4 权衡:弹性网络回归(ElasticNet Regression)

  • ElasticNet 回归,即岭回归和Lasso技术的混合,使用 L1, L2 范数作为先验正则项训练的线性回归模型。
    • 为什么有 ElasticNet?
      • Lasso回归太过(太多特征被稀疏为0) —— 允许少量参数被稀疏(比如共线变量Lasso只选择一个,Elastic可能选择两个)
      • 岭回归也正则化的不够(回归系数衰减太慢) —— 保持正则化强度与Ridge的稳定性
  • 公式:
    • M i n ( 1 2 m [ J 0 + λ ∑ j = 1 n θ j 2 ] + λ ∑ j = 1 n ∣ θ ∣ ) Min( \frac{1}{2m} [ J_0 + \lambda \sum_{j=1}^{n} \theta_j^2 ] + \lambda \sum_{j=1}^{n} |\theta| ) Min(2m1?[J0?+λj=1n?θj2?]+λj=1n?θ)
    • M i n ( 1 2 m J 0 + α ( 1 ? ρ ) 2 ∣ θ ∣ ∣ 2 2 + α ρ ∣ ∣ θ ∣ ∣ 1 ) Min( \frac{1}{2m}J_0 + \frac{\alpha(1-\rho)}{2}|\theta||_2^2 + \alpha\rho ||\theta||_1 ) Min(2m1?J0?+2α(1?ρ)?θ22?+αρθ1?),α接近0时ElasticNet接近Lasso;当α从1到0,目标函数的稀疏解从0逐渐增加
  • 代码
from sklearn import linear_model  
#得到拟合模型,其中x_train,y_train为训练集  
ENSTest = linear_model.ElasticNetCV(alphas=[0.0001, 0.0005, 0.001, 0.01, 0.1, 1, 10], l1_ratio=[.01, .1, .5, .9, .99],  max_iter=5000).fit(x_train, y_train)  
#利用模型预测,x_test为测试集特征变量  
y_prediction = ENSTest.predict(x_test)

致谢:
高永峰_GYF(https://www.jianshu.com/p/aadad14db00e)
mantch(cnblogs.com/mantch/p/10242077.html)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:37:27  更:2021-11-30 15:39:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:37:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码