【PyTorch】深度学习实践 02 线性模型

深度学习的准备过程

  1. 准备数据集
  2. 选择模型
  3. 模型训练
  4. 进行推理预测

问题

对某种产品花费 x 个工时,即可得到 y 收益,现有 x 和 y 的对应表格如下:

x (hours)

y(points)
12
24
36
48

求花费4个工时可得到的收益。

问题分析

基本流程

数据集需要交付给算法模型进行训练,利用所训练的模型,在输入新的数据时可以获得相应的输出。

我们的数据集包含了输入数据和对应的输出,所以这是监督学习(supervised learning)。

训练集和测试集

在问题给出的数据表中,前三行里的每一个 x 都有其对应的 y ,也就是每一个输入数据都有对应的输出数据,因此前三行可以作为训练集(Training Set)来对模型进行训练。

第四行只给出了 x ,其对应的输出 y 是需要我们求解的,所以把这行作为测试集(Test Set)。

验证集

测试集的标准答案一般是不会给出的,所以我们不知道训练后的模型对问题的适配度如何。

如果利用全体训练集来进行验证,那这就是一种“自己考自己”的情况,容易导致过拟合,过拟合就是模型不仅学习到针对问题的数据特征,还会额外学习到一些“噪声”,也就是训练集中的一些无关乎问题解决的特征,这就会导致接下来的测试会有更大的偏差。

为了减小这种对训练集效果好、对测试集效果较差的偏差,提升模型的泛化能力,我们将训练集分为训练集和验证集(Validation Set),此时的训练集相当于作业,而验证集相当于小测,通过小测的查缺补漏,才能让我们在接下来的考试(测试集)中获得更高的分数。

在这道题中,我们可以把数据表的前两行作为训练集,第三行作为验证集。

模型设计

线性模型的基本模型 y = ωx + b 中,ω 和 b 是模型中的参数,训练模型的过程就是确定参数的过程。

在本问题中,将模型设置为 y = ωx,对于不同的 ω ,有不同的线性模型和图像与之对应。

模型训练过程

在模型训练中会先随机取得一个值,继而计算其和标准量之间的偏移量,从而判断当前模型是否符合预期。

记实际值为 y(x) ,模型对应的预测值为y^(x),则其中的偏移量为∣y^(x)−y(x)∣,以此来代表模型估计值对原值的误差。

通常,该公式定义为Training Loss (Error):

原题中的几种 ω 对应的 Loss 如下:

其中的每行为 w 不同时的单个样本的损失,最后一行为平均损失。

对于单个样本,有 Loss 可用于指代样本误差。对于所有样本,可同理用 Mean Square Error (MSE)来指代整体样本的平均平方误差(均方差cost):

由 cost 的计算公式可知,当平均损失为0时,模型最佳,但由于仅当数据无噪声且模型完美贴合数据的情况下才会出现这种情况,因此模型训练的目的应当是尽可能小,而非找到误差为0的情况。

代码及曲线图

import numpy as np
import matplotlib.pyplot as pltx_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
#前馈计算
def forward(x):return x * w
#求loss
def loss(x, y):y_pred = forward(x)return (y_pred-y)*(y_pred-y)w_list = []
mse_list = []
#从0.0一直到4.1以0.1为间隔进行w的取样
for w in np.arange(0.0,4.1,0.1):print("w=", w)l_sum = 0for x_val,y_val in zip(x_data,y_data):y_pred_val = forward(x_val)loss_val = loss(x_val,y_val)l_sum += loss_valprint('\t',x_val,y_val,y_pred_val,loss_val)print("MSE=",l_sum/3)w_list.append(w)mse_list.append(l_sum/3)#绘图
plt.plot(w_list,mse_list)
plt.ylabel("Loss")
plt.xlabel('w')
plt.show()

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

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

相关文章

Power BI 傻瓜入门 5. 准备数据源

本章内容将介绍: 定义Power BI支持的数据源类型探索如何在Power BI中连接和配置数据源了解选择数据源的最佳做法 现代组织有很多数据。因此,不用说,微软等企业软件供应商已经构建了数据源连接器,以帮助组织将数据导入Power BI等…

Microsoft Edge浏览器中使用免费的ChatGPT

一、双击打开浏览器 找到:扩展,打开 二、打开Microsoft Edge加载项 三、Move tab新标签 获取免费ChatGPT 四、启用Move tab。启用ChatGPT。 扩展 管理扩展 启用 五、新建标签页,使用GPT 六、使用举例 提问 GPT回复

asp.net网球馆计费管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net网球馆计费管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语 言开发 aspnet网球馆计费管理系统1 二、…

零售创新:社交媒体如何改变跨境电商游戏规则?

在当今数字化的时代,社交媒体已经成为了我们日常生活中不可或缺的一部分。Facebook、Instagram、Twitter、WeChat等平台不仅让我们与朋友家人保持联系,还成为了一个新的商业战场。特别是在跨境电商领域,社交媒体的崛起正在彻底改变游戏规则。…

选择实验室超声波清洗机具有哪些作用?

