一、总结

一句话总结:

【一、:基准网络(71%)】:首先,在2000 个训练样本上训练一个简单的小型卷积神经网络,不做任何正则化,为模型目标 设定一个基准。这会得到71% 的分类精度。此时主要的问题在于过拟合。
【二、:数据增强解决过拟合(82%)】:然后,我们会介绍数 据增强(data augmentation),它在计算机视觉领域是一种非常强大的降低过拟合的技术。使用 数据增强之后,网络精度将提高到 82%。
【三、:特征提取(96%)】:用预训练的网络做特征提 取(得到的精度范围在90%~96%),
【四、:微调(97%)】:对预训练的网络进行微调(最终精度为97%)

 

 

2、数据增强?

【非常强大的降低过拟合的技术】:数据增强(data augmentation),它在计算机视觉领域是一种非常强大的降低过拟合的技术。使用 数据增强之后,网络精度将提高到 82%。
【从现有的训练样本中生成更多的训练数据】:数据增强是从现 有的训练样本中生成更多的训练数据,其方法是利用多种能够生成可信图像的随机变换来增加 (augment)样本。

 

 

3、有时你会听人说,仅在有大量数据可用时,深度学习才有效。这种说法部分正确?

【深度学习的确需要大量数据】:深度学习的一个基本特性就是能够独立地在训练数据中找到有趣的特征,无须人为的特征工程,而这 只在拥有大量训练样本时才能实现。对于输入样本的维度非常高(比如图像)的问题尤其如此。
【所谓大量是相对的】:但对于初学者来说,所谓“大量”样本是相对的,即相对于你所要训练网络的大小和深度 而言。只用几十个样本训练卷积神经网络就解决一个复杂问题是不可能的,但如果模型很小, 并做了很好的正则化,同时任务非常简单,那么几百个样本可能就足够了。
【卷积神经网络更少的数据就能有好效果】:由于卷积神经网络 学到的是局部的、平移不变的特征,它对于感知问题可以高效地利用数据。虽然数据相对较少, 但在非常小的图像数据集上从头开始训练一个卷积神经网络,仍然可以得到不错的结果,而且 无须任何自定义的特征工程。

 

 

4、what is shutil?

【high-level operations on files and collections of files】

The shutil module offers a number of high-level operations on files and collections of files. In particular, functions are provided which support file copying and removal. For operations on individual files, see also the os module.

 

 

5、卷积神经网络中一般构建网络模式?

【特征图的深度在逐渐增大,特征图的尺寸在逐渐减小】:网络中特征图的深度在逐渐增大(从32 增大到128),而特征图的尺寸在逐渐减小(从 150×150 减小到 7×7)。这几乎是所有卷积神经网络的模式。

 

 

6、过拟合的原因?

【学习样本太少】:过拟合的原因是学习样本太少,导致无法训练出能够泛化到新数据的模型。
【无限数据永不过拟合】:如果拥有无限 的数据,那么模型能够观察到数据分布的所有内容,这样就永远不会过拟合。

 

 

 

7、数据增强为什么不能完全消除过拟合?

【高度相关的信息】:如果你使用这种数据增强来训练一个新网络,那么网络将不会两次看到同样的输入。但网 络看到的输入仍然是高度相关的,因为这些输入都来自于少量的原始图像。
【没有新信息】:你无法生成新信息, 而只能混合现有信息。因此,这种方法可能不足以完全消除过拟合。

 

8、如何理解下面这段fit代码?

|||-begin

history = model.fit(       
    train_generator,       
    steps_per_epoch=100,       
    epochs=30,       
    validation_data=validation_generator,       
    validation_steps=50)

|||-end

【Python生成器】:它的第一个参数应该是一个 Python 生成器,可以不停地生 成输入和目标组成的批量,比如 train_generator。
【要知道每一轮需要从生成器中抽取多少个样本】:因为数据是不断生成的,所以 Keras 模型 要知道每一轮需要从生成器中抽取多少个样本。
【从生成器中抽取 steps_per_epoch 个批量后进入下一个轮次】:这是 steps_per_epoch 参数的作用:从生成器中抽取 steps_per_epoch 个批量后(即运行了 steps_per_epoch 次梯度下降),拟合过程 将进入下一个轮次。
【每个批量包含20 个样本】:本例中,每个批量包含20 个样本,所以读取完所有2000 个样本需要100 个批量。

 

 

二、内容在总结中

转自或参考: