动手学深度学习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. 线性回归可以看作单层神经网络,是最简单的神经网络

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

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

相关文章

鲲鹏--垂直生态领导者

这是ren_dong的第24篇原创 1、概述 华为鲲鹏920:性能最高的ARM架构服务器芯片 鲲鹏是华为在芯片领域布局的重要一环 ,是垂直生态的领导者,鲲鹏芯片诞生于2020年 ,已获得ARMv8架构的永久授权,主要聚焦通用计算领域华为针…

typecho 在文章中添加 bilibili 视频

一、获取视频来源: 可以有2种方式来定位一个 bilibili 视频: 第一种是使用 bvid 参数定位第二种是使用 aid 参数定位 如何获取这两个参数? 首先我们可以看看 bilibili 网站中的视频页面链接其实可以分为两种: 第一种是类似&a…

建材智能工厂数字孪生可视化管控平台,推进建材行业数字化转型

建材智能工厂数字孪生可视化管控平台,推进建材行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的重要趋势。在建材行业中,智能工厂和数字孪生技术的应用正在改变传统的生产模式和管理方式,为行业的数字化转型…

C语言常见面试题:C语言中如何进行加密解密编程?

在C语言中进行加密和解密编程通常涉及到使用加密算法和相关的库。下面是一些常用的加密和解密算法以及如何使用它们的基本说明: AES加密算法: AES(Advanced Encryption Standard)是一种常用的对称加密算法。在C语言中,…

clr的执行模型-笔记

学习来源:《CLR via C by Jeffrey Richter 》第四版,第1章 clr的执行模型 1.C#编译生成执行程序集文件 编译文件的组成:pe32/pe32头,clr头,元数据,IL pe32/pe32头:windows标准执行文件头 cl…

mac 12.7.3 Unity 2021.3.14 XCode 14.2 成功将unity游戏编译到IPhone中,并上架appstore

上一篇文章 mac 10.15.7 & Unity 2021.3.14 & XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法 从上一篇文章完成后,unity 已经可以导出 xcode 工程,但是,app是没法上架到appstore上的,原因如下&am…

C++函数对象-运算符函数对象 - 比较 - 实现 x == y 的函数对象(std::equal_to)

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 运算符函数对象 C 针对常用的算术和逻辑运算定义了很多函数对象&#xff1a; 比较 实现 x y 的函数对象 std::equal_to template< class T >…

DelayQueue的使用

具体思路&#xff1a; 在容器初始化的时候就创建出一个 延迟队列 然后项目启动后随即启动一个线程一直监听这个队列 手动调用接口往队列中添加任务 依赖 一个最简单的web的应用即可项目文件结构 第一步&#xff1a;在项目启动的时候就创建出一个延迟队列 Configuration publ…

小程序定制开发前,应该考虑些什么?

引言 在移动互联网时代&#xff0c;小程序已经成为许多企业和个人推广业务、提供服务的理想平台。然而&#xff0c;在进行小程序定制开发之前&#xff0c;开发者和业务方需要细致入微地考虑一系列关键因素&#xff0c;以确保最终的小程序既能满足用户需求&#xff0c;又能够顺…

PHP入门指南:起步篇

PHP入门指南&#xff1a;起步篇 PHP入门指南&#xff1a;起步篇什么是PHP&#xff1f;PHP 的优点PHP 开发环境搭建选择本地服务器软件包安装PHP环境配置Web服务器和PHP测试PHP安装 第一个PHP脚本PHP基础语法标记注释变量数据类型常量条件语句循环函数 PHP入门指南&#xff1a;起…

Oracle Server一台价值百万的服务器内存更换过程

数据库代码敲多了&#xff0c;看乏了吧&#xff01; 带各位DBA看看你们的数据库运行在什么样的硬件上。 1、故障现象 事发时2号位置报警 登录ILO发现内存报警 查看详细信息 查看详细报警 2、关于ORACLE 服务器DIMM 备用 默认情况下在 Oracle ILOM 中启用 DIMM 备用。由 DIMM 提…

[linux] kolla-ansible 部署的openstack 修改mariadb默认端口号

kolla-ansible 部署前修改global.yml #freezer_database_backend: "mariadb" database_port: 9306 mariadb_port: 9306如果已经部署成功&#xff0c;直接修改配置文件里的端口号重启是没有用的&#xff0c;怀疑内部做了缓存&#xff0c;查看openstack 使用的memcach…

yarn/npm certificate has expired

目录 报错 原因&#xff1a;HTTPS 证书验证失败 方法 a.检查网络安全软件&#xff1a;可能会拦截或修改 HTTPS 流量 b.strict-ssl:false关闭验证【临时方法】 报错 info No lockfile found. [1/4] Resolving packages... error Error: certificate has expired at TLS…

Java类的继承

XHTMLMapper继承 XWPFDocumentVisitor&#xff1a; 由于endVisitTableCell是抽象方法&#xff0c;XHTMLMapper中必须要实现&#xff1b; existErr()子类是否重写都是自由的&#xff1b; public abstract class XWPFDocumentVisitor<T, O extends Options, E extends IXWPFM…

Unity类银河恶魔城学习记录1-12 PlayerComboAttack源代码 P39

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili PlayerPrimaryAttack.cs using System.Collections; using System.Collect…

实时语音转写的前端实现方案

// 创建一个音频上下文 const audioContext new (window.AudioContext || window.webkitAudioContext)(); // 创建一个MediaStreamSourceNode&#xff0c;用于获取用户的麦克风输入 navigator.mediaDevices.getUserMedia({ audio: true }) .then(stream > { const m…

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA

HDMI音频分离器HHA简介 HDMI音频分离器HHA具有一路HDMI信号输入&#xff0c;转换成一路HDMI信号、一路5.1光纤音频信号、一路5.1 SPDIF/同轴音频信号和一路模拟左右声道立体声信号输出&#xff0c;同时还支持EDID存储及兼容HDCP功能&#xff1b;分辨率最高支持1920*1080p&#…

国产软件很流氓?4款没有广告的黑科技软件,白嫖党有福了

提到国产软件&#xff0c;许多人可能会想到一些负面的标签&#xff0c;如“流氓、捆绑、广告多”。然而&#xff0c;事实上&#xff0c;国内也有许多良心软件&#xff0c;不仅功能强大&#xff0c;而且完全免费。 1、原本&#xff08;图片处理神器&#xff09; 在日常生活中和…

国内最全的Spring Boot系列之七

• 阿里巴巴前高级研发工程师 • 三家千万级互联网企业技术顾问 • MBTI/盖洛普技术专家 • 厦门某高校外聘教师 • 51CTO特约合作讲师 • 网易云课堂签约讲师 •《深入理解设计模式》作者 一转眼马上要过年了&#xff0c;回首2023年&#xff0c;感觉自己无所事事、碌碌无…

[SWPUCTF 2021 新生赛]ez_unserialize

根据下面的user_agent和Disallow可以判断这个是在robots.txt 我们看的出来这是一个反序列化需要我们adminadmin passwdctf construct 构造方法&#xff0c;当一个对象被创建时调用此方法&#xff0c;不过unserialize()时却不会被调用 destruct 析构方法&#xff0c;PHP将在对象…