自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱吃rabbit的mq

曾是传统开发者,现在在 AI 与机器学习的世界里持续折腾。写代码、训模型、踩坑复盘,希望把复杂的技术讲清楚,把转型的过程留下来。

  • 博客(55)
  • 收藏
  • 关注

原创 AI 越强,程序员越值钱吗?

最近这段时间,我几乎每天都在用 AI 写代码。写函数、补测试、改 bug、做重构、做方案对比……效率的提升是肉眼可见的。但越用,我反而越清楚一件事——AI 没有削弱程序员。它正在筛选程序员。真正被改变的,不是产出速度,而是能力结构。

2026-02-28 15:11:20 627

原创 花了100小时用Claude Code开发5个项目,发现了3个反直觉的真相

这100小时用下来,我对Claude Code的理解完全变了。刚开始,我以为它就是个"更聪明的代码补全工具",能帮我少敲几行代码。但真正用深了之后,我发现它的核心价值完全不是这个。Claude Code真正的力量,在于它改变了开发者的角色定位。以前,你是"写代码的人"——你需要记住每个API的参数签名,需要理解整个系统的架构,需要手动处理大量的重复劳动。现在,你是"指导AI完成任务的人"——你更关注架构设计、业务逻辑、系统优化这些高价值工作,而把重复性劳动交给AI。

2026-02-25 10:40:50 700

原创 第30章:实战项目5 - 端到端AI应用

本项目将构建一个智能客服聊天机器人意图识别:理解用户查询的意图(如咨询产品、投诉、技术支持等)实体提取:从用户输入中提取关键信息(如产品名称、订单号等)知识检索:从知识库中检索相关信息智能回复:基于检索结果和对话历史生成自然的回复情感分析:识别用户的情绪,做出适当的回应人工转接:在必要时将对话转接给人工客服✅意图识别:使用BERT微调模型识别用户意图✅实体提取:使用BERT-NER提取关键信息✅知识检索:基于FAISS的向量检索系统✅情感分析:识别用户情绪✅智能回复。

2026-02-12 07:50:19 536

原创 第29章:深度学习前沿趋势

多模态AI(Multimodal AI)是指能够处理和融合多种类型数据(如图像、文本、音频、视频等)的人工智能系统。与单一模态系统不同,多模态AI能够像人类一样,综合运用多种感官信息进行理解和推理。自监督学习是一种无需人工标注的学习方法,模型通过从数据自身生成监督信号来学习。自监督学习被认为是通向通用人工智能(AGI)的重要路径。具身智能(Embodied AI)是指具有物理身体的智能体,通过与环境的物理交互来学习和执行任务。具身智能将AI与机器人技术结合,让机器能够像生物体一样感知和行动。

2026-02-12 07:50:05 583

原创 第28章:MLOps基础:机器学习的DevOps

MLOps是机器学习运维(Machine Learning Operations)的缩写,它是DevOps在机器学习领域的延伸和应用。MLOps旨在标准化和自动化机器学习系统的开发、部署和维护流程。特征存储是一个专门用于存储和管理机器学习特征的系统。MLOps是现代机器学习系统成功的关键。MLOps概述:定义、重要性和与传统DevOps的区别CI/CD/CT:持续集成、持续部署、持续训练实验跟踪:MLflow、Weights & Biases等工具数据管理:数据版本控制、质量监控、漂移检测模型注册。

2026-02-12 07:49:51 769

原创 第27章:模型部署:从训练到生产

模型部署是将训练好的机器学习模型集成到生产环境中,使其能够对新的数据进行预测的过程。这涉及将模型从开发环境迁移到生产环境,并提供可访问的API或服务。模型部署是将机器学习模型从实验室带到生产环境的关键步骤。模型保存与加载:PyTorch、TensorFlow、Scikit-learn的模型保存方法模型序列化:ONNX、TensorRT等跨平台格式Web服务部署容器化部署Kubernetes部署:自动化容器编排和管理模型优化:量化、剪枝、知识蒸馏监控和日志:性能监控、数据漂移检测、日志记录。

2026-02-12 07:48:49 555

原创 第26章:大语言模型入门:从GPT到ChatGPT

