机器学习中的线性回归,你理解多少?
作者丨algorithmia
编译 | 武明利,责编丨Carol
来源 | 大数据与人工智能(ID: ai-big-data)
机器学习中的线性回归是一种来源于经典统计学的有监督学习技术。然而,随着机器学习和深度学习的迅速兴起,因为线性(多层感知器)层的神经网络执行回归,线性回归的使用也日益激增。
这种回归通常是线性的,但是当把非线性激活函数合并到这些网络中时,它们就可以执行非线性回归。
非线性回归使用某种形式的非线性函数(例如多项式或指数)对输入和输出之间的关系进行建模。非线性回归可以用来模拟科学和经济学中常见的关系,例如,放射性分子的指数衰减或股票市场的走势与全球经济的整体走势一致。
线性回归如何工作?
从神经网络的观点来看,我们可以将线性回归模型指定为一个简单的数学关系。简单来说,线性回归是在输入变量和输出变量之间建立一个线性依赖关系模型。根据所处的工作环境,这些输入和输出使用不同的术语来引用。
最常见的是一个包含k个示例的训练数据集,每个示例都有n个输入分量称为回归变量、协变量或外生变量。输出向量y称为响应变量、输出变量或因变量。在多元线性回归中,可以有多个这样的输出变量。模型的参数
被称为回归系数,或者在深度学习环境中称为权重。对于单个训练示例
,该模型具有以下形式:
我们还可以通过将训练数据压缩到矩阵中:
以此将权重压缩到矢量中来简化这种表示法。权重构成了模型的核心。它们对输入和输出之间的线性关系进行编码,从而更加重视重要的数据特征,并降低不重要的数据特征的权重。注意,我们向X值为1的每一行添加了一个“隐藏组件”。这让我们能够计算w的点积,其偏置项为
。偏置项允许模型将其计算的线性超平面移开原点,从而允许模型对非零中心数据中的关系进行建模。简化后的模型可以表示为
。
这是大多数线性回归实现的基础模型。然而,在此基本结构上可以存在许多变体,每种变体都有其自身的缺点和益处。例如,有一个线性回归版本称为贝叶斯线性回归,它通过在模型的权重上放置先验分布来引入一个贝叶斯观点。这样可以更容易地推断模型正在做什么,随后使其结果更具有解释性。
训练线性回归模型
那么我们如何训练线性回归模型呢?这个过程类似于大多数机器学习模型所使用的过程。假设我们有一套训练集,任务是在不影响模型对新示例预测能力的情况下,尽可能紧密地对这种关系进行建模。为此,我们定义一个损失或目标函数
输入真实输出y和预测输出
,并测量了给定x时模型在预测y时的“好坏程度”。我们使用下标w来表示J的输出取决于模型的权重w,并通过预测y对其进行参数化,即使这些权重值未明确显示在函数的计算中。线性回归通常使用均方误差(MSE)损失函数,定义为:
。
然后,我们可以使用多种技术之一来优化此损失函数。我们可以使用例如梯度下降法,它是训练神经网络的实际标准,但是对于线性回归来说不是必要的。因为我们其实可以直接解决优化问题,以便找到权重的最佳值w*。
由于我们想要针对w优化此设置,对w取梯度,将结果设置为0,然后求解w的最优设置w*。我们有
现在我们将梯度设置为0并求解w
这是w的最优设置,将为模型提供最佳结果。你可以看到,它仅使用X和y的乘积来计算。然而,它需要的矩阵求逆,当X非常大或条件不佳时,这在计算上会很困难。在这些情况下,你可以使用不精确的优化方法如梯度下降法或不实际计算矩阵逆的近似技术。
正则化
线性回归最常用的变形可能是那些涉及加法正则化的模型。正则化是指对绝对值较大的模型权重进行惩罚的过程。通常这是通过计算一些权重的范数作为附加在成本函数上的惩罚项来完成的。
正则化的目的通常是为了减轻过度拟合的可能性,过度拟合是模型过于紧密地复制其训练数据中基础关系的趋势,无法将其很好地推广到未知示例中。线性回归模型的正则化有两种基本类型:L1和L2。
采用L1正则化的回归模型可以执行Lasso回归。L1规范定义为:
相反,L2正则化将权重向量w的L2范数作为惩罚项添加到目标函数中。 L2规范定义为:
采用L2正则化的回归模型被称为执行Ridge回归(岭回归)。
那么,这些正则化惩罚如何定性地影响模型的结果(输出)的呢?结果表明,L2正则化产生的权重系数很小,但很分散。也就是说,它倾向于生成其中每个系数相对较小并且幅度相对相似的模型。
相比之下,L1正则化在惩罚系数的方式上更加具体。其中某些系数往往受到严重的惩罚,趋向于0的值,而有些则保持相对不变。L1正则化产生的权值通常被认为是稀疏的。
因此,也有人认为,L1正则化实际上执行了一种软特征选择,即选择对产生期望结果最重要的特征(数据中的分量)。通过将某些权重设为0,该模型表明这些变量实际上对其作用并没有特别的帮助或解释作用。
线性回归的应用
线性回归可以用在数据中任何可能存在线性关系的地方。对于企业来说,这可能会以销售数据的形式出现。例如,一家企业可能向市场推出一种新产品,但不确定在什么价格销售。
通过在几个选定的价格点上以总销售额的形式测试客户的响应,企业可以使用线性回归推断价格和销售额之间的关系,从而确定销售产品的最佳点。
同样,线性回归可以应用在产品采购和生产线的许多阶段。例如,一个农民可能想要模拟某些环境条件(例如降雨和湿度)的变化如何影响总体农作物产量。这可以帮助他确定一个优化的系统,用于种植和轮作农作物,以实现利润最大化。
最后,线性回归是对数据中简单关系建模的宝贵工具。虽然它不像更现代的机器学习方法那么花哨或复杂,但它通常是许多存在直接关系的现实世界数据集的正确工具。更不用说,建立回归模型的简单性和对它们进行训练的快速性,使其成为那些想要快速有效地进行建立模型的企业的首选工具。
原文:
https://algorithmia.com/blog/linear-regression-for-machine-learning
【end】
◆
精彩推荐
◆
今晚7点,直播连麦贾扬清,讲讲人工智能在近几年当中的算法和相应系统的演进过程,并从技术角度阐述产品形态和用户场景。参与公开课还有机会向贾扬清老师提问~提交听课笔记还有可能获得阿里马克杯、天猫精灵智能音箱哦~
点击阅读原文,快速报名!
推荐阅读
福利直达!CSDN技术公开课评选进行中
微软开源NAS算法Petridish,提高神经网络迁移能力
远程办公、游戏迅猛增长,旅行、汽车业遭重创!疫期移动互联网行业报告解读
再见 NoSQL!
链游真的能赚钱吗?我肝了3款链游终于找到了答案
别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!
你点的每个“在看”,我都认真当成了AI
相关文章:

