第五章 再败

作者: 人工智能人话翻译官 | 来源:发表于2019-10-29 16:31 被阅读0次

    你和小白信心满满的通过前向计算和反向传播,让你的模型具备了学习能力,最终找到了模型的最优解。这个模型奇迹般的在100个样本上实现了100%的准确预测。这太让人兴奋了,你和小白为此还好好的庆祝了一次。

    新的产品重新上线,新的算法模型给了小白莫大的信心,自以为掌握了恋爱的终极法则,打出了预测不对,赔十倍的广告。小白都开始幻想在“五道口”买房了。
    可是:
    新产品的预测结果并没有做到100%的预测正确,很多愤怒的使用者都开始在吐槽这个产品就是骗子,根本预测不准,吵着让小白赔钱,而且是1赔10。


    泛化

    小白得到的新模型,在用来学习的样本上,获得了很好的效果,但是在实际的使用中,效果却不好。这种情况称为模型缺少泛化能力。

    其实出现这样的结果也好理解,考试前你把100道测试题背的滚瓜烂熟,可考试的时候题变了,你的考试结果不好,也在情理之中。
    造成这个结果的原因是你用来训练模型的数据有问题!

    **** 训练集,测试集,验证集
    在小白整个训练过程中,只有训练集而没有测试集。是造成这次“惨败”的最主要原因。


    训练集:

    训练数据集是用于学习的示例的数据集,即适合例如分类器的参数。大多数通过训练数据搜索经验关系的方法倾向于过度拟合数据。

    在小白的训练过程中,只有100个用户,这100用户的X,Y我们都很清楚,我们利用X,Y找到了一个适合的模型,这个过程就像,考前你做100道题,你并不需要知道原理,只需要把答案背下来就能拿到满分。
    由此我们人话一下训练集的定义:

    就是我们已知X,也已知Y,用来训练模型的集合就是训练集。


    测试集
    既然这样,我们找到测试集来测试我们的模型就好了,如果在测试集上模型表现不佳,我们就重新训练,直到我们的模型能在集合上有好的表现。

    这个想法,看起来很美好,但不行。你想想以我们的恋爱预测为例,我们要等到产品上线以后才能得到测试集,可那个时候已经晚了。这就相当于你上了考场,才发现自己学的有问题,那还有啥用啊?可是考试之前你也拿不到考题啊?这真是一个悖论啊!
    别着急,在人工智能领域,我们可以通过验证集来假装测试集。
    验证集你可以把它想成是考前的模拟考试。比如你有一个训练集,里面有100道题,你自己只做其中的80道题,并且查看答案来训练自己的对知识的掌握程度。然后拿另外的20道题来验证自己的学习成功。这样你就可以实现一个考前的自检了。如果你在这20道题上的表现突出,那你考试的时候理论上说应该也不会差,同理你在20道题的自检上表现的不好,那考试基本也没戏。
    我们来把测试集与验证集的定义写一下:
    测试集:

    我们只使用集合中的X作为输入,然后通过模型计算得到Y', 我们使用这个Y' 与 Y的差距来衡量模型的好坏程度。

    验证集:

    由于测试集只有在最后上考场的时候才能得到,我们人为的把训练集中的一部分拿出来假扮测试集。我们称这部分为验证集。


    欠拟合与过拟合

    观察下图,图中有几个点,我们用一条线来预测点的位置。

    image.png

    针对三种情况,分别为欠拟合,拟合合适,过拟合。


    欠拟合:
    我们通过训练得到一条直线,很明显,这条线离大部分点的位置都很远。它的预测能力很差,这就是欠拟合。
    对应小白的例子就是之前拍脑袋想出模型参数的场景。如果你的模型欠拟合,就没有任何实际意义。


    过拟合:
    我们训练得到一条曲线,很明显,这条线把所有点都预测对了。他在训练集的表现是非常好,但都是死记硬背的结果,缺少泛化能力,不具备变通的能力,这样的模型也不是我们希望的。


    拟合合适:
    这条训练得到的曲线,虽然没有把所有点都预测对,但是预测对了大部分,并且其他没有准确预测的点,虽不中亦不远矣!


    奇思

    模型是否过拟,欠拟和你的训练集合有特别重要的关系。如果训练集样本过少,你的模型就得不到充分的训练,这和考试前你测试题做的不够,知识点掌握的不全面是一个道理。
    另外你的模型在测试集上如果表现的特别完美,这未必是好事。这极有可能是你的模型过拟了,过拟之后的模型将缺少泛化能力。
    最后你的测试集样本足够多,设置包含未来测试集的情形,那恭喜你,你训练的模型一定很准确。

    那如何构建你的训练集呢?
    答案是:你听说过大数据吗?

    相关文章

      网友评论

        本文标题:第五章 再败

        本文链接:https://www.haomeiwen.com/subject/pedgvctx.html