浩天博客
项目
站内搜索
直接问 AI

项目

项目索引

项目页把站内较完整的实验材料集中起来。每个项目至少应说明目标、数据或输入、实现语言、复核方法和已知边界;还没达到这个标准的内容,不会被包装成“成熟产品”。

项目类型 目前覆盖 可验证材料 边界
算法实现 八皇后、K-means、手写数字 softmax。 C 源码、输入数据、输出结果、复杂度说明。 用于教学和复现实验,不直接承诺生产稳定性。
AI/ML 实验 机器学习工作流、深度学习数学、PyBaMM 电池数据。 参数表、数据生成步骤、评估指标、失败模式。 小样本实验强调解释性,不替代工业级评估。
网络协议实验 DNS、TLS、HTTP/3、代理和缓存。 时间线、状态码、缓存命中、信任边界图。 仅用于学习和排障理解,不鼓励滥用网络测试。
站点工具 ANSI 图片转换器、浏览器实验台、知识图谱。 可交互页面、说明文章、下载材料。 浏览器端工具会明确输入处理和数据边界。

项目专题

按项目组织学习材料

每个项目集中展示目标、推荐路线、时间线、已发布文章、资源和下一步计划。

网络基础原理

把协议标准中的概念转化为能够手算、运行、观测和审计的工程实验。

从 DNS、TCP、TLS 与 HTTP/3 到代理隧道、负载均衡和共享缓存,以可重现的代码和图分析网页请求路径。

下一步计划

  • 补充 IPv6 与 QUIC 报文观察笔记
  • 继续用真实用户指标复查缓存与协议收益

已发布文章

共享密钥容易,共享状态难:一套跨机单点登录的六个坑

把单机登录网关扩成覆盖多子域的 SSO,密钥同步很简单,难的是状态。这篇记录三台机器共用一套网关时踩到的问题:防重放为何变成站内有效跨站无效、密钥的第二份副本如何让 nginx 放行而应用回 401、部署脚本的白名单保留规则怎样静默关掉登录,以及为什么比对凭证不能比生成的口令。

阅读时间: 13 分钟
  • TOTP
  • HMAC
  • auth_request
  • nginx

「加了鉴权」不等于「受保护」:一次授权边界的自我审计

给自建文件管理器加上双因子网关之后,我问了自己一个问题:这个网关到底挡住了什么。答案是挡住了界面、没挡住文件——同一份字节有两条 URL 可达,而且验证时才发现网关根本不在请求路径上。这篇记录整个自查过程、补洞时踩的两个 nginx 坑,以及源站封掉之后边缘缓存仍然发了近一年。

阅读时间: 13 分钟
  • nginx
  • auth_request
  • TOTP
  • CDN

家宽入站到底通不通:一次从公网打回来的实测

本机扫端口全是开的,从外面根本连不上——这篇讲为什么本机探测必然错、对照端口为什么不可省,以及一次完整实测:公网 IPv4 不是 CGNAT、80 和 443 被运营商过滤而非未开、IPv6 有真实地址却入站全丢、AAAA 记录为什么不能用回显服务的结果。

阅读时间: 11 分钟
  • nc
  • CGNAT
  • hairpin NAT
  • IPv6
  • DNS-01

有证书不等于走 HTTPS:一次被误报为”缺证书”的排查

有人说某个子域名没有 SSL 证书。查下来证书好好的——一张通配符证书覆盖着它。但排查确实查出了问题,而且更严重:那个子域名的邮箱登录页可以通过明文 HTTP 访问,页面里有密码输入框,没有任何跳转。附两个把我带偏的坑:openssl 对所有目标同时失败时该怀疑工具,以及透明代理下 DNS 枚举完全失效。

阅读时间: 9 分钟
  • TLS
  • SNI
  • nginx
  • HSTS

项目时间线

已发布文章

  1. 共享密钥容易,共享状态难:一套跨机单点登录的六个坑 把单机登录网关扩成覆盖多子域的 SSO,密钥同步很简单,难的是状态。这篇记录三台机器共用一套网关时踩到的问题:防重放为何变成站内有效跨站无效、密钥的第二份副本如何让 nginx 放行而应用回 401、部署脚本的白名单保留规则怎样静默关掉登录,以及为什么比对凭证不能比生成的口令。
  2. 「加了鉴权」不等于「受保护」:一次授权边界的自我审计 给自建文件管理器加上双因子网关之后,我问了自己一个问题:这个网关到底挡住了什么。答案是挡住了界面、没挡住文件——同一份字节有两条 URL 可达,而且验证时才发现网关根本不在请求路径上。这篇记录整个自查过程、补洞时踩的两个 nginx 坑,以及源站封掉之后边缘缓存仍然发了近一年。
  3. 家宽入站到底通不通:一次从公网打回来的实测 本机扫端口全是开的,从外面根本连不上——这篇讲为什么本机探测必然错、对照端口为什么不可省,以及一次完整实测:公网 IPv4 不是 CGNAT、80 和 443 被运营商过滤而非未开、IPv6 有真实地址却入站全丢、AAAA 记录为什么不能用回显服务的结果。
  4. 有证书不等于走 HTTPS:一次被误报为”缺证书”的排查 有人说某个子域名没有 SSL 证书。查下来证书好好的——一张通配符证书覆盖着它。但排查确实查出了问题,而且更严重:那个子域名的邮箱登录页可以通过明文 HTTP 访问,页面里有密码输入框,没有任何跳转。附两个把我带偏的坑:openssl 对所有目标同时失败时该怀疑工具,以及透明代理下 DNS 枚举完全失效。
  5. DNS 解析过程详解:从域名查询到 TTL 缓存的 Python 实验 从 RFC DNS 报文与递归查询出发,用 Python 和 C 实验计算 TTL 缓存命中对解析延迟的影响。
  6. CIDR、子网掩码与最长前缀匹配:用代码算清 IP 路由和 MTU 手算 CIDR 网段、最长前缀匹配与 MTU/MSS 分段,并用 Python/C 输出固定路由结果。
  7. TCP 三次握手、重传与拥塞窗口:可运行的序列号实验 从 TCP sequence/ACK 和慢启动出发,用确定性丢包曲线与 localhost C socket 实验理解可靠传输。
  8. HTTPS 与 TLS 1.3 握手原理:密钥交换、证书和 RTT 实验 解释 TLS 1.3 消息 flight、证书与临时密钥交换,用安全的教学模型计算一次 RTT 握手。
  9. HTTP/2、HTTP/3 与 CDN 缓存:从网络瀑布图理解网页加载速度 用确定性 waterfall 模型拆解 HTTP/2、HTTP/3、QUIC stream 和 CDN HIT/MISS 对网页等待时间的影响。
  10. 正向代理与反向代理原理:连接路径、信任边界和时延计算 从连接方向和 TLS 终止点解释正向代理、反向代理与隧道代理,并用 Python 模型分段计算代理 hop 与缓存收益。
  11. HTTP CONNECT 与 HTTPS 代理隧道:TLS 边界和握手时延 以 RFC CONNECT 状态机解释 HTTPS 代理隧道、TLS 可见性和首次加密请求时延。
  12. SOCKS5 代理原理:协议字节、DNS 解析边界与泄漏风险 按 RFC 1928 拆解 SOCKS5 CONNECT 字节,通过安全编码实验比较本地 DNS 与代理侧域名解析。
  13. 反向代理负载均衡原理:队列、健康检查和可复现调度实验 用固定请求队列比较 round robin 与负载感知调度,并解释反向代理健康检查和重试边界。
  14. 代理缓存与重新验证:Cache-Control、ETag 和可观测性实验 依据 RFC 9111 计算共享缓存 MISS、HIT 与 304 revalidation 的时延,并解释缓存 key 和隐私边界。

