无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程
在做深度学习项目的过程中,我们总会遇到困难或者说障碍,下面我们谈谈四个比较常见的问题。如何解决。
目录:
- 问题一:缺少训练数据怎么办?
- 问题二:训练的模型过拟合怎么办?
- 问题三:训练的模型欠拟合怎么办?
- 问题四:模型训练时间太长怎么办?
详解:
1.1 缺少训练数据怎么办?
深度学习模型通常需要大量的训练数据,一般来说,数据越多,模型的性能就越好。一般我们缺少训练数据,用得上一种技术,那就是数据增强技术。什么叫数据增强呢,数据增强实在不实际收集新数据的情形下,生成新数据或者扩充数据以达到训练模型的过程。
那么数据增强技术有哪些呢?
图片数据有多种数据增强技术,旋转,翻转,剪切,平移等。图片数据扩充可以参考我另一篇博客:图片数据不够怎么凑
文本数据增强技术:一般常用代码自动生成相关类型文本。
1.2、训练的模型过拟合怎么办?
什么是过拟合问题呢?当一个模型在训练集上执行得非常好,但是在验证集上性能下降验证精度远低于训练精度时,就会被认为是过拟合。过拟合的原因主要是模型从训练数据中学习了不必要的信息。因此它在训练集上表现得非常好。
如何解决这种问题呢?我们可以在模型层中引入dropout,以解决过拟合问题。使用dropout,我们随机关闭神经网络的某些神经元。假设我们在神经网络100个神经元的隐藏层上添加了概率为0.5的dropout层,这100个神经元的50个将会被抑制。我们最终得到一个不会太复杂的体系结构。正因为如此,该模型不会不会学习过于复杂的模型,可以避免过拟合。
1.3 、训练的模型欠拟合怎么办?
深度学习模型既然会发生过拟合,也会发生欠拟合。什么是欠拟合呢,欠拟合是指模型无法从训练数据本身学习模式,因此训练集上的性能较低。这可能是多种原因造成的,例如:训练数据不够,模型太简单,模型的训练次数太少等。为了克服欠拟合问题。你可以尝试:
1、增加训练数据集
2、改变模型结构,制作一个更复杂的模型。
3、增加训练的epoch。
1.4、模型训练时间太长怎么办?
有些情况下,你可能会发现你的网络需要花费很长时间来收敛。深究这背后的主要原因就是输入到神经网络层的分布发生了变化。在训练过程中,神经网络各层的权值发生变化,激活也随之变化,现在这些激活也是下一层的输入,因此每一次连续的迭代都会改变分布。由于这种分布的变化,每一层都必须适应不断变化的输入,这就是为什么训练时间增加的原因。为了克服这一问题,我们可以应用批处理批处理标准化(batch normalization)把分布拉回来。这样就能加快训练速度。