怎么工作 AI 为什么需要好数据
上一课我们看到,模型要抓住规律,而不是把训练数据背下来。可要是数据本身就一团糟呢?同一个模型,用什么数据来学,结果会截然不同。事实上,做出好 AI 的诀窍,往往不是更聪明的模型,而是更好的数据。拿做菜来说,就是材料比手艺更要紧。
垃圾进,垃圾出
机器只看我们给它的例子来学。所以例子错了,它会连错误一起照单全收。给猫的照片贴上“狗”的标签,机器就会把猫说成狗。
只给偏向一边的例子,它就会以为世界本来就是这么偏的。这句话简单说就是:垃圾进,垃圾出。连人看了都觉得是一团糟的资料,模型再好,也只能学到一团糟。
一个个放进错的例子。标签被调换的例子越多,机器的判断就越浑,准确度也越低。
错的例子越堆越多,机器的答案就越乱。机器自己不知道什么是对的,只是照样相信我们给它的资料。所以标签错了或者有偏向的资料,会原样变成坏习惯。
反过来说,光是把资料改对,同一个模型就可能变好很多。
给好材料,才学得对
那么,什么样的材料算好?第一,标签要准确:猫就是猫,狗就是狗。第二,不能偏向一边。猫的照片给一大堆,狗的照片只给几张,机器就几乎认不出狗。
第三,要像实际使用时的情况。只用明亮白天照片学出来的模型,碰到昏暗的夜间照片就会犯迷糊。模糊不清或者乱七八糟混在一起的资料,最好剔掉。
点按钮,把乱七八糟的材料换成干净、均衡的材料。材料一变好,机器的准确度马上就上去了。
模型一点没动,准确度却一下子上去了。变的只有材料:标签改对、两边均匀填满,同一个模型就学对了。
所以在实际工作中,人们动模型之前,会花大量时间检查和清理数据。数据有偏向,模型的判断也会有偏向,这个问题后面讲 AI 伦理时还会再谈。
挑选适合问题的特征
数据就算干净,还剩一件事要定:让模型看什么来判断。当作判断线索挑出来的值,叫特征。想想预测房价的问题吧。
房子的面积、位置、房间数,都和价格紧密相关。面积大、交通方便的地段,房价就高。可大门的颜色、建成那天是星期几呢?跟价格几乎毫无关系。这样无关的特征,反而会把判断搅浑。
挑选预测房价要用的特征。面积、位置这样相关的特征会提高准确度,大门颜色这样无关的特征反而会降低。
每挑对一个特征,准确度就上升;放进无关的特征,就下降。特征并不是越多越好:无关的特征一多,模型很容易连其中偶然的规律也背下来,造成过拟合。
要挑真正和问题相关的线索。像这样挑选、打磨特征的工作叫特征工程,很长一段时间里,它都是机器学习中最费工夫的一环。
好数据越多越好
材料干净、特征也对,接下来数量就重要了。例子只有几个的话,碰巧混进来的一两个特殊情况,就很容易把机器带偏。
例子一多,这种偶然就被淹没、变弱,经常出现的真正规律就清楚了。所以,干净的数据越多越靠得住。
点再多收集些数据。例子越多,偶然的晃动越平息,边界越稳,准确度也越高。
数据越多,边界越稳,准确度越高。数据少的时候,一个点就能让它摇晃;多了以后,晃动就平息了。
当然,光增加数量并不够。垃圾收集得再多,也还是垃圾。只有数据干净、不偏,越多越好这句话才成立。先讲质量,再讲数量。
小结
归纳起来是这样:机器只能学到我们给它的数据那么多。放进乱七八糟的东西,出来的也乱七八糟;给干净、均衡的材料,才学得对。要挑适合问题的特征,无关的线索反而碍事。
好数据越多越靠得住,但质量优先。好材料造就好 AI。
依次点要点回顾一下。(垃圾进,垃圾出 → 干净材料学得对 → 挑适合的特征 → 好数据越多越好)
现在你知道数据为什么那么重要了。人们常常想到更聪明的模型,可实际上决定结果的,往往是材料。
不过,有些数据,比如照片,很难由人来一一决定该挑哪些特征。几百万个像素里,哪些是“猫”的线索?神经网络怎样自己找出特征,下一课讲 CNN 时会说明。