2.4 学习与进化


2.4 学习与进化

本节摘要:学习让智能体从经验中提升,进化让智能体在种群层面优化结构——这是智能体「越用越强」的两条通道。本节先讲监督学习、无监督学习、强化学习三条学习路径的原理与应用,再用遗传算法(选择-交叉-变异)演示进化机制,最后讨论神经进化、进化强化学习等学习与进化的结合方向。

本节导读

阅读完本节,你应当能够:

  1. 说出监督、无监督、强化学习三种方式的差异与适用场景
  2. 解释 Q-Learning 的 Q 表更新公式与 epsilon-greedy 策略
  3. 描述遗传算法的选择、交叉、变异三步循环
  4. 区分「学习」与「进化」在时间尺度上的差异
  5. 说出神经进化与进化强化学习的核心思路

问题与直觉

第 2.3 节的智能体会做决策了,但它的决策能力是「出厂设置」——要么靠人写规则,要么靠人设计效用函数。真实世界的智能体需要自己变强:下棋输了一盘,下次知道别这么走;机器人抓了几次杯子摔了几次,慢慢学会用力大小。这就是学习。而如果把这套「适应」放到种群层面——不是单个智能体变强,而是一代一代的「智能体方案」被优胜劣汰——这就是进化。

SOUCE 原文把两者的定位讲得很清楚:学习侧重于在个体生命周期内的经验积累和策略优化,进化侧重于在种群层面上的长期优化和结构演变。 一个智能体活一辈子能学会很多;但要换掉「骨架」(神经网络该有几层、决策该用什么结构),单靠学习改不动,得靠进化在代际间搜索。前者是「开卷考试里越做越熟」,后者是「重新出题、选更好的考生」。

核心原理

监督学习:有标准答案的学习

监督学习基于标注数据——给一组「输入-输出」对,学一个映射函数。分类(图像识别、情感分析)和回归(房价预测)是两大任务。代表算法有线性回归、逻辑回归、SVM、决策树、随机森林、神经网络。

SOUCE 用 sklearn 的线性回归演示了标准流程:train_test_split 划分训练测试集 → LinearRegression() 建模型 → model.fit(X_train, y_train) 训练 → mean_squared_error 评估 → 对新数据预测。这个「准备数据→划分→训练→评估→预测」的五步流程,是监督学习在智能体里落地的通用骨架。智能体里监督学习的典型用途:训练感知模块(图像分类器、语音识别器)、学习用户偏好模型。缺点是依赖人工标注——标注成本高,且数据分布变了模型就失效。

这里有两个工程细节容易被忽略。第一,数据划分的比例和随机种子:SOUCE 里 test_size=0.2, random_state=42,前者保证「两成数据做考试」,后者保证「每次考同一套卷」——random_state 固定下来,实验结果才可复现,这是团队协作的底线。第二,评估指标的选择:回归任务 SOUCE 用 MSE(均方误差),但 MSE 对大误差敏感(平方放大),如果你的业务更在意「差一点点没关系、差很多要命」,MSE 合适;如果所有误差一视同仁,MAE 更公平。评估指标选错,模型「好坏」的判断就失真了——第 4.3 节性能评估会系统展开这层。

无监督学习:没有标准答案的学习

无监督学习只用输入数据,自己发现结构。两大任务:聚类(把相似样本分组)和降维(压缩数据维度)。代表算法 K-均值、层次聚类、PCA、自编码器。

SOUCE 的 K-均值示例值得拆解:make_blobs(n_samples=300, centers=4) 生成 4 簇数据 → KMeans(n_clusters=4) 聚类 → silhouette_score 算轮廓系数评估聚类质量(越接近 1 越好)→ 可视化。工程要点:K 值(簇数)是超参数,SOUCE 提醒「调整 K 值以优化结果」——选 K 没有标准答案,常用肘部法则或轮廓系数辅助判断。智能体里无监督学习常用于:用户画像、异常检测、数据可视化前的降维。它的价值在于不需要标注,能从海量原始数据里自动提取结构。

强化学习:靠试错学习决策

强化学习通过与环境交互学习最优策略,核心是奖励信号。第 2.3 节已经讲过 Q-Learning 的原理,这里从「学习」视角再看一遍它的机制:智能体在状态 s 选动作 a,环境回奖励 r 和下一状态 s',Q 表按 Q(s,a) ← Q(s,a) + α·[r + γ·max Q(s',a') − Q(s,a)] 更新。注意两点:一是时序差分思想——用「当前奖励 + 未来最优 Q 的折扣」作为目标值,把长期收益一步步从终点往回「传播」;二是epsilon-greedy——以 ε 概率探索随机动作,以 1−ε 概率利用已知最优,平衡「多试」和「用熟」。

SOUCE 的伪代码给出了 Q-Learning 的训练骨架:

初始化 Q 表 for 每个 episode: 初始化状态 s while s 不是终止状态: a = epsilon-greedy 选动作 s', r = environment.step(a) Q(s,a) += alpha * (r + gamma * max Q(s',a') - Q(s,a)) s = s'

强化学习的魅力在于不需要标注数据——奖励信号就是「免费的老师」。代价是样本效率低、训练慢,在真实环境里试错有成本(机器人摔坏了、交易亏钱了),所以实践中常用仿真环境预训练(第 1.2 节讲过)。

进化:种群层面的优化

进化算法模拟自然选择,核心是「优胜劣汰」。五大要素:种群(一组候选解,每个叫个体)、适应度函数(评价个体好坏)、选择(按适应度挑优秀个体繁殖)、交叉(交换父代基因产生后代)、变异(随机修改基因引入新变化)。

