算法也许可以选择有用的数据,但不能分辨有用的知识。
有的算法看起来能分辨哪些有用哪些没用,但实际上还是依赖人的输入。例如主动学习(Active Learning)
主动学习的过程是这样的:模型通过查询函数,从未标记的数据池里选择样本,然后交给标记员去打标记。
但主动学习并非真的分辨了「知识」。仅仅是选择了「数据点」,而且关于这个数据点的知识,还得外部(标记员)输入,更别说查询函数也是人为定义的。有的人说,如果这个标记员是个算法呢?这不就是可以自动运作寻找有用的知识了吗?那么问题来了,算法标记员的知识又是哪里来的?这么问下去,就会变成鸡生蛋蛋生鸡的问题,最后的造物主只会指向人类。世界上没用永动机,也没有熵减的孤立系统。从熵增原理我们也可以得知,一个孤立系统的熵永远不会减少。除非从外部获得新信息。所以其实如果从熵增原理来思考,机器学习算法本身是无法分辨无用信息的。分辨有用和没用,需要信息,而孤立系统是无法凭空产生新信息的。
你给机器学习模型喂垃圾数据,模型就给你垃圾输出。模型本身,仅仅是参数的集合和拓扑,它本身并不去思考有用和没用这种人类该思考的问题。
最后,再说一次机器学习业界的那句老话:Garbage in, Garbage out(GIGO)。
最直观的还是特征筛选那几个指标,p-value、互信息、chi2等,说到底还是靠统计出来的。直白点,就是看信息和label的相关性。
很多领域早期的研究,最有用的知识(特征)是由研究者不断观察总结得出的,最明显的就是计算机视觉领域设计出的各种算子和filter。
让机器学习深入探索陌生领域,简单粗暴的方法就是深度学习,标足够多的数据,让模型自己去学该如何抽取特征。但有些情况下,不见得效果很好。大家都想用深度学习预测股市,然后赚大钱。把股价扔给模型直接去学,大概率学了个寂寞。最终靠谱的,还是融入了大量的人类先验知识。
如果真有什么办法,可以让机器提前知道那些知识有用,计算广告也就没有那么难做了。实际情况是,大家也不知道什么东西有用,都是猜想某类特征可能有用,然后上线去跑ab验证,有用就留下,没用就继续分析迭代。本质上,依然离不开label。