1-1 动手学深度学习v2-线性回归-笔记

简化核心模型

  • 假设1: 影响房价的关键因素是卧室个数卫生间个数居住面积,记为 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3
  • 假设2: 成交价是关键因素的加权和
    y = w 1 x 1 + w 2 x 2 + w 3 x 3 + b y=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+b y=w1x1+w2x2+w3x3+b权重和偏差的实际值在后面决定

线性一般模型

  • 给定 n n n维输入 x = [ x 1 , x 2 , . . . , x n ] T \pmb{x}=[x_{1},x_{2},...,x_{n}]^{T} x=[x1,x2,...,xn]T
    (这里 x 1 , x 2 , . . . , x n x_{1},x_{2},...,x_{n} x1,x2,...,xn是实数/标量, [ x 1 , x 2 , . . . , x n ] [x_{1},x_{2},...,x_{n}] [x1,x2,...,xn]是行向量,再一转置就是一个列向量 x = [ x 1 , x 2 , . . . , x n ] T \pmb{x}=[x_{1},x_{2},...,x_{n}]^{T} x=[x1,x2,...,xn]T)
  • 线性模型有一个 n n n维权重和一个标量偏差
    w = [ w 1 , w 2 , . . . , w n ] T , b \pmb{w}=[w_{1},w_{2},...,w_{n}]^{T},b w=[w1,w2,...,wn]Tb w \pmb{w} w x \pmb{x} x理,b是实数/标量
  • 输出是输入的加权和
    y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y=w_{1}x_{1}+w_{2}x_{2}+...+w_{n}x_{n}+b y=w1x1+w2x2+...+wnxn+b向量版本: y = ⟨ w , x ⟩ + b y=\langle\pmb{w},\pmb{x}\rangle+b y=w,x+b
    ⟨ w , x ⟩ \langle\pmb{w},\pmb{x}\rangle w,x表示内积,这里即两个列向量按位相乘。内积算出来的是一个实数标量

衡量预测质量

  • 比较真实值和预估值,例如房屋售价和估价
  • 假设 y y y是真实值, y ^ \hat{y} y^是估计值,我们可以比较
    ℓ ( y , y ^ ) = 1 2 ( y − y ^ ) 2 \ell(y,\hat{y})=\frac{1}{2}(y-\hat{y})^{2} (y,y^)=21(yy^)2这个叫做平方损失,这里之所以有个 1 2 \frac{1}{2} 21,是因为我们可以在后面的求导过程中很方便地消除掉