SOUCE 用遗传算法做字符串匹配演示,非常直观:目标是拼出 "HELLO WORLD",每个个体是一串随机字符。适应度 = 匹配上的字符数;选择用轮盘赌(适应度高的个体被选概率大);交叉用单点交叉(随机选个位置,交换两父代前后段);变异以 1% 概率随机替换字符。核心循环:

for generation in range(generations): fitness = [calc_fitness(ind) for ind in population] selected = selection(population, fitness) # 轮盘赌选择 next_pop = [] for i in range(0, len(selected), 2): c1, c2 = crossover(selected[i], selected[i+1]) # 单点交叉 next_pop += [mutation(c1), mutation(c2)] # 变异 population = next_pop

几代之后,种群里的字符串会「进化」得越来越像目标串。这个例子揭示了进化的三个特性:并行搜索(整个种群同时探索解空间)、无需梯度(只要能给个体打分就能进化,不需要可微)、能优化结构(个体可以是架构、规则集,不只是数值参数)。这三点正是进化在神经网络架构搜索(NAS)、超参数优化里的用武之地。

工程实践要点

三条学习路径的选型对照

维度 监督学习 无监督学习 强化学习
数据 标注数据 无标注数据 交互奖励
目标 学输入输出映射 发现数据结构 学最优决策策略
智能体用途 感知、偏好建模 画像、异常检测 决策、控制
典型算法 线性回归、SVM K-均值、PCA Q-Learning、DQN
主要成本 标注 调参 样本/训练时长

⚠️ 常见坑:把监督学习当成智能体学习的全部。很多任务(决策、控制、导航)根本没有「标准答案」可标——最优动作本身未知,只能靠强化学习从奖励里学。先判断任务性质:有标准答案用监督,没标准答案要探索用强化,只是找结构用无监督。
💡 关键直觉:三类学习对应三种「老师」——监督学习的老师是标注,无监督学习的老师是数据内在结构,强化学习的老师是奖励信号。选方法前先想清楚「这个任务的老师是谁」。

学习与进化的结合方向

SOUCE 列出了三个结合方向:

  • 神经进化(Neuroevolution):用进化算法优化神经网络的结构、权重或学习算法。好处是能搜索「网络该几层、该连哪些边」这类结构问题——梯度下降改不了结构,进化可以。
  • 进化强化学习:用进化搜索更好的强化学习策略或奖励函数。强化学习的奖励函数设计是老大难(2.3 节提过钻空子问题),进化可以自动搜索更鲁棒的奖励设计。
  • 迁移学习与进化:用进化选择合适的预训练模型或迁移策略,加速新任务学习。

结合的价值在于优势互补:学习擅长在给定结构下精调(个体层面),进化擅长在结构空间里搜索(种群层面)。一个常见流水线是「进化选结构 + 学习调参数」——先用进化找到好架构,再用梯度下降把参数训到位。

说个 SOURCE 里没直说但值得点透的实践判断:进化的评估成本是它最大的拦路虎。遗传算法里每个个体都要跑一次完整评估——在字符串匹配这种廉价任务上无所谓,但放到深度学习里,评估一个「网络结构个体」就得训练一次完整模型,代价极高。所以工程上进化用得最顺手的场景,恰恰是评估便宜的地方:超参数组合、轻量规则集、奖励函数设计。遇到「评估一次就要训一整天模型」的任务,先想清楚进化要跑多少代、每代多少人——预算算不过来,就是方向错了。这也呼应了前面的时间尺度标尺:进化只配得上「评估便宜且环境稳定」的任务。

学习与进化的时间尺度差异

这是工程上最容易忽略的一点。学习的更新是「每步或每 episode」的在线过程,适合响应环境渐变;进化是「代际」的离线过程,一代动辄评估几十上百个个体,只适合环境变化慢、评估成本可控的场景。如果一个任务的环境每天都在变,进化还没评估完一轮,环境已经面目全非——这时用学习(尤其是持续学习、元学习,见第 6 章)更合适。反过来,如果任务的环境基本稳定、但需要搜出好的结构配置,进化是利器。时间尺度匹配,是学习与进化选型的隐藏标尺。

还有一个容易被误解的点:进化 ≠ 强化学习。两者都「靠试错」,但机制不同。强化学习学的是「策略」(一个状态到动作的映射),个体在生命周期内靠奖励信号逐步调整;进化改的是「基因组」(编码方案),靠种群代际间的选择压整体变迁。也可以说,强化学习是对单个策略的「精调」,进化是对解空间的「广搜」。实践中两者能结合——比如用进化搜索神经网络的权重初始化,再用强化学习微调——但先分清机制,才能谈结合。SOUCE 的表述很到位:「学习是经验积累,进化是结构演变」,一个是纵向(时间上的个体成长),一个是横向(群体中的代际更替)。

温故知新

  • 三种学习:监督学映射、无监督学结构、强化学习决策
  • Q-Learning 核心:时序差分更新 + epsilon-greedy 平衡探索利用
  • 进化五要素:种群、适应度、选择、交叉、变异
  • 遗传算法:轮盘赌选择 + 单点交叉 + 随机变异,无需梯度
  • 三者结合:神经进化搜结构、进化强化学习搜奖励、迁移学习加速
  • 时间尺度:学习应对渐变,进化应对稳定环境的结构搜索
  • 选型先问老师:任务的「老师」是标注、结构还是奖励
  • 进化门槛:评估便宜 + 环境稳定,才配得上进化

学会变强了,下一节看智能体怎么真正「动手」——行动与执行。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U