Golang反射机制的实现分析——reflect.Type类型名称
现在越来越多的java、php或者python程序员转向了Golang。其中一个比较重要的原因是,它和C/C一样,可以编译成机器码运行,这保证了执行的效率。在上述解释型语言中,它们都支持了“反射”机制,让程序员可以很方便的构建一…

设计模式----组合模式UML和实现代码
2019独角兽企业重金招聘Python工程师标准>>> 一、什么是组合模式? 组合模式(Composite)定义:将对象组合成树形结构以表示‘部分---整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性. 类型:结构型模式 顺口…

Golang反射机制的实现分析——reflect.Type方法查找和调用
在《Golang反射机制的实现分析——reflect.Type类型名称》一文中,我们分析了Golang获取类型基本信息的流程。本文将基于上述知识和经验,分析方法的查找和调用。(转载请指明出于breaksoftware的csdn博客) 方法 package mainimpor…
太狠!33岁年薪50万:“复工第一天,谢谢裁掉我!” 网友:有底气!
最近脉脉一则帖子炸锅了:某HR发帖称公司以按时下班为由裁员。这种情况下很多人都慌了,大家纷纷把“副业救国”奉为神律。可是你有没有认真的想过,为什么现在大家都需要副业:意外裁员后,房贷能够按时还上不至于“回收”…

SEO内部链接优化的技巧
内部链接是搜索引擎优化中的重要因素之一。思亿欧做的SEO调查发现,国内大部分网站都没有怎么做内部链接优化。这可能是网站管理员并不知晓SEO或者是对内部链接优化不够重视。 内部链接的设计不能是单纯的为了SEO的目的而作内部链接,同时要注意规划一个良…

