线性模型的介绍

2023-11-17

一、背景

在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合,所以理论上线性模型可以模拟物理世界中的绝大多数现象。

线性模型(Linear Model)是机器学习中应用最广泛的模型,指通过样本特征的线性组合来进行预测的模型。给定有d个属性描述的示例x = (x_{1};x_{2};...;x_{d}),线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:

f(x)=\omega _{1}*x_{1}+\omega _{2}*x_{2}+...+\omega _{d}*x_{d}

一般用向量形式写成:

二、线性模型参数求解的本质

不管对 f(x) 施加什么样的变化,从方程求解角度来看,f(x)=\omega _{1}*x_{1}+\omega _{2}*x_{2}+...+\omega _{d}*x_{d}是一个线性方程组。

在这个方程组中,x 是我们已知的,因为我们有训练样本,所以在初始化时,我们的线性方程组看起来是如下形式:

y1 = 1 * w1 + 2 * w2 + .... + 3 * wn;
....
yn = 3 * w1 + 4 * w2 + .... + 3 * wn;

每个样本代表线性方程组的一行,样本中完全线性共线的可以约去。

这样,我们就得到了一个 N(样本数) * M(特征维度) 的巨大矩阵。而样本的值和标签即(x,y)共同组成了一个巨大的增广矩阵。注意,是样本组成了系数矩阵,不是我们要求的模型参数!

求解线性模型的参数向量(w,b)就是在求解线性方程组的一个方程解,所有的方程解组成的集合称为线性方程组的解集合。

同时,在机器学习中,我们称 w 和 b 为线性模型的超参数,满足等式条件的(w,b)组合可能不只一种,所有的超参数构成了一个最优参数集合。实际上,根据线性方程组的理论,线性方程组要么有唯一解,要么有无限多的解。

唯一解的条件比较苛刻,在大多数的场景和数据集下,解空间都是无限的,机器学习算法的设计目标就是:

基于一种特定的归纳偏置,选择一个特定的超参数(w,b),使得模型具备最好的泛化能力,机器学习算法的目的不是解方程,而是获得最好的泛化能力。

当超参数通过训练拟合过程确定后,模型就得以确定。

三、线性回归

线性回归(linear regression)试图学得一个线性模型:

,以尽可能准确地预测实值输出标记。

注意,这里用”尽可能地准确“这个词,是因为在大多数时候,我们是无法得到一个完美拟合所有样本数据的线性方程的,即直接基于输入数据构建的多元线性方程组在大多数时候是无解的。

如下图所示:

这个时候怎么办呢?数学家高斯发现了最小二乘法,它的主要思想是:寻找一个解向量,它和目标数据点的距离尽可能地小。

所以现代线性回归算法所做的事情是:在一定的线性约束条件下,求解线性目标函数的极值问题,这是一个线性规划问题。

四、损失函数的选择

损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

我们刚说道,直接基于输入数据求解对应线性方程组是无解的,高斯为了解决这个问题,引入了最小二乘。在此之上,之后的数学家又发展出了多种损失评估函数,其数学形式各异,但其核心思想是一致的。损失函数的选择,本质上就是在选择一种误差评价标准,选择何种损失函数取决于我们如何看待我们的问题场景,以及我们希望得到什么样的解释。

我们讨论主要的常用损失函数:

4.1 最小二乘法

线性模型试图学得

同时在噪声符合高斯分布的假设前提下,均方误差是衡量 f(x) 和 y 之间的差别的最佳损失函数。

因此我们可以试图让均方误差最小化,即:

均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称欧氏距离。基于均方误差误差最小化来进行模型求解的方法称为“最小二乘法(least square method)”。

注意:这里 E(w,b) 是关于 w 和 b 的凸函数,当它关于 w 和 b 的导数均为零时,得到 w 和 b 的最优解。但是对于更高维的线性模型甚至非线性模型,目标函数往往并不是全局凸函数,因此不能继续使用导数为零的方式进行最优解求解,这个时候就需要例如梯度下降法这种递归优化求解算法。 

4.2 梯度下降法

 线性模型无论多复杂其本质上都是凸函数,凸函数一定可以求得全局最优的极值点,也即最优参数。但是,当函数复杂度继续提高,例如增加了非线性变换之后的复合函数之后,目标函数不一定就是凸函数了(例如深度神经网络),这个时候我们就很难直接求得闭式解,矩阵求逆也不一定可以完成。针对这种复杂函数,GD梯度下降就是一种相对万能通用的迭代式参数求解算法。

我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。例如,由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解.若误差函数在当前点的梯度为零,则已达到局部极小,更新量将为零,因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值,选择不同的初始参数组合,可能会找到不同的局部最小值。
 


 

下面的h(x)是要拟合的函数,J(theta)损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(theta)就出来了。其中m是训练集的记录条数,j是参数的个数。这里J( θ)中的1/2是为了求导便利.

 

 

其中 α 是学习率(learning rate) , 它决定了我们沿着能让代价函数下降程度最大的方
向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速
率乘以代价函数的导数。
 

参考:

Python机器学习之线性模型 - 简书

 https://www.cnblogs.com/LittleHann/p/10498579.html#_label0

详解梯度下降算法_梯度下降法_JaysonWong的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性模型的介绍 的相关文章

