news 2026/8/26 17:16:19

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

作者头像

张小明

前端开发工程师

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/8/21 19:42:46

pjsip移植到Android系统完整指南

手把手教你把 pjsip 移植到 Android&#xff1a;从编译到通话的完整实战 你有没有遇到过这样的需求——客户说&#xff1a;“我们要做个 VoIP 应用&#xff0c;能打内线电话那种。” 你一查资料&#xff0c;发现市面上开源 SIP 栈不少&#xff0c;但真正稳定、高效又支持 Andr…

作者头像 李华
网站建设 2026/8/24 11:04:39

麦橘超然模型市场:支持第三方模型一键安装的设想

麦橘超然模型市场&#xff1a;支持第三方模型一键安装的设想 1. 引言与背景 随着 AI 图像生成技术的快速发展&#xff0c;本地化、轻量化部署成为越来越多开发者和创作者的核心需求。麦橘超然&#xff08;MajicFLUX&#xff09;离线图像生成控制台正是在这一背景下诞生的一款…

作者头像 李华
网站建设 2026/8/21 19:42:47

基于Qwen的情感计算系统搭建:全流程部署实战指南

基于Qwen的情感计算系统搭建&#xff1a;全流程部署实战指南 1. 引言 1.1 业务场景描述 在智能客服、用户反馈分析和社交内容监控等实际应用中&#xff0c;情感计算&#xff08;Sentiment Analysis&#xff09;是一项关键的自然语言处理任务。传统方案通常依赖专用模型&…

作者头像 李华
网站建设 2026/8/25 17:26:15

DeepSeek-R1-Distill-Qwen-1.5B实战:智能代码文档生成系统

DeepSeek-R1-Distill-Qwen-1.5B实战&#xff1a;智能代码文档生成系统 1. 引言 1.1 业务场景描述 在现代软件开发流程中&#xff0c;代码可维护性与团队协作效率高度依赖于高质量的代码文档。然而&#xff0c;手动编写注释和接口说明耗时且容易遗漏关键逻辑。为解决这一痛点…

作者头像 李华
网站建设 2026/8/21 19:42:46

OpenDataLab MinerU镜像测评:OCR文字提取精准度实测报告

OpenDataLab MinerU镜像测评&#xff1a;OCR文字提取精准度实测报告 1. 背景与评测目标 随着智能文档处理需求的快速增长&#xff0c;传统OCR技术在面对复杂版式、多模态内容&#xff08;如图表、公式、表格&#xff09;时逐渐暴露出理解能力不足的问题。尽管通用大模型在自然…

作者头像 李华
网站建设 2026/8/22 21:25:45

Z-Image-Turbo部署必看:系统盘重置导致权重丢失的预防教程

Z-Image-Turbo部署必看&#xff1a;系统盘重置导致权重丢失的预防教程 1. 背景与问题引入 在使用高性能文生图大模型进行AI图像生成时&#xff0c;Z-Image-Turbo 凭借其基于 DiT 架构的先进设计和仅需9步推理即可输出10241024高清图像的能力&#xff0c;成为当前高显存机型&a…

作者头像 李华