大语言模型是基于Transformer架构的预训练模型,通常拥有数十亿到数千亿个参数,在海量文本数据上进行训练。文本生成:能够生成连贯、有逻辑的文本理解上下文:能够理解长文本的上下文关系推理能力:能够进行一定程度的逻辑推理多任务能力:能够处理多种不同的NLP任务大语言模型是人工智能领域最具突破性的进展之一。从GPT-1到GPT-4,从单一任务到通用智能,大语言模型已经展现出惊人的能力。大语言模型概述:LLM的定义、特点和发展历程GPT系列详解:从GPT-1到GPT-4的演进其他重要LLM。

2026-02-11 10:03:28 436

原创 第25章:生成对抗网络(GAN):让机器学会创造

生成器(Generator,简称G):负责生成伪造的数据,试图欺骗判别器判别器(Discriminator,简称D):负责区分真实数据和生成器生成的假数据这种架构灵感来自于博弈论中的零和博弈,两个网络在对抗中相互促进,最终生成器能够生成非常逼真的数据。# 生成器nn.Tanh() # 输出范围[-1, 1]# 判别器GAN的基本原理:生成器和判别器通过对抗训练相互促进GAN的架构:生成器生成假数据,判别器区分真假数据GAN的损失函数:判别器损失和生成器损失的博弈GAN的训练过程。

2026-02-11 09:51:41 271

原创 第24章:实战项目4 - 文本分类(BERT微调)

本项目将实现一个新闻文本分类系统,使用预训练的BERT模型对新闻文章进行自动分类。输入:新闻文章的标题和正文输出:新闻类别(如科技、体育、财经、娱乐等)类型:多分类任务本项目使用AG News数据集,这是一个广泛使用的新闻文本分类数据集。样本数量:约120,000条训练数据,7,600条测试数据类别数量:4个类别World(世界新闻)Sports(体育)Business(财经)Sci/Tech(科技)文本长度:平均约40个单词标注质量:高质量人工标注数据准备。

2026-02-11 09:50:49 303

原创 第23章:Transformer架构(下):完整架构与预训练模型

预训练+微调范式: 从大规模无标注文本学习通用知识,然后在下游任务上微调BERT架构: 基于Transformer编码器,使用双向注意力BERT输入: Token嵌入+段落嵌入+位置嵌入BERT预训练任务: Masked Language Modeling(MLM)和Next Sentence Prediction(NSP)BERT微调: 添加任务特定的输出层,调整模型参数BERT变体: ALBERT、RoBERTa、DistilBERT、ELECTRA等: 使用预训练模型的强大工具。

2026-02-11 09:49:31 335

原创 第22章:Transformer架构:自注意力机制

自注意力(Self-Attention)是指在一个序列内部,每个元素与所有其他元素进行交互。与传统的注意力机制不同,自注意力的Query、Key、Value都来自同一个序列。对比说明:传统注意力Query来自解码器,Key和Value来自编码器用于编码器-解码器之间的交互自注意力Query、Key、Value都来自同一个序列用于序列内部的交互Transformer的动机: 解决RNN的顺序计算限制,实现完全并行化自注意力机制: Query、Key、Value的交互,计算注意力权重。

2026-02-11 09:26:56 685

原创 第21章:词嵌入:让机器理解语言的语义

词嵌入# LSTM(需要先reshape成序列形式)# 这里简化处理,实际应用中可能需要更复杂的处理# LSTM前向传播# 取最后一个时间步的输出# 全连接层# 模型参数output_dim = 2 # 二分类# 创建模型词嵌入的核心思想:将离散的单词映射到连续的低维向量空间Word2Vec:CBOW和Skip-gram两种架构,通过局部上下文学习词向量GloVe:结合局部上下文和全局共现统计的词嵌入方法词向量的数学:相似度计算、类比运算、降维可视化。

2026-02-10 10:35:34 241

原创 第20章:LSTM与GRU:解决长程依赖

在第19章中,我们学习了循环神经网络(RNN)的基本原理和应用。。这使得RNN很难学习到长距离的依赖关系。想象一下,当你在阅读一部长篇小说时,为了理解当前的情节,可能需要回想起几章前提到的人物或事件。这对RNN来说是一个巨大的挑战,因为随着序列长度的增加,早期的信息会逐渐丢失。长短期记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)正是为了解决这个问题而诞生的。它们通过引入。

2026-02-10 10:24:03 316

原创 第19章:循环神经网络(RNN):处理序列数据

