沿着特征走主要是由工业界来主导,比如说谷歌的Adwords里面有上千亿的特征,想要描述为什么会产生一次广告点击,这就需要解决高效并行的问题。这些技术大部分进展来自于KDD或是WWW。沿着特征优化机器学习,就是把问题通过特征的方式分的足够细,做非常准确的模型。 到底是深度模型好还是宽度模型好呢?这里有一个没有免费的午餐定理:不存在万能的模型。简单来说,世界上不存在一个优化算法对任何问题上都有效,也就是说我们总能找到一个问题,让这个优化算法表现的并不比随机的更好。更进一步的说,所有的机器学习都是一个偏执,代表了对这个世界的认知。如果数据较少,这个偏执就需要比较强。比如说科学家观测物理现象,数据并不是特别多。这种情况下,你需要大量的理论和猜想,有少量数据做拟合验证就可以了。但如果假设错的话,就可能出现错误的结论。比如用地心论研究天体物理的话,就发现结论都是错的。但是如果数据很多,我们就不需要很强的偏置,将更多的不确定性加入模型,自动的通过数据进行拟合。综合起来,工业界的机器学习里面并没有免费的午餐,不存在哪一个模型是万能的模型。所以说你一定要根据你的业务做出合适的选择,才是最好的一个方式。 人工智能落地的关键:提高AI的易用性 人工智能目前还远没有达到可以遍地开花的程度,即使解决了刚才讲的宽与深的问题,我们依然还有很多事情要做。如何训练出好的模型、如何去选择好的参数、如何进行特征组合,都不是一件容易的事情。 比如,数据需要归集、整理、导入、清洗、拼接、特征工程等之后才能模型训练。之后模型上线还要保证系统的稳定性、时效性和吞吐等等指标。同时为了提供线上服务,需要重做一套线上的架构,这个架构需要保证数据流实时性、线上线下一致性,以及模型作用的机制。只有完成这些,这样才真正拥有了一个落地的人工智能系统,否则只能称之为在笔记本上做一个AI的玩具而已。 刚才说到的还只是一个公司的问题与系统,如果用在各行各业的不同问题上,会发现问题非常多,所以企业一定需要一个集成上述所有能力的人工智能平台。开源社区内好的工具平台和算法能够起到很大作用,这些工具也会日趋成熟,但并不足够。虽然看起来人工智能已经在非常多的领域应用或者开始了突破性的尝试,但是如果对比Hadoop这样的分布式存储计算系统来说,还远远未普及。 关于这个问题我们先分析Hadoop。之所有这么多人用Hadoop是因为它虽然是个分布式系统,但对使用它的程序员并不需要掌握很高的分布式系统知识,研发人员并不需要为了使用Hadoop针对性的对自己的数据、业务做出改变,也不需要因为Map-Reduce框架重新设计自己的线上服务系统。但人工智能不一样,为了使用AI,所有的上下游组件都会和模型相关:不同的模型不仅意味着不同的训练系统,还意味着不同的实时、非实时的数据流,不同的拼表要求与框架选择、不同的特征抽取、不同的线上服务架构、不同的灾备架构、回滚架构相关。这样你就会发现,为AI系统做数据流与线上系统的架构师,必须要懂机器学习才能做好工作。 所以现在能够做AI应用的人,主要还是那些研究及应用的机器学习科学家,需要那种既懂机器学习,又了解业务,还精通系统架构的工程师。这就造成了AI的高门槛。就如同三四十年前,真正编程的人并不是现在我们这样的人,而是一群科学家们,他们通过纸带来控制程序的运行,自己不仅要编程,还得非常懂计算机体系架构。导致的结果是,根本不是每个人都能接触到这项技术,不是每个企业都能受惠于这个技术。但是现在,甚至在Excel中都可以编程,这些程序员可能完全不知道计算机的体系结构、操作系统、编译原理、数据库的概念,将全部心思花在理解与解决业务问题上,达到事半功倍的效果。 (责任编辑:本港台直播) |