从统计学视角看机器学习的训练与推理
从统计学视角看机器学习的训练与推理
目录
- 引言:统计学与机器学习的奇妙缘分
- 训练与推理:你得先学会“看数据”再“用数据”
- 最大似然估计(MLE):从直觉到数学证明
- 3.1 伯努利分布的MLE
- 3.2 单变量高斯分布的MLE
- 3.3 多元高斯与线性回归中的MLE
- 经验风险最小(ERM):MLE的自然推广
- 其他估计方法:矩估计、在线递归估计与指数加权移动平均
- 总结与展望
引言:统计学与机器学习的奇妙缘分
当我们谈论机器学习时,其实是在说如何“训练”一个模型,让它能够从数据中“推理”出规律。统计学作为这一过程的数学基石,提供了严格的理论支持。从古老的贝叶斯推理到现代的频数推理,每种方法都有其独特的数学证明和直观解释。本文就将带你走进这些理论的世界,让你在大白话的解释中,感受到数学公式背后的美妙逻辑!
训练与推理:你得先学会“看数据”再“用数据”
在机器学习中,我们通常把整个过程分为两个阶段:训练和推理。训练阶段,我们使用大量数据来“教会”模型识别数据的内在规律;而在推理阶段,模型利用学到的知识对新数据进行预测。两者的区别在于:
- 训练(Training): 模型根据已知数据调整自身参数,就像你学习数学时不断做题、修正错误。这个过程本质上就是参数估计和优化问题。
- 推理(Inference): 模型用训练中学到的参数去处理未知数据,给出预测结果,就像考试时你凭借平时的训练作答。
在统计学里,我们往往用概率分布来刻画数据,通过最大似然估计、贝叶斯方法等工具,实现训练与推理的数学转化。
最大似然估计(MLE):从直觉到数学证明
最大似然估计是统计学中最核心的参数估计方法之一,它的思想其实很直白——选择使得观测数据出现概率最大的参数值。下面,我们通过几个经典例子来详细说明这一过程。
伯努利分布的MLE
假设你在做一个抛硬币实验,每次实验的结果只有“正面”(1)和“反面”(0)。用$ \theta $表示出现正面的概率,那么一组独立实验的似然函数为:
L ( θ ) = ∏ i = 1 n θ x i ( 1 − θ ) 1 − x i L(\theta)=\prod_{i=1}^{n} \theta^{x_i}(1-\theta)^{1-x_i} L(θ)=i=1∏nθxi(1−θ)1−xi
为了方便求导,我们取对数,得到对数似然函数:
ℓ ( θ ) = ∑ i = 1 n [ x i log θ + ( 1 − x i ) log ( 1 − θ ) ] \ell(\theta)=\sum_{i=1}^{n} \Bigl[x_i\log\theta+(1-x_i)\log(1-\theta)\Bigr] ℓ(θ)=i=1∑n[xilogθ+(1−xi)log(1−θ)]
接下来,对 θ \theta θ求导并令导数为零,我们可以得到:
d ℓ ( θ ) d θ = ∑ i = 1 n x i θ − n − ∑ i = 1 n x i 1 − θ = 0 \frac{d\ell(\theta)}{d\theta}=\frac{\sum_{i=1}^{n}x_i}{\theta}-\frac{n-\sum_{i=1}^{n}x_i}{1-\theta}=0 dθdℓ(θ)=θ∑i=1nxi−1−θn−∑i=1nxi=0
解得:
θ = 1 n ∑ i = 1 n x i \theta=\frac{1}{n}\sum_{i=1}^{n}x_i θ=n1i=1∑nxi
这告诉我们,最佳的参数 θ \theta θ就是正面出现的频率。简单明了,对吧?
单变量高斯分布的MLE
对于连续变量,最常用的分布之一就是高斯分布。设数据服从单变量高斯分布:
p ( x ∣ μ , σ 2 ) = 1 2 π σ 2 exp ( − ( x − μ ) 2 2 σ 2 ) p(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\Bigl(-\frac{(x-\mu)^2}{2\sigma^2}\Bigr) p(x∣μ,σ2)=2πσ21exp(−2σ2(x−μ)2)
对于独立数据集,似然函数为:
L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu,\sigma^2)=\prod_{i=1}^{n}\frac{1}{\sqrt{2\pi\sigma^2}}\exp\Bigl(-\frac{(x_i-\mu)^2}{2\sigma^2}\Bigr) L(μ,σ2)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)
取对数后得到:
ℓ ( μ , σ 2 ) = − n 2 log ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \ell(\mu,\sigma^2)=-\frac{n}{2}\log(2\pi\sigma^2)-\frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i-\mu)^2 ℓ(μ,σ2)=−2nlog(2πσ2)−2σ21i=1∑n(xi−μ)2
分别对 μ \mu μ和 σ 2 \sigma^2 σ2求导并令导数为零,我们能推导出:
μ = 1 n ∑ i = 1 n x i \mu=\frac{1}{n}\sum_{i=1}^{n}x_i μ=n1i=1∑nxi
σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 \sigma^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-\mu)^2 σ2=n1i=1∑n(xi−μ)2
这两个公式直观地告诉我们,数据的均值和方差正是高斯分布参数的最佳估计。
多元高斯与线性回归中的MLE
当数据是多维的,我们用多元高斯分布来描述数据。设 x ∈ R d \mathbf{x}\in \mathbb{R}^d x∈Rd,其概率密度函数为:
p ( x ∣ μ , Σ ) = 1 ( 2 π ) d / 2 ∣ Σ ∣ 1 / 2 exp ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(\mathbf{x}|\boldsymbol{\mu},\Sigma)=\frac{1}{(2\pi)^{d/2}|\Sigma|^{1/2}}\exp\Bigl(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^T\Sigma^{-1}(\mathbf{x}-\boldsymbol{\mu})\Bigr) p(x∣μ,Σ)=(2π)d/2∣Σ∣1/21exp(−21(x−μ)TΣ−1(x−μ))
同样地,对数似然函数为:
ℓ ( μ , Σ ) = − n 2 log ( ( 2 π ) d ∣ Σ ∣ ) − 1 2 ∑ i = 1 n ( x i − μ ) T Σ − 1 ( x i − μ ) \ell(\boldsymbol{\mu},\Sigma)=-\frac{n}{2}\log((2\pi)^d|\Sigma|)-\frac{1}{2}\sum_{i=1}^{n}(\mathbf{x}_i-\boldsymbol{\mu})^T\Sigma^{-1}(\mathbf{x}_i-\boldsymbol{\mu}) ℓ(μ,Σ)=−2nlog((2π)d∣Σ∣)−21i=1∑n(xi−μ)TΣ−1(xi−μ)
通过对 μ \boldsymbol{\mu} μ和 Σ \Sigma Σ求导,可以得到最优估计公式。特别地,在线性回归中,我们假定目标变量 y y y与输入特征 x \mathbf{x} x之间满足:
y = x T β + ϵ , ϵ ∼ N ( 0 , σ 2 ) y=\mathbf{x}^T\boldsymbol{\beta}+\epsilon,\quad \epsilon\sim N(0,\sigma^2) y=xTβ+ϵ,ϵ∼N(0,σ2)
在这种假设下,最大似然估计的求解过程等价于最小二乘法,最佳参数为:
β ^ = ( X T X ) − 1 X T y \hat{\boldsymbol{\beta}}=(X^TX)^{-1}X^Ty β^=(XTX)−1XTy
同时,噪声方差的估计为:
σ ^ 2 = 1 n ∥ y − X β ^ ∥ 2 \hat{\sigma}^2=\frac{1}{n}\|y-X\hat{\boldsymbol{\beta}}\|^2 σ^2=n1∥y−Xβ^∥2
这些推导不仅告诉我们如何从数据中“学习”参数,更为后续更复杂的模型训练提供了理论基础。
经验风险最小(ERM):MLE的自然推广
最大似然估计是一种非常特殊的经验风险最小(ERM)方法。当我们在训练一个模型时,目标是最小化经验风险,即:
θ ^ = arg min θ 1 n ∑ i = 1 n L ( y i , f ( x i ; θ ) ) \hat{\theta}=\arg\min_{\theta}\frac{1}{n}\sum_{i=1}^{n}L(y_i,f(x_i;\theta)) θ^=argθminn1i=1∑nL(yi,f(xi;θ))
这里, L L L是损失函数,而 f ( x i ; θ ) f(x_i;\theta) f(xi;θ)是模型预测值。如果我们选择 L L L为负对数似然,那么ERM就完全等价于MLE。这说明,经验风险最小化不仅适用于概率模型,也适用于更广泛的模型训练问题,是MLE思想的自然推广。
其他估计方法:矩估计、在线递归估计与指数加权移动平均
除了MLE之外,统计学中还有许多其他参数估计方法。下面我们用大白话和公式来解释几种常见的方法:
矩估计法(Method of Moments, MOM)
矩估计法的基本思想是:用样本矩来估计分布的理论矩。例如,对于单变量高斯分布,我们有:
μ = E [ x ] ≈ 1 n ∑ i = 1 n x i \mu=E[x]\approx \frac{1}{n}\sum_{i=1}^{n}x_i μ=E[x]≈n1i=1∑nxi
σ 2 = E [ ( x − μ ) 2 ] ≈ 1 n ∑ i = 1 n ( x i − μ ) 2 \sigma^2=E[(x-\mu)^2]\approx \frac{1}{n}\sum_{i=1}^{n}(x_i-\mu)^2 σ2=E[(x−μ)2]≈n1i=1∑n(xi−μ)2
对于均匀分布 U ( a , b ) U(a,b) U(a,b),已知其理论均值和方差分别为:
μ = a + b 2 , σ 2 = ( b − a ) 2 12 \mu=\frac{a+b}{2},\quad \sigma^2=\frac{(b-a)^2}{12} μ=2a+b,σ2=12(b−a)2
利用样本均值和样本方差,我们可以反推出分布的参数。这种方法简单直观,适用于很多分布的参数估计。
在线递归估计与高斯分布均值的递归MLE
在实际应用中,数据往往是不断到来的,我们希望能够实时更新模型参数。在线递归估计便是一种非常实用的方法。例如,对高斯分布均值的递归估计公式为:
μ ^ t = μ ^ t − 1 + α ( x t − μ ^ t − 1 ) \hat{\mu}_t=\hat{\mu}_{t-1}+\alpha(x_t-\hat{\mu}_{t-1}) μ^t=μ^t−1+α(xt−μ^t−1)
其中, α \alpha α是一个学习率参数,控制新数据对估计值的影响。这其实和我们日常生活中的“不断修正预期”很像:每次遇到新情况,我们就会略微调整之前的看法。
指数加权移动平均(Exponential Weighted Moving Average, EWMA)
当我们希望对时间序列数据进行平滑处理时,指数加权移动平均是一个好方法。其公式为:
S t = λ x t + ( 1 − λ ) S t − 1 S_t=\lambda x_t+(1-\lambda)S_{t-1} St=λxt+(1−λ)St−1
其中, λ \lambda λ为平滑系数(通常在 0 0 0到 1 1 1之间), S t S_t St为当前的平滑值。简单来说,每个时刻的估计值不仅考虑当前数据 x t x_t xt,还会参考之前的状态 S t − 1 S_{t-1} St−1,使得整体估计更平滑、鲁棒性更高。
总结与展望
通过上面的讨论,我们可以看到,统计学不仅为机器学习中的训练和推理提供了理论基础,更在参数估计上展现出极大的魅力。无论是最大似然估计的严谨证明,还是经验风险最小化的广义框架,都为我们理解机器学习模型的本质提供了强有力的支持。同时,矩估计、在线递归估计和指数加权移动平均等方法,也展示了数据流时代实时更新模型参数的可能性。
相关文章:
从统计学视角看机器学习的训练与推理
从统计学视角看机器学习的训练与推理 目录 引言:统计学与机器学习的奇妙缘分训练与推理:你得先学会“看数据”再“用数据”最大似然估计(MLE):从直觉到数学证明 3.1 伯努利分布的MLE3.2 单变量高斯分布的MLE3.3 多元…...
《论数据分片技术及其应用》审题技巧 - 系统架构设计师
论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面: 首先,考生需对数据分片的基本概念有清晰的认识,理解数据分片是…...
【鸿蒙Next】鸿蒙与flutter使用自定义iconfont的ttf字体库对比总结
ttf的iconfont库如何获取 1、自己创建 第一步、 iconfont-阿里巴巴矢量图标库 打开网址 第二步、搜索自己的需要的图标、并且加购到购物车 第三步、点击购物车,添加至项目 第四步、添加至项目或者新建项目再添加 第五步、下载至本地 就得到了ttf文件 2、设计…...
Redis实战篇《黑马点评》8 附近商铺
8.附近商户 8.1GEO数据结构的基本用法 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据,常见的命令有 GEOADD:添加一个地理空间…...
【大厂AI实践】美团:美团智能客服核心技术与实践
【大厂AI实践】美团:美团智能客服核心技术与实践 🌟 嗨,你好,我是 青松 ! 🌈 自小刺头深草里,而今渐觉出蓬蒿。 NLP Github 项目推荐: 【AI 藏经阁】:https://gitee.com…...
标签的ref属性 vue中为什么不用id标记标签
标签的ref属性 vue中为什么不用id标记标签 假设有一对父子组件,如果父组件和子组件中存在id相同的标签,会产生冲突。通过id获取标签会获取到先加载那个标签。 标签的ref属性的用法 在父组件App中,引入了子组件Person。 并使用ref标记了Pe…...
期权帮|股指期货3月合约交割该如何做?
锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 股指期货3月合约交割该如何做? 股指期货的交割日通常是合约到期月份的第三个星期五。 对于3月合约,若当月无特殊节假日,交割日就是3月的第三…...
Collab-Overcooked:专注于多智能体协作的语言模型基准测试平台
2025-02-27,由北京邮电大学和理想汽车公司联合创建。该平台基于《Overcooked-AI》游戏环境,设计了更具挑战性和实用性的交互任务,目的通过自然语言沟通促进多智能体协作。 一、研究背景 近年来,基于大型语言模型的智能体系统在复…...
[Computer Vision]实验七:图像检索
目录 一、实验内容 二、实验过程 2.1 准备数据集 2.2 SIFT特征提取 2.3 学习“视觉词典”(vision vocabulary) 2.4 建立图像索引并保存到数据库中 2.5 用一幅图像查询 三、实验小结 一、实验内容 实现基于颜色直方图、bag of word等方法的以图搜…...
访问控制列表(ACL)思科、华为
访问控制列表(ACL) 一、ACL的基本概念 随着网络的飞速发展,网络安全和网络服务质量QoS(Quality of Service)问题日益突出。 企业重要服务器资源被随意访问,企业机密信息容易泄露,造成安全隐患。…...
linux磁盘满了怎么安全删除文件
df -h 通过df -h /dir 查看被占满的目录,dir替换为你的文件目录 du -sh * 进入被占满的目录,执行 du -sh * ,查看哪些文件占的磁盘大 查看占用磁盘最大的文件 du -sh * | sort -rh | head -n N N通常可以设置为10 有的docker容器文件太…...
2025国家护网HVV高频面试题总结来了04(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 一、HVV行动面试题分类 根据面试题的内容,我们将其分为以下几类: 漏洞利用与攻击技术 …...
jenkins使用插件在Build History打印基本信息
1、插件安装 分别是description setter plugin插件和user build vars插件,下面介绍一下这两个插件: description setter plugin:作用是在 Build 栏下方增加一个功能块,用于填写自定义信息,也就是 Build history 中需要显示的文字…...
线程池的工作流程
线程池的工作流程主要包括任务提交、线程分配、任务执行和线程回收等环节,以下是对其详细的描述: 任务提交 当有任务需要执行时,用户通过线程池提供的提交方法,如execute()或submit()方法,将任务(通常是实现…...
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP)
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP) 在自然语言处理(NLP)领域,Transformer 架构的出现彻底改变了传统的序列建模方法。它不仅成为现代 NLP 的核心,还推动了诸如 BERT、…...
vue下载插件
1.下载路由组件 npm i vue-router2.创建router文件夹 3.创建router.js文件 import {createRouter, createWebHistory} from "vue-router"let router createRouter({history: createWebHistory(),routes: [{path: "/",component: () > import(".…...
两周学习安排
日常安排 白天 看 MySQL实战45讲,每日一讲 看 图解设计模式 每天1-2道力扣算法题(难度中等以上) 每天复习昨天的单词,记20个单词,写一篇阅读 晚上 写服创项目 每日产出 MySQL实战45讲 读书笔记 设计模式 读书笔…...
蓝桥与力扣刷题(蓝桥 k倍区间)
题目:给定一个长度为 N 的数列,A1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai1,⋯Aj( i≤j ) 之和是 K 的倍数,我们就称这个区间[i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入描述 第一行包含两…...
Spring项目-抽奖系统(实操项目-用户管理接口)(END)
^__^ (oo)\______ (__)\ )\/\ ||----w | || || 一:前言: 活动创建及展示博客链接:Spring项目-抽奖系统(实操项目-用户管理接口)(THREE)-CSDN博客 上一次完成了活动的创建和活动的展示,接下来就是重头戏—…...
5个GitHub热点开源项目!!
1.自托管 Moonlight 游戏串流服务:Sunshine 主语言:C,Star:14.4k,周增长:500 这是一个自托管的 Moonlight 游戏串流服务器端项目,支持所有 Moonlight 客户端。用户可以在自己电脑上搭建一个游戏…...
数据结构:二叉搜索树(排序树)
1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…...
JavaEE--计算机是如何工作的
一、一台计算机的组成部分 1.CPU(中央处理器) 2.主板(一个大插座) 3.内存(存储数据的主要模板) 4.硬盘(存储数据的主要模板) 内存和硬盘对比: 内存硬盘读写速度快慢存…...
Redis 实战篇 ——《黑马点评》(下)
《引言》 (下)篇将记录 Redis 实战篇 最后的一些学习内容,希望大家能够点赞、收藏支持一下 Thanks♪ (・ω・)ノ,谢谢大家。 传送门(上):Redis 实战篇 ——《黑马…...
OpenCV计算摄影学(10)将一组不同曝光的图像合并成一张高动态范围(HDR)图像的实现类cv::MergeDebevec
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 resulting HDR 图像被计算为考虑了曝光值和相机响应的各次曝光的加权平均值。 cv::MergeDebevec 是 OpenCV 中用于将一组不同曝光的图像合并成一…...
Linux驱动开发之串口驱动移植
原理图 从上图可以看到RS232的串口接的是UART3,接下来我们需要使能UART3的收发功能。一般串口的驱动程序在内核中都有包含,我们配置使能适配即可。 设备树 复用功能配置 查看6ull如何进行uart3的串口复用配置: 设备树下添加uart3的串口复用…...
c语言中return 数字代表的含义
return 数字的含义:表示函数返回一个整数值,通常用于向调用者(如操作系统或其他程序)传递程序的执行状态或结果。 核心规则: return 0: 含义:表示程序或函数正常结束。 示例: int m…...
Android 端侧运行 LLM 框架 MNN 及其应用
MNN Chat Android App - 基于 MNN 引擎的智能聊天应用 一、MNN 框架简介与工作原理1.1 什么是 MNN?1.2 MNN 的工作原理 二、MNN Chat Android App2.1 MNN Chat 的功能2.2 MNN Chat 的优势2.3 MNN Chat Android App 的使用 三、总结 随着移动端人工智能需求的日益增长…...
jupyter汉化、修改默认路径详细讲解
1、配置镜像路径 修改第三方库的下载路径,比如:[清华镜像pypi](https://mirrors.tuna.tsinghua.edu.cn/help/pypi/),配置镜像地址。 首先执行 pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 2、安…...
java面试笔记(二)
1.流程中如何数据回填 (1)方法1: 在工作流中有一个标识,每一次审批的时候去判断是否审批完成,然后调用反射 (2)方法2: 创建一个流程结束的监听器,监听流程是否结束&a…...
【大语言模型笔记进阶一步】提示语设计学习笔记,跳出框架思维,自己构建提示词
一、大语言模型应用场景 1. 文本生成 文本创作: 诗歌故事,剧本,推文帖子 摘要与改写: 长文本摘要与简化,多语言翻译与本地化 结构化生成: 表格,根据需求生成代码片段,API文档生成…...
sql调优:优化响应时间(优化sql) ; 优化吞吐量
Sql性能调优的目的 1.优化响应时间>>优化sql 经过调优后,执行查询、更新等操作的时候,数据库的反应速度更快,花费的时间更少。 2.优化吞吐量 即“并发”, 就是“同时处理请求”的能力。 优化sql 尽量将多条SQL语句压缩到一句>…...
debian/control中的包关系
软件包依赖就是软件包关系的一种,一般用 Depends 表示。 每个软件包都可以和其他软件包有各种不同的关系。除 Depends 外,还有 Recommends、Suggests、Pre-Depends、Breaks、Conflicts、Provides 和 Replaces,软件包管理工具(如 …...
python学习第三天
条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子!") elif age 18:print("永远十八岁!") else:print("你还年轻!")…...
k8s架构及服务详解
目录 1.1.容器是什么1.2.Namespace1.3.rootfs5.1.Service介绍5.1.1.Serice简介 5.1.1.1什么是Service5.1.1.2.Service的创建5.1.1.3.检测服务5.1.1.4.在运行的容器中远程执行命令 5.2.连接集群外部的服务 5.2.1.介绍服务endpoint5.2.2.手动配置服务的endpoint5.2.3.为外部服务…...
Unity中动态切换光照贴图LightProbe的方法
关键代码:LightmapSettings.lightmaps lightmapDatas; LightmapData中操作三张图:lightmapColor,lightmapDir,以及一张ShadowMap 这里只操作前两张: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public cl…...
基于Matlab的多目标粒子群优化
在复杂系统的设计、决策与优化问题中,常常需要同时兼顾多个相互冲突的目标,多目标粒子群优化(MOPSO)算法应运而生,作为群体智能优化算法家族中的重要成员,它为解决此类棘手难题提供了高效且富有创新性的解决…...
Android Studio 新版本Gradle发布本地Maven仓库示例
发布代码到JitPack示例:https://blog.csdn.net/loutengyuan/article/details/145938967 以下是基于 Android Studio 24.2.2(Gradle 8.10.2 AGP 8.8.0 JDK17) 的本地 Maven 仓库发布示例,包含aar和jar的不同配置: 1.…...
Langchain解锁LLM大语言模型的结构化输出能力(多种实现方案)
在 LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法 这篇博客中,我们了解了格式化LLM输出内容的必要性以及如何通过调用langchain框架中提供的 with_structured_output() 方法对LLM输出进行格式化(三种可选方…...
深入理解Spring @Async:异步编程的利器与实战指南
一、为什么需要异步编程? 在现代高并发系统中,同步阻塞式编程会带来两大核心问题: // 同步处理示例 public void processOrder(Order order) {// 1. 保存订单(耗时50ms)orderRepository.save(order); // 2. 发送短信…...
让Word插上AI的翅膀:如何把DeepSeek装进Word
在日常办公中,微软的Word无疑是我们最常用的文字处理工具。无论是撰写报告、编辑文档,还是整理笔记,Word都能胜任。然而,随着AI技术的飞速发展,尤其是DeepSeek的出现,我们的文字编辑方式正在发生革命性的变…...
清华DeepSeek深度探索与进阶指南
「清华北大-Deepseek使用手册」 链接:https://pan.quark.cn/s/98782f7d61dc 「清华大学Deepseek整理) 1-6版本链接:https://pan.quark.cn/s/72194e32428a AI学术工具公测链接:https://pan.baidu.com/s/104w_uBB2F42Da0qnk78_ew …...
迁移学习策略全景解析:从理论到产业落地的技术跃迁
(2025年最新技术实践指南) 一、迁移学习的范式革命与核心价值 在人工智能进入"大模型时代"的今天,迁移学习已成为突破数据瓶颈、降低训练成本的关键技术。本文基于2025年最新技术进展,系统梳理六大核心策略及其在产业实…...
WireGuard搭建网络,供整个公司使用
一、清理现有配置(如已有失败尝试) # 停止并删除现有 WireGuard 接口 sudo wg-quick down wg0 sudo rm -rf /etc/wireguard/wg0.conf# 验证接口已删除 (执行后应该看不到 wg0) ifconfig二、服务器端完整配置流程 1. 安装 WireGuard sudo apt update &…...
MyAgent:用AI开发AI,开启智能编程的产业革命
在人工智能技术爆发的2025年,MyAgent智能体平台凭借其独特的“AI开发AI”模式,正在重构全球软件开发行业的底层逻辑。这一创新范式不仅将自然语言处理、机器学习、RPA(机器人流程自动化)等技术深度融合,更通过“…...
Cherno C++ P60 为什么不用using namespace std
这篇文章我们讲一下之前写代码的时候的一个习惯,也就是不使用using namespace std。如果我们接触过最早的C教程,那么第一节课都会让我们写如下的代码: #include<iostream>using namespace std;int main() {cout << "Hello …...
el-select的下拉选择框插入el-checkbox
el-check注意这里要使用model-value绑定数据 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…...
M系列芯片 MacOS 在 Conda 环境中安装 TensorFlow 2 和 Keras 3 完整指南
目录 1. 引言2. 环境准备3. 安装 TensorFlow 和必要依赖4. 结语Reference 1. 引言 Keras 是搞深度学习很可爱的工具,其友好的接口让我总是将其作为搭建模型原型的首选。然而,当我希望在 M 系列芯片的MacBook Pro上使用 Keras时,使用Conda和P…...
GitHub教程
目录 1.是什么?2.安装3.创建库3.增删改查4.远程仓库5.分支6.标签7.使用流程8.总结 1.是什么? Git 是一个命令行工具,但也有许多图形用户界面可用。本地仓库,安装包下载到本地。Git 的一个流行 GUI 是 GitHub,它可以方便地管理存储库、推送…...
《JavaScript解题秘籍:力扣队列与栈的高效解题策略》
232.用栈实现队列 力扣题目链接(opens new window) 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue new MyQueue(); queue…...
Supra软件更新:AGRV2K CPLD支持无源晶体做时钟输入
Supra软件更新:AGRV2K CPLD支持无源晶体做时钟输入 AGRV2K CPLD支持无源晶体做时钟输入,和AG32一样接入OSC_IN和OSC_OUT管脚。 VE管脚文件设为PIN_HSE,如: clk PIN_HSE ledout[0] PIN_31 ledout[1] PIN_32 ...... 在下载烧录文…...