机器学习基本常识

一:引言

最近由于本人开始转向机器学习方向的研究,所以打算做一个新专栏。

以下是今天我们主要讲解的内容,大家先看一下:

机器学习在上个世纪60年代非常流行,最初只是用于一些简单的任务。

机器学习核心思想: 将宇宙演化、机器学习视为零一事件或概率论事件

博弈论思路:零和博弈、丛林法则、非黑即白。

概率论思路:连续分布:连续分布。

机器学习按学习方式分类 分为:监督学习,无监督学习,强化学习。

二:监督学习(有标签)

给模型输入+标准答案训练,用来预测结果。

1.分类(区别于无监督学习的聚类)

分类指已知类别再进行分类。(如:苹果、梨、香蕉→水果)

2.回归

大家高中的时候应该都讲过最小二乘法 ,那么最小二乘法讲了个什么事?大家可以先回忆一下。

最小二乘法是一种最优化估计方法,用来在一堆观测数据里找出一条(最合适)的曲线(最常见的是直线),使得这条曲线与所有数据点之间的误差平方和最小。

最小二乘的目标就是最小化代价函数。

那么我们再来谈谈线性回归与非线性回归。线性回归就是拟合过程中出现一次函数 的情况;非线性回归就是出现不是一次函数的情况。

那么还有一个重要的点:当我们出现回归效果不好的情况,通常是出现了欠拟合过拟合 的情况。欠拟合:样本量不足,导致对整体规律估计错误(如采样少,未发现线性关系)

过拟合:泛化能力差,模型对训练数据过度拟合,引入新样本时预测失效(如点偏离线性模型)

3.SVM(支持向量机)

SVM是经典的分类算法,核心思想一句话:在两类数据之间画一条线(或面),让这条线离两边都尽可能远。

离分界线最近的这几个点,就是支持向量(support vector)------它们是决定这条线位置的关键,其余的点其实不影响。

关键概念:间隔(Margin)

间隔 = 分界线到最近数据点的距离。

SVM 的目标 = 最大化这个间隔。

可能出现的情况:

(1)线性可分:能直接画直线/平面分开 → 用「硬间隔」,要求所有点都分对。

(2)线性不可分 / 有噪声:画不出完美的直线 → 引入:软间隔(soft margin):允许少数点分错或落在间隔内,用惩罚系数控制「容忍度」。惩罚系数越大越不容忍错误(容易过拟合),惩罚系数越小越宽容。

(3)完全非线性 :直线根本没法分 → 用核技巧(kernel trick)。

我们重点来介绍一下核技巧

核技巧:通过核函数(线性核、RBF核、多项式核)将线性不可分数据映射到高维空间。

优点:高维小样本数据表现好(如文本分类、基因数据)

缺点:大数据量训练慢,对参数C、gamma敏感,需特征标准化,可解释性差

4.Random Forest(随机森林)

