news 2026/5/14 20:45:39

人工智能之核心基础 机器学习 第十六章 模型优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人工智能之核心基础 机器学习 第十六章 模型优化

人工智能之核心基础 机器学习

第十六章 模型优化


文章目录

  • 人工智能之核心基础 机器学习
    • 16.1 过拟合与欠拟合
      • 🎯 定义(用“考试”比喻)
      • 🔍 表现与原因
    • 16.2 解决过拟合的方法
      • ✅ 五大核心策略
        • 1. **正则化(Regularization)**
        • 2. **交叉验证(Cross-Validation)**
        • 3. **早停(Early Stopping)**
        • 4. **增加数据量**
        • 5. **数据增强(Data Augmentation)**
    • 16.3 超参数调优
      • 🔧 三大主流方法
      • 📜 调优流程(标准实践)
    • 16.4 模型融合
      • 🤝 为什么融合有效?
      • 1. 简单融合
        • 投票法(分类)
        • 平均法(回归)
      • 2. 进阶融合:堆叠(Stacking)
    • 16.5 半监督/自监督模型优化技巧
      • 🔑 三大关键优化点
        • 1. **伪标签筛选策略**
        • 2. **自监督前置任务调优**
        • 3. **无标签数据利用率提升**
    • 16.6 模型选择策略
      • 🧭 选型决策树
      • 📊 模型选择对照表
      • 💡 半监督/自监督 vs 传统范式
    • 🎯 本章总结:泛化能力提升 Checklist
  • 资料关注

16.1 过拟合与欠拟合

🎯 定义(用“考试”比喻)

状态训练表现测试表现比喻
欠拟合“课本都没看懂,考试自然不会”
理想状态“真正学会了知识,举一反三”
过拟合极好“死记硬背考题答案,换题就不会”

🔍 表现与原因

问题典型表现根本原因
欠拟合- 训练误差高- 模型太简单(如线性模型拟合非线性)- 模型容量不足- 特征太少/质量差
过拟合- 训练误差≈0- 验证误差远高于训练误差- 模型复杂度高- 数据量少- 模型太复杂- 噪声多

💡可视化诊断

importmatplotlib.pyplotasplt plt.plot(train_losses,label='训练损失')plt.plot(val_losses,label='验证损失')plt.legend()ifval_loss starts risingwhiletrain_loss keeps falling → 过拟合!

16.2 解决过拟合的方法

✅ 五大核心策略

1.正则化(Regularization)
  • L1正则(Lasso):$ \text{Loss} + \lambda \sum |w_i| $ → 自动特征选择
  • L2正则(Ridge):$ \text{Loss} + \lambda \sum w_i^2 $ → 权重衰减,防过大
fromsklearn.linear_modelimportLogisticRegression# L2正则(默认)lr_l2=LogisticRegression(penalty='l2',C=1.0)# C越小,正则越强# L1正则lr_l1=LogisticRegression(penalty='l1',solver='liblinear',C=0.1)
2.交叉验证(Cross-Validation)
  • 防止模型评估“运气好”
  • K折交叉验证:数据分K份,轮流做验证集
fromsklearn.model_selectionimportcross_val_score scores=cross_val_score(model,X,y,cv=5)# 5折print(f"平均准确率:{scores.mean():.2%}±{scores.std():.2%}")
3.早停(Early Stopping)
  • 训练时监控验证损失,不再下降时停止
# PyTorch示例best_val_loss=float('inf')patience=5counter=0forepochinrange(100):train(...)val_loss=validate(...)ifval_loss<best_val_loss:best_val_loss=val_loss counter=0save_model()else:counter+=1ifcounter>=patience:break# 早停
4.增加数据量
  • 最根本的解决方法!但成本高
  • 半监督/自监督可缓解此问题
5.数据增强(Data Augmentation)
  • 人工扩充数据多样性
  • 图像:旋转、裁剪、颜色抖动
  • 文本:同义词替换、随机删除
  • 表格:加噪声、SMOTE(少数类过采样)
# 图像增强(用于训练)fromtorchvisionimporttransforms train_transform=transforms.Compose([transforms.RandomHorizontalFlip(),transforms.RandomRotation(10),transforms.ToTensor()])

