机器学习(吴恩达)
一, 机器学习
机器学习定义: 计算机能够在没有明确的编程情况下学习
特征: 特征是描述样本的属性或变量,是模型用来学习和预测的基础。如: 房屋面积, 地理位置
标签: 监督学习中需要预测的目标变量,是模型的输出目标。如: 房屋价格
样本: 如: {面积=100㎡, 卧室=3, 位置=市中心, 价格=500万}, 数据集中的一个独立实例, 包含一组特征及对应的标签。
样本向量形式:
独热编码举例:
1.1 机器学习的分类
1) 监督学习: 根据带标签的数据训练模型,预测新样本的标签。如回归, 分类。
回归应用: 房价预测
分类算法: 根据年龄和肿瘤大小判断肿瘤良/恶性
2) 无监督学习: 从未标注数据中发现潜在结构或模式。如聚类, 异常检测, 降维(大数据集压缩成更小的数据集, 并可能少地丢失信息)
聚类: 谷歌新闻示例
3) 半监督学习: 结合少量标注数据和大量未标注数据进行训练。如医学图像分析
4) 强化学习: 通过与环境交互学习策略,最大化累积奖励。如游戏AI, 自动驾驶
1.2 线性回归
1.2.1 损失函数与成本函数
第i个数据特征:
损失函数(Loss Function):衡量单个样本的预测值与真实值的差异。
成本函数(Cost Function):衡量整个训练集的平均损失。
平方误差损失:
平方误差成本函数: 一定是凸函数,确保只有一个全局最小值
模型(y=wx)与成本函数示例 (左图w=-0.5、0、0.5、1时的情况):
模型(y=wx+b)下的成本函数:
模型与J(w,b)的平面等高线:
1.2.2 学习率与梯度下降算法
学习率(α):控制模型参数更新步长的超参数。
学习率的取值的两种情况:
1) 学习率过大:参数更新步长过大,可能导致损失值震荡甚至发散。
2) 学习率过小:收敛速度极慢,可能陷入局部极小值。
示例:
梯度下降公式:
推导过程:
梯度算法演示:
两个特征的多元线性回归举例:
批量梯度下降: 每次迭代使用全部训练数据计算梯度。
随机梯度下降: 每次迭代随机选取一个样本计算梯度。
小批量处理实现流程:
- 数据分块:将训练集随机划分为多个小批量。
- 前向传播:对当前小批量计算模型输出。
- 损失计算:根据预测值和真实标签计算损失(如交叉熵、均方误差)。
- 反向传播:计算损失对参数的梯度。
- 参数更新:使用优化算法(如SGD、Adam)更新模型参数。
- 重复:遍历所有小批量完成一个训练周期(Epoch)。
1.2.3 特征缩放
加速模型收敛。有如下方法
标准化(Z-Score标准化):
标准差:
归一化(Min-Max缩放):
标准化与归一化的区别:
举例 (标准化前后的数据集) :
1.2.4 正则化
解决过拟合情况:
1) 收集更多数据
2) 仅用特征的一个子集
3) 正则化
欠拟合(高偏差), 适中, 过拟合(高方差)
正则化项:
添加正则化项后的梯度算法:
原理: 通过在损失函数中添加与模型参数相关的惩罚项,限制参数的复杂度,从而提升模型的泛化能力。 (使得W尽可能小以此使得函数趋于平滑)
λ过大: 参数被过度压缩,模型过于简单,无法捕捉数据中的有效规律。
λ过小: 正则化作用微弱,模型过度依赖训练数据中的噪声或局部特征。
备注: 只要正则化得当, 更大的神经网络总是更好的。
例图:
根据交叉验证误差找到适合的λ:
λ取值与交叉验证误差及训练集误差的关系:
1.3 逻辑回归
通过线性组合特征与参数,结合Sigmoid函数将输出映射到概率区间(0-1),用于解决分类问题(尤其是二分类)。
Sigmoid函数模型:
图形:
对数损失函数(交叉熵损失):
对应图形:
为什么不使用均方误差(MSE)作为损失函数: 当预测值接近 0 或 1 时, 梯度接近于0, 权重几乎无法更新。
对应成本函数:
为什么选择对数损失函数:
1) 概率视角:最大似然估计(MLE)
2) 优化视角:凸性
梯度下降算法:
与线性回归梯度算法的区别: 模型定义不同:
线性回归与逻辑回归区别:
1.4 决策树
一种树形结构的监督学习模型,通过选择最优特征对数据进行分割,目标是使子节点的数据尽可能“纯净”(同类样本集中)。
递归分裂过程:
- 从根节点开始,计算所有特征的分裂指标(如信息增益)。
- 选择最优特征作为当前节点的分裂特征。
- 根据特征的取值将数据集划分为子集,生成子节点。
- 对每个子节点递归执行步骤1-3,直到满足停止条件。
停止条件:
- 节点样本数小于预设阈值。
- 所有样本属于同一类别。
- 特征已用完或分裂后纯度提升不显著。
预剪枝: 在树生长过程中提前终止分裂。如设置最大深度
信息熵:度量数据集的混乱程度。值越小分类越明确。
二分类示例图:
信息增益(IG):特征分裂后熵的减少量( 父节点熵 - 子节点加权平均熵)。值越大特征越重要。
多分类推广:
符号含义:
举例:
二分类分裂决策举例:
信息增益率(IGR) : 在信息增益的基础上,对特征本身的分布熵进行标准化。
公式:
基尼系数: 另一种不纯度度量, 可视为熵的近似, 但计算更高效
公式:
三种经典决策树算法:
决策树处理处理连续值特征:
1) 特征排序: 从小到大排序
2) 候选分割点生成:相邻值的中间点作为候选分割点。
3) 计算分裂指标: 计算分裂后的信息增益(分类)或均方误差(回归)。
4) 选择最优分割点
5) 递归分裂
示例图: 体重(离散值)作为分裂点
示例图: 根据特征预测体重(MSE)
随机森林
通过构建多棵决策树,结合投票(分类)或平均(回归)实现预测。
训练步骤:
1) Bootstrap抽样:从D中有放回地抽取N个样本,形成子集。
2) 构建决策树:在上训练一棵CART(分类与回归树)树,每次分裂时仅考虑m个随机选择的特征。m=math.sqrt(总特征数)
3) 保存模型:将训练好的树ht加入森林。
4) 预测:
· 多数投票法(分类):每棵树对样本预测一个类别,最终选择得票最多的类别。
· 平均值(回归):所有树的预测结果取平均。
放回抽样: 每次从总体中随机抽取一个样本后,将该样本放回总体,确保它在后续抽取中仍有可能被再次选中。
基尼系数公式:
符号含义:
作用:衡量数据集的不纯度。基尼系数越小,数据越“纯净”(同一类样本占比越高)。
基尼指数公式:
符号含义:
作用:衡量按特征 A 分裂后的整体不纯度。决策树选择基尼指数最小的特征进行分裂。
XGBoost思想: 在每一轮迭代中,通过拟合前序模型的预测残差(负梯度方向),并自动调整对预测不准样本的关注度,同时结合正则化防止过拟合。
ID3、C4.5、CART算法的对比:
决策树 vs 逻辑回归:
1.5 聚类算法
将未标记的数据划分为若干组(簇), 组内相似性高, 组间差异性大。
K-means算法: 随机初始化K个中心点 → 分配数据点到最近中心 → 更新中心点 → 迭代至收敛。
K-means算法流程:
k-means工作示例:
质心:
符号含义:
不同初始化时的可能情况:
肘部算法: 选取合适的K值
1.6 异常检测
密度评估: 当P(x)小于某个值时, 为可疑异常, 相比较监督算法, 更容易发现从未出现过的异常
正态分布(高斯分布)的概率密度函数
推广(向量):
非高斯特征转化 :
协调过滤:
回归成本函数:
梯度算法:
均值归一化作用: 若无评分数据,使用全局均值 μglobal 作为初始预测值。
预测值:
基于内容的过滤算法:
PCA算法: 无监督的线性降维方法,通过正交变换将高维数据投影到低维空间,保留数据中的最大方差(即信息量)。以期用更少的特征(主成分)解释原始数据中的大部分变异性。
与线性回归的区别:
1.7 强化学习
贝尔曼方程:
- Agent(智能体):决策主体,执行动作(Action)。
- State(状态 s):环境在某一时刻的描述。
- Action(动作 a):Agent的行为选择。
- Reward(奖励 R(s)):环境对Agent动作的即时反馈。
- Value Function(价值函数):衡量状态或动作的长期价值(Q(s,a))。
- 其中γ∈[0,1]为折扣因子
软更新
二、深度学习
2.1 基本概念
输入层: x向量表示原始数据
隐藏层: 如下图 layer1 到 layer3输出激活值(向量)。通过权重和激活函数提取抽象特征。
输出层: layer4, 生成最终预测结果(如分类概率)。
神经元(节点):每层的圆圈代表一个神经元,负责接收输入信号并计算输出。
激活函数: 引入非线性,使网络能够拟合复杂函数。
前向传播示例图:
三种激活函数:
备注: 梯度下降时sigmoid两端导函数为0, 二ReLu只有一端。
为什么模型需要激活函数: 使得模型非线性。神经都是线性回归则神经网络只是一个线性回归。
反向传播: 通过链式法则,依次计算每一层的梯度
举例:
梯度下降: 利用反向传播计算的梯度,梯度下降通过以下公式更新参数
2.3 多分类与多标签分类
多分类: 将样本分配到唯一一个类别中, 如数字识别
多标签分类: 为样本分配多个相关标签, 如图像标注(包含“山”“湖”“树”)
多分类举例: 输出每个类别的概率,选择最大概率对应的类别。
损失函数:
网络层
密集层
卷积层
2.4 模型评估
数据集划分:
1) 训练集(Training Set):用于模型训练(通常占70%)。
2) 验证集: 用于调参, 学习数据中的潜在规律。(通常占15%)
3) 测试集(Test Set):模拟“未知数据”,用于最终评估。(通常占15%)
意义: 若模型仅在训练集上表现好,但在测试集上差,说明模型过拟合(过度记忆训练数据细节),泛化能力弱。
备注: 避免测试集调参, 若根据测试集结果反复调整模型,导致模型间接拟合测试集。
交叉验证:
通过多次数据划分减少评估结果的方差, 防止模型因单次数据划分的随机性导致评估结果不稳定。
1) K折交叉验证: 将数据均等分为K个子集, 每次用1个子集作为验证集,其余K-1个作为训练集,重复K次。计算K次验证结果的平均值作为最终评估指标
2) 留一交叉验证: K折交叉验证的极端情况(K=N,N为样本总数)适合小数据集。
3) 分层交叉验证: 分类任务中类别分布不均衡时,确保每折的类别比例与原始数据一致。(如数据中90%为类别A,10%为类别B,分层交叉验证会保证每折中类别A和B的比例仍为9:1。)
2.4.1 偏差与方差
分解公式:泛化误差 = 偏差² + 方差 + 噪声。
偏差(Bias):指模型预测值的期望与真实值之间的差距,反映了模型对数据的拟合能力。高偏差意味着模型过于简单,无法捕捉数据中的潜在关系,导致欠拟合(Underfitting)。
方差(Variance):指模型对训练数据中微小变化的敏感程度,反映了模型的稳定性。高方差意味着模型过于复杂,过度拟合训练数据中的噪声,导致过拟合(Overfitting)。
高偏差(左), 高方差(右)
2.4.2 诊断偏差与方差
高偏差(欠拟合):训练集和验证集误差均高。
解决方案:
1) 可增加模型复杂度(如使用更高阶多项式、深层神经网络)
2) 添加更多特征或改进特征工程
3) 减少正则化强度(如降低λ值)
高方差(过拟合):训练误差低,验证误差高且差距大。表现: J(验证集)>>J(训练集)
解决方案:
1) 可降低模型复杂度(如减少神经网络层数、剪枝决策树)。
2) 增加训练数据量或使用数据增强。
3) 增强正则化
多项式阶数(x轴) 与 交叉验证误差 及 训练集误差 的关系:
学习曲线:
高偏差学习曲线情况(红线, 较人类水平相比):
高方差学习曲线情况(前半段):
训练神经网络的一般步骤:
数据增强: 在现有的训练样本上修改生成另一个训练样本
迁移学习: 预训练
两者区别:
维度 | 数据增强 | 迁移学习 |
---|---|---|
核心目标 | 增加数据多样性,提升模型泛化能力 | 复用已有知识,降低目标领域训练成本 |
依赖条件 | 需要少量原始数据 | 需要源领域模型或相关数据 |
适用阶段 | 数据准备阶段 | 模型训练阶段 |
技术范畴 | 数据预处理/正则化 | 模型优化/跨任务学习 |
典型应用领域 | 图像、文本、语音等所有数据驱动的任务 | 深度学习、跨领域任务(如医疗、金融) |
2.4.3 精确度与召回率
混淆矩阵:TP(真正例)、TN(真负例)、FP(假正例)、FN(假负例)。
1) 真正例(TP, True Positive):实际为正类,预测也为正类。
2) 假正例(FP, False Positive):实际为负类,预测为正类(误报)。
3) 真负例(TN, True Negative):实际为负类,预测也为负类。
4) 假负例(FN, False Negative):实际为正类,预测为负类(漏报)。
精确率(Precision):(预测为正的样本中实际为正的比例)。关注预测的准确性
召回率(Recall):(实际为正的样本中被正确预测的比例)。关注正类的覆盖率
高精率确低召回率: 预测产品质量永远为合格(绝大部分产品都合格)
实际场景举例:
- 高精确率优先:垃圾邮件分类(宁可漏判也要避免误判正常邮件)
- 高召回率优先:疾病检测(宁可误诊也要减少漏诊)。
例子:癌症检测
设测试集有 100 名患者,其中 10 人患癌(正类) , 90 人健康(负类)。模型预测结果如下
- 正确预测:
- 癌症患者:8 人(TP = 8)。
- 健康患者:83 人(TN = 83)。
- 错误预测:
- 将 7 名健康人误诊为癌症(FP = 7)。
- 漏诊 2 名癌症患者(FN = 2)。
混淆矩阵:
预测患癌 | 预测健康 | |
---|---|---|
实际患癌 | TP = 8 | FN = 2 |
实际健康 | FP = 7 | TN = 83 |
相关文章:
机器学习(吴恩达)
一, 机器学习 机器学习定义: 计算机能够在没有明确的编程情况下学习 特征: 特征是描述样本的属性或变量,是模型用来学习和预测的基础。如: 房屋面积, 地理位置 标签: 监督学习中需要预测的目标变量,是模型的输出目标。如: 房屋价格 样本: 如: {面积100㎡…...
Ubuntu 20.04 + mysql 8 默认密码问题
问题描述: Ubuntu20.04安装完mysql8之后无法登录,不知道密码 mysql -u root 原因: 系统默认自动配置好了用户和强密码 解决办法: sudo cat /etc/mysql/debian.cnf查看该文件 利用上面的user 和 passwd 即可登录mysql mysql …...
私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s)
1. 引言 在企业级大数据架构中,私有云部署成为了许多企业的首选,尤其是对数据安全性、合规性、资源控制要求较高的场景。相比于公有云,私有云具备更强的灵活性,能够根据业务需求进行定制化优化。本文将探讨如何在私有云环境下构建大数据平台,包括 Docker 容器化、Kuberne…...
使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法
使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法 现在PRD文档要如何写更高效、更清晰、更完整? 还是按以前的思路写PRD,就还是以前的样子。 现在AI这么强大,产品经理如何使用DeepSeek写PRD文档,产品经…...
拥有一台云服务器能做什么呢?
拥有一台云服务器就像拥有了一台24小时在线的远程电脑,你可以通过互联网随时随地管理它。它的用途非常广泛,无论是个人学习、开发测试,还是企业级应用部署,都能发挥重要作用。以下是常见的应用场景,按需求分类整理&…...
4大观点直面呈现|直播回顾-DeepSeek时代的AI算力管理
直播回顾 2025年2月21日晚上9点30分, 我们迎来了新春后的首场人工智能三人行宣讲活动。 这场直播聚焦于Deepseek开源大模型, 探讨了其对AI算力、算法、数据及应用带来的新发展。 本次直播邀请到了上海赞奇的总经理俞阁总和速石科技陈琳涛,…...
DBeaver安装步骤及连接数据库
一、DBeaver安装步骤 1、双击安装文件“dbeaver-ce-21.3.3-x86_64-setup.exe”,进入安装界面 2、点击ok》下一步》我接受,选择下图选项,为此所有用户使用 3、点击下一步,将重新弹出安装开始界面 4、点击ok》下一步》我接受&…...
玩转python:通俗易懂掌握高级数据结构-collections模块之UserDict
引言 UserDict是Python中collections模块提供的一个强大工具,它是dict的封装类,允许用户自定义字典的行为。通过继承UserDict,开发者可以轻松扩展字典的功能,实现自定义的字典逻辑。本文将详细介绍UserDict的关键用法和特性&…...
如何解决ChatGPTplus/pro o1/o3模型无法识别图片或者文件,限制次数?
你是否遇到ChatGPTplus无法识别图片、或者无法识别文件,甚至回答很简短,o1不思考,GPT-4o不能联网、分析图片和处理文件!感觉非常敷衍。本文教你如何确定自己的账号是否被降智;教你如何降智的原因;教你解决降…...
96.HarmonyOS NEXT工具类设计模式教程:最佳实践与实现
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT工具类设计模式教程:最佳实践与实现 1. 工具类设计原则 1.1 基本原则 原则说明示例单一职责每个类只负责一个功能Win…...
springboot+vue如何前后端联调,手搓前后端分离项目
我们首先在前端安装axios,这个npm就可以!下载完成后。我们用我们之前的页面,然后写一个card,在一个card里面渲染我们的用户数据,我们先写一个查询所有用户信息的一个效果! <el-card class"box-card…...
git备份or打补丁
起因 在工作中使用git pull突然发现仓库出现了找不到代码库问题,但是这个时候有个对策又急着需要,于是乎,就需要备份,拷贝给另一个工程师输出。 git 打补丁操作 工程师A生成补丁文件 touch a.txtgit add a.txtgit commit -m &qu…...
游戏成瘾与学习动力激发研究——多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析
多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析 一、核心概念 多巴胺(Dopamine) 一种关键神经递质,主要功能是调节动机、奖赏学习和行为强化。它并非直接产生“快乐感”,而是驱动“寻求奖赏”的行为动机。 脉冲式释放(Phasic Release) 多巴胺神经元以短暂、高频的爆…...
【C/C++】最长回文子串(leetcode T5)
核心考点:回文字符串匹配中心扩展法 题目描述 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。…...
表的操作以及增删查改
1. 表的操作 1.1 查看所有表 show tables; 1. 2 创建表 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_namefield datatype [ 约束 ] [comment 注解内容 ][, field datatype [ 约束 ] [comment 注解内容 ]] ...) [engine 存储引擎 ] [character set 字符集 ] [collate …...
【人工智能基础2】Tramsformer架构、自然语言处理基础、计算机视觉总结
文章目录 七、Transformer架构1. 替代LSTM的原因2. Transformer架构:编码器 - 解码器架构3. Transformer架构原理 八、自然语言处理基础1. 语言模型基本概念2. 向量语义3. 预训练语言模型的基本原理与方法4. DeepSeek基本原理 九、计算机视觉 七、Transformer架构 …...
Python游戏开发自学指南:从入门到实践(第四天)
Python不仅适用于数据分析、Web开发和自动化脚本,还可以用于游戏开发!虽然Python不是传统意义上的游戏开发语言,但其简洁的语法和丰富的库使其成为初学者学习游戏开发的绝佳选择。本文将为你提供一份全面的Python游戏开发自学指南,…...
向量数据库技术系列四-FAISS介绍
一、前言 FAISS(Facebook AI Similarity Search)是由Facebook AI Research开发的一个开源库,主要用于高效地进行大规模相似性搜索和聚类操作。主要功能如下: 向量索引与搜索:FAISS提供了多种索引和搜索向量的方法&…...
【网络安全 | 漏洞挖掘】价值14981$的Google点击劫持漏洞
未经许可,不得转载。 文章目录 点击劫持前言漏洞1攻击场景漏洞2攻击场景漏洞3攻击场景漏洞4攻击场景漏洞5攻击场景漏洞6攻击场景点击劫持 点击劫持是一种恶意的用户界面攻击技术,也被称为 “UI 覆盖攻击” 或 “透明劫持”。 攻击者通过创建一个看似正常的网页,并在其中嵌…...
CMake 保姆级教程
CMake 是一个跨平台的构建工具,用于生成适合不同平台和编译器的构建系统文件(如 Makefile 或 Visual Studio 项目文件)。 在 Windows 下使用 CMake 构建项目时,CMake 会根据 CMakeLists.txt 文件生成适合 Windows 的构建系统文件&…...
IntelliJ IDEA 2023.3.1安装指南从下载到配置的完整教程(附资源下载)
安装 IntelliJ IDEA 2023.3.1 非常简单,以下是详细的安装步骤,适用于 Windows、macOS 和 Linux 系统。 1. 下载 IntelliJ IDEA IntelliJ IDEA下载链接:https://pan.quark.cn/s/3ad975664934 选择适合你的操作系统的版本: Ultimat…...
springboot树形结构 支持模糊查询,返回匹配节点和父节点,其他节点不返回
package com.me.meterdemo.ds; import java.util.ArrayList; import java.util.List;public class TreeNode {private Long id;private String name;private Long parentId;private List<TreeNode> children new ArrayList<>();// 构造方法public TreeNode(Long i…...
linux 命令 touch
Linux 的 touch 命令主要用于 创建空文件 或 修改文件的时间戳(访问时间、修改时间)。以下是其核心用法和实用示例: 基本语法 touch [选项] 文件名... 核心功能 1. 创建空文件 如果文件不存在,则创建空文件;如果存在…...
3.14-1列表
列表 一.列表的介绍和定义 1 .列表 类型: <class list> 2.符号:[] 3.定义列表: 方式1:[] 通过[] 来定义 list[1,2,3,4,6] print(type(list)) #<class list> 方式2: 通过list 转换 str2"12345" print(type(str2)) #<class str> list2lis…...
完整的模型验证套路
模型验证 0. 写在前面 经过之前的代码编写,我们已经建立了一套模型,下面就开始对我们编写的模型进行验证。 代码:代码链接 1. 验证模型 我们首先运行代码(epoch 20)得到结果如下: Files already down…...
python2和python3的区别
python2和python3的区别 核心区别Python 2 示例Python 3 示例通俗解释专业术语1. 打印方式print "Hello"print("Hello")Python 3必须加括号,像“按钮操作”;Python 2像“直接喊话”。print从语句变为函数,支…...
【时时三省】(C语言基础)用printf函数输出数据3
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 ( 5 ) e格式符。 用格式声明%e指定以指数形式输出实数。如果不指定输出数据所占的宽度和数字部分的小数位数,许多C编译系统(如VisualC)会自动给出数字部分…...
【差分约束】 P3275 [SCOI2011] 糖果|省选-
本文涉及知识点 差分约束 P3275 [SCOI2011] 糖果 题目描述 幼儿园里有 N N N 个小朋友, lxhgww \text{lxhgww} lxhgww 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求&…...
找第一个只出现一次的字符(信息学奥塞一本通-1130)
【题目描述】 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 【输入】 一个字符串,长度小于100000。 【输出】 输出第一个仅出现一次的字符,若没有则输出no。 【输入样例】 abcabd 【输出样…...
【MySQL】多表操作 —— 外键约束
目录 多表关系一对一关系一对多/多对一关系多对多关系 外键约束基本概念一对多/多对一创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多对多创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多表关系 MySQL 多表之间的关系可以概括为&#…...
自己动手打造AI Agent:基于DeepSeek-R1+websearch从零构建自己的Manus深度探索智能体AI-Research
第一章:AI Agent基础与DeepSeek-R1架构解析(1/10) 1.1 AI Agent技术演进与核心价值 人工智能代理(AI Agent)经历了从规则驱动到数据驱动的范式转移。早期基于专家系统的符号主义方法(如MYCIN医疗诊断系统…...
SpringSecurity配置(校验数据库用户信息)
文末有本篇文章的项目源码文件可供下载学习 通过SpringSecurity快速入门案例我们已经实现了基于内存的校验用户信息,但在实际项目中我们需要校验从数据库中获取的用户信息,这里我们主要是两步操作: 1.需要我们实现UserDetailsService的loadUserByUsername方法,在方法中以前端…...
中考语文的考点及相应的解题技巧
1 考点分布 1.1 作文(60 分左右) 考点:立意、选材、结构、语言表达等。要求立意深刻、新颖,选材真实、典型,结构清晰、完整,语言流畅、生动。 解题技巧:认真审题,理解题目要求和限…...
PackageManagerService
首语 PackageManagerService(以下简称PMS)是Android最核心的系统服务之一,它是应用程序包管理服务,管理手机上所有的应用程序,包括应用程序的安装、卸载、更新、应用信息的查询、应用程序的禁用和启用等。 职责 在Android系统启动过程中扫…...
基于大模型的智能客服搭建
引言:智能客服的范式转变 在数字经济浪潮中,客户服务正经历从"人力密集型"向"技术驱动型"的深刻转型。据IDC最新报告,全球智能客服市场规模预计将在2028年突破1200亿美元,年复合增长率达28.6%。这种增长背后…...
Vagrant+VMWare 安装Ubuntu24.04
背景介绍 对于众多 Windows 用户来说, 有时候需要用到 Linux 环境做一些开发或者测试. WSL 目前能覆盖到很大一部分使用场景, 但是仍然有一些场景需要用虚拟机才能解决. 开发者的痛点往往是对于虚拟机环境的配置和管理, 因为手动安装需要很长的时间, 并且每次安装完成之后需要…...
数字化转型 - 数据驱动
数字化转型 一、 数据驱动1.1 监控1.2 分析1.3 挖掘1.4 赋能 二、数据驱动案例2.1 能源工业互联网:绿色节能的数字化路径2.2 光伏产业的数字化升级2.3 数据中心的绿色转型2.4云迁移的质效优化2.5 企业数字化运营的实践2.6数字化转型的最佳实践 一、 数据驱动 从数…...
【软考-架构】11.3、设计模式-新
✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 💯考试真题题外话 项目中的应用 在实际项目中,我应用过多种设计模式来解决不同…...
leetcode0031 下一个排列-medium
1 题目: 下一个排列 官方标定难度:中等 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一…...
CmBacktrace的cmb_cfg.h
一:宏定义解析 #ifndef _CMB_CFG_H_ #define _CMB_CFG_H_#ifdef CMB_USER_CFG #include "cmb_user_cfg.h" #else /* print line, must config by user */ #define cmb_println(...) /* e.g., printf(__VA_ARGS__);printf("\r\n"…...
Redis监控:从睁眼瞎到千里眼的进化史
各位在Redis迷雾中摸黑的探险家们!今天我们要给Redis装上"天眼系统"——从连自己内存爆了都不知道的睁眼瞎,进化到连每秒哪个键被摸了几次都门儿清的监控狂魔!准备好迎接《Redisの楚门世界》了吗?👁️ 第一幕…...
mac利用“自动操作”扩展添加 Mac 访达右键菜单项
用惯了 Windows 的资源管理器,换到 Mac 的访达,最不习惯的就是不能通过右键菜单创建文件。 虽然 Mac 的 App Store 中有几个可以增加访达右键菜单的工具,但是居然都要收费(就这么一点点活都能卖钱,真是了不起…...
算法013——水果成篮
水果成篮(点击即可跳转) 这道题其实就是找到一个最长的子数组的长度,子数组中不超过两种类型的水果。 定义两个指针 left 与 right ,固定 left , 当 right 走到一个位置时,left 与 right 之间的种类 kind 2 , 当 ri…...
TCP/IP协议栈----通俗易懂(与OSI七层模型区别)
目录 一、概念 二、模型 对比 编辑(1)OSI的七层模型 (2)TCP/IP的四层模型 三、TCP/IP模型分层 (1)应用层 (2)传输层 (3)网络层 (4&…...
python中print函数的flush如何使用
在 Python 中,print 函数的 flush 参数是一个布尔值,默认值为 False。当设置为 True 时,它会强制将输出缓冲区的内容立即刷新到目标设备(通常是控制台),而不是等待缓冲区满或者程序结束时才输出。 要注意fl…...
python中有几种作用域
在 Python 中,作用域决定了变量的可见性和生命周期。Python 主要有以下四种作用域: 1. 局部作用域(Local Scope): - 在函数或方法内部定义的变量属于局部作用域。 - 这些变量只能在函数或方法内部访问。 def my_f…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固定表头表格
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固…...
【Java 优选算法】分治 - 快速排序
欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 分治算法就是将一个问题划分为多个相同类型的子问题,解决这些子问题即解决该类问题 颜色分类 题目链接 解法 利用三指针, i, left, right,将数组分为4个区间,如下图 …...
Kafka相关的面试题
以下是150道Kafka相关的面试题及简洁回答: Kafka基础概念 1. 什么是Kafka? Kafka是一个分布式、可扩展、容错的发布-订阅消息系统,最初由LinkedIn开发,现为Apache项目。它适用于高吞吐量的场景,如大数据处理和实时数据…...
Java基础面经
Java 基础 面试官:重写与重载的区别? 重载:发生在同一个类中,若多个方法之间方法名相同、参数列表不同,则它们构成重载的关系。重载与方法的返回值以及访问修饰符无关,即重载的方法不能根据返回类型进行…...