已公开资源

  1. Network Fundamentals Lab 说明 安装、无权限安全边界、十个 Python 实验和三个 C 示例的运行说明。
  2. 网络基础原理完整实验包 打包 Python/C 源码、固定场景、十份结果 CSV 与协议/代理图。
  3. DNS TTL 结果 CSV 四次固定查询的 HIT/MISS、过期时间和解析延迟。
  4. CIDR 与 MTU 结果 CSV 最长前缀路由和 3600 B payload 分段计算结果。
  5. TCP cwnd 事件 CSV 逐轮记录 ACK、窗口和固定重传事件。
  6. TLS 1.3 flight 结果 CSV 固定 RTT 模型中的消息方向、时间点和教学共享值。
  7. HTTP/CDN waterfall 结果 CSV HTTP/2 与 HTTP/3 在冷暖缓存模型中的分阶段耗时。
  8. 代理路径时延结果 CSV 直接访问、正向代理隧道与反向代理缓存路径的分阶段等待。
  9. CONNECT/TLS 时间线 CSV 记录 CONNECT authority、隧道建立与加密 HTTPS 请求的状态边界。
  10. SOCKS5 DNS 边界 CSV 保存 ATYP、目标字节、请求长度和本机 DNS 解析计数。
  11. 代理负载均衡队列 CSV 比较 round robin 与 least queue 的 backend 选择和排队等待。
  12. 代理缓存重新验证 CSV 记录 MISS、HIT、304 重新验证、对象年龄和响应时延。
  13. 网络请求链路交互演示 在浏览器里调整 TTL、前缀、丢包、握手 RTT 与缓存路径。
  14. 网络基础原理专题分享图 用于分享 DNS、TLS、HTTP/3、代理隧道和缓存专题的 1200x630 SVG 图。

下一步计划

  1. 补充 IPv6 与 QUIC 报文观察笔记
  2. 继续用真实用户指标复查缓存与协议收益

配套资源

电池建模与 AI

让电池、控制和机器学习方向的博士生能审计 PyBaMM 模型、批量生成带标签数据,并清楚区分仿真标签和实验真值。

围绕 PyBaMM、EIS、老化仿真、AI 标签数据与风险受控参数辨识,建立可复查的物理建模研究路线。

下一步计划

  • 用真实电芯复查域差异与认证转移边界
  • 增加 PyBOP/SEIS 对照实验的重新验证版本

已发布文章

PyBaMM 参数拟合:为什么优化器给你的数字可能毫无意义

搜索排第一的 pybamm-param 已废弃、PyBOP 的 API 刚大改,而真正要命的是可辨识性:参数在方程里以组合出现,一条曲线分不开它们。附一套区分"拟合出来"与"编出来"的验证流程。

难度: 博士生 阅读时间: 14 分钟
  • PyBaMM
  • EIS
  • Battery Aging
  • AI Dataset

项目时间线

已发布文章

  1. PyBaMM 快速解读:从 Oxford 电池模型架构到 AI 数据管线 面向博士生拆解 PyBaMM expression tree、Simulation 管线、模型选项和 AI 数据 schema。
  2. PyBaMM 阻抗谱数据生成:EISSimulation、SOC sweep 与 AI 标签 用 PyBaMM core 的 EISSimulation 生成阻抗谱,提取 Nyquist/Bode 特征并对齐老化标签。
  3. 用 PyBaMM 生成电池老化与阻抗 AI 数据集:标签、切分和质量控制 构建可复现 PyBaMM 数据工厂,生成 SOH、RUL、LLI、LAM、plating 和 EIS 特征标签。
  4. 训练电池 AI 实例:用 PyBaMM 仿真数据预测 SOH 与 RUL 用 PyBaMM 或 surrogate 生成的 EIS 特征和工况数据训练 scikit-learn 模型,预测电池 SOH 与 RUL。
  5. PyBaMM 参数拟合:为什么优化器给你的数字可能毫无意义 搜索排第一的 pybamm-param 已废弃、PyBOP 的 API 刚大改,而真正要命的是可辨识性:参数在方程里以组合出现,一条曲线分不开它们。附一套区分"拟合出来"与"编出来"的验证流程。
  6. PyBaMM 求解器收敛失败:先分清数值问题还是物理问题 长时间退化模拟在第 300 圈崩掉时,调容差通常是错的方向。用 SPMe 对照判定是数值还是物理问题,附 IDAKLU 全部选项默认值与一个静默失效的陷阱。

