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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【统计学习方法】学习笔记——第一章:统计学习及监督学习概论(实践) -> 正文阅读

[人工智能]【统计学习方法】学习笔记——第一章:统计学习及监督学习概论(实践)

1. 最小二乘法

1.1 最小二乘法的原理与要解决的问题

高斯于1823年在误差e1 ,… , en独立同分布的假定下,证明了最小二乘方法的一个最优性质: 在所有无偏的线性估计类中,最小二乘方法是其中方差最小的
最小二乘法是由勒让德在19世纪发现的,形式如下式:
目 标 函 数 = ∑ ( 观 测 值 ? 理 论 值 ) 2 目标函数 = \sum (观测值-理论值)^2 =(?)2
观测值就是我们的多组样本,理论值就是我们的假设拟合函数。目标函数也就是在机器学习中常说的损失函数,我们的目标是得到使目标函数最小化时候的拟合函数的模型
举一个最简单的线性回归的简单例子,比如我们有 m m m个只有一个特征的样本: ( x i , y i ) ( i = 1 , 2 , 3... , m ) (x_i,y_i)(i=1,2,3...,m) (xi?,yi?)(i=1,2,3...,m)

样本采用一般的 h θ ( x ) h_\theta(x) hθ?(x) n n n次的多项式拟合, h θ ( x ) = θ 0 + θ 1 ( x ) + θ 2 x 2 + . . . + θ n x n h_\theta(x)=\theta_0+\theta_1(x)+\theta_2x^2+...+\theta_nx^n hθ?(x)=θ0?+θ1?(x)+θ2?x2+...+θn?xn θ ( θ 0 , θ 1 , θ 2 , . . . , θ n ) \theta(\theta_0,\theta_1,\theta_2,...,\theta_n) θ(θ0?,θ1?,θ2?,...,θn?)为参数。

最小二乘法就是要找到一组 θ ( θ 0 , θ 1 , θ 2 , . . . , θ n ) \theta(\theta_0,\theta_1,\theta_2,...,\theta_n) θ(θ0?,θ1?,θ2?,...,θn?)使得 ∑ i = 1 n ( h θ ( x i ) ? y i ) 2 \sum_{i=1}^{n}(h_\theta(x_i)-y_i)^2 i=1n?(hθ?(xi?)?yi?)2(残差平方和) 最小,即,求 min ? ∑ i = 1 n ( h θ ( x i ) ? y i ) 2 \min \sum_{i=1}^{n}(h_\theta(x_i)-y_i)^2 mini=1n?(hθ?(xi?)?yi?)2

1.2 最小二乘法的矩阵法解法

最小二乘法的代数法解法就是对 θ i \theta_i θi?求偏导数,令偏导数为0,再解方程,得到 θ i \theta_i θi?。矩阵法比代数法要简介。下面介绍矩阵法解法,这里用多元线性回归例子来描述:
假设函数 h θ ( x 1 , x 2 , . . . , x n ) = θ 0 + θ 1 x 1 + . . . + θ n x n h_\theta(x_1,x_2,...,x_n)=\theta_0+\theta_1x_1+...+\theta_nx_n hθ?(x1?,x2?,...,xn?)=θ0?+θ1?x1?+...+θn?xn?的矩阵表达方式为:
h θ ( X ) = X θ h_\theta(X)=X\theta hθ?(X)=Xθ
其中,假设函数 h θ ( X ) = X θ h_\theta(X)=X\theta hθ?(X)=Xθ m × 1 m\times 1 m×1的向量, θ \theta θ n × 1 n\times 1 n×1的向量。里面有n个代数法的模型参数。 X X X m × n m\times n m×n维的矩阵, m m m代表样本的个数, n n n代表样本的特征数。

损失函数定义为 J ( θ ) = 1 2 ( X θ ? Y ) T ( X θ ? Y ) J(\theta)=\frac{1}{2}(X\theta-Y)^T(X\theta-Y) J(θ)=21?(Xθ?Y)T(Xθ?Y),其中 Y Y Y是样本的输出向量,维度维 m × 1 m\times 1 m×1KaTeX parse error: Undefined control sequence: \2 at position 2: 1\?2?在这里是为了求导后的系数为1,方便计算。

根据最小二乘法的原理,要对这个损失函数对 θ \theta θ向量求导0,结果如下式:
? ? θ J ( θ ) = X T ( X θ ? Y ) = 0 \frac{\partial}{\partial \theta}J(\theta) = X^T(X\theta -Y)=0 ?θ??J(θ)=XT(Xθ?Y)=0
对上述求导等式整理后可得:
θ = ( X T X ) ? 1 X T Y \theta=(X^TX)^{-1}X^TY θ=(XTX)?1XTY

1.3 最小二乘法的几何解释

结论:最小二乘法的几何意义是高维空间中的一个向量在低维子空间的投影

1.4 最小二乘法的局限性和适用场景

最小二乘法适用简洁高效,比梯度下降这样的迭代法方便很多,但是有一些局限性:

  • 首先,最小二乘法需要计算 X T X X^TX XTX的逆矩阵,有可能它的逆矩阵不存在。这样就不能直接适用最小二乘法。此时梯度下降仍然可用。当然,可以通过对样本数据进行整理,去掉冗余特征。让 X T X X^TX XTX的行列式不为0,然后继续适用最小二乘法。
  • 第二,当样本特征 n n n非常大的时候,计算 X T X X^TX XTX的逆矩阵是一个非常耗时的工作( n × n n\times n n×n的矩阵求逆),甚至不可行。此时以梯度下降为代表的迭代法仍然可以适用。那这个 n n n到底多大就不适合最小二乘法呢?如果没有很多的分布式大数据计算资源,建议超过10000个特征就用迭代法。或者通过主成分分析降低特征的维度后再用最小二乘法。
  • 第三,如果拟合函数不是线性的,这时无法适用最小二乘法,需要通过一些技巧转化为线性才能适用。此时梯度下降仍然可用。

2. 最小二乘法Python实现

假设我们的目标函数 y = sin ? 2 π x y=\sin {2\pi x} y=sin2πx,加上一个正态分布的噪音干扰,用多项式去拟合。定义目标函数,多项式,残差函数
初始化十个数据点并加上噪音
M=0
M=1
M=2
M=9
由上图可见,当M=9时,多项式曲线通过了每个数据点,但是造成了过拟合。

正则化

通过引入正则化项(regularizer)来降低过拟合。
Q ( x ) = ∑ i = 1 n ( h ( x i ) ? y i ) 2 + λ ∣ ∣ ω ∣ ∣ 2 Q(x)=\sum_{i=1}^{n} (h(x_i)-y_i)^2+\lambda||\omega||^2 Q(x)=i=1n?(h(xi?)?yi?)2+λω2
在回归问题中,损失函数是平方损失,正则化可以是参数向量的 L 2 L2 L2范数,也可以是 L 1 L1 L1范数。

L1: regularization*abs(p)
L2:0.5* regularization * np.square(p)

加上正则化项
绘制拟合曲线图

参考资料

  1. https://zhuanlan.zhihu.com/p/38128785
  2. 《统计学习方法》 李航 著
  3. https://github.com/wzyonggege/statistical-learning-method/
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:30:57  更:2022-01-17 11:32:30 
 
开发: 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/26 21:31:11-

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