机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
机器学习是人工智能的一个分支。人工智能的研究历史有着一条从以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的自然、清晰的脉络。显然,机器学习是实现AI的一个途径之一,即以机器学习为手段,解决人工智能中的部分问题。机器学习在近30多年已发展为一门多领域科际整合,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。
学习类型 说明 普遍的问题 常用算法 举例 监督学习 输入数据带有标签。监督学习建立一个学习过程,将预测结果与 “训练数据”(即输入数据)的实际结果作比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。 分类和回归问题 决策树、贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络等 用邮件内容预测是否为垃圾邮件(分类);预测房价(回归) 非监督学习 输入数据没标签,而是通过算法来推断数据的内在联系。 聚类和关联规则学习等 独立成分分析、K-Means 和 Apriori 算法等 客户细分(聚类);购物篮分析(关联规则学习) 强化学习 输入数据作为对模型的反馈,强调如何基于环境而行动,以取得最大化的预期利益。与监督式学习之间的不同之处在于,它并不是特别需要出现正确的输入 / 输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。 游戏AI、机器人控制、资源管理 Q-learning、Deep Q Network、Policy Gradient等 训练一个游戏AI(如AlphaGo);无人驾驶汽车的决策系统
有一个比喻十分形象,训练集就像高三学生的练习册,验证集就像高考模拟卷,测试集就是最后线、交叉验证
周志华老师的《机器学习》中,模型评估有三种方式,留出法、交叉验证(分为 k 折交叉验证和留一法)、自助法。
k 折交叉验证把样本数据随机的分成k份,每次随机的选择 k-1 份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择 k-1 份来训练数据。若干轮(小于 k)之后,选择损失函数评估最优的模型和参数。k 一般取 10,数据量大的时候,k可设为的小一些;数据量小的时候,k 可设为得大一些。
过采样(Oversampling)与欠采样(Undersampling)是处理数据不平衡问题的两种常见策略。在机器学习中,我们大家常常会遇到数据不平衡的问题,即目标变量(或者类别)的某一类别样本量远大于别的类别。例如,在一份信用卡欺诈检测的数据集中,欺诈事件(正例)可能只占总样本的1%,而正常事件(负例)可能占99%。这种情况下,如果直接用这份数据训练模型,模型可能会偏向于预测大多数的类别,这就会导致类别不平衡问题。
过采样是指通过增加少数类别的样本数量使得两个类别的样本数量相等或者接近。最常见的过采样方法是随机过采样,即随机复制少数类别的样本来增加其数量。然而,这种方法可能会导致模型过拟合。另一种更普遍的过采样方法是SMOTE(Synthetic Minority Over-sampling Technique)。SMOTE通过对少数类别样本做插值来创建新的样本,而不单单是复制已有的样本。
相反,欠采样是通过减少多数类别的样本数量来解决类别不平衡问题。最常见的欠采样方法是随机欠采样(Random Undersampling),即随机删除多数类别的样本。然而,随机欠采样有几率会使信息丢失,因为它删除了一部分多数类别的样本。
过采样和欠采样都有各自的优点和缺点,选择哪种策略取决于具体的应用环境和数据集。在一些情况下,我们可能会结合过采样和欠采样来达到最好的效果。例如,我们大家可以先对多数类别进行欠采样,然后再对少数类别进行过采样。这样做可以有效的预防过采样引入的噪声影响到多数类别的样本。
损失函数(Loss Function)是在监督学习中一个非常核心的概念,它用来衡量模型预测值与实际值之间的差距。通过最小化损失函数,我们大家可以找到最优的模型参数。
常见的损失函数有均方误差(MSE,常用于回归问题)、平均绝对误差(MAE,对异常值更鲁棒)、交叉熵损失(常用于分类问题)等,针对不同的任务,选择正真适合的损失函数至关重要。
在机器学习中,优化方法是核心,它们被用来最小化损失函数,从而优化模型的性能。以下是一些常见的优化方法:
:这是最常见的优化方法,它通过计算损失函数的梯度并按照梯度的反方向更新模型参数来降低损失函数的值。这种方法有多种变体,如批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-batch Gradient Descent)。
牛顿法(Newtons Method):这种方法利用了二阶导数(也就是Hessian矩阵),使得优化过程更快。不过,这种方法也有一些缺点,比如在处理大规模数据集时会遇到计算和存储问题。
共轭梯度法(Conjugate Gradient Method):这种方法结合了梯度下降法和牛顿法的优点,能够在不需要计算Hessian矩阵的情况下,实现超线性收敛。
拟牛顿法(Quasi-Newton Methods):这类方法试图通过估计Hessian矩阵或其逆矩阵来接近牛顿法的性能,而无需真正计算Hessian矩阵。常见的拟牛顿法有BFGS和L-BFGS。
优化器(Optimizers):在深度学习中,还有一些特殊的优化器,如Adam、RMSProp、Adagrad等,它们结合了动量(momentum)和自适应学习率调整,以加速训练过程并提高模型性能。
参数是模型在训练过程中学习到的,这些参数使得模型能够对输入数据来进行预测。例如,在线性回归模型中,权重和偏差就是模型的参数。在神经网络中,权重和偏差也是模型的参数。
在训练过程中,模型会通过优化算法(如梯度下降)来调整这些参数,以便最小化模型的损失函数,来提升模型的预测能力。
方差(Bias)表示偏离中心的程度,偏差(Variance)表示结果的波动程度。
右上角表示(低偏差,高方差),低偏差导致预测结果与真实结果很近,高方差导致个体预测结果不稳定,比较不集中;