随机推荐

  • 喇叭的灵敏度代表什么?规格型号是什么?

    常见型号 8 1W 8 2W 4 3w 单独从参数的角度上来说 灵敏度只是一个反映音箱电声转换效率的参数 其本身与音箱的音质与音色无关 扬声器的灵敏度 dB W 通常是指输入功率为1W的噪声电压时 在扬声器轴向正面1m处所测得的声压大小 灵
  • C ~ 循环

    有时 可能需要多次执行同一块代码 一般情况下 语句是顺序执行的 函数中的第一个语句先执行 接着是第二个语句 依此类推 编程语言提供了允许更为复杂的执行路径的多种控制结构 循环语句允许多次执行一个语句或语句组 大多数编程语言中循环语句的一般形
  • 文本预处理技巧:去除停用词、词形还原、词干提取等

    文本预处理是自然语言处理中非常重要的一步 它是为了使得文本数据能够被机器学习模型所处理而进行的一系列操作 其中 去除停用词 词形还原 词干提取等技巧是比较常用的 本文将介绍这些技巧的原理 并提供使用Python实现的代码示例 帮助读者更好地
  • 1.1.1.1校园网_突破校园网限制,开启寝室Wifi

    1 前言 由于学校的上网费用过于昂贵 所以和室友拼了一个学期的上网套餐 准备共享宽带账号并开启路由器 2 准备 一台刷好老毛子系统的路由器 一台正常上网的电脑 一根网线 工具 链接 https pan baidu com s 1mOFfFZ
  • 阻止事件的默认行为、React阻止事件的默认行为

    HTML中阻止事件的默认行为可以用return false a href Click me a 而React中只能显示调用e preventDefault function ActionLink function handleClick e
  • gitlab--基础--4.2--CICD--runner--常用命令

    gitlab 基础 4 2 CICD runner 常用命令 1 systemctl 读取的配置是 etc systemd system gitlab runner service文件 启动 systemctl start gitlab r
  • Linux下脚本实战之系统监控

    Linux下脚本实战之系统监控 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 1 监控系统的CPU 内存 硬盘使用率 二 脚本内容 bin bash File Name monitor sh Version V1 0 Aurhor
  • k8s Pod定义yaml配置文件详解

    此文件相关配置查询 此文件只做参考 以查询为准 kubectl explain 为文档查询命令如 kubectl explain pod spec volumes apiVersion v1 版本 kind pod 类型 pod metad
  • 互联网的行业都有哪些岗位?

    很多小伙伴想转行互联网 却对互联网行业知之甚少 今天小千就给大家简单介绍一下 方便感兴趣的同学自行入坑 互联网行业有哪些岗位 技术方向 架构师 前端工程师 后端工程师 人工智能 开发工程师 测试工程师 运维工程师等 市场方向 市场营销 媒介
  • Java之语言概述

    文章目录 1 软件开发介绍 1 1 常用的DOS命令 2 计算机编程语言介绍 3 Java语言概述 3 1 Java简史 3 2 Java技术体系平台 4 Java程序运行机制及运行过程 4 1 Java两种核心机制 2 垃圾收集机制 Ga
  • linux系统编程-2、进程

    前言 Linux系统编程的基础系列文章 随着不断学习会将一些知识点进行更新 前期主要是简单了解和学习 文章目录 进程 进程运行状态 进程原语 fork 进程相关函数 exec族 execl exec族区别 wait waitpid 进程 进
  • HTML中li去除样式以及占位问题

    在HTML中 使用 ul li li ul 的时候 总是会在列表的前面出现小圆点 去掉小圆点使用的方法很简单 就是直接使用CSS选择器进行选择之后进行样式的设定 具体应用如下 但是在去除小圆点之后仍然会存在问题 我们会发现使用此法去除小圆点
  • rest server的CRUD在线测试网站

    1 在sparkle的httpclientdemo中发现一个在线的测试网站 http httpbin org get 2 使用rest Debugger工具测试
  • 【前端】Vue项目:旅游App-(7)city:搜索框search和标签页Tabs

    文章目录 目标 过程与代码 搜索框 初步 自己实现取消功能 样式修改 标签页 效果 总代码 修改的文件 common css city vue main js 目标 过程与代码 搜索框 初步 在Vant文档中找到搜索框 Search搜索 按
  • SSH框架学习总结

    SSH框架学习总结 最终版权 JDram314 如转载请贴出出处 本来对SSH框架的学习可以早在去年 但是一直在给老师弄他的科研部分 所以一直拖到最近才算是学完了 乘现在有空总结一下 方便以后复习 一 Struts 在没有学习SSH框架前
  • MTK深圳公司嵌入式软件工程师笔试题(答案详解)

    1 1 define pi 3 142 define Area R pi R R3 main 4 5 int r1 5 r2 2 6 double s 0 7 s Area r1 r2 8 printf The area is f s 9
  • numpy.random.RandomState() numpy里random总结

    numpy random RandomState 函数用法 可以通过numpy工具包生成模拟数据集 使用RandomState获得随机数生成器 from numpy random import RandomState rdm RandomS
  • nginx+fastcgi+c/c++源码安装配置

    参考 http www cnblogs com xiaouisme archive 2012 08 01 2618398 html 由于以前安装过apache 已经安装了很多依赖库 现在只需要安装以下软件包 nginx 1 4 4 tar
  • s3cmd put 时提示 ERROR: S3 error: 403 (QuotaExceeded)

    配置里的rgw配额是10000000写满 s3cmd put 时提示 ERROR S3 error 403 QuotaExceeded rgw bucket default quota max objects 值为 1 查看配额信息 rad
  • 线性模型的介绍

    一 背景 在一个理想的连续世界中 任何非线性的东西都可以被线性的东西来拟合 所以理论上线性模型可以模拟物理世界中的绝大多数现象 线性模型 Linear Model 是机器学习中应用最广泛的模型 指通过样本特征的线性组合来进行预测的模型 给定