已公开资源

  1. PyBaMM AI Data Lab 说明 说明 PyBaMM 电池建模与 AI 数据管线的安装、quick run、backend 和输出 schema。
  2. PyBaMM AI Data Lab 完整实验包 打包设计生成、老化 sweep、EIS sweep、标签构建、质量检查、样例 CSV 和图示。
  3. PyBaMM 样本 manifest 保存 sample_id、模型族、参数集、协议、温度、SOC、cycle、split group 和标签来源。
  4. PyBaMM EIS 样例谱 CSV 频点级阻抗输出,包含 frequency、Z_re、Z_im、幅值、相位、backend 和 solver status。
  5. 电池老化与阻抗标签 CSV 保存 SOH、RUL proxy、LLI、LAM、plating、local resistance 和 EIS 特征。
  6. PyBaMM AI 数据质量报告 记录重复 sample、频点重复、缺失标签、split leakage 和 backend 使用情况。
  7. PyBaMM 到 AI 数据管线图 展示设计网格、老化求解、EIS 求解、标签构建、质量门和 AI split。
  8. EIS 特征与标签 schema 图 把频点、阻抗特征、工况 metadata 与 SOH/RUL/退化模式标签连接起来。
  9. 老化标签样例图 样例展示 cycle snapshot、SOH 与 local ECM resistance 的标签变化。
  10. SOH/RUL 训练指标 CSV 保存 group split、MAE、RMSE、R2、label source 和 backend used,用于复查训练结果。
  11. SOH/RUL held-out 预测 CSV 保存测试样本的真实值、预测值和绝对误差。
  12. SOH/RUL 特征重要性 CSV 记录每个目标模型的随机森林特征重要性。
  13. SOH/RUL 训练结果图 展示 held-out SOH/RUL 预测散点图和 SOH 特征重要性。
  14. 电池建模与 AI 分享图 面向 PyBaMM 电池建模、EIS、老化仿真和 AI 数据专题的 OG 分享图。

下一步计划

  1. 用真实电芯复查域差异与认证转移边界
  2. 增加 PyBOP/SEIS 对照实验的重新验证版本

配套资源

人工智能项目

让有编程基础的读者能完整跑通一次机器学习学习流程,并继续进入卷积网络、鲁棒评估、模型隐私和 LLM/RAG/Agent 安全防护。

从 AI、机器学习、训练评估、神经网络到 Python 小实战、手写数字识别、CIFAR-10 CNN、对抗性流量防御和 AI 安全攻防,按顺序建立基础。

下一步计划

  • 补充更多图像分类和误差分析案例
  • 把常见指标整理成速查表
  • 继续补充 AI 安全防御实验记录

已发布文章

神经网络基础:从感知机到多层网络

从一个神经元讲起,解释权重、偏置、激活函数、前向传播、反向传播和典型神经网络训练循环。

难度: 进阶 阅读时间: 8 分钟
  • Neural Networks
  • Backpropagation
  • Python

从开发者角度理解大语言模型:文字接龙、token 与采样参数

LLM 的本质是在预测下一个 token,但「token」这个单位本身就是初学者误解最多的地方——它既不是字也不是词。这篇讲模型实际看到的输入是什么、为什么它数不清单词里有几个字母、上下文 8K 到底能装多少中文,以及温度和 top_p 各自在调整概率分布的哪一维。

难度: 入门 阅读时间: 8 分钟
  • AI
  • Machine Learning
  • Python
  • scikit-learn

多模态大模型架构:视觉特征如何对齐到语言空间

典型 MLLM 由视觉编码器、投影层和语言模型三部分构成。但选 MLP 还是 Q-Former,真正决定的不是表达能力而是 token 数量——576 与 32 的差距在预填充阶段会被平方放大 324 倍。这篇还讲了换高分辨率编码器时必须做的位置编码插值,以及视觉 token 借用一维位置编码带来的固有限制。

难度: 入门 阅读时间: 8 分钟
  • AI
  • Machine Learning
  • Python
  • scikit-learn

部署多模态大模型时的 KV Cache:先算对,再优化

KV Cache 显存随序列长度是线性增长,不是二次方;公式里要用的是 KV 头数而不是注意力头数,用错在 Llama-3-8B 上会高估 4 倍。算对之后会发现真正的瓶颈在预填充而不是解码——这直接决定了减少 token、量化缓存、分页管理这三件事的优先级顺序。

难度: 入门 阅读时间: 8 分钟
  • AI
  • Machine Learning
  • Python
  • scikit-learn

视觉指令微调的损失函数:掩码算错时,loss 曲线看起来是正常的

混合图文 token 时,损失只应该作用在助手回答的位置上。这篇讲掩码怎么构造,以及两种最常见的错法各自的特征:漏掉视觉 token 会让 loss 起点异常高并卡在一个平台;漏掉指令部分则 loss 曲线完全正常,但模型推理时会自问自答。

难度: 入门 阅读时间: 8 分钟
  • AI
  • Machine Learning
  • Python
  • scikit-learn

深度学习框架入门:PyTorch 与 TensorFlow 怎么选,以及训练之后的那段路

框架帮你解决自动求导、GPU 加速和现成的层。但教程很少说清楚的是:训练用的框架不是部署用的格式,.pt 文件不含网络结构、无法独立分发。这篇讲两大框架的取舍、动态图与静态图的差别在何处真正显现、怎么识别过时教程,以及为什么装不上 GPU 是最消耗新手信心的那一关。

难度: 入门 阅读时间: 8 分钟
  • AI
  • Machine Learning
  • Python
  • scikit-learn

项目时间线

