avatar
文章
112
标签
107
分类
34
Home
Archives
Categories
Tags
About
LsWorld
Home
Archives
Categories
Tags
About

LsWorld

图神经网络GNN:让模型学会理解关系数据
发表于2026-06-20|机器学习
前面学习线性回归、逻辑回归、决策树、GBDT 这类模型时,我们面对的数据通常是表格、向量或图片。每个样本大多可以单独看待。 但现实中还有很多数据天然带有“关系”: 社交网络中,用户之间有好友关系。 推荐系统中,用户、商品、点击、购买构成交互图。 分子结构中,原子是节点,化学键是边。 交通网络中,路口是节点,道路是边。 知识图谱中,实体和实体之间有语义关系。 这些数据的重点不只在于“单个对象有什么特征”,还在于“对象之间如何连接”。图神经网络(Graph Neural Network,GNN)就是专门用来处理这类图结构数据的神经网络。 一句话概括: GNN 让每个节点不断接收邻居的信息,更新自己的表示,从而把节点特征和图结构一起编码进向量里。 1. 为什么普通神经网络不够用假设我们要判断一个社交网络用户是否可能对某个话题感兴趣。 如果只看用户自己的特征,例如年龄、地区、历史点击,当然能得到一些信息。 但在社交网络里,用户的邻居也很重要: 他的朋友是否都关注这个话题? 他是否处在某个兴趣社区中? 他和哪些关键用户有连接? 他在网络中的位置是否特殊? 普通全连接神经网...
PPO算法:从策略梯度到裁剪目标函数
发表于2026-06-15|机器学习
PPO(Proximal Policy Optimization,近端策略优化)是深度强化学习中非常常用的一类策略优化算法。 如果前面已经理解了 MDP、奖励、价值函数和策略,那么 PPO 要解决的问题可以这样理解: 智能体已经有一个策略了。 现在我们根据新采样到的经验,让这个策略变得更好。 但每次更新不能太激进,否则好不容易学到的行为可能被一下子破坏。 这也是 PPO 名字里 “Proximal” 的含义:更新策略时,希望新策略离旧策略近一点。 一句话概括: PPO 是一种策略梯度算法,它通过裁剪新旧策略概率比值,限制单次策略更新幅度,从而在实现简单和训练稳定之间取得平衡。 1. 为什么需要 PPO在强化学习中,我们最终想学到一个策略: $$\pi_\theta(a|s)$$ 它表示在状态 $s$ 下选择动作 $a$ 的概率。这里的 $\theta$ 是神经网络参数。 如果某个动作带来了更高的长期回报,我们就希望以后在类似状态下更倾向于选择它;如果某个动作表现很差,就希望降低它被选中的概率。 这就是策略梯度的基本思想: 好动作的概率提高 坏动作的概率降低 但普通策...
HEFT算法:异构计算中的任务调度方法
发表于2026-06-14|算法
在并行计算、云计算、边缘计算和异构芯片中,我们经常会遇到这样的问题:一个应用不是一个单独任务,而是一组有依赖关系的子任务;这些子任务可以运行在不同处理器上,但每个处理器的速度并不一样。 例如: 图像处理流水线中,解码、滤波、特征提取、分类之间有先后依赖。 科学计算工作流中,某些矩阵运算必须等前面的数据准备完成。 CPU、GPU、FPGA 同时存在时,不同任务适合的执行设备不同。 边缘计算中,任务可以放在本地设备、边缘服务器或云端执行。 这类问题的核心是: 哪些任务先执行? 每个任务放到哪个处理器上执行? 怎样让整个工作流尽快完成? HEFT(Heterogeneous Earliest Finish Time,异构最早完成时间)就是一个经典的异构任务调度启发式算法。它不保证一定得到全局最优解,但因为思想清晰、计算复杂度相对较低、效果通常不错,所以经常作为异构计算调度问题中的基线算法。 一句话概括: HEFT 先根据任务到出口任务的“平均关键路径长度”给任务排序,再按照这个顺序把每个任务放到能最早完成它的处理器上。 1. 为什么需要 HEFT假设我们有 4 个任务:...
强化学习:从状态、动作到马尔可夫决策过程
发表于2026-06-13|机器学习
强化学习(Reinforcement Learning,RL)研究的是:一个智能体如何在环境中不断尝试,通过奖励信号学会更好的决策。 和监督学习不同,强化学习通常没有现成的标准答案。智能体每一步都要自己选择动作,然后环境会返回新的状态和奖励。 例如: 游戏角色向左走、向右走、攻击或防御。 机器人选择前进、转弯、抓取物体。 推荐系统选择给用户展示哪一个内容。 自动驾驶系统根据路况选择加速、刹车或转向。 这些问题都有一个共同点:当前的选择不只影响当前结果,还会影响以后能走到哪里、以后能拿到多少奖励。 马尔可夫决策过程(Markov Decision Process,MDP)就是强化学习中描述这种“连续决策问题”的基础数学框架。 一句话概括: MDP 描述的是:智能体在某个状态下选择动作,环境按照一定概率转移到下一个状态,并给出奖励;智能体的目标是在长期上获得尽可能多的累计奖励。 1. 为什么需要 MDP前面学习线性回归、逻辑回归、决策树时,我们面对的问题通常是这样的: 输入一个样本 -> 模型给出一个预测 例如: 房屋面积 -> 房价 学习时长 -> 是否通过考试 花...
文本处理:让自然语言变成模型能理解的数字
发表于2026-06-07|自然语言处理
学习 Transformer 之前,有一个非常重要的前置问题: 机器学习模型只能处理数字,那自然语言文本应该怎样变成数字? 比如一句话: 我喜欢自然语言处理 人可以直接理解它的意思,但模型不能直接处理汉字、单词和标点。我们需要先把文本拆成一个个 token,再把 token 映射成编号或向量,最后才能送进模型。 这篇文章就来系统梳理 NLP 中最基础的文本处理流程。 1. 文本处理在 NLP 中的位置在前面的机器学习文章中,我们处理的大多是结构化数据,例如: 学习时长、睡眠时长、房屋面积、历史成绩 这些特征天然就是数字,或者很容易转成数字。 但 NLP 处理的是文本,例如: 这部电影很好看 这个商品质量一般 今天天气不错 模型不能直接理解这些句子,所以需要一个转换流程: 原始文本 -> 清洗与规范化 -> 分词 / tokenization -> 构建词表 -> token 转 id -> id 转向量 -> 输入模型 传统机器学习中,文本常被转成词袋、TF-IDF 这样的稀疏向量;深度学习和 Transformer 中,文本通常先转成 ...
正则化与过拟合:让模型不只记住训练集
发表于2026-06-04|机器学习
前面学习线性回归、逻辑回归、决策树、集成学习和 GBDT 时,我们一直在训练模型,让模型尽可能学到数据里的规律。 但机器学习里有一个很重要的问题: 模型在训练集上表现很好,不代表它在新数据上也表现很好。 如果模型把训练数据里的噪声、偶然样本、特殊细节都记住了,就会出现过拟合(Overfitting)。正则化(Regularization)就是用来控制模型复杂度、提升泛化能力的一类方法。 1. 什么是泛化能力机器学习真正关心的不是训练集分数,而是模型面对新数据时的表现。 例如我们训练一个模型预测学生是否通过考试。训练集中有 100 个学生,模型全部预测正确,训练准确率达到 $100%$。 这听起来很好,但如果换一批新学生,准确率只有 $65%$,说明模型可能只是记住了训练集,而没有学到稳定规律。 这种“面对新数据仍然表现好”的能力,叫泛化能力。 可以简单记住: 训练集表现好:说明模型会做旧题 测试集表现好:说明模型学到了规律 在交叉验证那篇文章里,我们已经讲过:不能只看一次训练/测试划分,更稳妥的方式是用验证集或交叉验证评估模型。正则化则是进一步解决“模型太复...
GBDT:从残差到梯度提升树的完整理解
发表于2026-06-02|机器学习
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是机器学习中非常常用的一类模型,尤其适合表格数据任务。 它的名字看起来很长,但拆开以后并不神秘: Gradient:沿着损失函数下降的方向修正模型。 Boosting:一轮一轮训练模型,后面的模型修正前面的错误。 Decision Tree:每一轮加入的基模型通常是一棵回归树。 一句话概括: GBDT 不是一次训练一棵很大的树,而是一棵树接一棵树地补前面模型的错误。 1. 为什么需要 GBDT单棵决策树有两个明显问题: 树太浅,模型表达能力不够,容易欠拟合。 树太深,容易把训练数据记得太死,导致过拟合。 GBDT 的思路不是训练一棵特别复杂的树,而是训练很多棵相对简单的树。 每一棵树只做一件事: 修正当前模型还没预测好的部分 这样模型可以逐步变强,同时通过学习率、树深度、树数量等参数控制复杂度。 2. 从一个房价例子理解 GBDT假设我们要预测 3 套房子的价格: 房子 面积 房龄 真实价格 A 70 平 15 年 100 万 B 100 平 8 年 16...
AICompanion 开发日志 04:真实模型接入诊断与情感交互方向校准
发表于2026-05-29|项目实战
上一篇日志整理了 AICompanion 当前已经实现的功能:PySide6 聊天窗口、SQLite 本地存储、长期记忆、情绪状态、主动消息雏形,以及 OpenAI-compatible 大模型接口。 写完之后,我继续往前推进了一小步。我开始把项目从本地 mock 回复,推进到更稳定地接入真实大模型。 同时我也重新校准了一下项目定位。AICompanion 不是要做成一个传统桌面助手,不是以任务管理、效率工具或系统控制为核心。它最终想实现的是一个基于 Live2D 动漫角色的情感交互应用。也就是说,后续所有模块都应该服务于“角色感”“陪伴感”“情绪反馈”和“长期关系感”。 1. 这次新增内容概览这次主要新增和完善的是大模型接入体验,集中在 llm 模块和 README 文档中。 当前相关文件包括: src/aicompanion/llm/ base.py mock_client.py openai_compatible_client.py factory.py diagnostics.py 其中这次比较重要的是: src/aicompanion/llm/...
集成学习:让多个模型一起做决定
发表于2026-05-28|机器学习
前面学习决策树时,我们提到过一个问题:单棵决策树虽然直观、可解释,但很容易过拟合,也很容易受到数据扰动影响。 集成学习(Ensemble Learning)就是为了解决这类问题而出现的思想。它不再把希望全部压在一个模型身上,而是训练多个模型,再把它们的结果组合起来。 可以把它理解成:一个人判断可能会偏,很多人从不同角度判断,再投票或取平均,结果通常更稳定。 1. 什么是集成学习集成学习的核心思想很简单: 训练多个基模型,再把这些模型的预测结果组合成最终结果。 这里的基模型也叫弱学习器(Weak Learner)或基学习器(Base Learner)。它不一定真的很弱,只是相对于最终组合模型来说,每个单独模型只负责贡献一部分判断。 例如一个分类任务中,我们训练了 5 个模型,它们分别预测: 模型 1:通过 模型 2:通过 模型 3:不通过 模型 4:通过 模型 5:通过 如果使用多数投票,最终结果就是“通过”。 如果是回归任务,例如预测房价,多个模型分别预测: 90 万、94 万、92 万、96 万、93 万 最终可以取平均值: $$\hat{y}=\fra...
AICompanion 开发日志 03:当前版本功能总览
发表于2026-05-27|项目实战
前两篇分别记录了项目搭建和 PySide6 聊天窗口的实现。这一篇不继续单独展开某一个模块,而是做一次阶段性整理:把目前代码里已经实现的功能完整梳理一遍。 AICompanion 现在还不是最终形态,还没有 TTS,也还没有 Live2D。但它已经不只是一个空窗口了。目前这个版本已经把桌面聊天、模型接口、本地存储、长期记忆、情绪状态和主动消息的基础流程都接了起来。 1. 当前项目状态当前项目路径是: D:\Study\AICompanion 项目采用 src layout,核心代码放在: src/aicompanion/ 目前主要模块如下: src/aicompanion/ app.py # 应用装配入口 config.py # 配置读取 controllers/ chat_controller.py # 聊天流程控制 domain/ character.py # 角色设定 emotion.py # 情绪状态 llm...
AICompanion 开发日志 02:用 PySide6 搭建聊天窗口
发表于2026-05-27|项目实战
上一篇主要记录了 AICompanion 的项目搭建、技术选型和目录结构。这一篇开始进入真正的功能实现。 当前阶段的目标很明确:先用 PySide6 做出一个可以运行的聊天窗口。它不需要一开始就很华丽,也不需要马上接入 Live2D,但必须把后续扩展需要的基础结构搭好。 也就是说,这一篇的重点不是“画一个窗口”,而是做出一个可以继续生长的桌面聊天程序骨架。 1. 当前阶段目标AICompanion 的整体计划分成几个阶段: 阶段 目标 第一阶段 Python + PySide6 做聊天窗口 第二阶段 接入大模型,实现多轮聊天 第三阶段 SQLite 保存聊天记录和记忆 第四阶段 主动消息、角色设定、表情切换 第五阶段 加入 TTS 语音回复 第六阶段 尝试 Live2D 这篇文章对应第一阶段的核心内容:聊天窗口。 不过在实现窗口时,我没有把所有逻辑都写进一个文件里,而是提前拆成了几个层次: ui:负责界面显示。 controllers:负责聊天流程。 llm:负责大模型接口。 storage:负责 SQLite 数据读写。 service...
决策树:像做选择题一样理解分类与回归
发表于2026-05-27|机器学习
决策树(Decision Tree)是一种非常符合人类直觉的机器学习算法。它的预测过程就像做选择题:先问一个问题,根据答案走到下一步,再继续问问题,直到得到最终结论。 例如判断一个学生考试是否通过,可以问: 学习时间是否大于 3 小时? 睡眠时间是否大于 7 小时? 是否完成复习? 最后走到某个叶子节点,得到“通过”或“不通过”的预测结果。 1. 决策树的基本思想决策树的核心思想是:不断选择一个最合适的特征,把数据集切分得越来越“纯”。 这里的“纯”可以理解为:一个节点里的样本类别越统一,就越纯。 例如一个节点里有 10 个样本: 如果 10 个都是“通过”,这个节点非常纯。 如果 5 个“通过”、5 个“不通过”,这个节点就很混乱。 训练决策树时,算法会不断寻找最佳划分条件,例如: 学习时间 >= 3 小时? 如果这个问题能把“通过”和“不通过”分得更开,就说明它是一个不错的划分。 2. 决策树由哪些部分组成一棵决策树通常包含三类节点: 结构 含义 根节点 整棵树的起点,包含全部训练数据 内部节点 一个判断条件,例如“年龄是否大于 18” 叶...
12…10
avatar
LsWorld
专注机器学习、深度学习与工程实践
文章
112
标签
107
分类
34
GitHub
公告
欢迎来到 LsWorld,这里记录机器学习学习路线、实验笔记和代码实践。
最新文章
图神经网络GNN:让模型学会理解关系数据2026-06-20
PPO算法:从策略梯度到裁剪目标函数2026-06-15
HEFT算法:异构计算中的任务调度方法2026-06-14
强化学习:从状态、动作到马尔可夫决策过程2026-06-13
文本处理:让自然语言变成模型能理解的数字2026-06-07
分类
  • C5
  • Flutter2
  • Hexo2
  • JavaScript1
  • TypeScript1
  • Vercel1
  • Vue4
  • Vue31
标签
es6 单片机 AICompanion 爬虫 指针 HEFT 前端工程化 随机森林 内存管理 博客部署 操作系统 超参数调优 PPO Vercel Vue3 stm32 typeorm 应用层 图神经网络 Python NLP Dart DAG 优化算法 MDP 强化学习 webpack javascript 自然语言处理 hexo 大模型 GCN 泛化能力 C TypeScript nestjs GitHub Pages flutter AI角色 计算机网络体系结构
归档
  • 六月 2026 7
  • 五月 2026 13
  • 二月 2025 2
  • 一月 2025 10
  • 十二月 2024 1
  • 二月 2024 3
  • 一月 2024 6
  • 十二月 2023 14
网站信息
文章数目 :
112
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By LsWorld框架 Hexo 6.2.0|主题 Butterfly 5.5.5-b1