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

2 模型评估与选择

目录
  • P18
  • P23
  • P25

P18

可以好好想一下ROC曲线是如何形成的:我们设置不同的二分类的阈值,就会有不同的(TPR,FPR)对;如果我们将所有数据按照其置信度从大到小排序,然后让阈值逐渐减小,并在ROC曲线上进行描点,那么我们可以发现,如果遇到一个正例,那么当前点会竖直向上走\(\frac{1}{m_+}\),如果遇到一个负例,那么当前点会水平向右走\(\frac{1}{m_-}\);所以真正的ROC曲线一定是由一个一个小矩形组成的(不会画出像PPT里面的那种折线图);我们要算AUC,那么只需要把这些小矩形的面积全部加起来就可以了;根据上面的分析,小矩形宽度和高度的增量都是固定的,所以我们只需要算出满足负例得分比正例得分低的正负例对的数量即可(就是说,现在有一个正负例对,如果这个正例的置信度比负例高,那么计数器就加一,否则计数器不变),这个样子统计出来就是AUC=\(\frac{1}{m_+\times m_-}\sum\sum I(f(x^+)>f(x^-))\),也就是PPT里面那个式子的等价形式

有了上面的过程就不难理解为什么AUC越大越好了,这就说明正例和负例之间分的很开,就很好区分(如果AUC为1那么就是完全可分的情形),如果AUC很低,那么正例和负例之间就夹杂在一起了

P23

假设现在有多个数据集,然后有三个算法,每个算法在每个数据集上进行测试,于是可以求出每个算法在所有数据集上测试分数的平均,PPT里说的平均序值就是这个平均
伸出来的那个线是image

P25

我们来给出一个非常严格和形式化的机器学习泛化误差定义。
在统计学习理论的框架下,我们通常假设数据 \((x, y)\) 从一个固定的、未知的概率分布 \(\mathcal{D}\) 中独立同分布(i.i.d.)地采样得到。

设:

  • \(\mathcal{X}\) 为输入空间(特征空间)。
  • \(\mathcal{Y}\) 为输出空间(标签空间)。
  • \(\mathcal{D}\)\(\mathcal{X} \times \mathcal{Y}\) 上的联合概率分布。
  • \(\mathcal{H}\) 为假设空间(Hypothesis Space),是我们考虑的所有可能模型的集合。一个假设 \(h \in \mathcal{H}\) 是一个从 \(\mathcal{X}\)\(\mathcal{Y}\) 的映射(\(h: \mathcal{X} \rightarrow \mathcal{Y}\))。
  • \(l: \mathcal{Y} \times \mathcal{Y} \rightarrow \mathbb{R}^{+}\) 是一个非负的损失函数(Loss Function),用于度量预测值 \(h(x)\) 与真实值 \(y\) 之间的差异。常见的例子包括0-1损失(\(l(h(x), y) = \mathbb{I}[h(x) \neq y]\))和平方损失(\(l(h(x), y) = (h(x) - y)^2\))。

给定一个假设 \(h \in \mathcal{H}\),我们定义两个关键的误差概念:

1. 经验误差 (Empirical Error / Risk)
经验误差是假设 \(h\) 在某个给定的、有限的训练样本集 \(S = \{(x_1, y_1), (x_2, y_2), ..., (x_m, y_m)\}\)(从 \(\mathcal{D}\) 中采样得到)上的平均损失。

\[\hat{R}_S(h) = \frac{1}{m} \sum_{i=1}^{m} l(h(x_i), y_i) \]

这是一个我们可以直接从数据中计算得到的、可观测的量。

2. 期望误差 / 泛化误差 (Expected Error / Generalization Error)
泛化误差是假设 \(h\)整个数据分布 \(\mathcal{D}\) 上的期望损失。它衡量的是当面对从分布 \(\mathcal{D}\) 中随机抽取的、在训练时未曾见过的新数据样本时,模型 \(h\) 的预期表现。

\[R(h) = \mathop{\mathbb{E}}_{(x, y) \sim \mathcal{D}} \left[ l(h(x), y) \right] \]