已发布文章

  1. 人工智能基础学习路线:先理解什么是 AI、机器学习和深度学习 面向有编程基础的读者,梳理 AI、机器学习、深度学习的关系,并给出可执行的人工智能基础学习路线。
  2. 机器学习完整流程:从数据、特征到模型预测 从工程视角拆解机器学习完整流程:定义问题、理解数据、处理特征、训练模型、预测和评估。
  3. 机器学习算法怎么选:分类、回归、聚类和推荐场景对照表 用任务类型、数据规模、解释性和部署成本选择机器学习算法,覆盖逻辑回归、决策树、随机森林、K-means 和表格数据基线模型。
  4. 特征工程入门实战:用 scikit-learn 处理缺失值、类别变量和数值标准化 用 scikit-learn Pipeline 和 ColumnTransformer 完成特征工程,处理缺失值、类别变量、数值标准化,并避免数据泄漏。
  5. 模型训练与评估入门:损失函数、过拟合和准确率怎么理解 讲清楚模型训练中的参数、损失函数、梯度下降、过拟合,以及准确率、召回率、F1 等分类评估指标。
  6. 过拟合和欠拟合怎么解决:机器学习模型调优实战指南 用训练分数和验证分数判断过拟合与欠拟合,并通过模型复杂度、正则化、交叉验证和特征工程调整机器学习模型。
  7. 神经网络基础:从感知机到多层网络 从一个神经元讲起,解释权重、偏置、激活函数、前向传播、反向传播和典型神经网络训练循环。
  8. 神经网络矩阵微积分:从 y = Wx + b 推导 MSE 梯度 用手算、矩阵形状图、NumPy 代码和梯度检查解释 y = Wx + b 下 dL/dW = (ŷ - y)x^T 的来源。
  9. 反向传播计算图:两层 MLP 的前向、局部梯度和反向传播 把两层 MLP 拆成计算图,手算 ReLU、softmax cross-entropy、dW2、dW1,并用 NumPy 复现实验结果。
  10. 梯度下降与优化器几何:Momentum、Adam 和 loss surface 轨迹 在二维二次函数上手算梯度下降前几步,比较 Momentum 和 Adam 的轨迹,并用代码生成 loss contour。
  11. 卷积与感受野数学:5×5 输入、3×3 kernel、padding 和 im2col 手算一次 5x5 输入与 3x3 kernel 的离散卷积,解释输出尺寸、padding、stride、感受野和 im2col。
  12. Transformer Attention 数学:Q/K/V、Softmax 权重、Mask 与 KV Cache 用 3 个 token 手算 scaled dot-product attention,解释 Q/K/V、softmax、mask、多头注意力和 KV cache。
  13. Python 人工智能小实战:用 scikit-learn 完成一个分类任务 使用 scikit-learn 内置教学数据集跑通一个分类任务,覆盖数据加载、拆分、标准化、训练、预测、评估和实验记录。
  14. 手写数字识别项目入门:先读懂 train.csv、test.csv 和标签结构 从项目文件结构入手,读懂手写数字训练集、测试集、标签列和 784 维像素输入,为后续 C 分类器和实验台打基础。
  15. 用 C 实现手写数字 Softmax 分类器:从 784 维像素到 submission.csv 结合当前项目源码,讲清楚 softmax 多分类、损失函数、梯度更新、混淆矩阵输出,以及 submission.csv 的生成过程。
  16. 手写数字实验记录:怎么把离线分类项目接进浏览器实验台 解释浏览器实验台为什么采用轻量预训练模型、它和离线 C 项目的关系,以及如何用样本浏览和手绘输入理解预测结果。
  17. CIFAR-10 Tiny CNN 教程:用 C 语言实现小型卷积神经网络图像分类 用单文件 C 程序完成 CIFAR-10 小型 CNN 图像分类,讲解数据格式、网络结构、训练命令、loss、accuracy、常见错误和改进方向。
  18. 构建高熵流量防御:基于 Python 的连接层白噪声混淆与对抗性机器学习实践 以 mld_chaffing_v2.py 虚幻镜项目为例,讲解加密元数据泄漏、信息熵、分布距离、混淆矩阵、空闲窗口微脉冲和性能测试取舍。
  19. AI 安全威胁建模:用 NIST AML、MITRE ATLAS 和 OWASP 建立攻防地图 用 NIST Adversarial ML、MITRE ATLAS 和 OWASP LLM Top 10 建立 AI 安全威胁模型,覆盖资产、攻击面、证据和剩余风险。
  20. 对抗样本与鲁棒评估:从 FGSM 公式到 scikit-learn 数字分类实验 从 FGSM 公式解释对抗样本,用 scikit-learn digits toy 实验评估 clean accuracy、perturbed accuracy 和扰动预算。
  21. 数据投毒与后门攻击防御:污染率、触发器和训练管线隔离 用 toy digits 实验解释数据投毒、后门触发器、attack success rate、数据来源审计和训练管线隔离。
  22. 模型隐私与模型窃取风险:成员推断、模型抽取和输出接口防护 用本地 toy 实验解释成员推断、模型抽取、membership AUC、surrogate fidelity、输出最小化和查询治理。
  23. LLM/RAG/Agent 安全:Prompt Injection、工具权限和边界感知防护 从 RAG 和 Agent 架构解释 prompt injection、外部数据降权、工具 allowlist、人工审批和边界感知防护。
  24. 从开发者角度理解大语言模型:文字接龙、token 与采样参数 LLM 的本质是在预测下一个 token,但「token」这个单位本身就是初学者误解最多的地方——它既不是字也不是词。这篇讲模型实际看到的输入是什么、为什么它数不清单词里有几个字母、上下文 8K 到底能装多少中文,以及温度和 top_p 各自在调整概率分布的哪一维。
  25. 多模态大模型架构:视觉特征如何对齐到语言空间 典型 MLLM 由视觉编码器、投影层和语言模型三部分构成。但选 MLP 还是 Q-Former,真正决定的不是表达能力而是 token 数量——576 与 32 的差距在预填充阶段会被平方放大 324 倍。这篇还讲了换高分辨率编码器时必须做的位置编码插值,以及视觉 token 借用一维位置编码带来的固有限制。
  26. 部署多模态大模型时的 KV Cache:先算对,再优化 KV Cache 显存随序列长度是线性增长,不是二次方;公式里要用的是 KV 头数而不是注意力头数,用错在 Llama-3-8B 上会高估 4 倍。算对之后会发现真正的瓶颈在预填充而不是解码——这直接决定了减少 token、量化缓存、分页管理这三件事的优先级顺序。
  27. 视觉指令微调的损失函数:掩码算错时,loss 曲线看起来是正常的 混合图文 token 时,损失只应该作用在助手回答的位置上。这篇讲掩码怎么构造,以及两种最常见的错法各自的特征:漏掉视觉 token 会让 loss 起点异常高并卡在一个平台;漏掉指令部分则 loss 曲线完全正常,但模型推理时会自问自答。
  28. 深度学习框架入门:PyTorch 与 TensorFlow 怎么选,以及训练之后的那段路 框架帮你解决自动求导、GPU 加速和现成的层。但教程很少说清楚的是:训练用的框架不是部署用的格式,.pt 文件不含网络结构、无法独立分发。这篇讲两大框架的取舍、动态图与静态图的差别在何处真正显现、怎么识别过时教程,以及为什么装不上 GPU 是最消耗新手信心的那一关。

