什么是拟合?
如图,思考一个问题,一个怎样的函数能够预测一个房子面积对应的房子价格?
首先假设有一条直线 y = ax + b,然后计算每个点到直线的距离之和,当距离之和最短时,得到的a和b的值就是直线的参数,这样就得到了这条直线。
这就是简单的拟合,也叫做线性回归。
而神经网络的训练过程就是一个复杂的拟合过程。它的拟合可能不只是一条简单的直线或一次函数,而是一条不规则的线,或者可以想象成一个黑盒子。
人工智能所做的就是通过黑盒的运算推出,它看到的图片中是一只猫还是一只狗。
什么是过拟合?
过拟合可以理解为在单一数据集上拟合效果非常好,在其他数据集上拟合效果很差,缺少普适性。
神经网络的过拟合
假如用一张白猫训练一个神经网络。
然后不断告诉它,这是一只猫,给它看1000张猫的图片后,它可以知道这是一只猫。
但是突然换了一张戴有帽子的猫,神经网络却识别不出。
解决方法:
使神经网络的神经元每次随机失活一部分,也就是说让神经网络每次只看到猫的局部,比如第一次看到猫的耳朵,第二次看到猫的眼睛,第三次看到猫的嘴巴。
经过若干轮的训练之后,当神经网络只看到猫的爪子,也能识别出这是一只猫。