val 和测试数据来自同一数据集非常重要。 火车数据集匹配 val 和 test 不太重要,尽管那仍然是理想的。 例如,如果使用图像增强功能(对训练图像进行较小的修改以尝试扩大训练集大小),则训练集分布可能不再与 val 集分布匹配。 这是可以接受的,并且只要 val 和 test 来自同一分布,就可以充分测量网络性能。
在传统的机器学习应用程序中,习惯上将 10%到 20%的可用数据用于 val 和测试。 在深度神经网络中,通常情况是我们的数据量很大,以至于我们可以用更小的 val 和测试集来充分测量网络性能。 当数据量达到数以千万计的观测值时,将 98%,1%,1%的拆分完全合适。
在传统的机器学习应用程序中,习惯上将 10% 到 20% 的可用数据用于 val 和测试。 在深度神经网络中,通常情况是我们的数据量很大,以至于我们可以用更小的 val 和测试集来充分测量网络性能。 当数据量达到数以千万计的观测值时,将 98%,1%,1% 的拆分完全合适。
Keras 功能 API 与 scikit-learn 中可能使用的 API 之间的区别是`.predict()`方法的行为。 当使用 Keras 时,对于每个 *n* 类,`.predict()`将返回 *k*类概率的`nxk`矩阵。 对于二进制分类器,将只有一列,即类别 1 的类别概率。这使 Keras `.predict()`更像 scikit-learn 中的`.predict_proba()`。
Keras 功能 API 与 scikit-learn 中可能使用的 API 之间的区别是`.predict()`方法的行为。 当使用 Keras 时,对于`n`个样本中的每个,`.predict()`将返回`k`类概率的`nxk`矩阵。 对于二进制分类器,将只有一列,即类别 1 的类别概率。这使 Keras `.predict()`更像 scikit-learn 中的`.predict_proba()`。
存在一些针对该问题的创造性解决方案。 例如,[**通过成对分析**](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.3250&rep=rep1&type=pdf)和 [**ROC 表面下体积**](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.2427&rep=rep1&type=pdf)都是出色的论文,都可以解决这个问题。 但是,实际上,这些方法及其度量标准很少在 R 中使用,最常在 R 中实现。因此,到目前为止,让我们坚持使用多类准确性,并且远离 R。
存在一些针对该问题的创造性解决方案。 例如,[**通过成对分析近似多类 ROC**](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.3250&rep=rep1&type=pdf)和 [**ROC 表面下体积**](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.2427&rep=rep1&type=pdf)都是出色的论文,都可以解决这个问题。 但是,实际上,这些方法及其度量标准很少在 R 中使用,最常在 R 中实现。因此,到目前为止,让我们坚持使用多类准确性,并且远离 R。
深度神经网络彻底改变了计算机视觉。 实际上,我认为在最近几年中计算机视觉的进步已经使深层神经网络成为许多消费者每天使用的东西。 我们已经在第 5 章和*中使用计算机视觉分类器,使用 Keras 进行多类分类*,其中我们使用了深度网络对手写数字进行分类。 现在,我想向您展示卷积层如何工作,如何使用它们以及如何在 Keras 中构建自己的卷积神经网络以构建更好,功能更强大的深度神经网络来解决计算机视觉问题。
深度神经网络彻底改变了计算机视觉。 实际上,我认为在最近几年中计算机视觉的进步已经使深层神经网络成为许多消费者每天使用的东西。 我们已经在第 5 章“使用 Keras 进行多类分类”中使用计算机视觉分类器,其中我们使用了深度网络对手写数字进行分类。 现在,我想向您展示卷积层如何工作,如何使用它们以及如何在 Keras 中构建自己的卷积神经网络以构建更好,功能更强大的深度神经网络来解决计算机视觉问题。