已公开资源

  1. Python AI 小实战代码说明 文章内包含可直接复制运行的 scikit-learn 分类脚本。
  2. digit_softmax_classifier.c 手写数字 softmax 分类器的 C 语言源码。
  3. train.csv.zip 手写数字训练集压缩包,包含 42000 条带标签样本。
  4. test.csv.zip 手写数字测试集压缩包,包含 28000 条待预测样本。
  5. sample_submission.csv 官方提交格式示例,可直接对照最终输出字段。
  6. submission.csv 当前 C 项目跑出的预测结果文件。
  7. digit-playground-model.json 浏览器实验台使用的轻量 softmax 演示模型与样本。
  8. digit-sample-grid.svg 从训练集中抽取的小型手写数字预览网格。
  9. 手写数字项目打包下载 包含源码、压缩数据、提交文件、浏览器模型和样本预览图。
  10. cifar10_tiny_cnn.c 源码 单文件 C 语言 tiny CNN,包含 CIFAR-10 读取、卷积、池化、softmax 和反向传播。
  11. model_weights.bin 样例权重 一次本地小样本运行生成的模型权重文件。
  12. test_predictions.csv 预测样例 CIFAR-10 tiny CNN 输出的测试预测样例。
  13. CNN 项目说明 PDF 配套 CNN 项目说明材料。
  14. 虚幻镜脱敏代码骨架 去除控制口令、真实节点和目标列表后的 mld_chaffing_v2.py 控制流程说明。
  15. 虚幻镜压力测试记录模板 用于记录 CPU、内存、线程峰值、微脉冲速率、延迟和错误数的脱敏 CSV 模板。
  16. 虚幻镜分类器评估模板 用于记录 TP、FN、FP、TN、accuracy、precision、recall、F1、ROC-AUC、熵和 JS 散度的 CSV 模板。
  17. 虚幻镜资源说明 说明公开资源为何只提供脱敏代码、测试模板和架构笔记。
  18. AI Security Lab 说明 说明 AI 安全攻防系列的安全边界、安装命令和 quick-run 实验。
  19. AI Security Lab 完整实验包 包含安全 toy scripts、结果 CSV、风险登记表、攻防矩阵和架构图。
  20. AI 安全风险登记表 面向 AI 威胁建模和上线评审的 CSV 风险登记模板。
  21. AI 攻防矩阵 把攻击面、toy demo、指标和防护控制映射到一张 CSV 表。
  22. AI Security Lab 架构图 展示威胁建模、鲁棒评估、数据完整性、模型隐私和 RAG 防护之间的关系。
  23. FGSM digits 鲁棒评估脚本 本地 digits 分类器的 FGSM-style 扰动和准确率下降实验。
  24. 数据投毒与后门 toy 脚本 用 digits 数据演示污染率、触发器和 attack success rate。
  25. 模型隐私与抽取 toy 脚本 输出 membership AUC、target accuracy、surrogate fidelity 和 surrogate accuracy。
  26. RAG prompt injection guard toy 脚本 用确定性 toy agent 演示外部数据降权和工具权限阻断。
  27. Deep Learning Math Lab 说明 包含安装命令、脚本入口、输出结果和文章图示生成说明。
  28. 深度学习数学完整实验包 打包 NumPy 脚本、CSV 结果、公式图、loss contour、卷积图和 attention 热图。
  29. 梯度检查结果 CSV 保存 MSE 梯度解析值、数值差分值和误差范数。
  30. 优化器轨迹 CSV 记录梯度下降、Momentum 和 Adam 在二维二次函数上的逐步坐标与 loss。
  31. Attention 权重 CSV 三 token scaled dot-product attention 的 scores、softmax weights 和 context 输出。
  32. 深度学习数学图示目录 包含矩阵形状、计算图、loss contour、卷积扫描和 attention heatmap。
  33. 深度学习数学交互演示 在浏览器里调梯度检查、优化轨迹、卷积输出尺寸和 attention 权重热图。
  34. 深度学习专题分享图 用于分享深度学习 / CNN 专题页的 1200x630 SVG 图。
  35. 从零实现机器学习分享图 用于分享 K-means、Iris 和机器学习流程专题页的 1200x630 SVG 图。
  36. 学生 AI 项目分享图 用于分享手写数字、C 分类器和浏览器实验台专题页的 1200x630 SVG 图。
  37. CNN 卷积扫描动画 Remotion 生成的 8 秒短动画,展示 3x3 卷积核如何扫描输入并形成特征图。

