FTRL算法的数学原理
我们来深入讲解 FTRL(Follow The Regularized Leader)的数学原理。
我将从直观理解、公式拆解、与经典方法的对比、几何解释四个方面,完整地解析其数学原理。
直观理解:FTRL这个名字的含义
FTRL的名字“Follow The Regularized Leader”已经揭示了它的核心思想:
Leader(领导者):指的是“到目前为止,在所有已见数据上累积损失最小的那个模型权重”。
Follow The Leader:一个朴素的想法是,每一步都直接采用当前的Leader。但这会导致模型剧烈震荡,因为每个新数据都可能让Leader完全改变。
Regularized(正则化的):为了避免震荡,我们不直接跟随Leader,而是跟随一个带有正则化约束的、更稳定的版本。
FTRL的本质:在每一步,寻找一个权重 w,它既要能很好地解释历史数据(Follow the Leader),又要保持稳定和简洁(Regularized)。
公式深度拆解
让我们仔细分析图中的公式:
累积梯度项正则化正则化稳定性项稳定性约束wt+1=argminw(∑ ...
hexo常见问题
hexo 命令
1234567hexo clean # 清除缓存和 public 文件夹hexo generate # 生成静态网页,可简写为 hexo ghexo deploy # 部署到 GitHub,可简写为 hexo dhexo server # 本地预览 http://localhost:4000,可简写为 hexo shexo new 文件名 # 创建新的post,可简写为 hexo n
文章目录序号问题
根目录下找到"_config.butterfly.yml"
更改toc: 下面的number属性为false
关于latex公式渲染问题
⚠️ 本节已过时(2026-10-15 标注):下面的参考链接讲的是 kramed 渲染器 + Butterfly 浏览器端 MathJax 的旧方案。本博客已改用 hexo-renderer-markdown-it + markdown-it-mathjax3(生成时直接把公式渲染成 SVG),旧方案里 _ 被当成斜体等问题已不存在。新方案的配置和写公式的注意事项见 Hexo博客整理与 ...
DeepSeek+LoRA+FastAPI
(该页面的 .md 和 .pdf 文件已放在视频简介,.md 文件可用该软件 (Obsidian) 或用 VS Code打开)
简介
本期视频主要分为以下五部分:
需求和技术
企业对于大模型的不同类型个性化需求
SFT(有监督微调)、RLHF(强化学习)、RAG(检索增强生成)
-关注:基本概念;分别解决什么问题;如何根据需求选择;
微调部分详细介绍:
微调算法的分类
**LoRA 微调算法
微调常见实现框架
整体步骤说明
在 Linux 系统上微调一个大模型、部署模型、暴露 API 给 web 后端调用,本机前端展示全过程
模型微调
框架: LLama-Factory (国产最热门的微调框架)
算法: **LoRA (最著名的部分参数微调算法)
基座模型:DeepSeek-R1-Distill-Qwen-1.5B
-蒸馏技术通常用于通过将大模型(教师模型)的知识转移到小模型(学生模型)中,使得小模型能够在尽量保持性能的同时,显著减少模型的参数量和计算需求。
模型部署和暴露接口
框架:FastAPI(一个基于 python 的 web 框架)
web后端调用
通 ...
AI基础概念
Prompt,Agent,MCP是什么
prompt
分为
system prompt
角色、性格、背景知识、语气
user prompt
例如:
在网页端的聊天中,System prompt往往是系统预设的,用户不能随便更改。但是通常来讲,网站会提供一些设置,比如ChatGPT里有一个叫做Customize ChatGPT的功能,用户可以在里面写下自己的偏好,这些偏好就会变成System prompt的一部分。
AI Agent
这种负责在模型、工具和最终用户之间传话的程序,叫做AI Agent。而这些提供给AI调用的函数或者服务,就叫做Agent Tool。
不过这种结构可能有一个小问题。虽然在System Prompt里面写清楚了AI应该用什么格式返回,但是AI模型说到底是一个概率模型,还是有可能返回不对的内容。为了处理这些“不听话”的情况,很多AI Agent会在发现返回格式不对时,自动进行重试。
现在市面上很多知名的Agent,比如Cline依然采用这种方式,这种反复的重试,人们总会觉得不太靠谱。于是大模型厂商开始出手了,ChatGPT、Claude、Gemin ...
多模态技术基础
多模态任务
图文跨模态检索
图像描述
视觉问答
文本生成图像
指称表达
文本表示
基于词嵌入的静态词表示
词嵌入是指使用模型将语料中的每个词映射为一个低维、稠密、连续的向量的技术
Word2Vec
Word2Vec指一类神经网络语言模型,其中又分为两种CBOW和Skip-gram
导入——语言模型
语言模型分为统计语言模型和神经网络语言模型
统计语言模型:n-gram模型
神经网络语言模型:NNLM模型
CBOW和Skip-gram
CBOW:通过上下文来预测当前词
Skip-gram:用当前词来预测上下文
Word2Vec和NNLM的区别
NNLM的模型结构:
对于语言模型,目的是想预测的更准确,而词向量矩阵知识一个副产品。
NNLM:重点是预测下一词,双层感知机
softmax(w2(tanh(w1(xQ)+b1))+b2)
Word2Vec:CBOW和Skip-gram的两种架构的重点都是得到一个
Q
矩阵,
softmax(w1(xQ)+b1)
Wor ...
PyTorch函数
图像和视觉处理
123torchvision.transforms.Resize() # 改变图像大小torchvision.transforms.Normalize() # 标准化图像数据torchvision.datasets # 提供常见的图像数据集加载接口
神经网络构建
1234torch.nn.Linear() # 全连接层torch.nn.Conv2d() # 2D卷积层torch.nn.ReLU() # ReLU激活函数torch.nn.Sigmoid() # Sigmoid激活函数
训练和优化
1234# 常见的优化器torch.optim.Adam(model.parameters(), lr=0.001)torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)torch.autograd.backward(model.parameters()) # 自动计算梯度
模型保存和加载
123# 用于保存和加载模型或张量torch.save(model.state_dict(), 'model ...
推荐系统学习笔记
小红书的推荐系统
曝光→点击,停留几秒(说明不是误点)→阅读→点赞收藏转发评论
转化流程
(抖音没有下滑和点击)
(短期)消费指标
(不是衡量推荐系统好坏的根本指标)
北极星指标
(最关键的指标,衡量好坏的根本标准)
通常来讲,点击率、点赞率与使用时长和阅读数量的涨跌是一致的,万一有冲突,以北极星指标为准。
希望推荐系统能激励作者发布,让我们的内容池变大,优质内容池是核心竞争力;激励发布通常是由冷启动负责(后面再讲冷启动)
实验流程
算法工程师的工作:对模型、特征、策略、系统做改进
离线实验的结果有参考价值,能大致反映出算法的好坏;但是离线实验并没有线上实验可靠,想最终判断算法的好坏还是需要做线上实验。
北极星指标都是线上指标,只能通过线上实验获得,做离线实验无法得到。
具体做法是开小流量AB测试,把用户随机分为实验组和对照组,实验组用新策略,对照组用就策略;对比两者的业务指标,判断新策略是否会显著由于旧策略;如果新策略显著优于旧策略,可以加大流量,最终推全
推荐系统链路
例如,小红书有上亿篇笔记,当刷新小红书的时候,系统会调用几十条召回通道,每条召回通道会取回几十到几百篇笔 ...
JS学习笔记(四)Web APIs 第4-6天与个人实战
本系列:(一)JavaScript基础 第1-2天 · (二)JavaScript基础 第3-5天 · (三)Web APIs 第1-3天 · (四)Web APIs 第4-6天与个人实战
Web APIs - 第4天
进一步学习 DOM 相关知识,实现可交互的网页特效
能够插入、删除和替换元素节点
能够依据元素节点关系查找节点
日期对象
掌握 Date 日期对象的使用,动态获取当前计算机的时间。
ECMAScript 中内置了获取系统时间的对象 Date,使用 Date 时与之前学习的内置对象 console 和 Math 不同,它需要借助 new 关键字才能使用。
实例化
123456789// 1. 实例化// const date = new Date(); // 系统默认时间const date = new Date('2020-05-01') // 指定时间// date 变量即所谓的时间对象console.log(typeof date)
方法
123456 // 1. 实例化const date = new Date();// 2. 调 ...
JS学习笔记(三)Web APIs 第1-3天
本系列:(一)JavaScript基础 第1-2天 · (二)JavaScript基础 第3-5天 · (三)Web APIs 第1-3天 · (四)Web APIs 第4-6天与个人实战
Web APIs - 第1天笔记
了解 DOM 的结构并掌握其基本的操作,体验 DOM 的在开发中的作用
知道 ECMAScript 与 JavaScript 的关系
了解 DOM 的相关概念及DOM 的本质是一个对象
掌握查找节点的基本方法
掌握节点属性和文本的操作
能够使用间歇函数创建定时任务
介绍
知道 ECMAScript 与 JavaScript 的关系,Web APIs 是浏览器扩展的功能。
严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs ...
JS学习笔记(二)JavaScript基础 第3-5天
本系列:(一)JavaScript基础 第1-2天 · (二)JavaScript基础 第3-5天 · (三)Web APIs 第1-3天 · (四)Web APIs 第4-6天与个人实战
JavaScript 基础- 第3天笔记
if 多分支语句和 switch的区别:
共同点
都能实现多分支选择, 多选1
大部分情况下可以互换
区别:
switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,通常用于范围判断(大于,等于某个范围)。
switch 语句进行判断后直接执行到程序的语句,效率更高,而if…else语句有几种判断条件,就得判断多少次
switch 一定要注意 必须是 === 全等,一定注意 数据类型,同时注意break否则会有穿透效果
结论:
当分支比较少时,if…else语句执行效率高。
当分支比较多时,switch语句执行效率高,而且结构更清晰。
for 语句
掌握 for 循环语句,让程序具备重复执行能力
for 是 JavaScript 提供的另一种循环控制的话句,它和 while 只是语法上 ...
