机器学习深度学习——线性回归的基本元素
回归用来表示输入输出之间的关系。
用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。
在机器学习中,这个数据集称为训练集(training set),每行数据称为样本(sample)或数据点(data point),试图预测的目标称为标签(label)或目标(target)。预测所依据的自变量(面积和房龄)称为特征(feature)。
通常,我们使用n来表示数据集中的样本数。对索引为i的样本,其输入表示为:
x ( i ) = [ x 1 ( i ) , x 2 ( i ) ] T x^{(i)}=[x_1^{(i)},x_2^{(i)}]^T x(i)=[x1(i),x2(i)]T
其对应的标签是:
y ( i ) y^{(i)} y(i)
线性回归的基本元素
- 线性模型
- 损失函数
- 解析解
线性模型
p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b price=w_{area}·area+w_{age}·age+b price=warea⋅area+wage⋅age+b
其中,w为权重,决定了每个特征对我们预测值的影响。b为偏置,指当所有特征取0时的预测值。
严格来说,上式是输入特征的一种仿射变换,其特点是通过加权和特征进行线性变换,并通过偏置项来进行平移。
而在机器学习中,通常使用高维数据集,建模时采用线性代数表示法会比较方便。当我们的输入包含d个特征时,我们将预测结果表示为:
y ^ = w 1 x 1 + . . . + w d x d + b \hat{y}=w_1x_1+...+w_dx_d+b y^=w1x1+...+wdxd+b
将所有的特征放到向量x中,并将所有权重放到向量w中,可以用点积来简洁地表达模型:
y ^ = w T x + b \hat{y}=w^Tx+b y^=wTx+b
显然,向量x只能对应于单个数据样本的特征。
用符号表示的矩阵X可以很方便地引用我们整个数据集的n个样本。其中,X的每一行是一个样本,每一列是一种特征。
对于特征集合X,预测值可以通过矩阵-向量乘法表示为:
y ^ = X w + b \hat{y}=Xw+b y^=Xw+b
这个过程中的求和将使用广播机制,给定X和y,线性回归的目标就是找到一组权重向量w和偏置b:当给定从X的同分布中取样的新样本特征时,能使得新样本预测标签的误差尽可能小。
但即使确信特征与标签的潜在关系是线性的, 我们也会加入一个噪声项来考虑观测误差带来的影响。
因此,在开始寻找最好的模型参数w和b之前,还需要两个东西:
(1)一种模型质量的度量方式
(2)一种能够更新模型以提高模型预测质量的方法
损失函数
损失函数能够量化目标的实际值与预测值之间的差距。通常选择非负数作为损失,数值越小表示损失越小,完美预测的损失为0。
回归问题中最常用损失函数是平方误差函数:
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w,b)=\frac{1}{2}(\hat{y}^{(i)}-y^{(i)})^2 l(i)(w,b)=21(y^(i)−y(i))2
常数1/2不会带来本质上的差别,但这样的形式会稍微简单一点(因为求导后常系数会变为1)。
由于平方误差函数中的二次方项,估计值和观测值之间较大的差异会导致更大的损失。为了度量模型在整个数据集上的质量,我们要计算在训练集n个样本上的损失均值(等价于求和):
L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w T x ( i ) + b − y ( i ) ) 2 L(w,b)=\frac{1}{n}\sum_{i=1}^nl^{(i)}(w,b) =\frac{1}{n}\sum_{i=1}^n{\frac{1}{2}(w^Tx^{(i)}+b-y^{(i)})^2} L(w,b)=n1i=1∑nl(i)(w,b)=n1i=1∑n21(wTx(i)+b−y(i))2
在训练模型时,希望寻找一组参数,这组参数能最小化在所有训练样本上的总损失。
解析解
线性回归是一个很简单的优化问题,线性回归的解可以用一个公式简单表达,这类解叫做解析解。
首先,将偏置b合并到参数w中,合并方法是在包含所有参数的矩阵中附加一列。我们的预测问题是最小化:
∣ ∣ y − X w ∣ ∣ 2 ||y-Xw||^2 ∣∣y−Xw∣∣2
这在损失平面上只有一个临界点,对应于整个取余的损失极小点。将损失关于w的导数设为0,得到解析解:
w ∗ = ( X T X ) − 1 X T y w^*=(X^TX)^{-1}X^Ty w∗=(XTX)−1XTy
但是解析解对问题限制太严格,不适合广泛应用于深度学习,接下来讲解随机梯度下降,几乎可以用来优化所有深度学习模型。
相关文章:
机器学习深度学习——线性回归的基本元素
回归用来表示输入输出之间的关系。 用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。 在机器学习中,这个数…...