当前学习路线

  1. 人工智能基础学习路线 学习路线节点
  2. 机器学习完整流程 学习路线节点
  3. 机器学习算法怎么选 学习路线节点
  4. 特征工程入门实战 学习路线节点
  5. 模型训练与评估入门 学习路线节点
  6. 过拟合和欠拟合怎么解决 学习路线节点
  7. 神经网络基础 学习路线节点
  8. 神经网络矩阵微积分 学习路线节点
  9. 反向传播计算图 学习路线节点
  10. 梯度下降与优化器几何 学习路线节点
  11. 卷积与感受野数学 学习路线节点
  12. Transformer Attention 数学 学习路线节点
  13. LLM 可视化教学台 学习路线节点
  14. Python 人工智能小实战 学习路线节点
  15. 手写数字数据结构入门 学习路线节点
  16. 用 C 实现手写数字 Softmax 分类器 学习路线节点
  17. 手写数字实验台说明 学习路线节点
  18. CIFAR-10 Tiny CNN 教程 学习路线节点
  19. 高熵流量防御实验 学习路线节点
  20. AI 安全威胁建模 学习路线节点
  21. 对抗样本与鲁棒评估 学习路线节点
  22. 数据投毒与后门防御 学习路线节点
  23. 模型隐私与模型抽取防护 学习路线节点
  24. LLM/RAG/Agent 安全 学习路线节点

下一步计划

  1. 补充更多图像分类和误差分析案例
  2. 把常见指标整理成速查表
  3. 继续补充 AI 安全防御实验记录

配套资源

2D 动画原理

把动画软件中的按钮还原成可以手算、拖动验证并映射到实际角色资产的数学原理。

从人物图片分层和 SVG 资产开始,继续学习骨骼矩阵、双骨骼 IK、蒙皮权重、接缝修复和关键帧插值。

下一步计划

  • 补充多关节 FABRIK 和约束求解
  • 加入网格权重绘制与补偿形状案例

已发布文章

现代 2D 骨骼运行时:网格形变、绘制顺序与约束系统

线性混合蒙皮表达不了褶皱、绘制顺序和跟随延迟。说明网格形变为什么必须加在绑定空间、绘制顺序为什么是离散轨道,以及 Live2D 参数驱动形变的伪 3D 原理。

难度: 专业 阅读时间: 12 分钟
  • Spine
  • Live2D
  • Mesh Deformation
  • Constraints

次级运动:用阻尼弹簧让头发和尾巴跟上来

关键帧调好了动作还是显得硬,缺的是被主体带动、慢半拍跟上来的次级运动。这篇讲阻尼弹簧怎么用频率与阻尼比两个正交参数暴露给动画师,以及接进 2D 骨骼系统时的五个坑:显式欧拉为何无条件不稳定、帧率不同结果不同、骨骼链必须同帧从根到梢更新、该弹角度而不是位置、以及瞬移为什么会让弹簧爆炸。

难度: 实战 阅读时间: 13 分钟
  • 半隐式欧拉
  • 阻尼比
  • 骨骼链
  • 固定步长

挤压与拉伸:非均匀缩放为什么不能穿过旋转传下去

挤压拉伸接进骨骼系统之后,麻烦几乎全部来自一件事——非均匀缩放不能像旋转平移那样安全地沿层级传递。这篇讲二维的面积守恒与它不守恒的两样东西、缩放中心选错为什么让球陷进地板,以及核心的层级陷阱:父节点非均匀缩放乘以子节点旋转会产生切变,症状是只有转了角度的部件变成平行四边形。

难度: 实战 阅读时间: 12 分钟
  • 仿射变换
  • 切变
  • 缩放锚点
  • 拖影

项目时间线

已发布文章

  1. Animate 时间轴与符号模型:Graphic 与 Movie Clip 的取帧规则 推导 Graphic 元件按父帧取帧的三种循环模式公式,解释 Movie Clip 为什么在编辑态只显示第一帧、在逐帧导出中不展开,以及口型动画为什么必须用 Graphic。
  2. 形状补间与矢量形变:顶点对应、形状提示与 SVG 路径插值 形状补间“爆炸”的根源是闭合轮廓的起点偏移歧义。推导对应代价函数,说明形状提示如何作为约束,并对照现代 SVG 路径形变库的同一套算法。
  3. 现代 2D 骨骼运行时:网格形变、绘制顺序与约束系统 线性混合蒙皮表达不了褶皱、绘制顺序和跟随延迟。说明网格形变为什么必须加在绑定空间、绘制顺序为什么是离散轨道,以及 Live2D 参数驱动形变的伪 3D 原理。
  4. Animate 导出 HTML5 Canvas 的运行时:显示列表、重绘与缓存 导出后时间轴被编译成 CreateJS 显示对象树,canvas 每帧重画整张画面。解释矢量为何每帧付一次光栅化代价、cache 的三个参数陷阱,以及滤镜为什么必须配合缓存。
  5. 人物图片转 SVG 动画资产管线:ComfyUI、Grounded-SAM、OpenPose 与 vtracer 2D 动画原理专栏第一篇:用 ComfyUI IP-Adapter、OpenPose 拆件、Grounded-SAM 抠图和 vtracer 生成 SVG 骨骼资产库。
  6. 2D 骨骼动画数学:局部坐标、锚点矩阵与正向运动学 从齐次矩阵、锚点旋转和父子变换推导 2D 骨骼正向运动学,并用浏览器演示验证末端坐标。
  7. 2D 双骨骼反向运动学:余弦定理、可达性与肘部翻转 用余弦定理解析求解二维肩肘角度,处理不可达目标、浮点边界、关节限制和肘部方向连续性。
  8. 次级运动:用阻尼弹簧让头发和尾巴跟上来 关键帧调好了动作还是显得硬,缺的是被主体带动、慢半拍跟上来的次级运动。这篇讲阻尼弹簧怎么用频率与阻尼比两个正交参数暴露给动画师,以及接进 2D 骨骼系统时的五个坑:显式欧拉为何无条件不稳定、帧率不同结果不同、骨骼链必须同帧从根到梢更新、该弹角度而不是位置、以及瞬移为什么会让弹簧爆炸。
  9. 挤压与拉伸:非均匀缩放为什么不能穿过旋转传下去 挤压拉伸接进骨骼系统之后,麻烦几乎全部来自一件事——非均匀缩放不能像旋转平移那样安全地沿层级传递。这篇讲二维的面积守恒与它不守恒的两样东西、缩放中心选错为什么让球陷进地板,以及核心的层级陷阱:父节点非均匀缩放乘以子节点旋转会产生切变,症状是只有转了角度的部件变成平行四边形。
  10. 2D 线性混合蒙皮:权重数学、关节变形与接缝白点修复 推导线性混合蒙皮公式,解释权重归一化、逆绑定矩阵、关节塌陷、透明边缘污染和 SVG 接缝白点。
  11. 2D 动画关键帧插值:线性、Smoothstep、贝塞尔与帧率无关播放 从导数解释线性运动和缓入缓出的速度差异,推导 Smoothstep、三次贝塞尔和帧率无关时间采样。