严格来说,这里的期望 \(\mathbb{E}\) 是在分布 \(\mathcal{D}\) 上关于 \((x, y)\) 的联合分布求取的。

3. 泛化误差 Gap (Generalization Gap)
泛化误差 Gap 定义为期望误差(真实误差)与经验误差(训练误差)之间的差异:

\[\text{Gap}(h) = R(h) - \hat{R}_S(h) \]

机器学习算法的终极目标是找到一个假设 \(h\),使得其泛化误差 \(R(h)\) 尽可能小。然而,我们无法直接计算 \(R(h)\),因为我们不知道真实的分布 \(\mathcal{D}\)。我们只能通过计算 \(\hat{R}_S(h)\) 来近似它,并通过在保留的测试集上评估性能来无偏地估计它。我们通常考虑期望泛化误差 \(\mathbb{E}_D [R(h_D)]\),其中\(D\)是从 \(\mathcal{D}\)中随机抽样的数据集(也就是说\(D\)是一个随机变量)。
我们注意到:

  • 期望泛化误差可以对输入 \(x\) 取期望:首先对 \(y\) 给定 \(x\) 取期望,然后再对 \(x\) 取期望。即:

    \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_D \left[ \mathbb{E}_{(x, y) \sim \mathcal{D}} \left[ (h_D(x) - y)^2 \right] \right] = \mathbb{E}_x \left[ \mathbb{E}_{D, y|x} \left[ (y - \hat{f}(x; D))^2 \right] \right] \]

    上面过程的推导如下

    1. 泛化误差的定义
      对于一个固定的训练集 \(D\),模型 \(h_D\) 的泛化误差 \(R(h_D)\) 定义为在数据分布 \(\mathcal{D}\) 上的期望损失(使用平方损失):

      \[R(h_D) = \mathbb{E}_{(x, y) \sim \mathcal{D}} \left[ (h_D(x) - y)^2 \right] \]

      其中 \((x, y)\) 是从分布 \(\mathcal{D}\) 中独立采样的测试数据点。

    2. 期望泛化误差
      由于训练集 \(D\) 本身是从 \(\mathcal{D}\) 中随机采样的,我们关心的是期望泛化误差,即对 \(D\) 取期望:

      \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_D \left[ \mathbb{E}_{(x, y) \sim \mathcal{D}} \left[ (h_D(x) - y)^2 \right] \right] \]

    3. 分解联合期望
      内部的期望 \(\mathbb{E}_{(x, y) \sim \mathcal{D}} [\cdot]\) 是对联合分布取的。根据概率论,联合期望可以分解为先对 \(x\) 取期望,再对 \(y\) 给定 \(x\) 取期望:

      \[\mathbb{E}_{(x, y) \sim \mathcal{D}} \left[ (h_D(x) - y)^2 \right] = \mathbb{E}_{x} \left[ \mathbb{E}_{y|x} \left[ (h_D(x) - y)^2 \right] \right] \]

      这里,\(\mathbb{E}_{x}\) 表示对 \(x\) 的边缘分布 \(p(x)\) 取期望,\(\mathbb{E}_{y|x}\) 表示在给定 \(x\) 下对 \(y\) 的条件分布 \(p(y|x)\) 取期望。

    4. 代入期望泛化误差
      将上述分解代入期望泛化误差:

      \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_D \left[ \mathbb{E}_{x} \left[ \mathbb{E}_{y|x} \left[ (h_D(x) - y)^2 \right] \right] \right] \]

    5. 交换期望顺序
      我们可以交换期望顺序。具体地,将 \(\mathbb{E}_{x}\) 提到外层:

      \[\mathbb{E}_D \left[ \mathbb{E}_{x} \left[ \cdot \right] \right] = \mathbb{E}_{x} \left[ \mathbb{E}_D \left[ \cdot \right] \right] \]

      因此:

      \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_{x} \left[ \mathbb{E}_D \left[ \mathbb{E}_{y|x} \left[ (h_D(x) - y)^2 \right] \right] \right] \]

    6. 合并内部期望
      内部的期望 \(\mathbb{E}_D \left[ \mathbb{E}_{y|x} \left[ \cdot \right] \right]\) 涉及两个随机变量:训练集 \(D\) 和条件输出 \(y|x\)。我们可以将这两个期望合并为一个联合期望:

      \[\mathbb{E}_D \left[ \mathbb{E}_{y|x} \left[ (h_D(x) - y)^2 \right] \right] = \mathbb{E}_{D, y|x} \left[ (h_D(x) - y)^2 \right] \]

      这里,\(\mathbb{E}_{D, y|x}\) 表示对 \(D\)\(y\) 给定 \(x\) 的联合分布取期望。

    7. 最终形式
      代入上式,得到:

      \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_{x} \left[ \mathbb{E}_{D, y|x} \left[ (y - h_D(x))^2 \right] \right] \]

      通常,我们用 \(\hat{f}(x; D)\) 表示模型预测,即 \(\hat{f}(x; D) = h_D(x)\),因此:

      \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_{x} \left[ \mathbb{E}_{D, y|x} \left[ (y - \hat{f}(x; D))^2 \right] \right] \]

  • 从点误差分解中,我们知道对于每个 \(x\),有:

    \[\mathbb{E}_{D, y|x} \left[ (y - \hat{f}(x; D))^2 \right] = \text{bias}^2(x) + \text{var}(x) + \sigma^2 \]

    这是因为:
    假设数据生成过程遵循以下形式:

    • 真实模型: $ y = f(x) + \epsilon $,其中 $ f(x) $ 是真实的潜在函数,$ \epsilon $ 是噪声项,满足 $ \mathbb{E}[\epsilon] = 0 $ 和 $ \mathbb{E}[\epsilon^2] = \sigma^2 $(即噪声方差为 $ \sigma^2 $)。这个真实模型取决于我们的定义,比如说让泛化误差最小的,或者其他的满足特定条件的模型,反正就是我们想要的那个模型
    • 学习算法从训练集 $ D $ 中学习得到预测函数 \(\hat{f}(x; D)\)。这里,\(D\) 是从真实分布中独立同分布(i.i.d.)采样的训练集,因此 \(\hat{f}(x; D)\) 是一个随机变量(依赖于 \(D\))。

    对于固定的输入 $ x $,泛化误差(期望预测误差)定义为:

    \[E(f; D) = \mathbb{E}_{D, y} \left[ (y - \hat{f}(x; D))^2 \right] \]

    其中期望是对训练集 $ D $ 和测试输出 $ y $(给定 $ x $)的联合求取。由于 $ y $ 和 $ D $ 独立,我们可以先对 $ y $ 求期望,再对 $ D $ 求期望。
    步骤1: 对 $ y $ 求期望(固定 $ D $ 和 $ x $)
    令 $ \hat{f} = \hat{f}(x; D) $,对于固定 $ D $ 和 $ x $,有:

    \[\mathbb{E}_{y | x} \left[ (y - \hat{f})^2 \right] = \mathbb{E}_{y | x} \left[ (y - f(x) + f(x) - \hat{f})^2 \right] \]

    展开平方项:

    \[= \mathbb{E}_{y | x} \left[ (y - f(x))^2 + 2 (y - f(x))(f(x) - \hat{f}) + (f(x) - \hat{f})^2 \right] \]

    由于 \(\mathbb{E}_{y | x}[y] = f(x)\),所以 \(\mathbb{E}_{y | x}[y - f(x)] = 0\),中间项为零:

    \[= \mathbb{E}_{y | x} \left[ (y - f(x))^2 \right] + (f(x) - \hat{f})^2 \]

    第一项是噪声方差: $ \mathbb{E}_{y | x} \left[ (y - f(x))^2 \right] = \sigma^2 $,因此:

    \[\mathbb{E}_{y | x} \left[ (y - \hat{f})^2 \right] = \sigma^2 + (f(x) - \hat{f})^2 \]

    步骤2: 对 $ D $ 求期望
    现在对训练集 $ D $ 求期望:

    \[\mathbb{E}_{D} \left[ \mathbb{E}_{y | x} \left[ (y - \hat{f})^2 \right] \right] = \mathbb{E}_{D} \left[ \sigma^2 + (f(x) - \hat{f})^2 \right] = \sigma^2 + \mathbb{E}_{D} \left[ (f(x) - \hat{f})^2 \right] \]

    定义平均预测函数: \(\bar{f}(x) = \mathbb{E}_{D} \left[ \hat{f}(x; D) \right]\),则分解 $ \mathbb{E}_{D} \left[ (f(x) - \hat{f})^2 \right] $:

    \[\mathbb{E}_{D} \left[ (f(x) - \hat{f})^2 \right] = \mathbb{E}_{D} \left[ (f(x) - \bar{f}(x) + \bar{f}(x) - \hat{f})^2 \right] \]

    展开平方项:

    \[= \mathbb{E}_{D} \left[ (f(x) - \bar{f}(x))^2 + 2 (f(x) - \bar{f}(x))(\bar{f}(x) - \hat{f}) + (\bar{f}(x) - \hat{f})^2 \right] \]

    由于 \(\mathbb{E}_{D} [\hat{f}] = \bar{f}(x)\),所以 $\mathbb{E}_{D} [\bar{f}(x) - \hat{f}] = 0 $,中间项为零:

    \[= (f(x) - \bar{f}(x))^2 + \mathbb{E}_{D} \left[ (\bar{f}(x) - \hat{f})^2 \right] \]

    这里:

    • 第一项是偏差的平方: $ \text{bias}^2(x) = (f(x) - \bar{f}(x))^2 $,表示平均预测与真实值的差异。
    • 第二项是方差: $ \text{var}(x) = \mathbb{E}_{D} \left[ (\hat{f} - \bar{f}(x))^2 \right] $,表示预测值围绕平均预测的波动。

    因此,泛化误差为:

    \[E(f; D) = \sigma^2 + \text{bias}^2(x) + \text{var}(x) \]

    与图中的式子对应:

    \[E(f; D) = \text{bias}^2(x) + \text{var}(x) + \varepsilon^2 \]

    其中 $ \varepsilon^2 = \sigma^2 $ 是噪声方差。

  • 因此,代入上式:

    \[\mathbb{E}_D [R(h_D)] = \mathbb{E}_x \left[ \text{bias}^2(x) + \text{var}(x) + \sigma^2 \right] \]

