当前位置: 首页 > news >正文

pytorch学习——线性神经网络——1线性回归

概要:线性神经网络是一种最简单的神经网络模型,它由若干个线性变换和非线性变换组成。线性变换通常表示为矩阵乘法,非线性变换通常是一个逐元素的非线性函数。线性神经网络通常用于解决回归和分类问题。

一.线性回归

        线性回归是一种常见的机器学习算法,用于建立一个输入变量与输出变量之间的线性关系模型。在这种模型中,假设输入变量与输出变量之间存在一个线性关系,即输出变量可以通过输入变量的线性组合来预测。线性回归模型会尝试找到一条最佳拟合直线,使得该直线能够最好地拟合输入变量和输出变量之间的关系。

1.1线性模型

1.2损失函数

        损失函数(loss function)是用于衡量模型预测结果与真实结果之间差异的函数,通常我们会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0。

        在训练过程中,模型的目标是尽可能减小损失函数的值,以达到更准确地预测结果的目的。损失函数的选择对模型的训练和性能具有重要影响。通常将数据集分为训练集和测试集,模型在训练集上进行训练,通过优化损失函数来调整模型的参数。训练完成后,使用测试集来评估模型的性能。

1.2.1常见损失函数

  1. 均方误差(Mean Squared Error,MSE):计算预测值与真实值的平方差的平均值,适用于回归问题。

  2. 交叉熵(Cross Entropy):用于分类问题,计算预测值和真实值之间的差异,通常用于多分类问题。

  3. 对数损失(Log Loss):也用于分类问题,通常用于二分类问题,计算预测值和真实值之间的差异。

  4. Hinge loss:用于支持向量机(Support Vector Machine,SVM)的训练中,计算预测值和真实值之间的差异。

  5. KL 散度(Kullback-Leibler Divergence,KL Divergence):用于比较两个概率分布的差异,通常用于生成模型的训练中。

1.2.2损失函数的选择 

        具体选择哪种损失函数取决于具体问题的性质和需求。在选择损失函数时,应该考虑损失函数的数学性质、对模型训练的影响、对模型性能的影响等方面的因素。

二.实例——以买房为例

2.1房价模型

 其中5498000是预估价格,并非成交价格,房价与多因素相关,房价是一个预测问题

 上图中曲线是系统的估价,最好的情况是买入价格比预估价格低,通过此例子引出现线性回归

 线性模型关键因素:权重,偏差

 个人理解:权重是指各个因素对房子价格的影响程度,加权和是指根据不同的权重对一个序列中的元素进行加权求和的过程。在房价中,加权和是指所有影响因素都考虑情况下,制定的房子价格,偏差是指房价的预测价格和真实价格之间的差异。

线性模型可以看做是单层神经网络

 输入层:d个输入元素,输入维度是d,输出维度是1

每个箭头代表了一个权重,这里没有画偏差

此神经网络有输入层和输出层,但之所以叫单层神经网络,是因为带权重的层只有一层——输入层

可以不把输出层当成一个层,因为权重和输入层放在一起

2.2房价预测

        有了房价模型,就做预测

 衡量预估质量:衡量我们模型预估的准确度,区别越小,模型质量越高,区别越大,模型质量越低

平方损失:我们没有完全猜中真实值所带来的损失(例如经济损失)

有了模型和损失,我们来学习参数

 假设每个样本x都是一个列向量,y也是一个列向量,每个yi是一个实验数值

x:特征集合            y:预测值

有了模型,损失,参数,现在来求解我们的模型

 根据我们之前的损失,给定数据,然后来评估模型在每一个数据上的损失平均值,就会得到一个损失训练函数

 目标:找到一个w和b使得训练损失最小——最小化损失来学习参数

因为是线性模型,所以有显示解(一般线性模型都有)

 解释:特征集合X后面加一列全1的特征,然后把偏差放到权重w的最后一行,这样Xw后=Xw前+偏差b

 总结:

相关文章:

pytorch学习——线性神经网络——1线性回归

概要:线性神经网络是一种最简单的神经网络模型,它由若干个线性变换和非线性变换组成。线性变换通常表示为矩阵乘法,非线性变换通常是一个逐元素的非线性函数。线性神经网络通常用于解决回归和分类问题。 一.线性回归 线性回归是一种常见的机…...

00 - RAP 开发环境配置