已公开资源

  1. 基础 SAM + vtracer 脚本 本机运行的角色图片分割、PNG 图层和 SVG 矢量化参考脚本。
  2. ComfyUI + Grounded-SAM 生产脚本 调度本机 ComfyUI、Grounding DINO、SAM 和 vtracer,生成带稳定 ID 的 SVG 骨骼资产。
  3. ComfyUI 拆件角色工作流模板 IP-Adapter 锁定角色特征,ControlNet OpenPose 约束拆件排版的可编辑 API 模板。
  4. 拆件 OpenPose 骨架图 用于生成头、躯干、手脚分开的角色部件板,可导出 PNG 后喂给 ControlNet。
  5. 动画部件 prompt 清单 Grounding DINO 使用的 head、left arm、torso、tail、accessory 等语义抠图提示词。

下一步计划

  1. 补充多关节 FABRIK 和约束求解
  2. 加入网格权重绘制与补偿形状案例

配套资源

算法实现项目

把算法讲解和可运行实现放在同一个长期可复查的项目里。

围绕回溯、位运算和聚类实现,保留可以复查的代码、流程图和下载资料。

下一步计划

  • 补充更多算法题的可运行实现
  • 为下载资源增加更多示例输入

已发布文章

轮廓追踪的终止条件:三行代码顺序错了,面积大二十倍

Moore 邻域追踪的 Jacob 终止准则要求位置和方向同时匹配。我把检查写在了方向更新之前,用的是上一轮遗留的方向,于是条件几乎永不成立,追踪器绕圈直到被点数上限强行截断——鞋带公式再把不闭合的首尾直接连起来,横穿整个区域。

难度: 进阶 阅读时间: 7 分钟
  • Moore 邻域
  • Jacob 准则
  • 鞋带公式

项目时间线

已发布文章

  1. 轮廓追踪的终止条件:三行代码顺序错了,面积大二十倍 Moore 邻域追踪的 Jacob 终止准则要求位置和方向同时匹配。我把检查写在了方向更新之前,用的是上一轮遗留的方向,于是条件几乎永不成立,追踪器绕圈直到被点数上限强行截断——鞋带公式再把不闭合的首尾直接连起来,横穿整个区域。
  2. 图片转 Unicode 四象限 ANSI:原理、实现与浏览器工具 解释如何把任意图片压缩成 truecolor Unicode 四象限 ANSI:2 x 2 像素、两色最小误差、.ans 文件和浏览器端隐私边界。
  3. 回溯算法入门:用 C 和 Python 解决 8 皇后问题 用 C 和 Python 讲清楚 8 皇后回溯搜索的状态表示、冲突判断、递归过程与完整求解思路。
  4. 回溯算法进阶:用位运算优化 8 皇后(C / Python) 介绍如何用位运算优化 8 皇后搜索,降低状态判断成本,并给出 C / Python 对照实现。
  5. K-means 聚类算法入门:基于 Iris 数据集的 C 语言实现 结合 Iris.csv、C 语言源码、流程图和可视化,完整讲解 K-means++ 初始化、迭代收敛与结果分析。

已公开资源

  1. Iris.csv 数据集 K-means 文章使用的 150 条 Iris 样本。
  2. Iris_sort_K_mean.c 源码 包含标准化、K-means++ 初始化、多次重启和 SSE 选择。
  3. K-means 流程图 对应 C 程序执行顺序的 SVG 流程图。
  4. 聚类可视化图 基于花瓣长度和花瓣宽度投影的二维散点图。
  5. K-means 打包下载 包含数据、源码、流程图和可视化图。
  6. 高数联系 PDF 公开下载的高数课程 PDF,适合复习或打印。
  7. 算法可视化专题分享图 用于分享 8 皇后、回溯、位运算和实验台专题页的 1200x630 SVG 图。
  8. K-means 一轮迭代动画 Remotion 生成的短动画,展示样本分配、质心更新和 SSE 下降。
  9. 8 皇后回溯搜索动画 Remotion 生成的短动画,展示逐行尝试、冲突剪枝和回溯。

当前学习路线

  1. 用 C 和 Python 解决 8 皇后问题 学习路线节点
  2. 用位运算优化 8 皇后 学习路线节点
  3. 基于 Iris 数据集的 K-means C 语言实现 学习路线节点
  4. K-means 代码、数据和图示下载 学习路线节点

下一步计划

  1. 补充更多算法题的可运行实现
  2. 为下载资源增加更多示例输入

配套资源

站点建设项目

让站点建设过程可回滚、可维护、可继续扩展。

记录这个双语技术站的结构、内容同步、分类、评论和部署方式。

下一步计划

  • 继续整理部署和维护笔记
  • 把内容同步流程写成更清晰的说明

已发布文章

给自己的站点量结构:一个错了八倍的指标

想量化"这些文章是不是长得太像了",第一次算出 92%,写进了结论;后来发现那个数字把主题模板算成了文章结构,修正后是 12%。这篇讲测量本身:怎么定义"形状"、边界画错在哪、为什么单一指标会掩盖真正的问题,以及推翻它的其实是一次意外的对照。