在处理序列数据时,不仅考虑当前的输入,还要考虑之前的状态信息。想象你在阅读这句话:“小明来到公司,打开电脑,开始写代码。他今天的工作重点是____”要填空"他今天的工作重点是",你需要记住前面的上下文:小明到了公司、打开了电脑、开始写代码。这些信息帮助你推断出答案可能与编程或软件开发相关。传统的神经网络(如我们在CNN章节学习的)每次都是独立处理输入的,它们没有"记忆"。而RNN有一个隐藏状态(hidden state),就像人类的短期记忆一样,可以记住之前的信息并传递给下一个时间步。

2026-02-10 10:00:57 711

原创 第18章:实战项目3 - 图像分类(CIFAR-10)

CIFAR-10是计算机视觉领域最经典的基准数据集之一,由加拿大高级研究所(CIFAR)发布。

2026-02-10 09:22:23 706

原创 第17章:卷积神经网络(CNN) - 图像处理的王者

卷积层# 池化层# 全连接层# Dropout# 第一层# 第二层# 第三层# 全局池化# 全连接层return x。

2026-02-06 13:05:37 302

原创 第16章:PyTorch入门 - 深度学习框架实战

定义网络层self.fc1 = nn.Linear(2, 4) # 输入层→隐藏层self.fc2 = nn.Linear(4, 1) # 隐藏层→输出层self.sigmoid = nn.Sigmoid() # 激活函数# 前向传播return x# 创建模型print(f"\n参数数量:sum。

2026-02-06 11:25:02 393

原创 第15章:反向传播 - 神经网络如何学习

说起来,前面两章我们讲了神经网络的基础架构和激活函数,但有个问题一直没说清楚:神经网络到底是怎么学习到这些权重的?你可能会想,这不是很简单吗?不就是用梯度下降法调整权重吗?但问题是,怎么计算梯度?特别是对于多层网络,每一层都有很多权重,如何高效地计算它们对最终损失的影响?这就是反向传播算法要解决的问题。

2026-02-06 11:13:33 332

原创 第14章:激活函数 - 网络为什么需要非线性

激活函数是神经网络实现非线性的关键组件。本文对比分析了常见激活函数的特性:Sigmoid函数(0-1输出但存在梯度消失)、Tanh函数(以0为中心但仍有梯度问题)、ReLU函数(计算简单但可能出现神经元死亡)、Leaky ReLU(解决死亡问题)以及ELU(平滑但计算成本高)。通过数学公式和Python可视化,展示了不同激活函数的输出特性与梯度变化,阐明了它们在深度学习中的作用与局限性。

2026-02-06 11:08:09 268

原创 第13章:神经网络基础 - 感知机到多层网络

说起来,我们在前面12章里,学了传统的机器学习算法——线性回归、逻辑回归、决策树、随机森林、支持向量机、K-Means聚类,甚至还做了两个完整的实战项目。这些算法都是上世纪50年代到90年代发展起来的,虽然经典,但在处理复杂任务时,确实有点力不从心了。现在,我们要进入深度学习的世界了。深度学习不是什么玄学,它本质上就是神经网络,而且是多层神经网络。但为什么要搞多层?一层不够吗?这得从神经网络的鼻祖——感知机说起。

2026-02-05 10:39:21 608

原创 第12章:实战项目 - 泰坦尼克号生存预测

说起来,前面我们已经学了这么多算法了——线性回归、逻辑回归、决策树、随机森林、支持向量机、K-Means聚类,理论讲了一堆,代码也写了。但说实话,光学会怎么调sklearn的API,跟真正能解决问题,中间还隔着一个巨大的鸿沟。今天这个章节,我就要带大家跨过这个鸿沟。我们来做第一个完整的实战项目:泰坦尼克号生存预测。这可能是机器学习界最经典的入门项目,几乎所有入门教程都会用它。为什么?因为这个项目足够小,不需要处理几千万条数据;但又足够复杂,包含了真实世界中的各种问题——缺失值、异常值、特征工程、模型选择、参

2026-02-05 10:25:22 541

原创 第11章:K-Means聚类:无监督学习入门

簇内相似度高:同一个簇内的样本尽可能相似簇间相似度低:不同簇的样本尽可能不相似与分类问题不同,聚类问题没有预先定义的类别标签。算法需要自己决定如何分组,甚至决定分成多少组。

2026-02-05 10:10:45 667

原创 第10章:支持向量机:找到最佳边界

