# 概念

完整的术语表

  • 每个神经元里存储着若干权重(weight)、偏差(bias)和一个激活函数(activation)

  • 输入乘上权重加上偏差,经过激活函数得到输出

  • 激活函数的作用是用于添加一些非线性变化

  • 神经网络通常包括一个输入层、若干隐藏层和一个输出层

  • 输入层通常不用于计算神经网络的层数

# 神经网络 (neural network)

一种模型,灵感来源于脑部结构,由多个层构成(至少有一个是隐藏层),每个层都包含简单相连的单元或神经元(具有非线性关系)。

# 神经元 (neuron)

神经网络中的节点,通常会接收多个输入值并生成一个输出值。神经元通过将激活函数(非线性转换)应用于输入值的加权和来计算输出值。

输出 = 激活函数(输入 * 各自的权重 + 偏置(偏差))

# 节点 (node)

多含义术语,可以理解为下列两种含义之一:

  • 隐藏层中的神经元。

  • TensorFlow 图中的操作。

# 层 (layer)

神经网络中的一组神经元,负责处理一组输入特征,或一组神经元的输出。

此外还指 TensorFlow 中的抽象层。层是 Python 函数,以张量和配置选项作为输入,然后生成其他张量作为输出。当必要的张量组合起来后,用户便可以通过模型函数将结果转换为 Estimator。

# 输入层 (input layer)

神经网络中的第一层(接收输入数据的层)。

# 隐藏层 (hidden layer)

神经网络中的合成层,介于输入层(即特征)和输出层(即预测)之间。神经网络包含一个或多个隐藏层。

# 输出层 (output layer)

神经网络的“最后”一层,也是包含答案的层。

# 权重 (weight)

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

# 激活函数 (activation function)

一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

# 线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

例子:身高体重预测、房价预测

# 数据集 (data set)

一组样本的集合。

# 特征 (feature)

在进行预测时使用的输入变量。

# 标签 (label)

在监督式学习中,标签指样本的“答案”或“结果”部分。有标签数据集中的每个样本都包含一个或多个特征以及一个标签。例如,在房屋数据集中,特征可能包括卧室数、卫生间数以及房龄,而标签则可能是房价。在垃圾邮件检测数据集中,特征可能包括主题行、发件人以及电子邮件本身,而标签则可能是“垃圾邮件”或“非垃圾邮件”。

# 样本 (example)

数据集的一行。一个样本包含一个或多个特征,此外还可能包含一个标签。另请参阅有标签样本和无标签样本。

# 有标签样本 (labeled example)

包含特征和标签的样本。在监督式训练中,模型从有标签样本中学习规律。

# 无标签样本 (unlabeled example)

包含特征但没有标签的样本。无标签样本是用于进行推断的输入内容。在半监督式和非监督式学习中,在训练期间会使用无标签样本。

# 前向传播

将训练数据的特征送入网络,得到标签

# 反向传播

得到标签后,计算损失和优化

# 梯度

偏导数相对于所有自变量的向量。在机器学习中,梯度是模型函数偏导数的向量。梯度指向最高速上升的方向。

# 梯度下降法 (gradient descent)

一种通过计算并且减小梯度将损失降至最低的技术,它以训练数据为条件,来计算损失相对于模型参数的梯度。通俗来说,梯度下降法以迭代方式调整参数,逐渐找到权重和偏差的最佳组合,从而将损失降至最低。

# 优化器 (optimizer)

梯度下降法的一种具体实现。TensorFlow 的优化器基类是 tf.train.Optimizer。

# 训练集与验证集

顾名思义就是一部分数据用于训练,一部分数据用于验证训练结果。

训练集是用于训练神经网络的,神经网络的权重会因为训练集的数据而变化。而验证集仅仅作验证作用。

# 神经网络如何训练

  • 给大量输入和输出,算出神经网络里面所有神经元的权重、偏差,然后给定新的输入,以算出新的输出

  • 在机器学习里输入和输出被称为特征标签,大量输入输出被称为训练集

步骤

1)初始化:随机生成一些权重和偏差(给神经网络里面的所有神经元蒙一个权重和偏差)

  1. 计算损失:给定特征,计算出标签,得到与真实的标签相差多远

  2. 优化:微调权重和偏差,使损失变小(不断重复 23 步骤,使得损失最小)

训练完成的实质就是神经网络里面的权重和偏差被计算出来了

# 如何训练损失

  • 使用损失函数,如均方误差、对数损失、交叉熵等

# 如何优化

  • 使用优化器,如随机梯度下降(SGD)、Adam 等

# 欠拟合和过拟合

欠拟合是指模型不能在训练集上获得足够低的误差。而过拟合是指训练误差和测试误差之间的差距太大。