阅读时间: 10 分钟
  • curl
  • Python
  • 结构熵
  • WordPress

把整条图像处理链路放进浏览器:省下的不只是 CPU

一个上传角色图片、自动抠图分层、转成 SVG 资产库的工具,约束是不上传服务器。最初动机是单核源站扛不住服务端图像处理,做完发现真正省下的是存储、审核、隐私责任和并发这四样。含解码到矢量化的五步实现、IndexedDB 的代价、用 ZIP 存储模式替代压缩库,以及模型下载这唯一无法回避的成本。

难度: 进阶 阅读时间: 11 分钟
  • Canvas
  • IndexedDB
  • ONNX Runtime Web
  • ZIP

特色图片设好了,og:image 却是空的:Yoast 索引表的陈旧缓存

给 19 篇文章补上特色图片,后台显示正常,页面源码里却没有 og:image——而同一页的 JSON-LD 里 thumbnailUrl 已经指向新封面。这个"schema 有、og 没有"的组合就是诊断关键:两者走的是不同数据通路,一条实时算,一条读预计算的索引表。

阅读时间: 6 分钟
  • WordPress
  • Yoast
  • WP-CLI
  • Open Graph

8.3 GB 备份里只有 276 MB 是独有的:一次删除前的取证

服务器磁盘报到 86%,部署备份占 8280 MB。删除前先算清楚有多少是独有内容——答案是 276 MB,其余是同一批文件被复制了 228 遍。以及删除前那一步集合差集运算,救回了 7 个只存在于历史快照里的文件。

阅读时间: 9 分钟
  • rsync
  • tar
  • sha256
  • Cloudflare Tunnel

「只读」是结构问题,不是纪律问题:自建邮箱接 AI 的十个坑

把自建邮箱接给 AI 助手,协议部分不难,难的是让「只读」成为结构而不是承诺。这篇记录接入过程中踩到的问题:拒稿信里的 has been accepted 如何让分类器判反、语法检查通过而鉴权整个失效、单用户改多用户时共享闩锁怎样连坐所有人,以及为什么合成点击测不出一个死按钮。

难度: 说明 阅读时间: 4 分钟
  • WordPress
  • Cloudflare
  • Content Workflow

项目时间线

已发布文章

  1. 给自己的站点量结构:一个错了八倍的指标 想量化"这些文章是不是长得太像了",第一次算出 92%,写进了结论;后来发现那个数字把主题模板算成了文章结构,修正后是 12%。这篇讲测量本身:怎么定义"形状"、边界画错在哪、为什么单一指标会掩盖真正的问题,以及推翻它的其实是一次意外的对照。
  2. 把整条图像处理链路放进浏览器:省下的不只是 CPU 一个上传角色图片、自动抠图分层、转成 SVG 资产库的工具,约束是不上传服务器。最初动机是单核源站扛不住服务端图像处理,做完发现真正省下的是存储、审核、隐私责任和并发这四样。含解码到矢量化的五步实现、IndexedDB 的代价、用 ZIP 存储模式替代压缩库,以及模型下载这唯一无法回避的成本。
  3. 特色图片设好了,og:image 却是空的:Yoast 索引表的陈旧缓存 给 19 篇文章补上特色图片,后台显示正常,页面源码里却没有 og:image——而同一页的 JSON-LD 里 thumbnailUrl 已经指向新封面。这个"schema 有、og 没有"的组合就是诊断关键:两者走的是不同数据通路,一条实时算,一条读预计算的索引表。
  4. 8.3 GB 备份里只有 276 MB 是独有的:一次删除前的取证 服务器磁盘报到 86%,部署备份占 8280 MB。删除前先算清楚有多少是独有内容——答案是 276 MB,其余是同一批文件被复制了 228 遍。以及删除前那一步集合差集运算,救回了 7 个只存在于历史快照里的文件。
  5. 欢迎来到浩天博客:这个双语技术站会发布什么 介绍浩天博客的定位、双语结构,以及后续会持续发布的算法、编程与项目内容。
  6. 「只读」是结构问题,不是纪律问题:自建邮箱接 AI 的十个坑 把自建邮箱接给 AI 助手,协议部分不难,难的是让「只读」成为结构而不是承诺。这篇记录接入过程中踩到的问题:拒稿信里的 has been accepted 如何让分类器判反、语法检查通过而鉴权整个失效、单用户改多用户时共享闩锁怎样连坐所有人,以及为什么合成点击测不出一个死按钮。

已公开资源

  1. SEO 分发短视频脚本 4 个内容集群的 45-60 秒短视频脚本,可后续交给 Remotion 制作。

下一步计划

  1. 继续整理部署和维护笔记
  2. 把内容同步流程写成更清晰的说明

配套资源

项目收录标准

项目索引不会把单篇概念文章直接当成完整项目。一个项目至少需要有明确目标、输入材料、运行步骤、结果解释和限制说明;如果包含代码,还需要说明运行环境、参数和可能失败的情况。这样读者才能判断它是否值得下载和复现。

当前项目大多是教学型项目,重点是解释算法、模型或协议行为。它们适合课堂、作业、个人练习和技术笔记,不适合未经审计就直接进入生产系统。涉及网络、安全或数据处理的项目,会优先写清楚边界和误用风险。

后续项目会按“问题背景、最小实现、实验结果、失败情况、改进方向”的顺序补充。这样即使项目还很小,也能让读者知道它解决了什么、没解决什么,以及下一步应该怎样验证。

项目页区分“已经可复现”和“仍在整理”的材料。已经可复现的项目会尽量提供下载、运行步骤和结果解释;仍在整理的项目会明确标注阶段,不会用空标题代替实际内容。

如果某个项目暂时只有想法,没有代码、数据或实验记录,它更适合留在私人草稿里,而不是发布成公开页面。

这也是项目页当前的质量底线。

向下探索