线性回归

回归是指一类为一个或多个自变量与因变量之间关系建模的方法。在自然科学和社会科学领域,回归通常用来表示输入和输出之间的关系。

在机器学习领域中的大多数任务通常都与预测有关。 当我们想预测一个数值时,就会涉及到回归问题。常见的例子包括:预测股价、预测房价等。但不是所有的预测都是回归问题。后续还我们可能还会写一些解决分类问题的文章,预测一组数据性于数据类型中的某一种。

线性回归的元素

线性回归是一种简单的回归工具。线性回归基于几个简单的假设:

  • 假设自变量 X X X 和因变量 y y y之间的关系是线性关系。既 y y y可以表示为 X X X的加权和,这里通常允许包含观测的一些噪音。
  • 假设在任何噪音都正常的前提下,噪声遵循正态分布。

为了简单解释线性回归,我们可以拿可以拿一个入门级示例,预测房价:我们假设房屋的销售价格与房屋的面积和房龄有关。
为了开发这一个预测房价的模型,我们需要收集一个真实的房屋销售数据集。这个数据集包含房屋的销售价格、面积和房龄。

线性回归模型

在我们假设房屋的售价可以由房屋的面积和房龄加权和表示的话,那我们可以得到下面的公式:
y = a ∗ a r e a + b ∗ a g e + c y = a*area + b*age +c y=a∗area+b∗age+c
在上面公式中, a a a和 b b b称为权重, c c c称为偏移量。为了使我们模型能力表达的更强,在这里,即使房屋的面积和房龄均为0时,我们依然需要设置偏移量。权重 a a a和 b b b决定每一个特征值(面积和房龄)对预测值(房价)的影响。
我们将面积和房龄放到一个特征集合 X X X中 ,预测值 y ^ ∈ R n \hat y \in R^n y^​∈Rn 可以通过矩阵-向量乘法表示,那么预测模型则表求为:
y ^ = X w + b \hat y = Xw + b y^​=Xw+b

在我们开始寻找最好的模型参数(model parameters) w w w 和 b b b 之前,我们还需要两个东西:

  • 一种模型质量的度量方式。
  • 一种能够更新模型以提高模型预测质量的方法。

损失函数

我们在开始使用模型拟合数据之前,我们需要确定一个拟合程度的度量。损失函数能够量化目标值和预测值之间的差距,能常我们会选择一个非负数作为损失,数值越小表示拟合越好,预测越完美。回归问题中最常用的损失函数为平方误差函数,其公式如下:
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w,b) = \cfrac 12(\hat y^{(i)} - y^{(i)})^2 l(i)(w,b)=21​(y^​(i)−y(i))2

一维函数绘图如下:

为了度量模型在整个数据集上的质量,我们需计算在训练集 n n n个样本上的损失均值(也等价于求和)。
L ( w , b ) = 1 n ∑ i = 0 n 1 2 ( W T X ( i ) + b − y ( i ) ) 2 L(w,b)= \cfrac 1n \sum_{i=0}^n \cfrac 12(W ^T X^{(i)} + b - y^{(i)})^2 L(w,b)=n1​i=0∑n​21​(WTX(i)+b−y(i))2
在训练模型时,我们希望寻找一组参数 ( w ∗ w^∗ w∗, b ∗ b^∗ b∗),这组参数能最小化在所有训练样本上的总损失。如下式:
w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^∗,b^∗= \mathop {argmin}_{w,b} L(w,b) w∗,b∗=argminw,b​L(w,b)

小批量随机梯度下降

即使在我们无法得到解析解的情况下,我们仍然可以有效地训练模型。在许多任务上,那些难以优化的模型效果要更好。因此,弄清楚如何训练这些难以优化的模型是非常重要的。
这里我们用到一种名为梯度下降的方法来优化深度学习模型。梯度下降通过不断地在损失函数递减的方向上更新参数来降低误差。

用学习到的模型进行预测