在机器学习的众多算法中,支持向量机(Support Vector Machine,简称SVM)以其优雅的理论和强大的性能而著称。与逻辑回归、决策树等算法不同,SVM的核心思想非常直观:找到一个最佳的决策边界,使得不同类别的样本尽可能远离这个边界。想象一下,你需要在一个操场上画一条线,把穿红色球衣的球员和穿蓝色球衣的球员分开。你可以画很多条线,但哪条线最好?SVM的答案是:与双方球员距离最远的那条线。因为这样的边界最稳健,即使有新的球员加入,也更容易正确分类。这个"距离最远"的思想,就是SVM的精髓所在。

2026-02-05 09:58:08 702

原创 第09章:随机森林:集成学习的威力

在上一章,我们学习了决策树,这个算法以其直观易懂的特点赢得了众多开发者的青睐。但决策树有一个致命的缺点:它太容易过拟合了。一颗未经限制的决策树会不断生长,直到完美记住训练数据的每一个细节,却对未见过的数据毫无泛化能力。这个问题其实不难理解。想象一下,如果我们让一个人根据有限的经验做决策,他很容易受到个别异常案例的影响,形成过于极端的判断。但如果我们将十个人的判断综合起来,异常案例的影响就会被稀释,整体的判断会更加稳健。随机森林正是基于这个思想构建的。

2026-02-05 09:36:11 685

原创 第08章:决策树:可视化决策过程

在机器学习的众多算法中,决策树是最直观、最易懂的模型之一。它模拟了人类做决策时的思考过程:通过一系列的判断条件,逐步缩小选择范围,最终得出结论。这种"树状"的结构不仅让模型变得透明可解释,还能让我们清楚地看到模型是如何做出每个预测的。

2026-02-04 17:00:14 521

原创 第7章 逻辑回归:二分类的基础

线性回归预测房价明白了,但如果是分类问题怎么办?比如判断邮件是不是垃圾邮件?这是个好问题。线性回归只能预测连续值,但实际中很多问题是分类问题。分类问题分为二分类(两个类别)和多分类(多个类别)。逻辑回归就是最基础的二分类算法。虽然名字里有"回归",但它实际上是个分类算法。

2026-02-04 13:45:54 205

原创 第6章 机器学习实战项目:房价预测

房价预测是机器学习领域的经典项目。为什么选这个项目?数据容易理解:特征都是日常概念(面积、房间数、位置等)问题清晰:回归问题,预测连续值可扩展性强:从简单的线性回归开始,可以逐步加入高级技术我们的目标是:根据房屋的各种特征,预测其价格。数据探索:理解数据结构、统计特征可视化分析:发现数据模式、特征关系数据预处理:处理缺失值、特征缩放、划分数据集模型训练:基础模型、正则化模型模型评估:RMSE、R²、残差分析模型优化:交叉验证、超参数调优、特征工程模型部署:保存模型、实际预测。

2026-02-04 13:32:05 367

原创 第5章 线性回归:最简单的机器学习算法

有个初学者问我:“机器学习看起来很复杂,有没有什么算法能让我快速上手,理解基本原理?我告诉他:“当然有。线性回归就是最好的起点。线性回归是最简单、最基础的机器学习算法,但它的原理却贯穿了几乎所有机器学习算法的核心思想。理解了线性回归,你就理解了什么是模型训练、什么是损失函数、什么是梯度下降。

2026-02-04 09:24:20 256

原创 第4章 数学基础快速回顾

有个读者给我留言说:“我看机器学习教程,里面全是数学公式,线性代数、概率统计、微积分,看得我头大。我是程序员,这些数学必须从头学吗?”这个问题很典型。很多人被数学吓退了。其实,你不需要成为数学家才能做机器学习。但有些核心概念确实需要理解,否则你会遇到"知其然不知其所以然"的问题。今天这一章,我用程序员能理解的方式,快速回顾一下机器学习最需要的数学基础。先说个事实。机器学习中的所有数据,本质上都是矩阵和向量。一张28×28的手写数字图片,可以看作是一个784维的向量。1000个这样的图片,就是一个1000×

2026-02-04 09:13:41 279

原创 第3章 机器学习的核心概念(下)

