AI 深度学习之提升人工智能系统的一般流程

在实际工作中,当拿到一个人工智能系统后,我们应该立即知道该从何处入手,应该在什么时候使用什么方法。其实简单的来说,提升人工智能系统的目的就是要让系统对所有数据对更多的数据拟合的更好。

贝叶斯误差

贝叶斯误差(bayes error rate)是指在现有特征集上,任意可以基于特征输入进行随机输出的分类器所能达到最小误差。也可以叫做最小误差(摘自维基百科)。

通俗释义:预先知道的分布情况是理想状态下的一种分布,真实测量时并不完全符合,只能是样本足够大的情况下,无限接近。举例来说,抛硬币正反面的概率分别是0.5,可是自己测试100次,并不能保证正好50次正,50次反面,这就是贝叶斯误差。

一般来说,在一个人工智能项目中,当程序能力还没有达到人类能力之前,项目进展速度、程序能力提升速度是非常快的。一旦程序能力超过人类能力之后,提升速度就非常缓慢了。程序能力会非常缓慢地向着理论上的最高能力靠近。无论是增加训练时间和训练数据或者增大训练网络,都无法超越这个理论上的最高能力。这个理论的上限我们称之为贝叶斯最优误差

调优流程

我们在开发一个人工智能系统后,应当根据项目的实际应用环境来评估人类的误差。借助人类误差,我们就能推测贝叶斯误差。借助于贝叶斯误差,我们就能分析出系统的拟合度。贝叶斯误差与训练集误差之间的差值,我们称之为可避免误差,当然,也可以称之为欠拟合误差;我们也把训练集误差与验证集误差之间的差值,称之为过拟合误差。当欠拟合误差大于过拟合误差时,我们就应该集中力量解决欠拟合问题;反之,我们就应该集中力量解决过拟合问题。

解决欠拟合的方法:

  • 1、我们可以尝试更大的神经网络(增加神经网络的层数,增加神经元的个数)。
  • 2、增加训练次数(这有可能会解决欠拟合,但是有时候可能会没多少效果)。
  • 3、尝试其他的优化算法,例如 adam。
  • 4、尝试不同的神经网络架构(如RNN、CNN等)。

解决过拟合的方法:

  • 1、最佳方法就是获得更多的训练数据,但是有时候我们无法获得更多的训练数据,即使能获取也太贵了;所以,我们可以通过数据增强技术来变相获取更多的数据。
  • 2、我们可以使用正则化来解决过拟合的问题,例如 L2 正则化,dropout 等等。正则化手段很重要。
  • 3、尝试不同的神经网络架构与不同的超参数也有可能解决过拟合,也就是说,如果找到一个合适的架构那木可以同时解决欠拟合与过拟合的问题。

为者常成,行者常至