⚠️注意:测试时不要数据增强!


16.3 超参数调优

🔧 三大主流方法

方法原理优点缺点
网格搜索遍历所有组合全面计算爆炸(维度灾难)
随机搜索随机采样组合高效,常优于网格可能漏掉最优
贝叶斯优化基于历史结果智能采样最高效实现复杂

📜 调优流程(标准实践)

fromsklearn.model_selectionimportRandomizedSearchCVfromscipy.statsimportuniform,randint# 定义参数空间param_dist={'n_estimators':randint(50,200),'max_depth':[3,5,7,None],'learning_rate':uniform(0.01,0.3)}# 随机搜索 + 交叉验证fromxgboostimportXGBClassifier model=XGBClassifier()random_search=RandomizedSearchCV(model,param_dist,n_iter=50,cv=5,scoring='accuracy',random_state=42,n_jobs=-1)random_search.fit(X_train,y_train)print("最佳参数:",random_search.best_params_)print("最佳得分:",random_search.best_score_)

💡进阶工具Optuna,Hyperopt(支持贝叶斯优化)


16.4 模型融合

🤝 为什么融合有效?

“三个臭皮匠,顶个诸葛亮” —— 不同模型犯错方式不同,融合可互补!


1. 简单融合

投票法(分类)
  • 硬投票:多数表决
  • 软投票:平均预测概率