K8S初级入门系列之八-网络
一、前言 本章节我们将了解K8S的相关网络概念,包括K8S的网络通讯原理,以及Service以及相关的概念,包括Endpoint,EndpointSlice,Headless service,Ingress等。 二、网络通讯原理和实现 同一K8S集群&…...
分段@Transactional 坑及失效问题
Transactional 背景:在某些情况下,我们需要分段transaction,在最外面没有transaction,里面分成几个transaction,保证分段是成功的。 问题代码: Service public Order getOrder1(String id) {Optional<Or…...

25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)
1.简述 基本思想 黄金分割法也称为 0.618 法,其基本思想是通过取试探点和进行函数值比较,使包含极小点的搜索区间不断缩短以逼近极小值点。适用于确定区间上的任何单谷函数求极小值的问题。 公式推导 设有定义在[ a , b ] [a,b][a,b]上的单谷函数 φ ( …...

点云拟合球体
前言:在很多情况下,需要根据点云来拟合球体,本博文主要介绍各种方法的拟合情况及优缺点,希望对各位小伙伴有所帮助! 目录 1. vtkFitImplicitFunction进行球拟合 2. 四点求解球 1. vtkFitImplicitFunction进行球拟合 …...
基于动态规划(DP)算法的增程式EV能量管理策略研究(MATLAB编程)
文章目录 算法代码仿真结果结果分析算法代码 clc; clear; close all; load CWTVC.mat N=length(T_z); %N=200;load minFuelConsup.txt minFuel_Pe=minFuelConsup(:...

前端知识点视频补充
使用工具: Vscode使用: 需要下载插件:open in browser。这个插件可以快速打开浏览器。 选择文件夹有两种方式:选择打开文件、拖拽方式(这种最方便) 快捷键:快速生成Htm结构文件:…...
python多线程—终止子线程
总体思路 1、获取需要终止的子线程id 2、根据子线程id,终止子线程。 过程 获取子线程id: import threading Thread_id threading.get_ident() # 获取子线程的id值线程终止函数 def async_raise(Thread_id, exctype):"""raises th…...
#P1012. [NOIP2015提高组] 神奇的幻方
题目描述 幻方是一种很神奇的 N \times NNN 矩阵:它由数字 1,2,3, \ldots ,N \times N1,2,3,…,NN 构成,且每行、每列及两条对角线上的数字之和都相同。 当 NN 为奇数时,我们可以通过以下方法构建一个幻方: 首先将 11 写在第一行…...

(学习笔记-IP)Ping的工作原理
Ping是基于ICMP协议工作的,ICMP报文封装在IP包里面,它工作在网络层,是IP协议的助手。 ICMP包头的类型字段,大致可分为两大类: 一类是用于诊断的查询消息,也就是查询报文类型一类是通知出错原因的错误消息&…...
php 进程间通信:管道、uds
1、管道 1.1、管道概念 管道是单向的、先进先出的,它把进程的输出和另一个进程的输入连接在一起。一个进程往管道写入数据,另一个进程从管道读取数据。数据被从管道中读取出来之后,将被删除,其他进程无法在读取到相应的数据。管…...

Stable Diffusion如何生成高质量的图-prompt写法介绍
文章目录 Stable Diffusion使用尝试下效果prompt的编写技巧prompt 和 negative promptPrompt格式Prompt规则细节优化Guidance Scale 总结 Stable Diffusion Stable Diffusion是一个开源的图像生成AI系统,由Anthropic公司开发。它基于 Transformer模型架构,可以通过文字描述生成…...

MySQL 高级SQL语句(一)
目录 一、高级SQL语句(进阶查询) 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句(进阶查询) 先准备2个表 一个location表: use m…...

SkyWalking链路追踪-技术文档首页
SkyWalking 文档中文版(社区提供) (skyapm.github.io)https://skyapm.github.io/document-cn-translation-of-skywalking/ SkyWalking-基本概念 SkyWalking链路追踪是一个用于分布式系统的性能监控工具,它帮助开发人员了解系统中各组件之间…...

AndroidStudio Memory profiler(内存分析器)
1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见,短时间内创建了23个char[] 数组,其中最大的char[] 占用20k, 查看cll stack 调用…...

【C++模板进阶】
目录 一、模板使用时的一个小注意点二、非类型模板参数三、类模板的特化3.1函数模板的特化3.2类模板的特化3.2.1全特化3.2.2偏特化 四、模板的分离编译4.1模板不支持分离编译4.2模板分离编译报错的分析4.2解决方案 五、模板的总结 一、模板使用时的一个小注意点 在使用模板时&…...

(一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理
Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理 文章目录 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理RabbitMQ概念RabbitMQ的优势RabbitMQ劣势RabbitMQ应用的场景RabbitMQ_AMQPRabbitMQ工作原理 RabbitM…...

JetBrains全家桶:如何自定义实现类TODO注释?
文章目录 效果图具体方法参考文献 效果图 TODO注释大家应该都用过,在注释开头打上TODO的话,软件下方的TODO选项卡里就可以自动筛选出你打了TODO的注释,你可以点击里面对应的注释来实现快速跳转。 jetbrains全家桶(如Pycharm、Int…...

【技术干货】工业级BLE5.2蓝牙模块SKB378 使用教程,AT指令集
SKB378是一个高度集成的蓝牙5.2模组,可用来在2.4GHz ISM频段内做高速率、短距离无线通信。工业级标准,支持主从模式(1主对8从),支持串口透传,AT指令控制,且支持AoA蓝牙高精度室内定位,模组内部集成32位ARM …...

零基础深度学习——学习笔记1 (逻辑回归)
前言 因为各种各样的原因要开始学习深度学习了,跟着吴恩达老师的深度学习视频,自己总结一些知识点,以及学习中遇到的一些问题,以便记录学习轨迹以及以后复习使用,为了便于自己理解,我会将一些知识点用以个…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...