这意味着整体泛化误差是所有点 \(x\) 的误差(偏差平方、方差和噪声)的平均值,其中平均是针对输入分布 \(p(x)\) 取的。换句话说,整体误差是点误差在输入空间上的积分或加权平均,权重由 \(p(x)\) 决定。于是我们要研究泛化误差,就可以研究点误差。

读了上面的文字之后,有一点很重要,就是我们要知道,泛化误差这个东西不是衡量一个具体的模型怎么样,而是去衡量一个算法他怎么样。所以我们需要采集很多个数据集(也就是把\(D\)当做一个随机变量),期望是在\(D\)上面求的。关于CS229对偏差和方差的解释一和解释二也是从\(D\)是一个随机变量的角度出发的

相关文章:

2 模型评估与选择

目录P18P23P25 P18 可以好好想一下ROC曲线是如何形成的:我们设置不同的二分类的阈值,就会有不同的(TPR,FPR)对;如果我们将所有数据按照其置信度从大到小排序,然后让阈值逐渐减小,并在ROC曲线上进行描点,那么我们可以发现,如果遇到一个正例,那么当前点会竖直向上走\(\fr…...

TY-290ES计算器屏幕逆向

刷拼多多时看到个便宜的TY-290ES计算器,到手价只需要人民币11块多,还是个点阵屏,真是难以想象国产计算器能做这么便宜,买一个来研究下。廉价小商品大本营(浙江)发的货,,,先点亮看看,功能很少,比82ES还差点意思。屏幕点阵粗略估了下,应该是96x31像素的,顶部有一行图标…...

CF1559E

时间限制 \(2\,\text{sec}\) 空间限制 \(256\,\text{MB}\) 题目来源 CodeForces。 题目大意 给定 \(n\) 个区间 \([l_i,\, r_i]\) 和一个常数 \(m\) ,在每个区间内选出一个正整数 \(a_i\) 构成一个数列 ,满足\(\displaystyle\sum^{n}_{i=1}a_i \leq m\) , \(\gcd \{a_i \} …...

笔记 哈希

A - Description 给定字符串 \(S\) 和 \(T\),问你在 \(S\) 中 \(T\) 出现了几次。 \(1\le |S|,|T|\le 2\times 10^6\) A - Solution 首先暴力地来想。在 \(S\) 中找出所有长度为 \(|T|\) 的子串,然后暴力逐字符匹配,复杂度显然是 \(O(n^2)\) 的,考虑优化。(此处假设 \(|T|…...

题解:CF566A Matching Names

题意 有 \(n\) 名同学,每位同学有一个真名与一个笔名,都是一个由小写英文字母组成的字符串。每位同学可以选择一位同学,使自己的真名与那位同学的笔名相匹配,产生的贡献为其最长公共前缀,每位同学的笔名只能与一人匹配,求贡献总和的最大值。 思路 把笔名插入字典树,并在…...

Tarjan 求连通性相关

复健发现自己对于 Tarjan 的一些东西都有些搞不清了啊。整理一下。 如有错误/不足,欢迎指出。 先给一些定义:\(u\) 表示某个子树的根节点。 \(v\) 表示与 \(u\) 相连的点。如果是无向图那么不包含父亲。 \(fa\) 表示 \(u\) 在 DFS 生成树上的父亲节点。 \(dfn_u\),表示 \(u\…...

暑假学习笔记

Hadoop 生态:实时 + 离线一体化 Flink on YARN 初体验 使用 Flink 1.17.1 提交 yarn-session 模式,队列 queue.stream 独享 4G 堆、2 vcore;编写 Kafka → Hive 的流式入湖作业,消费 user_behavior Topic,Checkpoint 30 s,Exactly-Once 写入 Hive 表 ods_log_rt,实现分钟…...

qoj #8557. Goldberg Machine 题解

有意思原题:https://qoj.ac/problem/8557 弱化版:https://www.luogu.com.cn/problem/P7830 但是弱化版要求做到更优复杂度,但是没有修改。 本文的 参考文章钦定树以 \(1\) 为根。钦定所有点 \(u\neq 1\) 的 \(e,t\) 循环位移成 \(e_{u,k_u-1}=fa_u\),就是把父亲丢到最后。 …...

centos7云主机磁盘清理过程纪要

云主机总磁盘大小为120G,在阿里云控制台配置了磁盘使用达90%告警 1. 收到告警短信 2. 当前磁盘占用情况 df -h | grep dev 已达到 89% 3. 开始排查 3-1. 查看哪个目录占用最大 du -sh /* 或者 du -sh /* | sort -h 发现 /www 目录占用 69G 3-2. 查看 /www du -sh /www/* /ww…...

『随笔』我的唱歌练习史

继续加油!因为热爱。...

2025浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-决赛wp

通信证-签到flag{data_security_is_very_interesting}数据加密与解密-KeekKey题目描述:在数据安全领域,弱密钥和不安全的加密方式如同数字世界的 "隐形杀手",可能引发严重安全漏洞,威胁个人、企业甚至国家网络安全。如金融交易系统使用弱密钥,会被黑客暴力破解篡…...

Java基础核心问题解析

Java基础核心问题解析:方法、数组与类的深度探讨 在Java学习过程中,方法参数传递、数组特性、类与对象的关系等是基础且核心的知识点,也是容易产生困惑的地方。本文将围绕课前提出的一系列问题,逐一解析,帮助大家深入理解这些概念。 一、方法相关问题解析 先看这段代码,我…...

2025年浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-初赛WriteUp

数据传输-网恋需谨慎:你是一个管理员,在一个名为orwell.freenode.net的服务器上结识了用户RiotCard85,RiotCard85主动联系了你,询问近况并提到他最近在做一个项目想让你看看。项目中隐藏了一些有趣的信息和内容,不幸的是黑客截获了你们的的网恋聊天记录,请分析找出RiotCa…...

九三阅兵实时记录+次日补

激动啊!情绪有点激动。...

铸网-2025”山东省工业互联网网络安全职业技能竞赛wp(职工组)

ICS失窃的工艺下载后test.PCZ文件,需要使用力控软件打开。但电脑没有安装这个软件,尝试把后缀名改为.zip,解压后直接搜索flag文本:成功在文件中找到flag:flag{D076-4D7E-92AC-A05ACB788292}。工控协议分析WireShark打开分析,追踪TCP流,flag被逐字符藏在流量中:拼凑起来…...

视洞R33定制版改造自制IPC网络摄像头(可rtsp可web)

这期的主角是视洞R33智能摄像头,LT定制版。我们通过修改启动命令让它运行开放系统,并且搭建rkipc平台,通过WEB/VLC预览视频画面 硬件配置很高啊,主控使用RV1106G2(带0.5T NPU),传感器gc4023,宽视角分辨率2560x1440@30fps,实测4M分辨率能跑满。能连WiFi,支持双向对讲、红…...

二十一、流水线的冒险与处理

目录总览:冒险的类型1. 结构冒险 (Structural Hazard)2. 数据冒险 (Data Hazard)3. 控制冒险 (Control Hazard)总结表流水线的冒险(Hazard)是破坏流水线顺畅执行,导致流水线不得不停顿(Stall)或清空(Flush)的主要因素。处理这些冒险是流水线设计的核心挑战。我们将详细…...

java线程的一些思考

java线程AI问答join是怎么实现的 1.join() 方法被 synchronized 修饰,意味着当前线程调用 t.join() 时,必须先获取目标线程 t 的对象锁(即进入 t 的同步代码块)。 2.方法内部通过 while (isAlive()) 循环检查目标线程是否存活: -若存活,当前线程调用 wait(0)(在目标线程…...

2025智能数据分类分级产品选型指南:构建数据治理的智能基座

2025智能数据分类分级产品选型指南:构建数据治理的智能基座在《数据安全法》《个人信息保护法》以及《数据安全技术 数据分类分级规则》(GB/T 43697-2024)等法规标准的推动下,数据分类分级已从“可选项”变为企业数据安全治理的“必答题”。面对金融、运营商、政务等行业中…...

这是我的第一个博客

这是我的第一个博客...

3

12...

eqw

qwe...

第一个c语言项目

1.打开vs 2.创建项目 3.创建源文件 .c 源文件 .h 头文件 注意后缀: .cpp 编译器会按照C++语法来编译代码 .C 编译器会按照C语言来编译代码 4.写代码 C语言一定要有(主函数)main函数 C语言规定:main函数是程序的入口 一个工程中nain函数有且仅有一个 include.h s…...

GitHub Copilot 2025年8月最新更新!

GitHub Copilot 2025年8月最新更新!GitHub Copilot迎来2025年8月重大更新,新增自动模型选择功能,可根据可用性智能匹配最优AI模型,提升开发效率。安全方面增加敏感文件编辑确认机制,同时优化了代理工作流程和终端自动批准功能。更新还支持AGENTS.md文件指导团队协作,并改…...

NOIP 模拟赛十五

Ds+计数DP+计数DP/容斥+根号重构range 将所有值以及除以二所能得到的所有值插入一个数据结构里,如果变为 \(0\) 就停止。 那么答案即为第 \(m+1\) 大的值减去第 \(m\) 大的值和前缀最小值取 \(\min\) 的差。 维护这个使用权值树状数组做到小常数 \(O(n\log^2 n)\) 。 注意查排…...

面试必备进程调度:fg,bg,jobs,ctrl+z,

面试必备进程调度:fg,bg,jobs,ctrl+z,& linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务 假如你发现前天运行的一个程序需要很长的时间,但是需要干前天的事情,你就可以用ctrl-z挂起这个程序,然后可以看到系统的提示: [1]+ Stopped /root/bin/rsync.sh然后我们…...

完整教程:计算机毕设 java 多媒体教室管理系统 基于 Java+SSM 的多媒体教室运维平台 Java+MySQL 的教室预约与设备管理系统

完整教程:计算机毕设 java 多媒体教室管理系统 基于 Java+SSM 的多媒体教室运维平台 Java+MySQL 的教室预约与设备管理系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…...

笔记一

大家好!我是一名计算机相关专业的学生,平常做的最多的事情就是坐在电脑前敲代码解决各种 “小难题”。但写代码让我养成了 “遇到问题不逃避” 的思维,毕竟调试 BUG 时,多试一次可能就会有新突破。 说到值得分享的记忆,那就是我对于一些体育项目的热衷,比如打排球比赛,你…...

二十、指令流水线的基本实现

目录一、设计原则 (Design Principles)二、逻辑结构 (Logical Structure)三、时空图表示 (Space-Time Diagram Representation)总结一、设计原则 (Design Principles) 流水线的设计遵循几个核心原则,以确保其正确性和高效性。任务分解 (Decomposition)原则: 将指令的完整执行…...

物料模板匹配成功后,自动跟随的逻辑

问题简介 在对物料进行模板匹配时,往往是去匹配物料最突出的部分。然后在根据匹配到的位置。再去找我们需要测量或者检测部分。那么,这里就涉及到一个问题。该如何根据我们模板匹配到的特定位置,计算偏差值,并进行一些测量工具(卡尺,ROI)的跟随移动。 获取相对位置 此处…...

TCL t508n 关闭电话语音王提醒/改用4G

先吐槽一波( TCL的系统真的比原生还毛坯,到目前为止部分功能没有完善由于学业压力本文缺少部分图片说明,请见谅改用4g 打开拨号界面输入 ##4636## 设置首选网络类型 NR就是5G ,LTE是4G,WCDMA 3G 只用4g就选择LTE only 按照自己的需求选择 https://pic1.imgdb.cn/item/68c5…...

完整教程:Markdown 编辑器 语法

完整教程:Markdown 编辑器 语法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

天地图的带洞多边形操作

/** 往 polygon 中添加一个洞 */ function addHole(polygon: T.Polygon) {const handler = new T.PolygonTool(map)handler.open()handler.addEventListener(draw, ({ currentPolygon }) => {const oldLnglats = polygon.getLngLats()map.removeOverLay(currentPolygon)poly…...

k8s集群中一台etcd的pod异常

k8s集群中一台etcd的pod异常 记一次etcd报错2380bind already in use杀掉容器依然无效 起初通过命令:kubectl get pod -n kube-system 发现etcd容器异常在主节点通过kubectl logs查看pod日志发现很明显的报错端口被占用当时查看2380端口确实有在占用通过nerdctl stop指令试着停…...

深入解析:基于51单片机电子称称重压力检测阈值报警系统设计

深入解析:基于51单片机电子称称重压力检测阈值报警系统设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...

手撕大模型|KVCache 原理及代码解析

在大型语言模型(LLM)的推理过程中,KV Cache 是一项关键技术,它通过缓存中间计算结果显著提升了模型的运行效率。本文将深入解析 KV Cache 的工作原理、实现方式,并通过代码示例展示其在实际应用中的效果。 一、为什么需要 KV Cache? 在 Transformer 进行自回归推理(如文…...

Kuby免疫学读书笔记01——造血干细胞

造血干细胞(HSC, Hematopoietic stem cell) 血细胞的起源造血干细胞位置骨髓(主要) 脾和肝(少量)分裂与分化正常状态多部份沉默 小部分分裂并分化 分裂得到的daughter cells部分依旧保持分裂分化潜力 另一部分分化为祖细胞,自我更新能力下降,并更倾向于分化为血细胞感染状态和…...

微信群机器人开发

使用微信云pad协议来开发微信机器人,可以开发的项目很多,例如一些娱乐机器人、云发单系统,私域流量的智能管理和营销拓客,还有一些自动采集和发朋友圈的云端系统等。每个行业都有需求这样的系统应用,在线教育、金融、电商已经一些个人微商应用。 可开发的功能包括但不限于…...

动态规划和马尔可夫决策对比

二、三大关键维度的效果对比 1. 问题适配性:动态规划适配 “简单线性流程”,MDP 适配 “复杂网状流程” 动态规划的优势在于 “处理线性、低维度的多阶段决策”,MDP 的优势在于 “处理多维、网状的动态决策”,二者在论文场景中的适配效果差异显著:动态规划在问题二中的适配…...

20250913 之所思 - 人生如梦

20250913 之所思这一周发生了太多的事,连续两晚彻夜失眠,咳嗽不止,但是工作又特别忙,没有时间和精力来复盘,今天身体稍微恢复了一点,好好整理一下9.9日晚上十点,软件刚刚发出来,同事们刚刚下班,结果某人说客户那边今天测试发现了两个严重的问题,一定要今天解决,并且…...

电视剧和综艺

综艺团建不能停电视机春色寄情人 爱情剧...

天地图编辑多边形和折线时,双击删除编辑点

天地图的编辑不支持删除编辑点的操作,于是研究写了一个。 // 使用 lodash 的防抖函数,防止双击时触发两次 const removeDotEventListener = debounce((e: T.MapEvent) => {// 获取被点击的目标// @ts-ignoreconst classList: DOMTokenList = e.originalEvent.target.class…...

Codeforces Round 1049 (Div. 2)

这场质量非常高。 A 我像区,我怎么卡 A 卡那么久。 睡眠不足会导致思路不清晰。这种题显然应该考虑所有位置不正确的字符。 对于一个在 \(0\) 位置上的 \(1\) 一定有一个与它未匹配的 \(0\),考虑能否通过一次操作将它们归位。 对于操作我们显然应该选择一个未归位的 \(0\) 和…...

POCamp 2023

P14011 [POCamp 2023] 珿求 / bootfall 神人题目。 令 \(A\) 为当前选择 \(a\) 的和,\(D\) 同理。我们要尽量让 \(\max(0, A - D) > \max(0, A - D)\)。 分类讨论,发现当 \(A - D \leq 0\) 且 \(A - D \leq 0\) 的时候一定平局,然后是两种特殊情况,若 \(A - D < 0 \w…...

美团AI面试

1、什么是正向代理和反向代理?两者有什么区别? 2、正向代理的作用时候,使用正向代理去访问被屏蔽的网站会怎样 3、JMM是什么,volintile的作用是什么 3、多线程中原子性的怎么实现的 4、数据库的事务分别是什么,他们解决了什么问题 5、可重复读是怎么实现的,他是怎么解决幻…...

技术面:Spring (bean的生命周期、创建方式、注入方式、作用域)

Spring Bean的生命周期是什么样的? 在Spring容器里一个Bean的从创建到销毁一般都是经历了以下几个阶段: 定义阶段(Bean元信息配置)=>实例化阶段(创建Bean对象)=>初始化阶段(执行初始化逻辑)=>使用阶段(Bean可用)=>销毁阶段(释放资源)定义阶段(BeanDef…...

马尔可夫决策

马尔可夫决策 马尔可夫决策:随机动态环境下序贯决策,其核心假设是 “马尔可夫性”—— 即 “未来状态的概率分布仅依赖于当前状态,与当前状态之前的历史无关”。MDP 的最终目标是找到一套最优策略 π(π: S→A,即 “在每个状态下选择哪个动作” 的规则) 马尔可夫决策可以…...

十九、指令流水线的基本概念

目录一、核心思想:类比工厂装配线二、一个经典的5级流水线模型(RISC)三、流水线的可视化:时空图四、流水线的优势五、流水线的挑战: hazards(冒险/冲突)总结指令流水线是一个计算机体系结构中的核心概念,旨在提高处理器的效率和吞吐率。 一、核心思想:类比工厂装配线 …...

本地布署Diffusers库 实现文生图 - yi

本地布署Diffusers库 实现文生图本地布署Diffusers库实现文生图 本次随笔,记录开源Python库Diffusers库的使用。 Diffusers库由Hugging Face维护,拥有活跃的社区和丰富的文档。Diffusers库是专注于扩散模型(Diffusion Models)的开源Python库。Diffusers库多任务支持​​:支…...

【光照】[光照模型]发展里程碑时间线

【从UnityURP开始探索游戏渲染】专栏-直达图形学光照模型发展史:技术演进与里程碑 section 基础奠基期(1960s-1970s)1967 : Lambert模型(漫反射) - Bui Tuong Phong提出 1971 : Gouraud着色 - Henri Gouraud发明顶点插值着色 1973 : Warnock算法 - 首次实现隐藏面消除 1975…...