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

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

第十六章 模型优化


文章目录

  • 人工智能之核心基础 机器学习
    • 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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1175242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Live Avatar infer_frames调整:帧数变化对流畅度影响实测

Live Avatar infer_frames调整&#xff1a;帧数变化对流畅度影响实测 1. 技术背景与问题提出 Live Avatar是由阿里巴巴联合多所高校开源的高性能数字人生成模型&#xff0c;基于14B参数规模的DiT&#xff08;Diffusion Transformer&#xff09;架构&#xff0c;支持从单张图像…

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

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

BGE-Reranker-v2-m3 Docker部署:容器化封装实战案例

BGE-Reranker-v2-m3 Docker部署&#xff1a;容器化封装实战案例 1. 引言 1.1 业务场景描述 在当前的检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;向量数据库通过语义相似度进行初步文档召回&#xff0c;但其基于Embedding的匹配方式容易受到关键词干扰&#…

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

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

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

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

VibeVoice语音效果惊艳!听完就想马上试一试

VibeVoice语音效果惊艳&#xff01;听完就想马上试一试 1. 引言&#xff1a;从“读字”到“对话”的语音革命 在内容创作日益依赖自动化工具的今天&#xff0c;文本转语音&#xff08;TTS&#xff09;技术正经历一场深刻的范式转变。传统TTS系统大多停留在“逐字朗读”的层面…

性能优化技巧:让DeepSeek-R1-Distill-Qwen-1.5B推理速度提升50%

性能优化技巧&#xff1a;让DeepSeek-R1-Distill-Qwen-1.5B推理速度提升50% 1. 背景与挑战 随着大模型在实际业务场景中的广泛应用&#xff0c;推理效率成为决定用户体验和部署成本的关键因素。DeepSeek-R1-Distill-Qwen-1.5B作为一款基于知识蒸馏技术构建的轻量化语言模型&a…

基于PCAN的上位机设计:Windows C# 实践案例

从零构建一个专业的CAN总线分析工具&#xff1a;基于PCAN C#的实战开发指南 你有没有遇到过这样的场景&#xff1f;在调试一辆智能汽车的ECU时&#xff0c;CAN总线上突然冒出一堆异常报文&#xff0c;但Oscilloscope抓不到细节&#xff0c;日志也只记录了片段&#xff1b;又或…

2026年AI智能硬件开发行业十大技术评级揭秘

2026年AI智能硬件开发领域十大技术先锋企业深度解析在AI智能硬件开发领域&#xff0c;技术创新和实际应用能力是衡量一家公司是否值得信赖的关键。本文从技术突破、行业案例和数据表现三个维度&#xff0c;深入剖析十家在2026年备受瞩目的技术先锋企业。技术驱动的未来&#xf…

Open Interpreter实操手册:Python/JavaScript/Shell多语言支持详解

Open Interpreter实操手册&#xff1a;Python/JavaScript/Shell多语言支持详解 1. 引言&#xff1a;为什么需要本地AI编程助手&#xff1f; 在当前大模型快速发展的背景下&#xff0c;越来越多开发者希望借助AI提升编码效率。然而&#xff0c;主流的云端AI编程工具&#xff0…

Matlab【独家原创】基于WMA-CNN-BiLSTM+SHAP可解释性分析的分类预测 (多输入单输出)

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 ​(WMA-CNN-BiLSTMSHAP)基于鲸鱼迁徙优化算法优化卷积神经网络结合双向长短期记忆神经网络的数据多输入单输出SHAP可解释性分析的分类预测模型 由于WMA-CNN-BiLSTM在使用SHAP分析时速度较慢&#xff0c;程序…

企业网络安全加固:软路由防火墙配置手把手教程

企业网络安全加固&#xff1a;用软路由打造高性价比防火墙实战指南你有没有遇到过这样的场景&#xff1f;公司业务上了云&#xff0c;但还有几台本地服务器要对外提供服务&#xff1b;员工一边喊着网速慢&#xff0c;一边偷偷开BT下载占满带宽&#xff1b;更头疼的是&#xff0…

Matlab【独家原创】基于WMA-CNN-GRU+SHAP可解释性分析的分类预测 (多输入单输出)

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 ​(WMA-CNN-GRUSHAP)基于鲸鱼迁徙优化算法优化卷积神经网络结合门控循环单元的数据多输入单输出SHAP可解释性分析的分类预测模型 由于WMA-CNN-BiGRU在使用SHAP分析时速度较慢&#xff0c;程序中附带两种SHA…

十分钟搭建RetinaFace人脸检测服务:无需配置的云端GPU方案

十分钟搭建RetinaFace人脸检测服务&#xff1a;无需配置的云端GPU方案 你是不是也遇到过这样的情况&#xff1f;作为一名前端开发者&#xff0c;手头有个摄影网站项目&#xff0c;想给用户上传的照片自动加上“人脸标记”功能——比如点击一张合照&#xff0c;系统能圈出每个人…

想试Llama3怕花钱?云端按需付费,几块钱就能全面体验

想试Llama3怕花钱&#xff1f;云端按需付费&#xff0c;几块钱就能全面体验 你是不是也和我一样&#xff0c;最近被 Llama3 这个开源大模型刷屏了&#xff1f;朋友圈、技术群、创业论坛都在聊它——性能接近 GPT-3.5&#xff0c;还完全免费开放。作为创业者&#xff0c;看到这…

长期运行省成本:Sonic私有化部署VS公有云ROI分析

长期运行省成本&#xff1a;Sonic私有化部署VS公有云ROI分析 1. 引言&#xff1a;数字人视频生成的现实需求与技术演进 随着AIGC技术的快速发展&#xff0c;数字人已从早期的概念演示逐步走向规模化落地。在政务播报、电商直播、在线教育、企业宣传等场景中&#xff0c;数字人…

零代码抠图方案出炉|基于科哥CV-UNet镜像的WebUI使用指南

零代码抠图方案出炉&#xff5c;基于科哥CV-UNet镜像的WebUI使用指南 1. 引言 在图像处理领域&#xff0c;背景移除&#xff08;Image Matting&#xff09;是一项高频且关键的任务&#xff0c;广泛应用于电商商品展示、人像摄影后期、设计素材制作等场景。传统抠图依赖Photos…

TensorFlow-v2.9实战教程:迁移学习在图像识别中的应用

TensorFlow-v2.9实战教程&#xff1a;迁移学习在图像识别中的应用 1. 引言与学习目标 随着深度学习技术的快速发展&#xff0c;图像识别已成为计算机视觉领域中最核心的应用之一。然而&#xff0c;从零开始训练一个高性能的卷积神经网络&#xff08;CNN&#xff09;通常需要大…

5分钟修复老照片!GPEN镜像让肖像增强一键搞定

5分钟修复老照片&#xff01;GPEN镜像让肖像增强一键搞定 1. 引言&#xff1a;老照片修复的技术演进与现实需求 在数字影像技术飞速发展的今天&#xff0c;大量珍贵的历史照片因年代久远、保存不当而出现模糊、噪点、划痕甚至褪色等问题。这些承载着个人记忆与时代印记的老照…

不用再调参!预装环境直接跑通SenseVoiceSmall模型

不用再调参&#xff01;预装环境直接跑通SenseVoiceSmall模型 1. 引言&#xff1a;语音理解的新范式 在传统语音识别任务中&#xff0c;开发者往往需要面对复杂的模型部署流程、繁琐的依赖安装以及耗时的参数调优。而随着多语言、富文本语音理解需求的增长&#xff0c;如何快…