- 博客(51)
- 收藏
- 关注
原创 【机器学习】33 强化学习 - 连续状态空间(DQN算法)
本文介绍了深度Q网络(DQN)算法在连续状态空间中的应用。以月球着陆器为例,说明如何用神经网络学习状态-动作值函数,输入为8维状态向量和4种动作的独热编码。DQN通过贝尔曼方程生成训练样本,采用经验回放机制打破数据相关性,提高训练稳定性。算法优化包括改进网络架构(多输出对应不同动作)、ε-贪婪策略平衡探索与利用、小批量梯度下降和软更新技术。特别强调了目标网络机制,通过周期性更新目标网络参数来稳定训练过程。完整DQN算法流程包括随机初始化、主循环中的数据收集与存储、网络训练(随机采样经验回放缓冲区、计算目标值
2025-12-11 20:16:43
878
原创 【机器学习】31-32 强化学习介绍 & 状态-动作值函数
本文介绍了强化学习的基本概念与关键要素。强化学习是一种通过智能体与环境交互来学习最优策略的方法,其核心目标是最大化长期累计奖励。文章详细阐述了状态、动作、奖励、策略和价值函数等基本概念,并以火星探测器为例说明强化学习的应用。重点讨论了回报(Return)和折扣因子的作用,以及策略的定义与马尔科夫决策过程。随后介绍了状态-动作值函数(Q函数)及其计算工具贝尔曼方程,最后扩展到随机环境下的Q函数调整。这些概念为理解强化学习算法奠定了基础。
2025-12-10 15:45:18
1034
原创 【机器学习】30 基于内容的过滤算法
本文介绍了基于内容过滤的推荐系统方法。首先对比了协同过滤与基于内容过滤的区别,后者不仅利用用户评分还结合用户和物品特征。详细阐述了深度学习在内容过滤中的应用,通过构建用户和物品两个神经网络,输出特征向量并计算点积作为预测值。针对大规模推荐系统,提出了检索-排序的两阶段处理方案。最后展示了使用TensorFlow实现该方法的代码示例,包括网络架构、归一化处理和特征编码注意事项。该方法通过结合深度学习和特征工程,能有效提升推荐系统的准确性和可扩展性。
2025-12-08 20:37:16
1112
原创 【机器学习】28-29 推荐系统 & 推荐系统实现
本文介绍了推荐系统的核心算法——协同过滤。首先以电影推荐为例,讨论了基于用户评分和电影特征的线性回归模型。随后详细阐述了协同过滤算法的原理,通过交替优化用户参数和电影特征来实现推荐。文章还扩展到二元标签场景,并介绍了均值归一化处理冷启动问题的方法。最后提到TensorFlow的自动微分工具可以简化实现,并分析了算法的局限性,包括冷启动问题和未充分利用已知特征等。协同过滤算法通过挖掘用户-物品交互数据的内在关联性,为个性化推荐提供了有效解决方案。
2025-12-08 20:30:48
857
原创 【机器学习】27 异常检测(密度估计)
本文介绍了异常检测的基本概念和方法。主要内容包括:1) 异常检测基于密度估计,通过构建概率模型识别异常值;2) 使用高斯分布建模特征概率,介绍最大似然估计方法计算参数;3) 多特征异常检测算法及其实现流程;4) 评估方法,建议划分训练集、验证集和测试集;5) 比较异常检测与监督学习的适用场景;6) 特征选择策略,强调特征分布分析和错误分析的重要性。文章指出异常检测适用于异常类型未知或样本稀少的情况,而监督学习更适合已知异常类型且有充足标注数据的场景。
2025-12-03 15:48:14
835
原创 【机器学习】26 聚类
本文介绍了无监督学习中的K-means聚类算法。K-means通过迭代优化失真函数,将数据点分配到K个簇中。算法步骤包括:随机初始化簇质心、点分配和重新计算质心。关键要点是:1)随机选择样本点作为初始质心;2)通过多次随机初始化寻找更优解;3)聚类数K的选择需结合实际应用,可采用ELBO方法或权衡成本与效果。K-means适用于图像压缩等多种场景,通过优化欧式距离实现数据自动分组。
2025-12-02 23:30:16
1125
原创 【机器学习】23-25 决策树 & 树集成
本文系统性地介绍了决策树模型及其相关算法。首先阐述了决策树的基本结构与学习过程,重点讨论了如何通过最大化信息增益选择最优划分特征,并详细解释了熵作为纯度衡量指标的计算方法。文章涵盖了分类树与回归树的构建逻辑,包括离散特征处理(独热编码)和连续特征阈值选择。进一步,文章深入探讨了决策树集成方法,重点分析了随机森林算法通过放回抽样和特征随机选择来增强模型鲁棒性的机制。特别介绍了XGBoost算法的核心优势:自适应样本权重调整、内置正则化和高效实现。最后,文章对比了决策树集成与神经网络的应用场景。
2025-12-02 16:47:29
1219
原创 【机器学习】21-22 机器学习系统开发流程 & 倾斜数据集
本文摘要:文章介绍了机器学习开发流程的关键环节,包括迭代开发过程、错误分析方法、数据增强与合成技术、迁移学习的应用场景与策略。详细阐述了倾斜数据集下的评估指标(准确率、召回率、F1分数)及其权衡关系,并概述了完整机器学习项目的生命周期(从任务定义到部署监控)。特别强调了在数据不平衡情况下传统准确率的局限性,提出了使用精确率和召回率作为替代指标,并通过F1分数进行综合评估的方法。最后提及了机器学习项目中的伦理考量和数据偏见问题。
2025-11-30 16:20:21
815
原创 【机器学习】18-20 其他神经网络中的概念 & 机器学习实用建议 & 偏差和方差
本文摘要:文章介绍了神经网络优化方法(如Adam算法)和不同层类型(如卷积层),并提供了机器学习模型评估与优化的实用建议。重点讨论了如何通过训练集、验证集和测试集评估模型,以及诊断高偏差(Bias)和高方差(Variance)的方法。对于高偏差,建议增加特征或减少正则化;对于高方差,建议增大训练集或加强正则化。文章还强调了大型神经网络在适当正则化下通常不会过拟合,并提供了TensorFlow中实现正则化的方法。
2025-11-28 14:45:39
610
原创 【机器学习】15-17 神经网络训练 & 激活函数 & 多类问题
本文介绍了神经网络训练与多分类问题的关键内容。首先阐述了TensorFlow实现神经网络的三个步骤:构建网络层、定义损失函数和训练模型。随后讨论了激活函数的选择策略,强调ReLU在隐藏层的优势以及输出层根据需求选择不同激活函数。在多分类问题上,重点讲解了Softmax回归及其实现方式,包括改进的数值计算方法以避免舍入误差。最后简要介绍了多标签分类问题的处理方法,指出其与多类分类的区别。全文涵盖了神经网络训练的核心概念和实践技巧,为机器学习实践提供了重要指导。
2025-11-27 19:24:08
675
原创 【机器学习】11-14 神经网络 & TensorFlow实现 & Python实现 & 向量化
本文摘要:文章系统介绍了神经网络的基本原理与实现方法。首先阐述了神经网络的基本结构(输入层-隐藏层-输出层)和工作机制(前向传播),重点讲解了神经元通过线性加权和非线性激活函数实现特征自动抽取的核心原理。随后详细说明了TensorFlow中的实现方式,包括Dense层、Sequential模型构建等关键概念。文章还对比了Numpy与TensorFlow的数据表示差异,并提供了Python实现前向传播的代码示例。最后讨论了神经网络的矢量化实现优势,以及矩阵运算的注意事项。全文贯穿神经网络从理论到实践的关键知识
2025-11-25 20:55:23
657
原创 【机器学习】10 正则化 - 减小过拟合
本文介绍了机器学习中正则化(Regularization)技术的基本概念与应用。首先阐述了过拟合(Overfitting)和欠拟合(Underfitting)问题,指出正则化是解决过拟合的有效方法。文章详细讲解了正则化的实现原理:通过在成本函数中添加参数w的平方项(正则化项)来惩罚过大的权重值,平衡模型拟合程度和泛化能力。重点分析了正则化参数λ的作用及其取值对模型的影响,并推导了带正则化项的线性回归和逻辑回归的梯度下降公式。其中,线性回归的正则化表现为权重更新时的缩小因子(1-αλ/m),而逻辑回归的正则化
2025-11-25 12:20:36
1083
1
原创 【机器学习】7-9 分类任务 & 逻辑回归的成本函数 & 逻辑回归的梯度下降
本文介绍了逻辑回归的基本原理及其实现方法。首先指出线性回归不适用于分类任务,进而引入逻辑回归模型,使用Sigmoid函数将输出限制在0-1之间作为概率预测。讨论了决策边界的线性与非线性形式,并重点推导了逻辑回归的成本函数,采用对数损失函数替代平方误差以解决非凸优化问题。最后给出了梯度下降算法的具体实现公式,包括权重和偏置项的更新规则。虽然形式上与线性回归相似,但本质差异在于预测函数f的不同。整个推导过程基于最大似然估计原理,为分类问题提供了有效的解决方案。
2025-11-24 14:57:41
830
原创 【机器学习】5-6 多变量线性回归 & 线性回归的实践技巧
文章介绍了多元线性回归模型及其实现方法。首先从单变量扩展到多变量模型,定义了特征向量和参数向量。重点讲解了向量化计算在高效实现中的应用,列举了常用NumPy函数。对比了梯度下降和正规方程两种优化方法,分析了各自的优缺点。提供了线性回归的实用技巧:特征缩放的三种归一化方法、收敛性检查、学习率选择策略、特征工程和多项式回归。这些方法能有效提升模型性能,包括通过特征组合或变换创造新特征,以及使用多项式项拟合非线性关系。文章为多元线性回归的实现和优化提供了全面的技术指导。
2025-11-23 20:38:57
705
原创 【机器学习】1-4 机器学习介绍 & 概述 &单变量线性回归 & 线性回归训练
机器学习是人工智能的核心子领域,主要分为监督学习、无监督学习和强化学习三大类。监督学习通过带标签数据训练模型进行预测(回归和分类),无监督学习则从无标签数据中发现隐藏模式(聚类和异常检测)。线性回归作为监督学习的基础方法,使用均方误差成本函数评估模型性能,并通过梯度下降算法优化参数。梯度下降通过迭代调整参数使成本函数最小化,学习率的选择对收敛至关重要。本文系统介绍了机器学习的基本概念、分类方法以及线性回归的实现原理和优化过程。
2025-11-23 20:20:10
869
原创 解决UV直接安装sentence-transformers无法使用CUDA加速的问题
查了一下,一般情况下直接安装sentence-transformers是会自动检测gpu并启动cuda加速的,但是不知道为啥,在UV里add sentence-transformers,确实是会默认拉cpu版本的torch作为间接依赖,这就导致无法使用CUDA加速。试了一下指定torch下载地址和指定torch版本,还是不行,手动安装了gpu版本的torch,又提示sentence-transformers依赖冲突。
2025-09-12 14:12:27
492
原创 AI编程工具 Claude Code 国内使用最佳实践
由于众所周知的原因,Claude官方已经禁止国内使用了,所以Claude Code CLI也就无法直接使用了。所以我们需要使用中转服务调用Claude API,或者换成咱们国产的LLM API,比如Deepseek V3.1, Qwen-Coder, Kimi K2等等。有点标题党了,勉强算是“最佳实践”吧。
2025-09-11 17:56:12
3046
原创 Linux服务器 设置多用户共享目录
某个用户A在自己的用户目录/home/A下创建的XXX文件夹,想让其他用户(例如用户B和用户C)也可以访问并修改。需要主要的是,更安全和推荐的做法是创建一个专门的共享目录,而不是开放用户的主目录。
2025-08-19 15:11:17
900
原创 Human-in-MCP:调试Agent - 人工返回工具调用结果
有时候想设计一个可以调用多个工具的Agent,实验一下效果怎么样,但是并没有必要先实现好工具再调试Agent,或是想在Agent里添加一个Human-in-Loop,虽然这个有多种实现形式,但是如果让某个MCP工具可以由用户指定返回内容,也算是一种不错的方法。所以想到可以实现一个特殊的MCP-Server,可以添加若干个由用户指定工具调用结果的Function。
2025-07-11 15:38:41
356
原创 使用Langchain+FastMCP创建一个带上下文记忆的ReAct Agent
即SystemMessage, HumanMessage, AIMessage。入门一下Langchain创建智能体,标题的功能实现参见文章最后的部分。Langchain的链式设计,有点像命令行的管道,略,后续有空补。Prompt模板,可以设置替换参数,略,后续有空补。Langchain的关键功能,略,后续有空补。用一个list保存上述三种消息。示例:通过经纬度获取天气。
2025-07-10 13:57:26
859
原创 OpenRouter Deepseek 使用MCP服务的问题
今天用Langchain写了一个ReAct Agent的Demo,用OpenRouter的Deepseek-V3模型,发现MCP工具失灵时不灵,有时候可以正常调用工具,有时候直接返回空。另外,还发现一个奇怪的问题:OpenRouter的OpenAI系列模型,不用MCP服务,不会提示国家地区限制,设计Function Calling就提示了,奇怪。OpenRouter的Deepseek系列模型提供商非常多,猜测可能是各个提供商的接口不一致,有些不支持Function Calling的写法。
2025-07-09 21:09:04
364
原创 【LeetCode Hot100】最小栈 - “栈”系列
另一种类似的思路是,我们要维护前缀最小值,那么如果push的时候出现一个值,大于前面的前缀最小值,那么这个值会显得“无用”,因为它更靠后会更早被pop掉,所以影响不了前缀最小值,那么我们再用一个stack去存储前缀最小值,这个stack只push那些影响前缀最小值的值,即只有当这个值小于等于前面的前缀最小值才push进来,那么我们要getMin的时候,输出这个stack的top()即可,pop的时候判断一下是否和top()相等才pop。需要注意的是stack为空时,应该注意下边界情况。
2025-04-02 22:31:23
189
原创 【LeetCode Hot100】最小覆盖子串 - “子串”系列
接下来考虑如何求解,这类问题很像是双指针之类的解法,如果双指针从两边开始扫描,那么移动左指针还是右指针是个难题,例如。的话,如果优先移动右指针的话显然会忽略掉正解,反之亦然,所以从两边开始的双指针不能解决这道题,因为问题的性质不适用。此外,在哈希表统计字符时可以用比较技巧的方式,中所有字符的最小子串是什么,没有答案的话输出空字符串,有答案的话保证唯一。中的字符顺序无所谓,其实预处理存成一个哈希表,统计一下。了,一直移动到最远的能满足字符要求的地方,再移动。中没有的字符,显然跳过,如果有,那么统计下。
2025-03-12 21:06:50
562
原创 【LeetCode Hot100】和为K的子数组 - “子串”系列
给一个整数数组 nums 和一个整数 k ,统计并返回数组中和为K的子数组。
2024-10-30 21:25:53
247
1
原创 C & C++ 中int和long long的最大值与最小值
对于有符号整形变量int来说,第一个bit位为符号位,0表示整数,1表示负数,后面的31位,正数用原码表示,最大值为。负数用补码表示,特别的,为了避免同时出现正0和负0的情况,如果是0x80000000,规定为。对于unsigned无符号整型变量来说,最小值即为0,最大值即为0xffffffff,即。int和long类型变量占用字节数与编译器有关,一般默认占用4个字节,即32个bit。也就是说,负整数的范围与非负整数的范围相等,即负整数比正整数的范围大1。无符号长整型最小值为0,最大值为。
2024-08-19 13:49:09
3346
原创 【动态规划 - 最大子段和】环形子数组的最大和(Kadane算法+逆向思维)LEETCODE 918
考虑出现一个最小子数组等于整个数组之和的情况,如果它的左右不全为0,则左右数组之和为一正一负,最小子数组加上和为负的数组,数组和更小,与最小子数组矛盾,如果它的左右全为0,那么表示最大子数组和是0的情况可以取到,但这种情况已经在算最大子数组时包含到了,所以排除掉也无所谓。这里可以用逆向思维来思考,如果最大子数组在头尾相接的数组中,那么就相当于从整个数组中“挖”掉了中间的最小子数组(不包含头尾元素),即最大子数组和转化为整个数组的和减去最小子数组和。给一个环形的整数数组,求解最大的非空子数组和。
2024-08-14 20:38:57
703
原创 WSL 访问Windows端的MongoDB
之后那个(首选)ipv4地址就是在WSL系统中连接windows的地址,可以telnet测试一下连通性。
2024-07-09 12:59:11
606
原创 【每日一题 231106】最大单词长度乘积(位运算 哈希表)LEETCODE 318
还可以使用哈希表优化,考虑单词meet和met,两者的占用字母状态是一致的,所以在后续统计答案时,只需要考虑meet即可,因为其长度更大。所以可以使用哈希表统计,相同状态下只保留长度更大的单词。如果学过状态压缩DP的话,应该不难想到利用位运算去存储某个单词占用的字母情况,这样一来,记两个单词占用的字母状态为int类型的a和b,只要a&b等于0即表示两者没有重复的单词。给n个单词,只由小写字母构成,要找出两个单词,满足这两个单词没有重复的字母,要最大化这样的两个单词长度的乘积。
2023-11-06 12:10:49
178
原创 【力扣每日一题 231101】LEETCODE 2127. 参加会议的最多员工数(基环内向树 拓扑排序)
,那么这是个百搭的方案,有与其中任何一个结点相连的链都可以加进来(但是一个结点只能算一条链,即与之相连的最长链),并且如果有其他的大小为2的环也可以进行组合,都相加统计进答案里。方案二:算出以每个结点为终点的最长的链的大小,用拓扑排序去求,只需要略微修改拓扑排序的代码即可,更新最长的链的大小。然后遍历找出在 大小为2的环 中的结点,将前面算得的最长的链的大小求和。方案一:根据边的指向进行遍历,如果遇到指向的点和之前已经遍历的点重复,即找到了环,算出环的长度即可,最后取最大值找出最长的环的大小。
2023-11-03 20:58:27
198
原创 【力扣每日一题 0819】LEETCODE 2235. 两整数相加(位运算)
其实,当前bit位的结果就是异或(⊕)操作,而进位就是按位与(&)操作。可以先不考虑进位,把两个加数异或,再把进位的结果集中保存下来(因为是进位,所以按位与之后需要左移1位),当作另一个加数,然后重复这一过程,直到进位为0,得到的即为结果。如果直接加法的话,毫无难度,但是我们可以尝试一种新的做法:不用加号实现相加,即利用二进制的位运算去实现这一目的。考虑两个数二进制逐位相加,那么不难发现:对于每个bit位,需要考虑三个0/1相加,即第一个数、第二个数、进位。力扣 每日一题 两整数相加 2235 位运算。
2023-08-19 14:43:25
352
原创 【力扣每日一题 0818】LEETCODE 1388. 3n块披萨(思维 动态规划 反悔贪心)
再考虑下环形的情况,首尾元素至多只能选择一个,所以先排除尾部元素跑一遍,再排除首部元素跑一遍,两者再取最大值即可。法二(后悔贪心):待补充,大概的做法是考虑每次选取元素后,考虑相邻的两者,再加入原来的环中,进行“后悔”考虑即可。个数字,但是每次选择一个数字则会抛弃掉它相邻的两个数字,问最后选定的。这道题的关键难点在于转化题意,要看出其实就是在环中选。的第一维或者第二维进行循环压缩成常数级别,空间复杂度。可以用循环数组的方式优化下空间复杂度,把。个不相邻的数字组成的和的最大值。个数字的环,现在要选择。
2023-08-18 19:30:50
234
1
原创 【Proteus 仿真课程设计】基于51单片机的测距系统仿真设计
利用Proteus软件进行仿真设计,基于51单片机设计一个测距系统,可以通过超声波测距传感器结合温度传感器计算距离并通过LCD显示屏显示、串口发送数据,并可以通过手动按键设置距离阈值,当检测到距离低于阈值时,用蜂鸣器和LED闪烁进行声光报警,当距离低于阈值一半时 ,加快报警频率。Proteus;51单片机;电子仿真。
2023-08-16 16:10:36
3859
11
原创 【链表系列 - 8】【力扣每日一题 0812】LEETCODE 23. 合并K个升序链表
法三:利用优先队列,把每个有序列表的未合并的头节点加入到优先队列,每次优先队列弹出最小的元素即可。力扣 每日一题 合并K个升序链表 23 模拟 归并 优先队列。法二:考虑分治的思想,采用归并的方式进行合并,所以共需合并。remove_if搭配erase清除空的指针元素。法一:最朴素的想法,直接两两合并,时间复杂度。给k个升序链表,要求将他们合并。优先队列的自动推导类型和初始化。③ new和delete。
2023-08-12 10:43:31
201
1
原创 【力扣每日一题 0810】LEETCODE 1289. 下降路径最小和II(动态规划)
然后可以发现,其实只需维护一下每一行的最小值和次小值,以及最小值的列数即可,因为如果当前行选的数,列数与上一行最小值的列数不同,则直接加最小值即可,若列数相同,加次小值即可,如此便把时间复杂度优化到了。的网格,每个格中有一个数,要求从每一行中选一个数,相邻行之间选的数的列数不能相同,然后把这些数加起来,找出满足条件的最小的和。注意下可以循环维护上一行的最小值、次小值,可以节约空间,另外,对。,逐行扫描之后找上一行的最小值,若列数一致则找其次小值。的情况下的满足条件的最小值,表示上一行的最小值的列数,
2023-08-10 10:32:36
256
1
原创 【力扣每日一题 0808】LEETCODE 1749. 任意子数组和的绝对值的最大值(DP 前缀和)
③ reduce函数:也可以用reduce函数来计算最值,用法:reduce(a.cbegin(), a.cend(), 0, ::fmax),其中第3个参数是初值,第4个参数是操作函数。考虑用前缀和去找出子数组和的最值,不难发现:只需找出前缀和数组中的最大值减去最小值(需要与0比较),即为最终的答案。分析一下题意,不难发现:所谓的和的绝对值的最大值,就是要找出和的最大值、和的最小值,再取两者的绝对值的最大值即可。由分析可知,就是找出子数组的和的最大值或者最小值,两者再取绝对值更大的那个值即可。
2023-08-08 16:21:06
179
原创 【魔术数字 Magic Number】神奇的平方根倒数快速估算法
我们把一些出现在代码中的不明所以却又发挥重要作用的数字称作魔术数字(Magic Number)。这通常是因为程序员不加注释造成的后果,数字的意义只有本人清楚(更准确地说,可能只有本人在写代码的时候还记得清楚)。我们不妨学习一下费马先生,解释一句:我已经想到一个绝妙的数字用来解决这个问题,但这里的地方太小,写不下完整的注释。而在算法界流传着一个著名的魔术数字案例:用来快速估算平方根倒数的0x5f3759df,第一个提出这种算法的神人真的可以为自己辩驳一句:真的不是几句注释能解释得明白的呀。
2023-08-07 15:42:31
3353
1
原创 【链表系列 - 7】【力扣每日一题 0806】LEETCODE 24. 两两交换链表中的节点(迭代 递归)
② 递归法:当没有节点或者只剩下一个节点时,直接返回,否则交换前两个链表的节点,后面的递归处理,再把next赋值即可。① 模拟/迭代/双指针:模拟交换位置的过程,这种写法较为复杂,需要注意一下细节问题;很常规的题,和8月5号的每日一题的做法几乎一致。力扣 每日一题 两两交换链表中的节点 24 递归 模拟 双指针。给一个链表,交换位置1和2、3和4、5和6。
2023-08-06 09:36:38
100
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