训练数据

  • 收集一些数据点来决定参数值(权重和偏差),例如过去6个月卖的房子
  • 这被称之为训练数据
  • 通常越多越好
  • 假设我们有 n n n个样本,记
    X = [ x 1 , x 2 , . . . , x n ] T \pmb{X}=[\pmb{x_{1}},\pmb{x_{2}},...,\pmb{x_{n}}]^{T} X=[x1,x2,...,xn]T(假设每个 x i \pmb{x_{i}} xi都是按照上面模型定义的列向量(一个列向量就是一个样本),我们把样本一列列的排好,再经过一个转置,最后的效果就是原先的每一列现在到了每一行, X \pmb{X} X的每一行都是一个样本。
    y = [ y 1 , y 2 , . . . , y n ] T \pmb{y}=[y_{1},y_{2},...,y_{n}]^{T} y=[y1,y2,...,yn]T
    每一个 y i y_{i} yi都是一个实数的数值,也即一个样本,那么 y \pmb{y} y就是一个列向量。

参数学习

  • 训练损失
    关于数据 X \pmb{X} X, y \pmb{y} y,权重 w \pmb{w} w,偏差 b b b的损失函数(真实值-估计值):(这里算出来的是个标量
    ℓ ( X , y , w , b ) = 1 2 n ∑ i = 1 n ( y i − ⟨ x i , w ⟩ − b ) 2 = 1 2 n ∣ ∣ y − X w − b ∣ ∣ 2 \ell(\pmb{X},\pmb{y},\pmb{w},b)=\frac{1}{2n}\sum_{i=1}^{n}(y_{i}-\langle\pmb{x_{i},w}\rangle-b)^{2}=\frac{1}{2n}||\pmb{y}-\pmb{Xw}-b||^{2} (X,y,w,b)=2n1i=1n(yixi,wb)2=2n1∣∣yXwb2在数学中,双竖线 ∣∣⋅∣∣ 通常表示向量的范数(norm),是衡量向量大小的一种方法。在计算线性回归模型的训练损失时,这个符号用来表示预测误差向量的欧几里得范数(Euclidean norm),也就是通常所说的 L2 范数
    L2范数(L2 norm),是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
    ∣ ∣ x ∣ ∣ 2 = ( x 1 2 + x 2 2 + . . . + x n 2 ) 1 2 ||x||_{2} = (x_{1}^{2} + x_{2}^{2} + ... + x_{n}^{2})^{\frac{1}{2}} ∣∣x2=(x12+x22+...+xn2)21这里的 ∣ ∣ y − X w − b ∣ ∣ 2 ||\pmb{y}-\pmb{Xw}-b||^{2} ∣∣yXwb2 表示的是预测误差向量 y − X w − b \pmb{y}-\pmb{Xw}-b yXwb 的 L2 范数的平方,其中 y \pmb{y} y 是实际值的向量, X \pmb{X} X 是特征矩阵, w \pmb{w} w 是权重向量, b b b 是偏差项。
    计算L2范数的平方是将每个样本的损失值平方后求和,再除以 2 n 2n 2n,这样做的目的是平均损失,并且在后续的优化过程中,平方项可以帮助计算梯度

    两个等号,后一个是用向量的形式来表示,但是意义都是一样的,也即都是在先计算样本损失值的平方和,再除以样本数,得到一个对于所有样本来说的平均损失。
    对于向量的形式,更易于并行化。

  • 最小化损失来学习参数 w ∗ , b ∗ = a r g min ⁡ w , b ℓ ( X , y , w , b ) \pmb{w^{*},b^{*}}=arg\;\min_{\pmb{w},b}\ell(\pmb{X},\pmb{y},\pmb{w},b) w,b=argw,bmin(X,y,w,b)
    这个公式的意思是说:要找到 w \pmb{w} w b b b的那个具体值 或者 值的组合 w ∗ , b ∗ \pmb{w^{*},b^{*}} w,b,使得 ℓ ( X , y , w , b ) \ell(\pmb{X},\pmb{y},\pmb{w},b) (X,y,w,b)达到最小值。
    这里的 “arg min” 是 “argument of the minimum” 的缩写


显示解

  • 将偏差加入权重
    X ← [ X , 1 ] w ← [ w b ] \pmb{X}\leftarrow [\pmb{X},\pmb{1}] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \pmb{w}\leftarrow\left [ \begin{matrix} \pmb{w} \\ b \\ \end{matrix} \right ] X[X,1]                w[wb] X \pmb{X} X加一列全 1 1 1的特征,也就是在末尾加一个全 1 1 1的列向量 1 \pmb{1} 1,相当于是给所有样本新增一个为1的实数项,然后把偏差放到权重的最后一行。相当于是把偏差融进数据 X \pmb{X} X和权重 w \pmb{w} w
    损失函数变为:
    ℓ ( X , y , w ) = 1 2 n ∣ ∣ y − X w ∣ ∣ 2 ∂ ∂ w ℓ ( X , y , w ) = 1 n ( y − X w ) T X \ell(\pmb{X},\pmb{y},\pmb{w})=\frac{1}{2n}||\pmb{y}-\pmb{Xw}||^{2}\ \ \ \ \ \ \ \ \ \ \frac{\partial }{\partial \pmb{w}}\ell(\pmb{X},\pmb{y},\pmb{w})=\frac{1}{n}(\pmb{y}-\pmb{Xw})^{T}\pmb{X} (X,y,w)=2n1∣∣yXw2          w(X,y,w)=n1(yXw)TX
  • 线性模型的损失是凸函数,所以最优解满足
    ∂ ∂ w ℓ ( X , y , w ) = 0 \frac{\partial }{\partial \pmb{w}}\ell(\pmb{X},\pmb{y},\pmb{w})=0 w(X,y,w)=0 ⇔ 1 n ( y − X w ) T X = 0 \Leftrightarrow \frac{1}{n}(\pmb{y}-\pmb{Xw})^{T}\pmb{X}=0 n1(yXw)TX=0 ⇔ w ∗ = ( X T X ) − 1 X y \Leftrightarrow \pmb{w^{*}}=(\pmb{X}^{T}\pmb{X})^{-1}\pmb{X}\pmb{y} w=(XTX)1Xy凸函数(Convex function)是指从函数图形上来看,任意两点连成的线段,皆位于图形的上方的实值函数
    凸函数的最优解是满足使得它的梯度等于0的地方

总结

  1. 线性回归是对 n n n维输入的加权,外加偏差( y ^ = X w + b \hat{y}=\pmb{Xw}+b y^=Xw+b
  2. 使用平方损失来衡量预测值和真实值的差异
  3. 线性回归有显示解
  4. 线性回归可以看作单层神经网络,是最简单的神经网络

QA补充

  1. 为啥使用平方损失而不是绝对差值
    绝对差值在零点处的导数比较难求,并不是一个处处可导的函数

  2. 为啥损失要求平均
    求平均和不求平均区别不大,但是不求的话,会导致梯度比较大,如果不除以 n n n的话,就把学习率除以 n n n吧。
    除以 n n n的好处是:不管你的样本多大,批量多大,我的梯度都差不多,使得我调学习率比较容易,比较好调。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ——基于 KeepAlived + HAProxy 搭建 RabbitMQ 高可用负载均衡集群

一、集群简介 1.1 集 群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。 RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每…

目标检测及相关算法介绍

文章目录 目标检测介绍目标检测算法分类目标检测算法模型组成经典目标检测论文 目标检测介绍 目标检测是计算机视觉领域中的一项重要任务,旨在识别图像或视频中的特定对象的位置并将其与不同类别中的对象进行分类。与图像分类任务不同,目标检测不仅需要…

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

主品牌竞争方向之洞察竞争环境变化

随着市场环境加速变化,如果只停留在过去,未能及时进化的主品牌可能会逐渐老化,失去市场竞争力,甚至被新兴竞争对手所取代。因此,企业需要不断洞察竞争环境变化,避免企业走向衰退,让主品牌进化&a…

TrinityCore安装记录

TrinityCore模拟魔兽世界(World of Warcraft)的开源项目,并且该项目代码广泛的优化、改善和清理代码。 前期按照官方手册按部就班的安装即可。 注意几点: 1 需要配置Ubuntu22.04版本的服务器或者Debian11 服务器。2 需要使用gi…

网易和腾讯面试题精选---缓存面试问题和答案

介绍 在当今快节奏的数字环境中,数据和资源的高效管理对于确保最佳应用程序性能、可扩展性和响应能力变得至关重要。缓存是一种用于将频繁访问的数据存储在更接近使用点的技术,在提高系统效率、减少延迟和改善各种计算环境中的用户体验方面发挥着关键作用。本文深入探讨了缓存…

Office恢复旧UI|Office UI问题|Word UI|小喇叭找不到

Office恢复旧UI|Office UI问题|Word UI|小喇叭找不到 问题描述:Office新版本默认新UI,主界面没有小喇叭可以切换到旧UI. 解决方案: 以下述内容新建.txt,保存并改后缀为.reg,双击打开…

Flink生产环境常见问题及解决方法

在Flink生产环境中,可能会遇到一些常见的问题。下面简单的介绍几个常见问题,并且提供一些解决方法,来帮助你更好地应对这些问题。 故障转移和高可用性 Flink提供了故障转移和高可用性机制,但在配置和使用时可能会遇到问题。如果…

154基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流

基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流。全国大学生美国建模竞赛,程序已调通,可直接运行。 154 元细胞自动机 森林起火 收费站交通 (xiaohongshu.com)

unity 如何将字典显示在Inspector面板上

主要通过ISerializationCallbackReceiver接口来实现, 将所有的Value值存入List显示即可. 这里在value里存了一个Key 也可以将Key和value分别保存 public interface RecordValue<T>{public T Key { get; }}[Serializable]public class RecordDictionary<TKey, TValue&g…

Linux的库文件

概述&#xff1a; 库文件一般就是编译好的二进制文件&#xff0c;用于在链接阶段同目标代码一块生成可执行文件&#xff0c;或者运行可执行文件的时候被加载&#xff0c;以遍调用库文件中的某段代码。 动态链接都是索引的.so文件&#xff0c;静态链接都是压缩打包的.a文件。 …

rust原生语言对比 <在rust内> 执行javascirpt与lua解释型语言的性能

对于javascript我使用的是js-sandbox库。我测试当前js-sandbox的release版本是0.1.6不知道为什么无法在mac下正常运行,只能以path的方式指向js-sandbox的源码了。 对于lua我使用的是rlua库,版本号为0.19.8。 我有两个系统都做了测试,ubuntu和mac。 先看代码 use js_sandb…

Python新春烟花盛宴

写在前面 哈喽小伙伴们&#xff0c;博主在这里提前祝大家新春快乐呀&#xff01;我用Python绽放了一场新春烟花盛宴&#xff0c;一起来看看吧&#xff01; 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库…

深度学习的进展:人工智能时代的里程碑

深度学习的进展&#xff1a;人工智能时代的里程碑 摘要 深度学习作为机器学习领域的重要分支&#xff0c;近年来取得了巨大的进展。本文将回顾深度学习的发展历程&#xff0c;探讨其在图像识别、自然语言处理和语音识别等领域的重要应用&#xff0c;并展望深度学习在人工智能…

报错:string sub-command REGEX, mode MATCH needs at least 5 arguments

编译的时候碰到这个报错string sub-command REGEX, mode MATCH needs at least 5 arguments搜索到这个issue&#xff1a;Error with cmake build "string sub-command REGEX, mode MATCH needs at least 5 arguments" Issue #12959 zephyrproject-rtos/zephyr Git…

React实例之完善布局菜单(三)

接着上篇的内容继续。规划界面布局。界面分为三个部分&#xff0c;左边为菜单部分&#xff0c;右边上部有个 80 px 高度左右的功能区&#xff0c;下面是主内容区。 依据这个设计&#xff0c;我们进行下面的步骤&#xff1a; 在 SMenu项目中创建一个目录&#xff1a; SLayout, …

iPhone搞机记录

-iPhone 8 或以上 设备进入DFU模式的方法&#xff1a; &#xff08;适用&#xff1a;iPhone 8/8 Plus、iPhone X 系列、iPad Pro3 (11-inch)/(12.9-inch)&#xff09; 1.保持设备处于开机或恢复模式下&#xff0c;插入数据线。 2.按一次设备的“音量加键”松开、再按一次“音量…

aspose-words在linux上安装字体

大多数情况下,使用 Aspose.Words 将 DOC 或 DOCX 文档转换为 PDF 格式。如果需要在 Linux 计算机上执行此操作,确保 Aspose.Words 以最佳准确性渲染文档。 最常见的是,需要转换的 DOC 和 DOCX 文档是在 Windows 或 Mac OS 操作系统上使用 Microsoft Word 创建的。因此,DOC…

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)

OpenCV是一个强大的计算机视觉库&#xff0c;使用C作为主要编程语言&#xff0c;对于图像处理和计算机视觉领域具有重要意义。其提供了丰富的功能和算法&#xff0c;使得开发者能够快速实现各种图像处理和计算机视觉应用。OpenCV C为图像处理和计算机视觉领域的开发者提供了一个…

【实战】阿里智能编码助手通义灵码

文章目录 前言技术积累通义灵码是什么&#xff1f;Copilot是什么&#xff1f;通义灵码主要功能通义灵码有哪些优势&#xff1f;通义灵码支持语言/工具通义灵码接入方式通义灵码帮助中心 实战演示安装插件行/函数级实时续写自然语言生成代码代码优化单元测试生成代码注释生成解释…