机器学习——2.损失函数loss

基本概念

损失函数也叫代价函数。损失函数就是计算预测结果和实际结果差距的函数,机器学习的过程就是试图将损失函数的值降到最小

图左:|t_p - t_c|             图右:(t_p - t_c)**2

代码实现

过程推导

训练数据:

t_c = [0.5,14.0,15.0,28.0,11.0,8.0,3.0,-4.0,6.0,13.0,21.0]
t_u = [35.7,55.9,58.2,81.9,56.3,48.9,33.9,21.8,48.4,60.4,68.4]

通过散点图观察到训练数据与真值对应关系是线性变化,我们假设该方程为:y=wx+b

由此可以定义一个模型:

# 定义模型,假设这是一个简单的线性模型
def model(t_c,w,b):return t_c*w+b

我们需要计算预测值与真实值的差距(损失函数)来更新w和b的参数,来找到最适合的w和b值。

# 定义损失计算函数
def loss_fn(t_p,t_c):return ((t_p-t_c)**2).mean()

计算损失:

w = torch.ones(())
b = torch.zeros(())
t_p = model(t_c,w,b)
loss = loss_fn(t_p,t_u)
# loss tensor(1763.8848)

手动更新损失降损失降低至最小:

w = torch.ones(())
b = torch.ones(())
t_p = model(t_c,w,b)
loss = loss_fn(t_p,t_u)
# loss tensor(1682.2847)

完整代码

import torch
import numpy as np
import matplotlib.pyplot as plt
# 训练数据
t_c = [0.5,14.0,15.0,28.0,11.0,8.0,3.0,-4.0,6.0,13.0,21.0]
# 对应真值
t_u = [35.7,55.9,58.2,81.9,56.3,48.9,33.9,21.8,48.4,60.4,68.4]
t_c = torch.tensor(t_c)
t_u = torch.tensor(t_u)
# 数据观察
# plt.scatter绘制散点图,参数C是点的颜色,edgecolors是点的边框颜色
plt.scatter(t_c,t_u,c='r',edgecolors='g')
# 定义模型,假设这是一个简单的线性模型
def model(t_c,w,b):return t_c*w+b
# 定义损失计算函数
def loss_fn(t_p,t_c):return ((t_p-t_c)**2).mean()# 计算损失
w = torch.ones(())
b = torch.zeros(())
t_p = model(t_c,w,b)
loss = loss_fn(t_p,t_u) # tensor(1763.8848)# 手动更新损失
w = torch.ones(())
b = torch.ones(())
t_p = model(t_c,w,b)
loss = loss_fn(t_p,t_u) # tensor(1682.2847)

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

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

相关文章

图像分割入门-Unet++理论与实践

探索 U-net:改进的图像分割神经网络 引言 图像分割是计算机视觉领域中的重要任务,旨在将图像中的每个像素分配到特定的类别或区域。在许多应用中,如医学影像分析、自动驾驶和地块识别等领域,图像分割都扮演着关键角色。 U-net …

echars设置渐变颜色的方法

在我们日常的开发中,难免会遇到有需求,需要使用echars设置渐变的图表,如果我们需要设置给图表设置渐变颜色的话,我们只需要在 series 配置项中 添加相应的属性配置项即可。 方式一:colorStops type:‘lin…

基于EWT联合SVD去噪

一、代码原理 (1)基于EWT-SVD的信号去噪算法原理 经验小波变换(Empirical Wavelet Transform,EWT):EWT是一种基于信号局部特征的小波变换方法,能够更好地适应非线性和非平稳信号的特性。奇异值…

Maria DB 安装(含客户端),看这一篇就够了

文章目录 一 安装前准备1 版本与Win平台对应2 推荐安装 二 安装步骤1 安装主体程序2 添加系统路径Path 三 客户端 一 安装前准备 1 版本与Win平台对应 版本对应关系可参考: https://www.codebye.com/mariadb-deprecated-package-platforms.html。 2 推荐安装 经…

AI工具如何改变我们的工作与生活

AI工具在当今社会中扮演着越来越重要的角色,它们已经开始改变着我们的工作方式和生活方式。在接下来的2000字篇幅中,我将详细探讨AI工具如何影响我们的工作和生活。 AI工具在工作中的影响: 自动化和智能化生产流程: AI工具可以通…

嵌入式开发软件编码规范——C语言编码规范大全总结(规范开发,快乐你我他她它)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》

【driver1】内核模块,设备号,字符驱动