Ubuntu 15.10安装ns2.35+nam
2019独角兽企业重金招聘Python工程师标准>>> Step1: 更新系统sudo apt-get update #更新源列表sudo apt-get upgrade #更新已经安装的包sudo apt-get dist-upgrade #更新软件,升级系统Step2:安装ns2需要的几个包sudo apt-get install build-essentialsu…

bug诞生记——不定长参数隐藏的类型问题
这个bug的诞生源于项目中使用了一个开源C库。由于对该C库API不熟悉,一个不起眼的错误调用,导致一系列诡异的问题。最终经过调试,我们发现发生了内存覆盖问题。为了直达问题根节,我将问题代码简化如下(转载请指明出于br…

yahoo註冊.com 域名1.99$/年
yahoo註冊.com 域名1.99$/年趕快去註冊吧http://order.sbs.yahoo.com/ds/reviewplanoption?.pYD1&mdom&.srcsbs&.promoBESTDEAL&dzzhen an.com支持paypal付款一個yahoo帳戶只能註冊一個如果覺得續費比較貴,可在註冊兩個月後轉出到godaddy.转载于:h…
Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础、文科生也能学!...
在大数据浪潮当中,数据分析是这个时代的不二“掘金技能”。我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万......这些庞大的数字,意味着什么&#…

Myeclipse快捷键的使用
存盘 Ctrls(肯定知道) 注释代码 Ctrl/ 取消注释 Ctrl\(Eclipse3已经都合并到Ctrl/了) 代码辅助 Alt/ 快速修复 Ctrl1 代码格式化 CtrlShiftf 整理导入 CtrlShifto 切换窗口 Ctrlf6 <可改为ctrltab方便> ctrlshiftM 导入未引用的包 ctrlw 关闭单个窗口 F3 跳转到类、变量的…

PL/SQL三种集合类型的比较
PL/SQL三种集合类型的比较<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />集合是指在一个程序变量中包含多个值。PL/SQL提供的集合类型如下:Associative Array:TYPE t IS TABLE OF something INDEX BY PLS_INTEGER;N…
夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!
近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领的联合团队,摘得WSDM Cup 2020大赛“论文引用意图识别任务”金牌(Gold Medal)。WSDM被誉为全…

bug诞生记——信号(signal)处理导致死锁
这个bug源于项目中一个诡异的现象:代码层面没有明显的锁的问题,但是执行时发生了死锁一样的表现。我把业务逻辑简化为:父进程一直维持一个子进程。(转载请指明出于breaksoftware的csdn博客) 首先我们定义一个结构体Pro…

Linux下SVN服务器支持Apache的http和svnserve独立服务器
2019独角兽企业重金招聘Python工程师标准>>> 说明 服务器操作系统:CentOS 6.6 关闭防火墙,SElinux 实现 1、在服务器上安装配置SVN服务; 2、SVN服务支持svnserve独立服务模式访问; 3、SVN服务支持Apache的http模式访问…

AWS攻略——使用CodeCommit托管代码
除了我们熟悉的github,各大云厂商也有自己的代码托管服务。本文讲解如何在Amazon的CodeCommit中托管代码。(转载请指明出于breaksoftware的csdn博客) 根账户登录 AWS有两种账户登录界面。 IAM账户登录界面 根账户登录界面我们先使用根…

使用alterMIME实现添加message footer功能
1. 安装alterMIME tar zxvf altermime-0.3.8.tar.gz cd altermin3-0.3.8 make make install altermine将被编译安装到/usr/local/bin/2. 使用必备条件:一个运行且配置正常的邮件服务器3. 配置AlterMIME3.1 为altermine创建一个系统帐号,如下&#x…
Facebook最新研究:无需额外训练AI,即可加速NLP任务
作者 | KYLE WIGGERS译者 | Kolen出品 | AI科技大本营(ID:rgznai100)自然语言模型通常要解决两个难题:将句子前缀映射到固定大小的表示形式,并使用这些表示形式来预测文本中的下一个单词。在最近的一篇论文(https://ar…
PgSQL · 特性分析 · full page write 机制
PG默认每个page的大小为8K,PG数据页写入是以page为单位,但是在断电等情况下,操作系统往往不能保证单个page原子地写入磁盘,这样就极有可能导致部分数据块只写到4K(操作系统是一般以4K为单位),这些“部分写”的页面包含…

局域网DVD yum源的制作
今天在网上溜达,看到这篇文章不错,于是就转载过来,感谢原作者的辛苦劳动.源地址:http://blog.chinaunix.net/u3/94782/showart_1953260.html一:两台计算机做实验<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1&…

AWS攻略——使用S3托管静态网页
在AWS上有很多部署静态网页的方式,比如使用EC2或者Lightsail。但是不管使用上述哪种方案,都需要预先部署如Nignx或者Apache等Http服务。这对纯前端同学来说可能有点复杂,而AWS提供了更简单的部署方式——只需要提供静态网页文件的“S3网页托管…
2020年涨薪26-30%,能实现吗?18%数据科学家是这么期待的
作者丨Big Cloud编译 | 武明利,责编丨Carol出品 | AI科技大本营(ID:rgznai100)本报告将深入探讨亚太地区各个背景、不同年龄和不同地点的专业人员对2019/2020年的见解。今年贡献最大的地区来自新加坡和澳大利亚。因为这些是我们最大的数据点&…

AWS攻略——使用CodeBuild进行自动化构建和部署静态网页
首先声明下,使用“CodeBuild”部署并不是“正统”的方案,因为AWS提供了“CodeDeploy”。如果不希望引入太多基础设施,可以考虑直接使用CodeBuild进行部署。(转载请指明出于breaksoftware的csdn博客) 创建构建项目 kro…
我们需要什么样的数据架构?
作者 | Stephanie shen编译 | 火火酱,责编丨Carol出品 | AI科技大本营(ID:rgznai100)在大数据和数据科学的新时代,对企业而言,一定要有与业务流程保持一致的中心化数据架构,该架构能随业务增长而扩展&#…

Windows Server 2008 R2 之二十九故障转移群集(一)(
关于Windows Server 2008故障转移群集见http://technet.microsoft.com/zh-cn/library/cc732488(WS.10).aspx实验环境:两台已安装好Windows Server 2008 R2的计算机R2DC01、R2DC02,均为DC、DNS,域名为HBYCRSJ.COM,均有两块网卡。分别为心跳网络和本地连接…

基于多核DSP处理器DM8168的视频处理方法
摘要:随着1080P高清视频以及4K超高清晰视频的普及和应用,基于传统单核DSP处理器的视频信息处理已有些力不从心。为此TI公司推出了一款专门用于高清视频处理的多核DSP处理器,它拥有4个不同类型的处理器,使得视频处理达到了一个更高…

AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
Aws Lambda是Amazon推出的“无服务架构”服务。我们只需要简单的上传代码,做些简单的配置,便可以使用。而且它是按运行时间收费,这对于低频访问的服务来说很划算。具体的介绍可以常见aws lambda的官网。(转载请指明出于breaksoftw…

vmware 添加 磁盘 空间
VMware安装linux的时候默认分配的空间是4GB,可能会不够,这个时候可以通过增加一块虚拟硬盘,将/usr或其他内容拷贝过去解决这个问题:创建虚拟硬盘1、关闭VM中正在运行的虚拟系统;2、在虚拟系统名称上点右键-…
Python爬取考研数据:所有985高校、六成211高校均可调剂
又到了一年一度的考研出分时间啦,近期有不少朋友让笔者帮他们分析如何提前做好调剂。复试与调剂总是密不可分。今天,给大家分享一些调剂的重要知识点,希望你在调剂的时候,能明白调剂的趋势与规则。也许,大家对于调剂的…

iOS审核秘籍】提审资源检查大法
iOS审核秘籍】提审资源检查大法 2015/11/27阅读(752)评论(1)收藏(6)加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品点此查看详情! 本篇主要是提审…

谈一次单元测试驱动代码重构
目前团队并没有QA岗,而且在很长一段时间内,可能也不会设立QA岗,所以我们需要RD保证代码的质量。而鉴于人类天生的“惰性”,很多时候质量完全依赖于作者的能力以及职业素质。于是我在团队内推动单元测试,并要求提升测试…