2.线性回归
简化的房价模型
假设1:影响房价的关键因素时卧室个数,卫生间和居住面积,记为 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3
假设2:成交价时关键因素的加权和:
y = w 1 x 1 + w 2 x 2 + w 3 x 3 + b y = w_1x_1+w_2x_2+w_3x_3+b y=w1x1+w2x2+w3x3+b
权重和偏差的实际值在后面决定
范数
L p 范数: ∣ ∣ x ∣ ∣ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p L_p范数:||x||_p =(\sum^n _{i=1}|x_i|^p)^{\frac 1p}\\ Lp范数:∣∣x∣∣p=(i=1∑n∣xi∣p)p1
常用的有 L 1 L_1 L1范数和 L 2 L_2 L2范数
L1 范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。范数作为正则项,会让模型参数θ稀疏化, 既让模型参数向量里为0的元素尽量多。在支持向量机(support vector machine)学习过程中,实际是一种对于成本函数(cost function)求解最优,得出稀疏解。
L2 范数作为正则项式让模型参数尽量小,但不会为0,尽量让每个特征对预测值都有一些小的贡献,得出稠密解。
在梯度下降算法的迭代过程中,实际上是在成本函数的等高线上跳跃,并最终收敛在误差最小的点上(此处为未加正则项之前的成本误差)。而正则项的本质就是惩罚。 模型在训练的过程中,如果没有遵守正则项所表达的规则,那么成本会变大,即受到了惩罚,从而往正则项所表达的规则处收敛。 成本函数在这两项规则的综合作用下,正则化后的模型参数应该收敛在误差等值线与正则项等值线相切的点上。
一般的线性模型
n维输入 x = [ x 1 , x 2 , ⋯ , x n ] T x=[x_1,x_2,\cdots,x_n]^T x=[x1,x2,⋯,xn]T
线性模型有一个n维权重和一个标量偏差: w = [ w 1 , w 2 , ⋯ , w n ] T w = [w_1,w_2,\cdots,w_n]^T w=[w1,w2,⋯,wn]T
输出是输入的加权和 y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + n y=w_1x_1+w_2x_2+\cdots+w_nx_n +n y=w1x1+w2x2+⋯+wnxn+n
即
y = < w , x > + b y=<w,x> +b y=<w,x>+b
可以看作是单层的神经网络