实验室超声波清洗机之所以一经面世就能迅速赢得众多消费者的心,这是因为实验室超声波清洗机设备厂家所提供的高性能超声波清洗机具有非常好的清洗效果。清洗效果的高低一直是各实验室关注的焦点问题,现在就选择实验室超声波清洗机具有哪些作用作简要阐述…

掌握测评补单技术对Shopee、Lazada店铺有什么好处?

虾皮(Shopee)、lazada作为东南亚地区最大的电商平台之一,吸引了众多卖家加入其平台,竞争激烈。在如此庞大的市场中,如何优化你的shopee、lazada店铺商品再结合自养号测评,提高曝光率和销售能力成为关键。本文将分享一些有效的方法…

数学预备知识

函数篇: 一次函数、反比例函数、二次函数、指数函数、对数函数、幂函数、三角函数、反三角函数、极点坐标等等 初中数学 【a,b】:开区间 (a,b):闭区间 ∞ :无穷大 ∞&#xff1…

UE4/5:通过Blender制作BlendShape导入【UE4/5曲线、变形目标,blender形态键】

UE4/5里面,我们经常可以在一些骨骼模型上面看到相关的曲线,如Metahuman里面就是通过这个曲线来改变人物的脸部表情。 而这里笔者将教导如何去制作这种曲线。 这种曲线都是存在于骨骼模型上的,所以我们要么直接制作骨骼模型导入ue&#xff0…

【Spring篇】数据源对象管理加载properties文件

🎊专栏【Spring】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出小吉的问题 文章目录 🌺数据源对象管理🛸基础版⭐在pom.xml文件中加入下面的代码&…

HIMA F3236 F7553 面向制造业的可视化人工智能

HIMA F3236 F7553 面向制造业的可视化人工智能 近年来,出现了一种分析高触摸制造的新解决方案:基于图像传感器数据的人工智能驱动分析。与时间和运动研究或Gemba Walks不同,分析从不停止,系统更不容易出现人为错误和偏差。 直到最近&#…

Nvidia显卡基础概念介绍

一、PCIe与SXM 1.1 Nvidia GPU PCIe PCIe(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,是英特尔公司在2001年提出来的,它的出现主要是为了取代AGP接口,优点就是兼容性比较好,数据传输速率高、…

吉利高端品牌领克汽车携手体验家,重塑智能创新的汽车服务体验

浙江吉利控股集团(以下简称“吉利集团”)始建于1986年,1997年进入汽车行业,一直专注实业,专注技术创新和人才培养,坚定不移地推动企业转型升级和可持续发展。现资产总值超5100亿元,员工总数超过…

百分点科技再度亮相GITEX全球大会

10月16-20日,全球最大科技信息展会之一 GITEX Global 2023在迪拜世贸中心开展,本届展会是历年来最大的一届,吸引了来自180个国家的6,000家参展商和180,000名技术高管参会。 百分点科技作为华为生态合作伙伴,继去年之后再度参展&a…

C++之std::string

string类与头文件包含&#xff1a;#include <string> string构造方法&#xff1a; // string constructor #include <iostream> #include <string>int main () {std::string s0 ("Initial string"); //根据已有字符串构造新的string实例// cons…

计算机系统概论

1. 现代计算机由哪两部分组成 计算机系统&#xff1a;硬件、软件

阿里云服务器续费流程_一篇文章搞定

阿里云服务器如何续费&#xff1f;续费流程来了&#xff0c;在云服务器ECS管理控制台选择续费实例、续费时长和续费优惠券&#xff0c;然后提交订单&#xff0c;分分钟即可完成阿里云服务器续费流程&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云服务器详细续费方法&am…

CPU和GPU有什么区别?

CPU&#xff1a;叫做中央处理器&#xff08;central processing unit&#xff09;作为计算机系统的运算和控制核心&#xff0c;是信息处理、程序运行的最终执行单元。 GPU&#xff1a;叫做图形处理器。图形处理器&#xff08;英语&#xff1a;Graphics Processing Unit&#x…

Linux安装Redis(这里使用Redis6,其它版本类似)

目录 一、选择需要安装的Redis版本二、下载并解压Redis三、编译安装Redis四、启动Redis4.1、修改配置文件4.2、启动 五、测试连接5.1、本地连接使用自带客户端redis-cli连接操作redis5.2、外部连接使用RedisDesktopManager操作redis 六、关闭Redis七、删除Redis 一、选择需要安…

Python图像处理【14】基于非线性滤波器的图像去噪

基于非线性滤波器的图像去噪 0. 前言1. min 滤波器2. max 滤波器3. mode 滤波器4. 高斯、中值、mode 和 max 滤波器对比小结系列链接 0. 前言 本节中我们将介绍诸如 max 和 min 之类的非线性滤波器&#xff0c;与中值滤波器一样&#xff0c;它们根据滑动窗口中像素的顺序统计信…

【数据分享】2023年我国上市公司数据(Excel格式/Shp格式)

企业是经济活动的参与主体&#xff0c;一个城市的企业数量决定了这个城市的经济发展水平&#xff01;之前我们分享过2023年高新技术企业数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;我国专精特新“小巨人”企业数据&#xff08;可查看之前的文章获悉详情…