fromsklearn.ensembleimportVotingClassifierfromsklearn.linear_modelimportLogisticRegressionfromsklearn.ensembleimportRandomForestClassifierfromsklearn.svmimportSVC clf1=LogisticRegression()clf2=RandomForestClassifier()clf3=SVC(probability=True)voting=VotingClassifier(estimators=[('lr',clf1),('rf',clf2),('svc',clf3)],voting='soft'# 使用概率)voting.fit(X_train,y_train)
平均法(回归)
pred=(model1.predict(X)+model2.predict(X)+model3.predict(X))/3

2. 进阶融合:堆叠(Stacking)

  • 基模型:多个不同模型(如LR、RF、SVM)
  • 元模型:学习如何组合基模型的输出
fromsklearn.ensembleimportStackingClassifier stacking=StackingClassifier(estimators=[('lr',lr),('rf',rf),('svc',svc)],final_estimator=LogisticRegression(),# 元模型cv=5# 用5折生成元特征)stacking.fit(X_train,y_train)

效果:通常比单一模型提升1~3%准确率!


16.5 半监督/自监督模型优化技巧

🔑 三大关键优化点

1.伪标签筛选策略
  • 动态阈值:初期阈值高(如0.95),后期降低
  • 课程学习:先学简单样本(高置信度),再学难样本
  • 一致性正则:对同一无标签样本做两次增强,预测应一致
# 动态阈值示例initial_threshold=0.95final_threshold=0.8threshold=initial_threshold-(initial_threshold-final_threshold)*(epoch/max_epochs)high_conf=proba.max(axis=1)>threshold
2.自监督前置任务调优
  • 掩码比例:图像MAE常用75%,文本BERT用15%
  • 增强强度:对比学习中,增强太弱→学不到东西,太强→两个视角无关
  • 损失函数:SimSiam用余弦相似度,MAE用MSE
3.无标签数据利用率提升
  • 分批加入:先用高质量无标签数据,再逐步扩大
  • 置信度加权:高置信伪标签权重高,低置信权重低
  • 对抗训练:让模型对输入扰动鲁棒

16.6 模型选择策略

🧭 选型决策树

大量全标注

少量标签+大量无标签

完全无标签

发现结构

预训练特征

有多少标签数据?

监督学习

半监督学习

目标任务是什么?

无监督学习

自监督学习


📊 模型选择对照表

场景推荐模型理由
表格数据 + 少量标签XGBoost + 伪标签树模型抗噪,伪标签简单有效
图像 + 无标签MAE / SimSiam 预训练视觉自监督SOTA
文本 + 少量标签BERT微调 + 半监督利用预训练语言知识
高维稀疏数据PCA + Logistic Regression降维去噪,线性模型稳定
非球形簇 + 无标签DBSCAN捕捉任意形状簇

💡 半监督/自监督 vs 传统范式

维度监督学习半监督自监督
数据需求大量标注少量标注+大量无标注仅无标注
开发成本高(标注)低(但需设计任务)
适用阶段成熟业务探索期/标注瓶颈预训练/冷启动
典型产出直接可用模型改进版监督模型通用特征提取器

实践
冷启动阶段:自监督预训练
有少量标注后:半监督微调
标注充足后:纯监督精调


🎯 本章总结:泛化能力提升 Checklist

问题解决方案工具
过拟合正则化、早停、数据增强sklearn, 手动实现
欠拟合增加模型复杂度、特征工程更深网络、新特征
超参数不佳随机搜索、贝叶斯优化RandomizedSearchCV,Optuna
单模型不稳定模型融合VotingClassifier,StackingClassifier
半监督效果差优化伪标签策略、一致性正则动态阈值、增强一致性
自监督特征弱调整前置任务、增强策略掩码比例、对比学习温度

📘建议

  1. 先保证数据质量(第15章)
  2. 从简单模型开始(如逻辑回归)
  3. 用交叉验证评估
  4. 逐步引入复杂技术(正则→融合→半监督)

🌟提醒
泛化能力不是靠一个神奇算法,而是系统性工程——数据、模型、训练、评估缺一不可!

资料关注

公众号:咚咚王
gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:59:29

FSMN-VAD能否用于音乐检测?非语音场景适用性评测

FSMN-VAD能否用于音乐检测&#xff1f;非语音场景适用性评测 1. 引言&#xff1a;从语音检测到非语音场景的探索 FSMN-VAD&#xff08;Feedforward Sequential Memory Neural Network - Voice Activity Detection&#xff09;是阿里巴巴达摩院基于 ModelScope 平台推出的高效…

作者头像 李华
网站建设 2026/4/18 11:06:33

情感分析接单实战:云端GPU+预置工具,3单回本硬件投入

情感分析接单实战&#xff1a;云端GPU预置工具&#xff0c;3单回本硬件投入 你是不是也是一名程序员&#xff0c;平时写代码、做项目&#xff0c;但总觉得收入单一&#xff1f;有没有想过靠自己的技术能力&#xff0c;在业余时间接点外包单子&#xff0c;多赚一份外快&#xf…

作者头像 李华
网站建设 2026/5/8 18:19:04

Qwen3-0.6B最佳实践:日志记录与异常捕获机制设计

Qwen3-0.6B最佳实践&#xff1a;日志记录与异常捕获机制设计 1. 引言 1.1 背景与场景需求 Qwen3&#xff08;千问3&#xff09;是阿里巴巴集团于2025年4月29日开源的新一代通义千问大语言模型系列&#xff0c;涵盖6款密集模型和2款混合专家&#xff08;MoE&#xff09;架构模…

作者头像 李华
网站建设 2026/4/28 22:55:06

Vetur环境下Vue项目创建核心要点解析

Vetur环境下Vue项目创建核心要点解析前端开发早已不再是“写个HTML加点JS”的简单操作。随着工程化体系的成熟&#xff0c;开发者对编码效率、代码质量与协作规范的要求越来越高。在这一背景下&#xff0c;工具链的质量直接决定了项目的可维护性与团队生产力。Vue.js 作为主流的…

作者头像 李华
网站建设 2026/5/14 5:32:55

一键部署+网页访问,GLM-4.6V-Flash-WEB太方便了

一键部署网页访问&#xff0c;GLM-4.6V-Flash-WEB太方便了 1. 引言&#xff1a;多模态落地的“最后一公里”难题 在当前AI应用快速向图文理解、视觉问答、内容审核等场景延伸的背景下&#xff0c;如何高效部署具备中文理解和图像识别能力的视觉语言模型&#xff08;Vision-La…

作者头像 李华
网站建设 2026/5/13 7:39:44

边缘羽化黑科技!UNet抠图更自然的秘诀公开

边缘羽化黑科技&#xff01;UNet抠图更自然的秘诀公开 1. 引言&#xff1a;图像抠图中的“边缘困境” 在数字内容创作、电商商品展示和视觉设计领域&#xff0c;高质量的图像抠图是基础且关键的一环。传统方法依赖人工精细描边&#xff0c;效率低、成本高&#xff1b;而早期A…

作者头像 李华