说起来,有个朋友看了我发的第2章,给我发消息说:“这几个概念理解了,但实战中到底怎么用?比如评估模型好坏,怎么知道是过拟合还是欠拟合?我回他说:“问得好。概念是理论,实战是另一回事。今天我们就讲讲实战中的核心概念。这些概念可能没有前一章那么"基础",但它们是。理解了它们,你才能把模型从"能跑"提升到"好用"。

2026-02-03 17:36:11 865

原创 第2章 机器学习的核心概念(上)

说起来,昨天有个朋友问我:“机器学习这么复杂,有没有几个核心概念,理解了它们,后面学起来会轻松很多?我想了想说:“有啊,其实机器学习没那么玄乎,核心概念就那么几个。理解了它们,就像是拿到了一张地图,后面学算法和模型时,你知道自己在哪,要去哪。今天我就聊聊这几个核心概念。但我不打算一上来就堆定义和公式,那样太枯燥了。。

2026-02-03 15:17:11 546

原创 第1章 为什么程序员要学机器学习?

说起来,上周三下午在星巴克和几个做Web开发的朋友聊天,大家的话题聊着聊着就转到了AI和机器学习上。其中一个朋友说:“我现在每天看新闻都是AI这个AI那个,感觉技术栈又要更新了,但机器学习这东西感觉离我挺远的。另一个朋友接话:“是啊,我们这些做后端的,平时就是写写API、优化一下数据库,机器学习好像是个完全不同的世界。我听了挺有感触的。作为AI Native Coder,我每天都在和这些工具打交道,但我完全理解他们的感受。因为两年前,我也这么想过。

2026-02-03 14:33:37 1164

原创 mysql数据库查询排名

注:这里的(SELECT @rk:= 0) a 的作用是:在同一个select语句中给变量@rk赋初始值。在MySQL中,不存在类似于SQL Server或Orcal等中的rank()函数来得到排名;所以我们需要手动地写这个rank功能。sql语句中,使用:=来给变量赋值,:@rank:=123,则变量rank的值为123。@rank:= if(2>1,100,200)的结果是,rank的值为100。sql语句中,使用@来定义一个变量。case情况一(CASE 后面不带表达式)

2022-12-20 11:12:22 1111

原创 TCP的三次握手与四次挥手

首先说一下tcp请求三次握手的过程,假如您是服务端,我是客户端,您是处于一直监听的状态,我现在发送一个请求,您接受到我发起的连接请求后,返回报文给我表示您已收到我发送的连接请求,我再次向您(服务端)发送确认收到允许链接的请求,总共三次(我→你,我←你,我→你),经过三次握手请求建立成功。接下来再说一下为什么需要三次握手,其实是为了防止服务端开启过多连接,造成资源浪费,如果说我发送请求的过程中网络迟滞了,很长时间才到达您那边,这时候我认为之前的请求发送失败了,我会重新发送请求,然而之前我发送的请求经过很长时

2021-10-11 10:58:55 181

原创 基于序列化实现对象深拷贝(工具类)

被拷贝对象一定要实现Serializable接口public class DeepCloneUtil { public static Object deepClone(Object obj){ Object copyObj=null; try { //对象序列化 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOu

2021-09-29 10:57:57 188

转载 java深拷贝和浅拷贝

关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象。可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解。创建对象的5种方式①、通过 new 关键字这是最常用的一种方式,通过 new 关键字调用类的有参或无参构造方法来创建对象。比如 Object obj = new Object();②、通过 Class 类的 newInstance() 方法这种默认是调用类的无参构造方法创建对象。

2021-06-28 15:31:44 301

转载 为什么说Java中只有值传递

在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了。如果你有以下想法,那么你有必要好好阅读本文。错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递。如果是个引用,就是引用传递。错误理解二:Java是引用传递。错误理解三:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递。实参与形参我们都知道,在Java中定义方法的时候是可以定义参数的。比如Java中的main方法:public static void main(String[] args)这

2021-06-24 11:22:47 425

转载 MySQL数据库主从复制

MYSQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力。MySQL主从同步的机制MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的

2021-06-23 11:48:41 178

转载 centos 安装mysql5.7

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql创建mysql用户组和用户并修改权限groupadd mysqluseradd -r -g mysql mysql创建数据目录并赋予权限

2021-06-23 09:26:40 157

原创 数据库连接池大概执行原理

package com.example.demo.Util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;/** * @author Glr * @version V1.0 * @date 2021/6/22 0022 16:54 */public class DbConnectionPool {

2021-06-22 17:27:25 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除