《python深度学习》笔记整理

电影二分类问题
  • 通常需要对原始数据进行大量预处理,以便将其转换为张量输入到神经网络中。单词序 列可以编码为二进制向量,但也有其他编码方式。
  • 带有 relu 激活的 Dense 层堆叠,可以解决很多种问题(包括情感分类),你可能会经 常用到这种模型。
  • 对于二分类问题(两个输出类别),网络的最后一层应该是只有一个单元并使用 sigmoid 激活的 Dense 层,网络输出应该是 0~1 范围内的标量,表示概率值。
  • 对于二分类问题的 sigmoid 标量输出,你应该使用 binary_crossentropy 损失函数。
  • 无论你的问题是什么,rmsprop 优化器通常都是足够好的选择。这一点你无须担心。
  • 随着神经网络在训练数据上的表现越来越好,模型最终会过拟合,并在前所未见的数据 上得到越来越差的结果。一定要一直监控模型在训练集之外的数据上的性能。
新闻多分类问题
  • 如果要对 N 个类别的数据点进行分类,网络的最后一层应该是大小为 N 的 Dense 层。
  • 对于单标签、多分类问题,网络的最后一层应该使用 softmax 激活,这样可以输出在 N 个输出类别上的概率分布。
  • 这种问题的损失函数几乎总是应该使用分类交叉熵。它将网络输出的概率分布与目标的 真实分布之间的距离最小化。
  • 处理多分类问题的标签有两种方法。
  1. 通过分类编码(也叫one-hot 编码)对标签进行编码,然后使用categorical_ crossentropy 作为损失函数。
  2. 将标签编码为整数,然后使用 sparse_categorical_crossentropy 损失函数。
  • 如果你需要将数据划分到许多类别中,应该避免使用太小的中间层,以免在网络中造成 信息瓶颈。
波士顿房价的回归问题
  • 回归问题使用的损失函数与分类问题不同。回归常用的损失函数是均方误差(MSE)。
  • 同样,回归问题使用的评估指标也与分类问题不同。显而易见,精度的概念不适用于回 归问题。常见的回归指标是平均绝对误差(MAE)。
  • 如果输入数据的特征具有不同的取值范围,应该先进行预处理,对每个特征单独进行 缩放。
  • 如果可用的数据很少,使用 K 折验证可以可靠地评估模型。
  • 如果可用的训练数据很少,最好使用隐藏层较少(通常只有一到两个)的小型网络,以 避免严重的过拟合。

总结

  1. 在将原始数据输入神经网络之前,通常需要对其进行预处理。
  2. 如果数据特征具有不同的取值范围,那么需要进行预处理,将每个特征单独缩放。
  3. 随着训练的进行,神经网络最终会过拟合,并在前所未见的数据上得到更差的结果
  4. 如果训练数据不是很多,应该使用只有一两个隐藏层的小型网络,以避免严重的过拟合。
  5. 如果数据被分为多个类别,那么中间层过小可能会导致信息瓶颈。
  6. 回归问题使用的损失函数和评估指标都与分类问题不同。
  7. 如果要处理的数据很少,K 折验证有助于可靠地评估模型
    《python深度学习》笔记整理_第1张图片

你可能感兴趣的:(神经网络)