衡量预估质量(损失函数)
比较真实值和预估值,损失函数。
例如 y y y是真实值, y ^ \hat y y^是估计值,则可以使用平方损失函数 l ( y , y ^ ) = 1 2 ( y − y ^ ) 2 l(y,\hat y)=\frac 12 (y-\hat y)^2 l(y,y^)=21(y−y^)2
参数学习
将训练数据带入,损失函数展开为
l ( 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 l(X,y,w,b)=\frac{1}{2n}\sum^n_{i=1}(y_i-<x_i,w>-b)^2 =\frac {1}{2n}||y-Xw-b||^2 l(X,y,w,b)=2n1i=1∑n(yi−<xi,w>−b)2=2n1∣∣y−Xw−b∣∣2
最小化损失来学习参数:
w ∗ , b ∗ = a r g m i n w , b l ( X , y , w , b ) w*,b* = arg\ min_{w,b} l(X,y,w,b) w∗,b∗=arg minw,bl(X,y,w,b)
优化方法
梯度下降
-
挑选一个初始值 w 0 w_0 w0
-
重复迭代参数 t = 1 , 2 , 3 , ⋯ t=1,2,3,\cdots t=1,2,3,⋯
w t = w t − 1 − α ∂ l ∂ w t − 1 w_t = w_{t-1}-\alpha \frac{\partial l}{\partial w_{t-1}} wt=wt−1−α∂wt−1∂l
沿梯度方向将增加损失函数值,学习率:步长的超参数,不能太小和太大,太小会导致计算太多次,太大会迈过了,在不停的振荡。

小批量随机梯度下降
在整个训练集上算梯度太贵,一个深度神经网络模型可能需要数分钟到数小时
我们可以随机采样b个样本 i 1 , i 2 , ⋯ , i b i_1,i_2,\cdots,i_b i1,i2,⋯,ib来近似损失
1 b ∑ i ∈ I b l ( x i , y i , w ) \frac{1}{b}\sum_{i\in I_b} l(x_i,y_i,w) b1i∈Ib∑l(xi,yi,w)
b是批量的大小,另一个重要的超参数
批量大小也不能太小,每次计算量太小,不适合并行来最大利用计算资源;不能太大,内存消耗增加浪费计算,例如如果所有样本都是相同的。
小批量梯度下降是深度学习默认的求解算法。
pytorch实现线性回归
import numpy as np
import torch
from torch.utils import data
from d2l import torch as d2l
from torch import nndef load_array(data_arrays, batch_size, is_train=True):"""构建一个PyTorch数据迭代器,随机挑选b个元素,is_train表明是随机的"""dataset = data.TensorDataset(*data_arrays)return data.DataLoader(dataset=dataset, batch_size=batch_size, shuffle=is_train)true_w = torch.tensor([2, -3.4])
true_b = 4.2
features, labels = d2l.synthetic_data(true_w, true_b, 1000) # 根据输入的两个参数w,b生成1000个随机数据batch_size = 10
data_iter = load_array((features, labels), batch_size, is_train=False)# print(next(iter(data_iter)))net = nn.Sequential(nn.Linear(2, 1)) # sequential是将层分为list of layers,可以通过下标来访问不同的层
# Linear指使用神经网络的线性层模型,输入有两个参数,输出有一个参数net[0].weight.data.normal_(mean=0, std=0.01) # 将第一层的layer中的参数w设置为(0,0.01)的正态分布
net[0].bias.data.fill_(0) # 将偏差b设置为0'''均方误差MSEloss'''
loss = nn.MSELoss()
'''SGD随机梯度下降'''
trainer = torch.optim.SGD(net.parameters(), lr=0.03) # 传入神经网络的所有参数,学习率为0.03num_epochs = 3
for epoch in range(num_epochs):for X, y in data_iter:l = loss(net(X), y)trainer.zero_grad()#梯度清零l.backward()#计算梯度trainer.step()#更新模型l = loss(net(features), labels)print(f'epoch: {epoch+1}, loss: {l:f}')相关文章:
2.线性回归
简化的房价模型 假设1:影响房价的关键因素时卧室个数,卫生间和居住面积,记为 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3 假设2:成交价时关键因素的加权和: y w 1 x 1 w 2 x 2 w 3 x 3 b y w_1x_1w_2x_2w_3x…...
一文了解java中Optional
文章目录 1. Optional简介2. 常用的接口2.1 常用接口简单使用2.1.1 创建的常用方法2.1.2 获取值的常用方法2.1.3 判定的常用方法2.1.4 判定后的操作方法2.2 map方法介绍 2.2 其他方法2.2.1 Filter 方法2.2.2 FlatMap 方法 3. 常用的实例4. 总结 1. Optional简介 Optional是在ja…...
提示词工程(Prompt Engineering)是什么?
一、定义 Prompt Engineering 提示词工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。 二、System message 系统指令 System message可以被广泛应用在&am…...
vue对axios进行请求响应封装
一、原因 像是在一些业务逻辑上,比如需要在请求之前展示loading效果,或者在登录的时候判断身份信息(token)等信息有没有过期,再者根据服务器响应回来的code码进行相应的提示信息。等等在请求之前,之后做的一…...
快速测试electron环境是否安装成功
快速测试electron环境是否安装成功 测试代码正确运行的效果运行错误的效果v22.4.1 版本无法使用v20.15.1版本无法使用v18.20.4 版本无法使用 终极解决办法 测试代码 1.npx create-electron-app my-electron-app 2.cd my-electron-app 3.npm start 正确运行的效果 环境没问题…...
数电设计提问求帮助,出租车计费器。
🏆本文收录于《CSDN问答解惑-》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…...
xcode项目添加README.md文件并进行编辑
想要给xcode项目添加README.md文件其实还是比较简单的,但是对于不熟悉xcode这个工具的人来讲,还是有些陌生,下面简单给大家讲一下流程。 选择“文件”>“新建”>“文件”,在其他(滚动到工作表底部)下…...
基于 cookiecutter 的 python 项目模板
Cookiecutter 介绍 使用 Python 这种动态语言进行 web 开发,团队中经常会遇到的问题就是代码的质量比较难控制。Python 语言本身灵活性比较高,不加控制的情况下代码质量可能最后很难维护。而且代码的各方面的标准,比如提示的 lint࿰…...
如何玩转澳大利亚Facebook直播?
近年来,直播带货已经成为国内最赚钱的行业之一,各种玩法也越来越成熟。然而,在海外市场,尤其是澳大利亚,直播带货仍然是一片蓝海。作为社交媒体营销的主阵地,Facebook的直播功能却常常被卖家忽视。那么&…...
C# IOC容器、依赖注入和控制反转
控制反转(Inversion of Control, IoC) 定义:控制反转是一种设计原则,它反转了传统编程中的控制流程。在传统的编程模式中,组件之间的依赖关系是由组件自身在内部创建和维护的。而在控制反转模式中,这种依赖…...
论文学习_An Empirical Study of Deep Learning Models for Vulnerability Detection
1. 引言 研究背景:近年来,深度学习漏洞检测工具取得了可喜的成果。最先进的模型报告了 0.9 的 F1 分数,并且优于静态分析器。结果令人兴奋,因为深度学习可能会给软件保障带来革命性的变化。因此,IBM、谷歌和亚马逊等行业公司非常感兴趣,并投入巨资开发此类工具和数据集。…...
ctfshow-web入门-文件上传(web166、web167)(web168-web170)免杀绕过
目录 1、web166 2、web167 3、web168 4、web169 5、web170 1、web166 查看源码,前端只让传 zip 上传 zip 成功后可以进行下载 随便搞一个压缩包,使用记事本编辑,在其内容里插入一句话木马: 上传该压缩包,上传成功…...
Jitsi Meet指定用户成为主持人
前言 在Jitsi Meet进行会议的时候,我们有可能会使用到预约会议的这一个功能,预约会议的时候,我们希望我预约的会议,我就是主持人,而不希望其他人是主持人。 但是Jitsi Meet默认会认为第一个进入房间的是主持人&#…...
MySQL慢查询日志详解与性能优化指南
1. 什么是慢查询日志 慢查询日志是MySQL提供的一种日志记录功能,它能够记录执行时间超过预设阈值的SQL查询语句,并将这些信息写入到日志文件中。 2. 查看慢查询日志的设置和状态 2.1 慢查询日志的开启状态和日志文件位置 通过以下命令可以查看慢查询…...
xml CDATA
]]>之间的任何内容标记为字符数据。内容不会被解释为标记。 <![CDATA[这里的任何文本,即使是也被解释为文本而不是起始标签]]> 这是什么意思? 这段描述解释了XML中CDATA部分的作用和用法。让我来详细解释一下: CDATA(Character Da…...
C++的线程管理
C的线程管理 线程类(Thread)线程构造器约定构造器初始化构造器复制构造器移动构造器 多线程atomiccondition_variable应用实列 futurepromise应用实列 future应用实列 线程类(Thread) 执行线程是一个指令序列,它可以在…...
捷配笔记-如何设计PCB板布线满足生产标准?
PCB板布线是铺设连接各种设备与通电信号的路径的过程。PCB板布线是铺设连接各种设备与通电信号的路径的过程。 在PCB设计中,布线是完成产品设计的重要步骤。可以说,之前的准备工作已经为它做好了。在整个PCB设计中,布线设计过程具有最高的极限…...
【Java数据结构】初识线性表之一:顺序表
使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法: public class MyArrayList { private int[] array; pri…...
对接高德开放平台API
高德开放平台API: https://lbs.amap.com/ 一、天气查询 天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo adcode城市码表下载: https://lbs.amap.com/api/webservice/download Component public class WeatherUtil {Resourceprivate GdCon…...
Linux 初识
目录 编辑 1.Linux发展史 1.1UNIX发展历史 1.2Linux发展历史 2.Linux的开源属性 2.1 开源软件的定义 2.2 Linux的开源许可证 2.3 开源社区与协作 3.Linux的企业应用现状 3.1 服务器 3.1.1 Web服务器 3.1.2 数据库服务器 3.1.3 文件服务器 3.1.4 电子邮件服务器 …...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
