简单案例
在一个酒吧里,吧台上摆着十杯几乎一样的红酒,老板说想不想玩个游戏,赢了免费喝酒,输了需要付三倍的酒钱。眼前的十杯红酒,每杯都略有不同,前五杯属于【赤霞珠】,后五杯属于【黑皮诺】,现在重新倒一杯酒,你需要正确的说出属于哪一类?
算法体系
机器学习(Machine Learning, ML)是人工智能(AI)的一个分支,旨在通过数据和算法使计算机系统能够像人类一样学习和做出决策,而无需明确编程指令。机器学习的核心是从数据中提取模式,并使用这些模式对新数据进行预测或分类。
机器学习的方法是基于数据产生的模型算法,也称学习算法。包括有:
- 有监督学习(supervised learning)
- 无监督学习(unsupervised learning)
- 半监督学习(semi-supervised learning)
- 强化学习(reinforcement learning)
有监督学习(Supervised Learning)
指对数据的若干特征与若干标签(类型)之间的关联性进行建模,只要模型被确定,就可以用用到新的未知数据上。这类学习过程可以进一步为:【分类】classification 任务和【回归】regression 任务。
- 分类任务中,标签都是离散值
- 回归任务中,标签都是连续值
监督学习是指算法在训练过程中依赖标注好的数据集。数据集中的每一个样本都有一个对应的正确输出,算法通过这些”输入-输出”对,学习如何从输入数据预测输出。
应用:分类问题(如垃圾邮件识别)、回归问题(如房价预测) 常见算法:线性回归、决策树、随机森林、支持向量机(SVM)、神经网络等
无监督学习(Unsupervised Learning)
无监督学习是机器学习中重要的学习范式之一,其核心特点是不依赖于人工标注的标签数据。与监督学习不同,无监督学习让算法自主探索数据内在的结构和模式,是一种典型的”数据驱动”学习方式。
主要任务类型
-
聚类(Clustering)
- 目标:将相似的数据点自动分组
- 典型算法:K-means聚类、层次聚类、DBSCAN
- 应用场景:客户细分、文档主题分类、异常检测
-
降维(Dimensionality Reduction)
- 目标:减少特征数量同时保留重要信息
- 典型方法:主成分分析(PCA)、t-SNE、自编码器(Autoencoder)
- 应用场景:高维数据可视化、特征工程预处理、图像压缩
半监督学习
半监督学习方法介于有监督学习和无监督学习之间,通过可以在数据不完整的时候使用。
强化学习(Reinforcement Learning)
强化学习是一种基于试错机制的机器学习方法,与监督学习有着本质区别。监督学习依赖于预先标记的训练数据,而强化学习则是通过与环境的动态交互来学习最优策略。
强化学习的核心机制可以概括为”状态-动作-奖励”的循环:
- 智能体观察当前环境状态(state)
- 根据当前策略选择并执行一个动作(action)
- 环境给出相应的即时奖励(reward)和新的状态
- 智能体根据奖励信号更新策略
典型应用场景:
- 机器人控制:如机械臂抓取物体
- 自动驾驶:车辆通过模拟环境学习如何安全高效地行驶
- 游戏AI:AlphaGo通过自我对弈不断优化下棋策略
- 资源调度:数据中心通过强化学习优化服务器资源分配
常见算法类型:
- 基于价值的算法(如Q-learning)
- 基于策略的算法(如策略梯度)
- 演员-评论家算法
输入输出空间与特征空间
在场景中,每一杯酒作为一个样本,十杯就组成一个样本集。酒精浓度、颜色深度等信息称做【特征】。这十杯酒分布式在一个【多维特征空间】中。
进入当前程序的”学习系统”的所有样本称做【输入】,并组成【输入空间】。 在学习过程中,所产生的随机变量的取值,称做【输出】,并组成【输出空间】。
在有监督的学习过程中,当输出变量均为连续变量时,预测问题成为回归问题,当输出量为有限个离散变量时,预测问题称为分类问题。
过拟合和欠拟合
当假设空间中含有不同复杂的模型时,就要面临模型选择的问题。我们希望获得在新样本上能表现得很好的学习器。
拟合度可以简单理解为模型对与数据集背后客观规律的掌握程度,模型对于给定数据集如果拟合度较差,则对规律的捕捉不完全,用作分类和预测时准确率不高。
过拟合(overfitting):当模型把训练样本学的太好,很可能已经训练样本本身的一些特点当作所有潜在样本的普遍性质,这时候所选的模型的复杂度往往会比真模型要高,导致泛化性能下降。
欠拟合(under fitting):指在学习能力低下,导致对训练样本的一般性质尚未学好。
过拟合图表说明
- 左图(一阶多项式,欠拟合):训练数据集的准确性和交叉验证数据集的准确性靠得很近,总体水平比较低,收敛在0.88左右
- 中图(三阶多项式,较好拟合):训练数据集的准确性和交叉验证数据集的准确性靠得很近,总体水平较高
- 右图(十阶多项式,过拟合):训练数据集的准确性很高(0.95),但交叉验证数据集的准确性较低(0.91),两者之间间隙较大
机器学习的工作流程
-
数据收集与预处理:数据是机器学习的基础,通常从各种来源收集数据,然后进行清洗、归一化、处理缺失值等预处理操作
-
特征工程:特征工程是指从原始数据中提取有用的特征,包括特征选择、特征缩放、编码等
-
模型选择:根据问题的类型(分类、回归、聚类等)选择适合的算法模型
-
模型训练:将预处理后的数据输入到选定的机器学习算法中,使用训练数据让模型学习
-
模型评估:使用测试集评估模型的性能,常用评估指标包括准确率、精确率、召回率、F1分数、均方误差等
-
模型调优:通过调整模型的参数或引入更多数据等手段,进一步优化模型的表现
-
模型部署与应用:一旦模型通过了评估,就可以被部署在实际应用中
常见的机器学习算法
线性回归(Linear Regression)
线性回归是解决回归问题的基础算法,通过寻找输入变量(X)和输出变量(Y)之间的线性关系建立模型。其数学表达式为 Y = β₀ + β₁X + ε。
典型应用:房价预测、销售额预测
逻辑回归(Logistic Regression)
逻辑回归是解决二分类问题的经典算法,虽然名称中有”回归”,实际上是分类算法。它通过Sigmoid函数将线性回归的输出映射到(0,1)区间。
典型应用:垃圾邮件识别、疾病诊断
决策树(Decision Tree)
决策树是基于树形结构的算法,通过递归地划分数据空间来构建模型。每个内部节点表示一个特征测试,每个叶节点代表预测结果。
典型应用:贷款审批决策、客户分类
随机森林(Random Forest)
随机森林是决策树的集成方法,通过构建多个决策树并综合其预测结果来提高性能。
优势:更好的泛化能力、能有效降低过拟合风险、可评估特征重要性
支持向量机(SVM)
支持向量机是一种强大的分类和回归算法,其核心是找到最优的决策边界(超平面),最大化不同类别之间的间隔。
优势:理论完备、全局最优,适合小样本、高维度的场景
K均值聚类(K-Means Clustering)
K均值聚类是一种无监督学习算法,目标是将n个数据点划分为k个簇,使得同一簇内的点尽可能接近,不同簇的点尽可能远离。
应用:客户细分、图像压缩
神经网络(Neural Networks)
神经网络模仿生物神经元结构,由输入层、隐藏层和输出层组成,通过激活函数实现非线性变换。
应用领域:计算机视觉、自然语言处理、语音识别
机器学习面临的挑战
- 数据质量:模型的性能很大程度上依赖于数据的质量和数量
- 模型过拟合:模型在训练数据上表现优异,但在新数据上效果不佳
- 可解释性:复杂的机器学习模型往往难以解释其内部的决策逻辑
错误速查
| 症状 | 根因定位 | 修复 |
|---|---|---|
| 把”逻辑回归”当成回归问题 | 名称误导:输出是类别概率,本质是分类 | 明确”回归/分类”按标签类型区分 |
| 训练集分数很高,验证集分数明显低 | 过拟合 | 降复杂度、正则化、更多数据、交叉验证 |
| 训练集和验证集都低且接近 | 欠拟合 | 增强特征、换更强模型、放宽假设空间 |
| 强化学习训练不稳定 | 奖励函数设计不当 | 重构奖励、加入约束/惩罚项、调整探索率 |