考试知识整理
引言
• 机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它是被用作实现人工智能解决方案的一种手段。
• 表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。
• 深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。
• 最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。
• 整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。
2 预备知识
2.1. 数据操作
• 深度学习存储和操作数据的主要接口是张量(n维数组)。它提供了各种功能,包括基本数学运算、广播、索引、切片、内存节省和转换其他Python对象。
2.2. 数据预处理
pandas软件包是Python中常用的数据分析工具中,pandas可以与张量兼容。
用pandas处理缺失的数据时,我们可根据情况选择用插值法和删除法。
2.3. 线性代数
2.4. 微积分
• 微分和积分是微积分的两个分支,前者可以应用于深度学习中的优化问题。
• 导数可以被解释为函数相对于其变量的瞬时变化率,它也是函数曲线的切线的斜率。
• 梯度是一个向量,其分量是多变量函数相对于其所有变量的偏导数。
• 链式法则可以用来微分复合函数。
2.5. 自动微分
深度学习框架可以自动计算导数:我们首先将梯度附加到想要对其计算偏导数的变量上,然后记录目标值的计算,执行它的反向传播函数,并访问得到的梯度。
2.6. 概率
• 我们可以从概率分布中采样。
• 我们可以使用联合分布、条件分布、Bayes定理、边缘化和独立性假设来分析多个随机变量。
• 期望和方差为概率分布的关键特征的概括提供了实用的度量形式。
2.7. 查阅文档
官方文档提供了本书之外的大量描述和示例。
可以通过调用dir和help函数或在Jupyter记事本中使用?和??查看API的用法文档
3 线性神经网络
3.1. 线性回归
• 机器学习模型中的关键要素是训练数据、损失函数、优化算法,还有模型本身。
• 矢量化使数学表达上更简洁,同时运行的更快。
• 最小化目标函数和执行极大似然估计等价。
• 线性回归模型也是一个简单的神经网络。
3.2. 线性回归的从零开始实现
• 我们学习了深度网络是如何实现和优化的。在这一过程中只使用张量和自动微分,不需要定义层或复杂的优化器。
• 这一节只触及到了表面知识。在下面的部分中,我们将基于刚刚介绍的概念描述其他模型,并学习如何更简洁地实现其他模型。
3.3. 线性回归的简洁实现
我们可以使用PyTorch的高级API更简洁地实现模型。
在PyTorch中,data模块提供了数据处理工具,nn模块定义了大量的神经网络层和常见损失函数。
我们可以通过_结尾的方法将参数替换,从而初始化参数。
3.4. softmax回归
• softmax运算获取一个向量并将其映射为概率。
• softmax回归适用于分类问题,它使用了softmax运算中输出类别的概率分布。
• 交叉熵是一个衡量两个概率分布之间差异的很好的度量,它测量给定模型编码数据所需的比特数。
3.5. 图像分类数据集
3.6. softmax回归的从零开始实现
• 借助softmax回归,我们可以训练多分类的模型。
• 训练softmax回归循环模型与训练线性回归模型非常相似:先读取数据&#