文章目录 [1] Eclipse - ADT[2] BTP / S4HC[3] Add ABAP Env. Service[4] Conn. to BTP [1] Eclipse - ADT 关于如何安装配置,参见文章: Install ABAP Development Tools (ADT) and abapGit Plugin Eclipse Eclipse - ADT Eclipse - abapGit Plugin [2] BTP / S4…...

山西电力市场日前价格预测【2023-08-01】

日前价格预测 预测明日(2023-08-01)山西电力市场全天平均日前电价为310.15元/MWh。其中,最高日前电价为335.18元/MWh,预计出现在19: 45。最低日前电价为288.85元/MWh,预计出现在14: 00。 价差方向预测 1:实…...

QT--day5(网络聊天室、学生信息管理系统)

服务器: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间servernew QTcpServer(this); }Widget::~Widget() {delete ui; …...

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话,可以关闭idea,重启再等等即可。 设置sbt依赖 将sbt…...

HEVC 速率控制(码控)介绍

视频编码速率控制 速率控制: 通过选择一系列编码参数,使得视频编码后的比特率满足所有需要的速率限制,并且使得编码失真尽量小。速率控制属于率失真优化的范畴,速率控制算法的重点是确定与速率相关的量化参数(Quantiz…...

四大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)

四大软件测试策略分别是单元测试、集成测试、确认测试和系统测试。 一、单元测试 单元测试也称为模块测试,它针对软件中的最小单元(如函数、方法、类、模块等)进行测试,以验证其是否符合预期的行为和结果。单元测试通常由开发人…...

ingress-nginx controller安装

文章目录 一、ingress-nginx controller安装环境 1.1 部署yaml1.2 镜像1.3 安装操作 一、ingress-nginx controller安装 环境 kubernetes版本:1.27.1操作系统:CentOS7.9 1.1 部署yaml deploy.yaml apiVersion: v1 kind: Namespace metadata:labels:…...

开源快速开发平台:做好数据管理,实现流程化办公!

做好数据管理,可以提升企业的办公协作效率,实现数字化转型。开源快速开发平台是深受企业喜爱的低代码开发平台,拥有多项典型功能,是可以打造自主可控快速开发平台,实现一对一框架定制的软件平台。在快节奏的社会中&…...

基于深度学习的裂纹图像分类研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

TypeScript入门学习汇总

1.快速入门 1.1 简介 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在…...

Vue3使用vxetable进行表格的编辑、删除与新增

效果图如下: vxetable4传送门 一、引入插件 package.json中加入"vxe-table": "4.0.23",终端中执行npm i导入import {VXETable, VxeTableInstance...

JUC 并发编程之JMM

目录 1. 内存模型JMM 1. 1 主内存和工作内存 1.2 重排序 1. 内存模型JMM Java内存模型是Java虚拟机(JVM)规范中定义的一组规则,用于屏蔽各种硬件和操作系统的内存访问差异,保证多线程情况下程序的正确执行。Java内存模型规定了…...

k8s集群中安装kibana 7.x 踩坑

1. FATAL ValidationError: child "server" fails because [child "port" fails because ["port" must be a number]] 解决办法: 在环境变量中指定端口: - name: SERVER_PORTvalue: 5601 2. Kibana FATAL Error: [elast…...

CSS的一些基础知识

选择器: 选择器用于选择要应用样式的HTML元素。常见的选择器包括标签选择器(如 div、p)、类选择器(如 .class)、ID选择器(如 #id)和伪类选择器(如 :hover)。选择器可以根…...

解决多线程环境下单例模式同时访问生成多个实例

如何满足单例:1.构造方法是private、static方法、if语句判断 ①、单线程 Single类 //Single类,定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例 public class LazySi…...

转转闲鱼交易猫源码搭建

后台一键生成链接,独立后台管理 教程:修改数据库config/Conn.php 不会可以看源码里有教程 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...

设计模式精华版汇总

以下是个人整理的设计模式汇总,将会持续更新工作和面试中经常用到的设计模式。 设计模式-装饰者模式(包装模式)- 案例分析和源码分析​​​​​​ 设计模式-代理模式:控制访问的设计模式 - 案例分析 设计模式-门面模式&#xf…...

uniapp实现带参数二维码

view <view class"canvas"><!-- 二维码插件 width height设置宽高 --><canvas canvas-id"qrcode" :style"{width: ${qrcodeSize}px, height: ${qrcodeSize}px}" /></view> script import uQRCode from /utils/uqrcod…...

金融行业软件测试面试题及其答案

下面是一些常见的金融行业软件测试面试题及其答案&#xff1a; 1. 什么是金融行业软件测试&#xff1f; 金融行业软件测试是针对金融领域的软件系统进行验证和确认的过程&#xff0c;旨在确保软件在安全、稳定、可靠和符合法规要求的条件下运行。 2. 解释一下金融软件中的风险…...

强化学习QLearning 进行迷宫游戏和代码

强化学习是机器学习里面的一个分支。它强调基于环境而探索行动、学习&#xff0c;以取得最大化的预期收益。其灵感来源于心理学中的行为主义理论&#xff0c;既有机体如何在环境给予的奖励或者惩罚的刺激下&#xff0c;逐步形成对刺激的预期&#xff0c;产生能够最大利益的习惯…...

Vue2 第九节 过滤器

&#xff08;1&#xff09;定义&#xff1a;对要显示的数据进行特定格式化后再显示 &#xff08;2&#xff09;语法&#xff1a; ① 注册过滤器 1&#xff09;Vue.filter(name, callback) 全局过滤器 2&#xff09; new Vue({filters:{}}) 局部过滤器 ② 使用过滤器 1&…...

Swift 对象数组去重

使用 reduce 方法去重 使用 reduce 方法结合 contains 方法可以实现去重。reduce 方法用于将数组的元素进行累积计算&#xff0c;而 contains 方法用于检查元素是否已经存在于结果数组中。 struct SearchRecord: Equatable {let id: Intlet name: String }let records [Sear…...

代码随想录算法训练营day52 300.递增子序列 674.最长连续递增子序列 718.最长重复子数组

题目链接300.递增子序列 class Solution {public int lengthOfLIS(int[] nums) {int[] dp new int[nums.length];Arrays.fill(dp, 1);for(int i 0; i < nums.length; i){for(int j 0; j < i; j){if(nums[i] > nums[j]){dp[i] Math.max(dp[i], dp[j] 1);}}}int r…...

Android 面试题 虚拟机、进程、线程 七

&#x1f525; 安卓虚拟机 &#x1f525; 虽然Android程序是使用Java语言开发的&#xff0c;当然&#xff0c;现在也可以使用kotlin语言。但是实际上我们开发出来的Android程序并不能运行在JVM上&#xff0c;而是只能运行在一个类似JVM的Android虚拟机上。Android虚拟机有两种&…...

Flutter 状态组件 InheritedWidget

Flutter 状态组件 InheritedWidget 视频 前言 今天会讲下 inheritedWidget 组件&#xff0c;InheritedWidget 是 Flutter 中非常重要和强大的一种 Widget&#xff0c;它可以使 Widget 树中的祖先 Widget 共享数据给它们的后代 Widget&#xff0c;从而简化了状态管理和数据传递…...

<C++> 入门

在学习完C语言的基础上&#xff0c;继续开始C的学习。 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式等。熟悉C语言之后&#xff0c;对C学习有一定的帮助。 1. 补充C语言语法的不足&#xff0c;以及C是如…...

政策加持智能家居市场,涂鸦赋能客户打造“以人为本”智能生活新方式

7月18日&#xff0c;商务部等13部门联合发布了《关于促进家居消费若干措施的通知》&#xff08;以下简称《通知》&#xff09;&#xff0c;《通知》指出&#xff0c;创新培育智能消费&#xff0c;支持企业运用物联网、云计算、人工智能等技术&#xff0c;着重加快智能家电、智能…...

安全渗透初级知识总结-2

CIA三原则&#xff1a;保密性&#xff0c;完整性&#xff0c;可用性 https:解决了安全传输问题 核心技术&#xff1a;用非对称加密传输对称加密的秘钥&#xff0c;然后用对称秘钥通信 抓包&#xff1a;Wireshark、tshark、tcpdump valueof方法是一个所有对象都拥有的方法&am…...

数学建模的32种常规方法及案例代码

比赛期间整理的数学建模的32种常规方法及案例代码友情分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/18uDr1113a0jhd2No8O1Nog 提取码&#xff1a;xae5 在数学建模中&#xff0c;常规算法是指那些被广泛应用于各种问题求解的经典算法。这些算法覆盖了不同的数学…...