首先来说对于神经网络这几章看的很懵,虽然作者已经去掉了数学公式相关内容,讲得已经很想让读者容易理解了,奈何读完还是一知半解,下面就以我目前的理解简单记录一下吧,往后了解的多了再回头看一看。
一、张量运算
作者把张量运算比作神经网络的"齿轮",那么什么是张量呢?
神经网络的数据以张量的形式表示,即存储在多维 NumPy 数组中数据。
对于文本、时间序列、图片、视频数据,分别按不同阶张量表示。
二、双向传播算法
将训练集数据输入到输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;
由于每一次训练的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
这其中涉及到的一些知识点有 损失值、优化器、梯度下降。
- 损失函数(目标函数)------在训练过程中需要将其最小化。它衡量的是当前任务是否成功。
- 优化器------决定如何基于损失函数对神经网络进行更新。它执行的是随机梯度下降(SGD)的某个变体。
- 指标 ------衡量成功的标准,在训练和验证过程中需要对其进行监控,如分类精度。与损
失不同,训练不会直接对这些指标进行优化。因此,指标不需要是可微的。
三、术语表
- 样本 (sample)或输入(input):进入模型的数据点。
- 预测 (prediction)或输出(output):模型的输出结果。
- 目标(target):真实值。对于外部数据源,理想情况下模型应该能够预测出目标。
- 预测误差 (prediction error)或损失值(loss value):模型预测与目标之间的差距。
- 类别(class):分类问题中可供选择的一组标签。举例来说,对猫狗图片进行分类时,"猫"和"狗"就是两个类别。
- 标签(label):分类问题中类别标注的具体实例。如果 1234 号图片被标注为包含类别"狗",那么"狗"就是 1234 号图片的标签。
- 真实值 (ground-truth)或标注(annotation):数据集的所有目标,通常由人工收集。
- 二分类(binary classification):一项分类任务,每个输入样本都应被划分到两个互斥的类别中。
- 多分类(multiclass classification):一项分类任务,每个输入样本都应被划分到两个以上的类别中,比如手写数字分类。
- 多标签分类(multilabel classification):一项分类任务,每个输入样本都可以被分配多个标签。举个例子,一张图片中可能既有猫又有狗,那么应该同时被标注"猫"标签和"狗"标签。每张图片的标签个数通常是可变的。
- 标量回归(scalar regression):目标是一个连续标量值的任务。预测房价就是一个很好的例子,不同的目标价格形成一个连续空间。
- 向量回归(vector regression):目标是一组连续值(比如一个连续向量)的任务。如果对多个值(比如图像边界框的坐标)进行回归,那就是向量回归。
- 小批量 (mini-batch)或批量(batch):模型同时处理的一小部分样本(样本数通常在 8 和 128 之间)。样本数通常取 2 的幂,这样便于在 GPU 上分配内存。训练时,小批量用于计算一次梯度下降,以更新模型权重。