到目前为止,我们就可以通过我们给定的线性回归模型 y = W T + b y = W^T + b y=WT+b,来预测通过给定房屋面积 x 1 x_1 x1​他房龄 x 2 x_2 x2​来预测一个未在训练集中的新房价了。请继续关注公众号,学习我们后续的Java代码实现。

DJL-Java开发者动手学深度学习之线性回归相关推荐

  1. 李沐动手学深度学习v2/总结1

    总结 编码过程 数据 数据预处理 模型 参数,初始化参数 超参数 损失函数,先计算损失,清空梯度(防止有累积的梯度),再对损失后向传播计算损失关于参数的梯度 优化算法,使用优化算法更新参数 训练求参数 ...

  2. 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!

    论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...

  3. 送10本今年最火的《动手学深度学习》

    点击我爱计算机视觉标星,更快获取CVML新技术 52CV曾经多次介绍FlyAI机器学习竞赛平台,不少粉丝也曾在FlyAI拿到现金奖励. 本次52CV & FlyAI联合送书,CV君查找了两天, ...

  4. 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板

    论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...

  5. 第3章(3.11~3.16节)模型细节/Kaggle实战【深度学习基础】--动手学深度学习【Tensorflow2.0版本】

    项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的<动手学深度学习>开源书一经推出便广受好评.很多开 ...

  6. 第1章【深度学习简介】--动手学深度学习【Tensorflow2.0版本】

    项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的<动手学深度学习>开源书一经推出便广受好评.很多开 ...

  7. 《动手学深度学习》中文第二版预览版发布

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李沐@知乎 来源丨https://zhuanlan.zhihu ...

  8. 收藏 |《动手学深度学习》中文版PDF

    对于初学者来说,直接阅读英文资料,效率慢,估计读着读着都没有信心读下去了.对于初学者,中文资料是再好不过了.今天小编就来安利一本中文资料--中文版本的<动手学深度学习>. 资料领取: 扫码 ...

  9. 深度学习经典教程:深度学习+动手学深度学习

    作者:[美] Ian,Goodfellow(伊恩·古德费洛),[加] Yoshua,Bengio(约书亚·本吉奥)等 出版社:人民邮电出版社 品牌:异步图书 出版时间:2019-06-01 深度学习经 ...

最新文章

  1. Android 串口通讯
  2. 新建虚拟机update时出现不能得到锁问题
  3. Jenkins Gitlab持续集成打包平台搭建
  4. 关于部署传统的Dynamic Web项目
  5. 测试开发python面试_python测试开发面试之深浅拷贝
  6. sessionId与cookie 的关系(百度文库)
  7. memcached 与 mysql_memcached 和 MySQL 的 query ?
  8. 40个新鲜出炉的 jQuery 插件和免费教程【上篇】 转载自:梦想天空
  9. php执行出现500,为什么我的PHP总是出现500错误?
  10. 1.4.2 真正的建造者模式(3.2)
  11. 使用LIstView和自定义Adapter完成列表信息显示
  12. centos6.9安装虚拟机kvm
  13. bilibili视频解析php源码,Bilibili视频直链信息解析工具源码
  14. aliplayer 直播在微信和支付宝浏览器自动播放兼容
  15. java设计模式(创建型)之生成器模式
  16. alert获取输入框内容_Alert弹出框处理
  17. 使用Beep()函数发出指定音高 (一)
  18. 区块链指南 第2章 区块链基础
  19. note error - REPT H28PLOG0 not exist create it()
  20. Python之模拟登录微博下载视频

热门文章

  1. oracle试题和答案,Oracle面试题及答案
  2. [转载]Matlab绘图-很详细,很全面(包含各种标示符的输入方法)
  3. z-index 的最大值和最小值
  4. Ubuntu22.04安装riscv64-toolchain和QEMU
  5. Java~设计模式之观察者模式 || 班长大喊老师来啦
  6. ERROR: Failed building wheel for pillow and ERROR: running bdist_wheel问题解决
  7. request.setHeader() 方法
  8. 必示科技2020年度告警数据挖掘方向顶会论文分享
  9. 5G安全,5G防御,5G网络安全,5G信息安全
  10. Spring Boot 项目鉴权的 4 种方式