1. 机器学习基础
1.1 机器学习的定义与重要性
- 定义:深度学习是机器学习的一种特定形式。为了深入理解深度学习,必须牢固掌握机器学习的基本原理。机器学习算法是一种能够从数据中学习的算法,通过经验E在任务T上提高性能度量P(Mitchell, 1997)。
- 重要性:对于解决那些对人类来说过于复杂、难以通过固定程序编写和设计的任务,机器学习提供了一种强大的工具。它广泛应用于各个领域,如图像识别、语音识别、自然语言处理等。
1.2 机器学习的任务类型
- 分类任务:计算机程序需要指定输入属于k个类别中的哪一个。例如,图像识别中,输入是图像,输出是识别出的物体类别。
- 回归任务:计算机程序需要预测给定输入的数值。例如,预测保险索赔金额或未来证券价格。
- 转录任务:观察某种数据的相对非结构化表示,并将其转录成离散文本形式。例如,光学字符识别和语音识别。
- 机器翻译任务:将一种语言的符号序列转换为另一种语言的符号序列。例如,英语到法语的翻译。
- 结构化输出任务:输出是一个向量(或其他包含多个值的数据结构),元素之间具有重要关系。例如,图像分割和图像标注。
- 异常检测任务:在一组事件或对象中标记出那些不寻常或典型的。例如,信用卡欺诈检测。
- 合成与采样任务:自动生成纹理、声音等。例如,语音合成。
- 缺失值填充:预测输入中缺失的值。
- 去噪:从损坏的输入中预测干净的示例。
- 密度估计:学习输入数据的概率分布。
1.3 性能度量
- 准确率:对于分类、分类与缺失输入、转录等任务,常用准确率来衡量模型性能。准确率是正确分类的示例比例。
- 对数概率:对于密度估计等任务,常用平均对数概率来衡量模型性能。
- 测试集:为了评估模型在未见过的数据上的性能,通常使用与训练集分开的测试集。
2. 监督学习与无监督学习
2.1 监督学习
- 定义:监督学习算法观察一组包含特征和标签的示例,学习从特征预测标签。例如,使用标注了物种的鸢尾花数据集来训练分类算法。
- 目标:估计条件概率分布p(y|x),即给定输入x时输出y的概率。
2.2 无监督学习
- 定义:无监督学习算法只观察特征,不观察监督信号(标签)。目标通常是发现数据中的某些结构。
- 任务:包括密度估计、聚类、降维等。例如,主成分分析(PCA)是一种无监督学习算法,用于数据降维。
2.3 半监督学习与多实例学习
- 半监督学习:部分示例有监督目标,部分没有。
- 多实例学习:整个示例集合被标注为包含或不包含某个类别的示例,但集合中的单个成员未被标注。
3. 学习算法的基本组件
3.1 数据集
- 设计矩阵:一种常见的数据集描述方式,其中每行是一个示例,每列是一个特征。例如,鸢尾花数据集可以用一个150行4列的设计矩阵表示。
- 异构数据:当示例不能用相同大小的向量表示时,数据集可以描述为一组元素。
3.2 成本函数
- 定义:成本函数衡量模型在训练集上的性能。例如,线性回归中常用的均方误差(MSE)成本函数。
- 优化:学习算法的目标是找到使成本函数最小化的参数。
3.3 模型
- 定义:模型是算法学习的假设空间中的函数。例如,线性回归模型是输入x的线性函数。
- 容量:模型的容量是指其拟合各种函数的能力。容量过低可能导致欠拟合,过高可能导致过拟合。
3.4 优化算法
- 定义:优化算法用于找到使成本函数最小化的模型参数。例如,梯度下降算法。
- 随机梯度下降(SGD):一种常用于大规模数据集的优化算法,通过在每个步骤中估计梯度来更新参数。
4. 线性回归示例
4.1 定义与输出
- 定义:线性回归是一种解决回归问题的算法,输出是输入的线性函数。
- 输出:ˆy = wx,其中w是参数向量,x是输入向量。
4.2 性能度量与成本函数
- 均方误差(MSE):常用作线性回归的性能度量,定义为预测值与真实值之差的平方的平均值。
- 成本函数:在训练过程中,算法的目标是最小化MSE成本函数。
4.3 正规方程
- 定义:正规方程提供了一种直接求解线性回归参数的方法,而不需要迭代优化。
- 解:w = (X^TX)^(-1)X^Ty,其中X是设计矩阵,y是目标向量。
5. 欠拟合与过拟合
5.1 定义
- 欠拟合:模型在训练集上的误差较大,无法很好地拟合数据。
- 过拟合:模型在训练集上表现很好,但在未见过的数据上表现很差。
5.2 容量与泛化能力
- 容量:模型的容量决定了其拟合复杂函数的能力。容量过低导致欠拟合,过高导致过拟合。
- 泛化能力:模型在未见过的数据上的性能称为泛化能力。
5.3 控制容量
- 方法:通过选择假设空间(即模型类型)和调整模型参数的数量来控制容量。例如,增加多项式回归的度数可以增加容量。
- 正则化:一种通过向成本函数添加惩罚项来控制容量的方法。例如,权重衰减(L2正则化)。
6. 交叉验证与模型选择
6.1 交叉验证
- 定义:一种评估模型性能的方法,通过将数据集分成多个子集,轮流使用其中一部分作为测试集,其余部分作为训练集。
- k折交叉验证:将数据集分成k个子集,进行k次训练和测试,每次使用不同的子集作为测试集。
6.2 验证集
- 定义:一部分从训练集中分离出来的数据,用于调整模型参数(如正则化强度)。
- 用途:帮助选择模型参数,避免直接使用测试集导致乐观估计。
7. 估计器、偏差与方差
7.1 点估计
- 定义:提供单个“最佳”预测的估计方法。例如,线性回归中的权重估计。
- 偏差:估计器的偏差是其期望值与真实值之差。无偏估计器的偏差为零。
7.2 方差
- 定义:估计器的方差衡量其输出随数据集变化而变化的程度。
- 标准误差:方差的平方根,用于估计真实期望值落在某个区间内的概率。
7.3 偏差-方差权衡
- 定义:在偏差和方差之间进行权衡以最小化均方误差(MSE)。
- U形曲线:随着模型容量的增加,偏差减小,方差增大,导致泛化误差呈现U形曲线。
8. 最大似然估计
8.1 定义
- 最大似然估计(MLE):一种通过最大化观测数据似然来估计参数的方法。
- 对数似然:为了方便计算,通常使用对数似然函数。
8.2 性质
- 一致性:在适当条件下,最大似然估计量随着样本量的增加收敛到真实参数值。
- 效率:在固定样本量下,最大似然估计量通常比其他估计量具有更低的均方误差。
8.3 线性回归与最大似然
- 线性回归:可以解释为最大似然估计的一个特例,其中假设输出服从高斯分布。
- 条件对数似然:在监督学习中,通常最大化条件对数似然。
9. 贝叶斯统计
9.1 定义
- 贝叶斯统计:一种使用概率来反映知识状态的统计方法。与频率派统计不同,贝叶斯统计将参数视为随机变量。
- 先验分布:在观察数据之前对参数的信念分布。
9.2 后验分布
- 定义:通过贝叶斯定理结合先验分布和似然函数得到的后验分布。
- 预测:使用后验分布进行预测,而不是单一的点估计。
9.3 最大后验估计(MAP)
- 定义:一种结合先验信息和数据似然来找到单个点估计的方法。
- 示例:线性回归中的权重衰减可以解释为最大后验估计。
10. 监督学习算法
10.1 概率监督学习
- 定义:大多数监督学习算法基于估计条件概率分布p(y|x)。
- 示例:线性回归和逻辑回归都是概率监督学习算法。
10.2 支持向量机(SVM)
- 定义:一种用于分类和回归的监督学习模型。
- 核技巧:通过将输入映射到高维空间来允许非线性决策边界。
10.3 k近邻算法
- 定义:一种简单的非参数监督学习算法,通过查找训练集中最近的k个邻居来进行分类或回归。
- 优点:能够处理高容量,但在小训练集上可能泛化能力差。
10.4 决策树
- 定义:一种将输入空间分成多个区域的监督学习算法,每个区域有一个单独的参数。
- 优点:易于理解和解释,但可能难以处理非线性决策边界。
11. 无监督学习算法
11.1 主成分分析(PCA)
- 定义:一种用于数据降维和特征提取的无监督学习算法。
- 目标:找到一个低维表示,尽可能保留原始数据的信息。
11.2 k均值聚类
- 定义:一种将数据集分成k个簇的无监督学习算法。
- 目标:最小化簇内点到簇中心的距离之和。
12. 深度学习与机器学习的关系
12.1 深度学习的动机
- 传统机器学习的局限性:在高维空间中学习复杂函数时,传统机器学习算法面临泛化能力差和计算成本高的挑战。
- 深度学习的优势:通过引入深度分布式表示,深度学习能够克服这些挑战,并在许多AI任务中取得显著效果。
12.2 深度学习的基本原理
- 表示学习:深度学习算法能够自动学习数据的层次化表示,这些表示对于解决复杂任务非常有用。
- 深层网络:通过堆叠多个非线性层,深度学习算法能够构建非常复杂的函数,从而捕捉数据中的复杂模式。
12.3 深度学习的应用
- 图像识别:深度学习在图像识别领域取得了巨大成功,如卷积神经网络(CNN)在ImageNet竞赛中的表现。
- 语音识别:深度学习在语音识别中的应用也取得了显著进展,如循环神经网络(RNN)和长短时记忆网络(LSTM)的应用。
- 自然语言处理:深度学习在自然语言处理任务中表现出色,如机器翻译、文本生成等。
总结
本文详细介绍了机器学习的基础知识,包括机器学习的定义、任务类型、性能度量、监督学习与无监督学习、学习算法的基本组件等。通过线性回归示例,阐述了学习算法如何最小化成本函数以找到最佳参数。同时,讨论了欠拟合与过拟合的问题,以及如何通过控制模型容量和正则化来避免这些问题。此外,还介绍了交叉验证、模型选择、估计器、偏差与方差等概念,为读者提供了全面的机器学习知识框架。
在监督学习算法部分,本文介绍了概率监督学习、支持向量机、k近邻算法和决策树等常见算法。在无监督学习算法部分,介绍了主成分分析和k均值聚类等算法。这些算法为读者提供了解决不同类型问题的工具。
本文探讨了深度学习与机器学习的关系,阐述了深度学习的动机、基本原理和应用。通过与传统机器学习算法的比较,展示了深度学习在处理复杂任务时的优势。深度学习通过自动学习数据的层次化表示和构建复杂函数,能够在许多AI任务中取得显著效果。