文章目录 1.内核模块:必须包含module.h2.内核模块参数:权限位S_IRUGO是用在sysfs文件系统里2.1 extern:声明来自另一个模块 3.设备号:主设备号对应驱动程序,具有相同主设备号设备使用相同驱动程序,次设备号…

程序员的实用神器

概述 在软件开发的海洋中,程序员们需要依赖一整套实用的工具和系统来指引、加速和优化他们的工作流程。我们从代码编写、版本控制到测试和部署罗列一些广泛认可的“神器”: 1. 代码编辑器和集成开发环境(IDE) - Visual Studio C…

cURL:命令行下的网络工具

序言 在当今互联网时代,我们经常需要与远程服务器通信,获取数据、发送请求或下载文件。在这些情况下,cURL 是一个强大而灵活的工具,它允许我们通过命令行进行各种类型的网络交互。本文将深入探讨 cURL 的基本用法以及一些高级功能…

linux中各类查看用户的命令(随手记)

在Linux系统中,查看用户信息的命令有很多,而且显示的内容各有各的区别: whoami: 显示当前用户的用户名。 whoamiid: 显示当前用户的UID、GID以及用户和组的名称。 idwho: 显示当前登录的所有用户的信息&…

详说及分享AI工具

现在的AI工具种类繁多,涵盖了多个领域,包括但不限于聊天机器人、搜索引擎、图像生成、写作辅助、音频处理等。以下是一些当前流行的AI工具及其优缺点,并尝试说明最喜欢和最好用的工具及其原因: ChatGPT: 优点&#x…

C++:特殊类的设计 | 单例模式

目录 1、特殊类的设计 2、设计一个类,不能被拷贝 3、设计一个类,只能在堆上创建对象 4、设计一个类,只能在栈上创建对象 5、设计一个类,不能被继承 6、单例模式 1、饿汉模式 2、懒汉模式 1、特殊类的设计 在实际应用场景中…

gateway基本配置详解

Spring Cloud Gateway 是 Spring Cloud 的一个组件,它基于 WebFlux 框架,用于构建 API 网关。API 网关是微服务架构中的一个重要组件,它作为系统的入口,负责处理客户端请求,并将请求路由到相应的服务。以下是 Spring C…

系统镜像地址

系统镜像 Linux 官网下载地址:Downloadhttps://www.centos.org/download/ 阿里云镜像下载地址:https://mirrors.aliyun.com/centos/https://mirrors.aliyun.com/centos/?spma2c6h.13651104.d-2001.6.6554320cwFqB8E 清华大学镜像下载地址&#xff1…

SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab)

SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab) 目录 SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现WOA-BiTCN-BiGRU-A…

【C++】学习笔记——list

文章目录 八、list1. list的介绍2. list的使用3. list的模拟实现4. list模拟实现的代码整合1. list.h2. test.cpp 未完待续 八、list list链接 1. list的介绍 是的, list 就是带头双向循环链表。 2. list的使用 通过 string 和 vector 的学习,我们差…

PT通过size vt修时序脚本

常用到mmmc的情况下通过synopsys的prime time的multisceanrio 模式提高fix 效率 以下内容仅供学习参考 ##start job:dsubjob pt_shell -multi_scenario -f setup_size_vt.tcl set date [exec date %m%d%H%M] set work_path setup_fixvt_${date} sh rm -rf ./$work/* set_hos…

基于TL431和CSA的恒压与负压输出

Hello uu们,51去那里玩了呀?该收心回来上班了,嘿嘿! 为什么会有这个命题,因为我的手头只有这些东西如何去实现呢?让我们一起来看电路图吧.电路图如下图1所示 图1:CSA恒压输出电路 图1中,R1给U2提供偏置,Q1给R1提供电流,当U1-VOUT输出大于2.5V时候,U2内部的三极管CE导通,使得…

第四百九十二回

文章目录 1. 概念介绍2. 使用方法2.1 SegmentedButton2.2 ButtonSegment 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"SearchBar组件"相关的内容,本章回中将介绍SegmentedButton组件.闲话休提,让我们一起Talk …

Qt扫盲-Qt D-Bus概述

Qt D-Bus概述 一、概述二、总线三、相关概念1. 消息2. 服务名称3. 对象的路径4. 接口5. 备忘单 四、调试五、使用Qt D-Bus 适配器1. 在 D-Bus 适配器中声明槽函数1. 异步槽2. 只输入槽3. 输入输出槽4. 自动回复5. 延迟回复 一、概述 D-Bus是一种进程间通信(IPC)和远程过程调用…