结构化数据:数据库查询(SQL)、Excel/CSV 文件读取、API 接口调用(如 RESTful API)
非结构化数据:
图像数据:爬虫爬取(如 Scrapy + Selenium)、公开数据集下载(如 ImageNet、COCO)
文本数据:网页爬虫(如 BeautifulSoup 爬取新闻、博客)、社交媒体 API(如 Twitter API)
数据存储:
结构化数据:MySQL、PostgreSQL(关系型数据库)、Redis(缓存)
非结构化数据:MongoDB(文档数据库)、MinIO(对象存储,存储图像 / 视频)、HDFS(大数据场景)
数据格式转换:
图像数据:统一尺寸(如 224×224)、格式(如 JPG 转 PNG)、通道顺序(RGB/BGR)
文本数据:编码转换(UTF-8 统一)、格式标准化(如去除 HTML 标签、特殊字符)
数据清洗(续):
重复数据处理:基于哈希值去重(如文本 MD5 去重)、基于内容相似度去重(如图像 SSIM 去重)
数据一致性校验:检查数据类型一致性(如数值型字段无字符串)、逻辑一致性(如年龄≤120)
数据均衡化(处理类别不平衡):
过采样(少数类样本扩充):SMOTE(合成少数类样本,适用于数值型数据)、ADASYN(自适应过采样,聚焦难分样本)
欠采样(多数类样本减少):随机欠采样(简单随机删除)、Cluster-Based Sampling(聚类后采样,保留多数类多样性)
混合策略:过采样少数类 + 欠采样多数类,平衡样本分布
分类任务:
二分类:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 分数、ROC 曲线、AUC 值
适用场景:
精确率:关注预测为正的样本中真实为正的比例(如垃圾邮件识别,避免误判正常邮件)
召回率:关注真实为正的样本中被预测为正的比例(如疾病诊断,避免漏诊)
多分类:宏平均(Macro-F1,平等对待各类别)、微平均(Micro-F1,按样本数量加权)、混淆矩阵(可视化各类别预测情况)
回归任务:MAE(平均绝对误差)、MSE(均方误差)、RMSE(均方根误差)、R²(决定系数,衡量模型解释力)
序列任务(如 NER、机器翻译):
NER:F1 分数(基于实体级别的精确率和召回率)
机器翻译:BLEU 分数(双语评估替补,衡量生成文本与参考文本的相似度)
模型序列化:
保存格式:
TensorFlow:SavedModel 格式(跨平台支持)、.h5 格式(仅 Keras)
PyTorch:.pth 格式(保存模型权重)、TorchScript(torch.jit.save,用于 C++ 部署)
通用格式:ONNX(Open Neural Network Exchange,跨框架兼容,支持 TensorFlow/PyTorch/Caffe2)
模型压缩与优化:
模型剪枝(Pruning):去除冗余参数(如权重接近 0 的连接),减少模型大小和计算量
类型:结构化剪枝(剪枝整个卷积核 / 神经元)、非结构化剪枝(剪枝单个权重,需硬件支持)
模型量化(Quantization):将浮点数权重(FP32)转换为低精度整数(INT8/INT16),加速推理
工具:TensorRT(NVIDIA 量化工具)、PyTorch Quantization、TensorFlow Lite
知识蒸馏(Knowledge Distillation):用大模型(教师模型)指导小模型(学生模型)训练,保留大模型性能的同时减小模型体积
部署框架与平台:
云端部署:TensorFlow Serving(TF 模型)、TorchServe(PyTorch 模型)、FastAPI(封装模型为 API 接口)
边缘端部署:TensorFlow Lite(移动端 / 嵌入式设备)、ONNX Runtime(跨平台边缘推理)、NCNN(腾讯开源,移动端高效推理)
容器化部署:Docker(打包模型及依赖环境)、Kubernetes(容器编排,支持大规模部署和弹性伸缩)
推理加速:
硬件加速:GPU(NVIDIA CUDA)、TPU(Google 张量处理单元)、FPGA(可编程逻辑器件,低延迟场景)
软件优化:批处理(批量推理提升吞吐量)、推理引擎优化(如 TensorRT 的层融合、显存优化)
误区 1:忽视数学基础,直接上手框架
问题:无法理解算法原理,遇到问题无法调试(如梯度消失、过拟合)
解决方案:先掌握核心数学(线性代数、概率统计、微积分),再学习算法原理,最后用框架实现
误区 2:过度追求复杂模型,忽视简单模型
问题:复杂模型(如 Transformer、GAN)训练成本高、易过拟合,简单模型(如逻辑回归、随机森林)可能已满足需求
解决方案:遵循 “奥卡姆剃刀” 原则,先尝试简单模型,再根据性能提升需求引入复杂模型
误区 3:忽视数据质量,盲目调参
问题:模型性能瓶颈往往在数据(如缺失值、异常值、标签错误),而非参数
解决方案:先花 80% 时间做数据预处理(清洗、增强、特征工程),再进行模型训练和调参
误区 4:只学理论不落地,缺乏实战
问题:理论与工程实践脱节,无法将算法转化为产品
解决方案:从简单项目入手(如 MNIST 手写数字识别、 Iris 分类),逐步挑战复杂项目(如目标检测、文本生成),重视代码实现和工程化细节
数据泄露(Data Leakage):
表现:训练集性能极好,测试集性能极差(如将测试集数据用于训练集预处理)
避免方法:
预处理步骤(标准化、特征选择)仅在训练集上拟合,再应用到测试集
交叉验证时,每个折的预处理独立进行(避免跨折数据泄露)
超参数调优盲目性:
问题:随机调整超参数,无法找到最优组合
解决方案:
网格搜索(Grid Search):遍历指定超参数组合(适用于超参数少的场景)
随机搜索(Random Search):随机采样超参数组合(效率高于网格搜索)
贝叶斯优化(Bayesian Optimization):基于历史调参结果智能推荐下一组超参数(适用于超参数多的场景,工具:Optuna、Hyperopt)
模型过拟合处理不当:
常见错误:仅增加正则化强度(可能导致欠拟合)
正确策略:
数据层面:增加数据量、数据增强
模型层面:简化模型(减少层数 / 神经元数)、正则化(L1/L2、Dropout)、早停
训练层面:降低学习率、延长训练时间、使用迁移学习
全部0条评论
快来发表一下你的评论吧 !