最近两个月学完 Andrew Ng 的 机器学习 课程,对机器学习有了一个整体的认识,感谢Andrew Ng及其团队,能够让机器学习这门专业学起来如此生动有趣。本文是对课程的学习笔记,主要目的是从宏观角度对机器学习整体框架和核心概念有基本认识并形成知识框架,以便在后续遇到实际问题时,能够进一步深入学习并解决实际问题。
什么是机器学习
机器学习(Machine Learning,简称ML)是人工智能(AI)的一个核心分支,是使计算机具有像人一样的学习能力的技术,其核心目标是让计算机系统通过从数据中自动学习规律和模式,从而完成任务或做出预测,而无需显式编程。
机器学习的核心是数据驱动和迭代优化:
- 数据驱动:机器学习依赖大量数据,通过分析数据中的统计规律、关联性或结构,形成模型(如分类规则、预测函数等)。
- 迭代优化:系统通过不断调整模型参数(如神经网络的权重)来减少预测错误,逐步模型的准确性和性能。
机器学习的类型
根据所处理的数据种类的不同,机器学习可以分为有监督学习、无监督学习和强化学习。
有监督学习
有监督学习(Supervised Learning),是机器学习的一个分支,是指通过输入带有标签(正确答案)数据,模型学习输入到输出的映射。监督学习的核心是,从已知答案中学习规律。
如果把机器学习用一个函数表示:
1 | y = f(x) |
x为输入,y为输出,f为模型,监督学习就是给定x和y,让机器学习f的过程。
监督学习也可以理解为,一位学生从老师那里获取知识,老师提供对错指示,告知最终答案的学习过程。学生对应于计算机,老师则对应于周围环境。根据在学习过程中所获得的经验、技能(即模型f),对没有学习过的问题也可以做出正确解答(推理),使计算机获得这种泛化能力。
监督学习在手写文字识别、声音处理、图像处理、垃圾邮件分类与拦截、基因诊断以及股票预测等方面都有广泛应用。
无监督学习
无监督学习(Unsupervised Learning)是机器学习的一个分支,是指通过无标签数据,模型自行发现隐藏结构(如聚类、降维)。核心在于从无标签数据中自动发现隐藏的结构、模式或规律,无需依赖人工标注的答案。与监督学习不同,无监督学习的目标是探索数据内在的分布特性,常用于数据探索、特征提取或预处理。
无监督学习也可以理解为,在没有老师的情况下,学生自学的过程(无师自通)。
无监督学习在客户分群市场分析、图像与信号处理、推荐系统、异常检测、自然语言处理、生成与合成等方面都有广泛应用。
强化学习
强化学习(Reinforcement Learning)是机器学习的一个分支,其核心在于让智能体(Agent)通过与环境的交互学习最优策略,以最大化长期累积奖励。与监督学习(依赖标注数据)和无监督学习(探索数据分布)不同,强化学习通过“试错”机制在动态环境中自主决策,广泛应用于需要序列决策的复杂任务。
强化学习在游戏与竞技、机器人控制、自动驾驶、资源管理与优化、推荐系统(动态个性化推荐)以及医疗与健康都有广泛应用。
机器学习的基本流程
问题定义
通过需求分析,明确输入、输出和约束条件,将业务问题抽象为机器学习问题。主要包括:
1、任务类型:明确机器学习任务,如回归、分类、聚类、强化学习等。
2、业务目标:将业务需求转化为可量化的机器学习目标,如预测用户点击率。
3、评估指标:选择合适的评估标准,如准备率、RMSE、AUC等。
数据准备
1、数据收集与清洗:消除噪声,保证数据质量。
2、特征工程:通过提取关键信息,提升模型对数据的表达能力。
3、数据增强:扩充数据多样性,防止过拟合。
模型选择
1、算法匹配问题:不同算法解决不同任务。
- 回归任务:线性回归、梯度提升树(GBDT)、LSTM(时间序列)。
- 分类任务:逻辑回归、随机森林、SVM、神经网络。
- 聚类任务:K-Means、DBSCAN、层次聚类。
2、超参数调优:平衡模型复杂度与泛化能力。
- 网格搜索(Grid Search):遍历预设参数组合,选择最优解。
- 随机搜索(Random Search):高效探索超参数空间。
- 贝叶斯优化:基于概率模型指导参数搜索方向(如Hyperopt库)。
模型训练
模型训练方法多种多样,主要根据数据使用方式、优化策略和学习模式进行分类。
1、基于梯度下降的优化方法:通过调整模型参数以最小化损失函数,梯度下降又包括:
- 批量梯度下降(Batch Gradient Descent):每次迭代使用全部训练数据计算梯度,更新参数。
- 随机梯度下降(Stochastic Gradient Descent, SGD):每次迭代随机选择一个样本计算梯度,更新参数。
- 小批量梯度下降(Mini-batch SGD):折中方案,每次使用一小批样本计算梯度。
2、正则化与防过拟合方法:通过约束模型复杂度提升泛化能力
- 早停法(Early Stopping):在验证集性能不再提升时提前终止训练。
- Dropout:训练中随机丢弃部分神经元,增强鲁棒性。
3、数据驱动的增强方法:通过数据变换提升模型鲁棒性
- 数据增强(Data Augmentation):对输入数据进行变换(如旋转、裁剪)以扩展数据集。
- 对抗训练(Adversarial Training):生成对抗样本并加入训练,提升模型抗干扰能力。
4、迁移与自适应方法
- 迁移学习(Transfer Learning):复用预训练模型参数,微调(Fine-tuning)新任务。
- 领域自适应(Domain Adaptation):调整源域和目标域分布差异。
5、集成方法:组合多个模型提升整体性能
- Bagging(Bootstrap Aggregating):通过自助采样训练多个模型并投票。
- Boosting:序列化训练模型,后续模型修正前序错误。
6、强化学习方法:通过环境交互优化策略
- Q-learning:基于价值迭代更新动作策略。
- 策略梯度(Policy Gradient):直接优化策略函数参数。
7、半监督与自监督方法:利用无标注数据辅助训练:
- 自训练(Self-training):用模型预测结果作为伪标签迭代训练。
- 对比学习(Contrastive Learning):通过相似性对比学习数据表示。
8、分布式训练方法:加速大规模数据训练:
- 数据并行(Data Parallelism):拆分数据到多个设备并行计算梯度。
- 模型并行(Model Parallelism):拆分模型参数到不同设备。
模型评估
根据任务类型选择指标,量化模型性能。
1、分类任务
- 准确率(Accuracy):正确预测样本数占总样本数的比例。
- 精确率(Precision)与召回率(Recall):精确率是指预测为正的样本中实际为正的比例;召回率是指实际为正的样本中被正确预测的比例。
- F1-Score:精确率和召回率的调和平均,综合衡量模型性能。
- ROC 曲线与 AUC:ROC 曲线展示不同阈值下的 TPR(真正例率)与 FPR(假正例率),AUC 值越接近 1 模型越好。
2、回归任务
- 均方误差(MSE):预测值与真实值差的平方均值,对异常值敏感。
- 平均绝对误差(MAE):预测值与真实值差的绝对值均值,更鲁棒。
- R²(决定系数):模型解释数据方差的比例,越接近 1 越好。
3、聚类任务
- 轮廓系数(Silhouette Coefficient):衡量样本聚类紧密度和分离度,范围 [-1, 1],越大越好。
模型部署与应用
该过程更多是对模型的工程化。是指将模型集成到实际系统(如推荐系统),并通过监控系统,持续检测数据漂移(如特征分布变化)、模型性能衰减等,再根据数据和业务的变化对模型进行迭代。
机器学习的应用
机器学习作为人工智能的核心技术,已广泛应用于多个领域,深刻改变了传统行业的运作模式,主要应用场景包括但不限于:
1、计算机视觉(CV)
- 医疗影像分析:辅助医生检测肿瘤(如乳腺癌筛查)、分析X光片和MRI图像。
- 自动驾驶:实时识别行人、车辆和交通标志,支撑特斯拉、Waymo等系统。
- 安防监控:人脸识别用于公共安全(如机场安检)、异常行为检测(如商场防盗)。
2、自然语言处理(NLP)
- 智能客服:ChatGPT、客服机器人(如银行服务)处理用户查询。
- 情感分析:舆情监控(如品牌声誉管理)、社交媒体情绪追踪。
- 机器翻译:谷歌翻译、DeepL支持多语言实时转换。
3、推荐系统
- 电商平台:亚马逊、淘宝的个性化商品推荐,提升用户购买率。
- 内容平台:Netflix、YouTube的影视推荐,抖音的短视频推送。
4、金融
- 欺诈检测:信用卡异常交易识别(如PayPal的风险模型)。
- 量化交易:高频交易算法预测股价波动(如对冲基金RenTec)。
- 信用评分:蚂蚁金服的芝麻信用评估用户还款能力。
5、工业与物联网(IoT)
- 预测性维护:工厂设备故障预警(如西门子工业AI)。
- 供应链优化:需求预测(如沃尔玛库存管理)、物流路径规划。
6、医疗健康
- 药物研发:DeepMind的AlphaFold预测蛋白质结构,加速新药开发。
- 个性化治疗:基于患者数据的定制化诊疗方案(如IBM Watson Oncology)。
7、教育
- 自适应学习:Knewton平台根据学生表现调整课程难度。
- 智能阅卷:自动批改作文(如ETS的e-rater系统)。
机器学习、神经网络、深度学习、Transformer以及大语言模型之间的关系
ChartGPT出现后,大语言模型、Transformer等名词频繁出现在各类文章中。那机器学习、神经网络、深度学习、Transformer以及大语言模型之间是什么关系呢?
机器学习(Machine Learning)是人工智能的一个分支,让计算机通过数据自动学习规律,而不需要显式编程,完成预测或决策任务。
神经网络(Neural Networks)是受生物神经元启发设计的数学模型,由相互连接的“神经元”组成,能通过调整权重从数据中学习,它是机器学习的一种具体实现方式。
深度学习(Deep Learning)属于神经网络的分支,强调“深度”结构,通过增加隐藏层数量(“深度”)提升模型对复杂数据(如图像、文本)的表征能力。
Transformer是深度学习中的一种新型架构,是2017年 Google 在论文《Attention Is All You Need》中提出,旨在解决 RNN 的序列处理效率低和长程依赖问题。
大语言模型(Large Language Models, LLMs)是基于 Transformer 架构的超大规模预训练模型,是Transformer架构的典型应用。