基础:基于决策树的集成。(说的地道点,就是种很多棵决策树,让它们投票,最后少数服从多数。

随机森林的解法很朴素:(三个臭皮匠,顶个诸葛亮)

一棵树可能学偏了、记住了噪声,但如果种 100棵树,每棵都稍微不一样,再把它们的结果平均/投票,那些「跑偏」的错误会被互相抵消,剩下的是稳定的、真正的规律。

原理:Bootstrap抽样生成不同训练集,节点分裂时随机选特征,最终投票/平均输出。

其实,随机森林(Random Forest)之所以效果好,一个核心原因是:它在两个地方主动引入随机性,使每棵决策树都具有一定差异性。

(1). 样本随机:行抽样

随机森林使用 Bootstrap 自助采样

具体来说:

从原始的 n 个样本中,有放回地随机抽取 n 次,形成一棵决策树的训练集。

由于是"有放回"抽样,因此:

  • 有些样本可能被重复抽到;
  • 有些样本可能一次都没有被抽到;
  • 每棵决策树得到的训练数据都不完全相同。

平均来看,一棵树大约只能看到原始数据的 63.2% ,剩下约 36.8% 的样本没有被抽中。

这些没有被抽中的样本叫做:

袋外样本(OOB,Out-of-Bag Samples)

OOB 样本可以直接作为这棵树的"免费测试集",用于估计模型的泛化性能,因此不需要额外划分验证集

(2)特征随机:列抽样

除了样本随机,随机森林还会进行特征随机

在决策树的每个节点进行分裂时:

不是从全部特征中寻找最优特征,而是先随机选择一部分特征,然后只在这些特征中寻找最优划分。

例如:

  • 总共有 d 个特征;
  • 分类任务中通常可以随机选择约 d 个特征作为候选特征。

这样做的好处是:

  • 不会让所有决策树都过度依赖同一个强特征;
  • 不同决策树会从不同的特征角度进行决策;
  • 增强树与树之间的差异性(多样性)
  • 降低决策树之间的相关性,从而提高随机森林整体的泛化能力。

优点:不易过拟合,鲁棒性好,无需过多调参,适用于非线性、高维数据,可并行训练。

缺点:模型大,预测速度慢。

5.梯度提升树(GBDT)与 XGBoost

GBDT,也就是梯度提升树

它属于 Boosting 集成方法 。简单来说,GBDT不是一下子训练出很多棵互相独立的树,而是一棵接一棵地训练

第一棵树可能做得不太好,那么第二棵树就专门去学习第一棵树没有预测好的部分, 也就是前面模型留下的残差。后面的树不断重复这个过程,一点一点把前面模型的错误纠正掉。

从数学角度来说,更准确地讲,就是让后面的树去拟合当前模型损失函数的负梯度方向

所以你可以把GBDT理解成:

前一棵树犯错,后一棵树负责"擦屁股",一棵一棵地把错误降下来。

它最大的优点就是预测精度通常很高,尤其是在结构化数据上表现非常好。

但它也有一个比较明显的问题:因为后一棵树要依赖前面的结果,所以这些树之间存在串行关系,训练的时候不太容易完全并行,因此训练速度会受到影响。另外,GBDT对异常值也相对比较敏感。

XGBoost

然后我们再来看 XGBoost

你可以把它理解成:

XGBoost不是重新发明了一套算法,而是在GBDT的基础上做了大量工程和数学上的优化。

它比较重要的改进包括:

第一,使用损失函数的二阶泰勒展开。

普通GBDT主要利用一阶梯度,而XGBoost进一步利用了一阶梯度和二阶梯度的信息,因此在优化过程中能够更加准确地判断应该往哪个方向调整。

第二,加入了显式正则化。

也就是说,它不只是追求训练集上的预测准确,还会主动限制树的复杂度,从而降低过拟合的风险。

第三,可以自动处理缺失值。

数据里出现一些缺失特征时,XGBoost可以自动学习缺失值应该往哪个分支走,不需要我们事先把所有缺失值处理掉。

所以综合来看,XGBoost最大的特点就是:

在GBDT本身已经很强的基础上,把精度、正则化和工程效率进一步做了优化。

因此它通常具有很高的预测精度和不错的训练效率

当然,它也不是没有缺点。最大的一个问题就是:

参数比较多,而且参数之间还会互相影响,所以调参比较复杂。

最后怎么理解它们的关系?

如果把它们放在一起理解,可以记成:

GBDT:一棵树接一棵树,不断纠正前面的错误。
XGBoost:在GBDT的基础上,把优化、正则化和工程实现进一步加强。

所以在传统机器学习,尤其是表格数据(Tabular Data)任务中,XGBoost长期以来都是一个非常强的 baseline(基线模型)

三:无监督学习(无标签,只有数据)

只给原始数据,模型自动挖掘内在规律。

无监督学习最大的区别就是:

没有人告诉模型"正确答案是什么",模型自己去数据里寻找规律。

1.聚类(区别于监督学习的分类)

聚类是观察出有相似特征 群体,然后把有相似特点的放在一起去,但是实际上这个时候还并没有类。(如:猫、老虎、狮子有毛→近亲)

2.K-Means

我们先来讲讲无监督学习中的K-Means算法。

比如有一堆用户:

K-Means会尝试把它们分成 K 个簇。

比如最后我们发现:

第1类:高消费用户

第2类:低消费用户

第3类:中等消费用户

需要注意 的是:这些类别不是我们提前告诉它的。 模型只是根据数据之间的距离和相似程度,自己把它们分开。

3.降维

假设你的数据有1000个特征,直接处理可能非常麻烦,而且很多特征可能存在冗余。所以,我们希望:尽可能保留数据的重要信息,同时把特征数量降下来。

其中,最经典的算法就是:PCA(主成分分析)

4.PCA(主成分分析)

我们举个简单的例子方便大家理解,比如:

原始数据

100维

PCA

2维

那么,原来100个特征,最后可能只用2个主成分来表示。

这样我们甚至可以把数据轻松地画出来了:

你会发现:原来高维数据里面隐藏的结构,被我们压缩到低维空间里了。

四:强化学习(通过试错学习最优策略)

现实很多问题没有标准答案(机器人走路、游戏 AI、自动驾驶),无法列出所有正确行为,于是需要强化学习(RL)。

1. 强化学习的核心思想

强化学习的核心思想:智能体(Agent)通过不断与环境(Environment)交互,根据环境反馈的奖励(Reward)信号,通过试错学习一个能够获得最大长期收益的策略(Policy)。

简单来说:

监督学习:老师告诉你答案,你学习怎么预测。

强化学习:老师不给答案,你自己不断尝试,做得好就奖励,做得不好就调整。

2. 强化学习基本流程

状态 State → 选择动作 Action → 获得奖励 Reward → 更新策略 Policy → 新的状态。

3. 强化学习中的核心概念

目标不是当前奖励最大,而是未来累计奖励最大。

4.数学模型:MDP(马尔科夫决策过程)

五个要素:

  1. 状态空间 S

  2. 动作空间 A

  3. 奖励函数 R

  4. 状态转移概率 P

  5. 折扣因子 γ(越大越重视长期,越小越重视眼前)

最终目标:找到最优策略 π∗,使期望累计奖励最大。

5. 回报(Return)与贝尔曼方程

RL 关注的是未来所有奖励的累计,即回报(Return),γ 控制未来奖励的重要程度。

核心思想:**当前价值 = 当前奖励 +未来状态价值,**这就是贝尔曼方程。

6. 强化学习算法分类

强化学习算法主要可以分为几类:

Q-learning 按下一状态最大 Q 值更新(离线策略);SARSA 按实际执行动作更新(在线策略)。

7. 探索与利用(Exploration vs Exploitation)

强化学习中的经典问题:是继续使用已经有效的方法,还是尝试新的方法?

常用解决方法:

(1)ε-贪心:大部分选最优,小部分随机探索;

(2)熵正则化:损失加策略熵,鼓励探索;

(3)内在奖励:对新颖状态给额外奖励;

(4)UCB:选置信上界最大的动作;

(5)汤普森采样:按价值概率分布采样。

8. 强化学习的主要挑战

交互成本高、训练不稳定、奖励稀疏、安全性与泛化不足。

9. 强化学习应用领域

(1)大语言模型:RLHF(基于人类反馈的强化学习)优化输出质量与人类偏好一致性;

(2)游戏:AlphaGo、Dota AI;

(3)金融:交易策略、风控;

(4)具身智能:机器人感知、决策、执行。

五:总结

机器学习按照学习方式主要分为:

监督学习:

有标签,学习输入到输出的映射。

无监督学习:

无标签,发现数据内部结构。

强化学习:

无标准答案,通过不断试错和奖励反馈,学习最优决策策略。

强化学习的核心过程:状态 → 动作 → 奖励 → 更新策略 → 最大化长期收益

它解决的问题本质是:在复杂环境中,智能体如何通过不断学习,做出长期收益最大的决策。

相关推荐
一个王同学2 小时前
从零到一 | CV转多模态大模型 | week22 | 实战项目-DocuMind-VL:基于 OCR 与 Qwen-VL 的文档多模态问答系统(二)
人工智能·深度学习·机器学习·计算机视觉·ocr
SomeB1oody2 小时前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
ltl13 小时前
LLM 训练全景:Pre-train、SFT、RLHF、DPO 与蒸馏
机器学习
知识分享小能手14 小时前
线性代数学习教程,从入门到精通,向量组的线性相关性 — 完整知识点梳理(7)
学习·线性代数·机器学习
江畔柳前堤17 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
pjj1985418 小时前
机器学习-词向量转换2
人工智能·机器学习
夏文强20 小时前
AI 技术全景架构科普:从算法到应用的一整套技术栈
人工智能·深度学习·机器学习·大语言模型·技术架构
DFT计算杂谈1 天前
Janus单层Cr2SSe中的应变可调多压电效应与谷电子学
人工智能·算法·机器学习