关于机器获取人类知识的思考

我们现在的知识来源,一部分是 自己探索,一部分是 通过语言、文字等方式 获取别人的知识。而现在复杂的机器学习系统都是从0或者少量人类知识(主要是体现在模型设计和数据特征处理上)开始进行数据的探索,没有其它通用的知识等。如果能在一些人类传达的知识的基础上进行机器学习,所需要的数据量将大大减少。

人工智能两种实现途径:人类知识迁移 和 机器学习。而人类迁移知识两种途径:人类学会和机器沟通 和 训练机器和人类沟通。

在人类学会和机器沟通方面,虽然人类使用编程语言可以有规则地把知识迁移给机器,但把人类知识有规则地迁移到一个机器学习系统,仍然是个难题。以前是有专家系统解决这个问题的,靠专家整理出知识输入给机器,但是有专家的偏见而且需要庞大优质的专家劳动力,整体效果并不好。有些知识是难以使用很好的格式化表达方法,同时需要人类熟练掌握编程语言、机器原理和结构、数学建模等能力,这些都是很困难的。现在,反而通过人工标记来提供大量优质的数据,让机器自行学习挖掘,这也可以算是其中一种传达知识的方法。数据中隐含知识。

在训练机器和人类沟通方面,如果要知识能够高质量高带宽地从人类迁移到机器,NLP得有大发展才行。人工用语言规则设计机器语言系统,编程语言是极限了。把知识用逻辑来表达,编程语言是极限了。能转移知识的语言,用规则的方法来实现的话,编程语言是极限了。让机器理解人类语言,甚至理解隐含的语义,人类就可以方便快速地转达知识给机器了。

面对数据不足的问题,虽然可以用强化学习探索环境来生成海量数据,但是强化学习生成数据来训练机器学习系统的方式是有物理限制的。在虚拟环境里,可以无限探索,用计算力来提高探索速度。而在真实世界里,这点难以实现。AlphaGo可以在虚拟环境里超高速疯狂对弈,人类棋手不可能与其匹敌,毕竟有物理限制。但是人类可以传达知识,把自己探索得到的知识分享给别人,实现并行探索和学习。不过能让机器学习系统之间进行知识传递(其实数据也是知识),也是可以并行探索和学习的,类似于PPO、A3C等算法。

简单的机器学习(如逻辑回归、SVM等)系统可通过人类进行的数据特征处理来获取知识,复杂的系统(如深度神经网络)则难以实现人类知识的迁移。再比如复杂的End2End方法构建的系统,抛弃大部分人类知识(每个模块之间功能和连接),如果需要达到良好的性能,那势必需要大量的数据。

总而言之,人工智能两种实现途径:人类知识迁移 和 机器学习。在构建人工智能系统时,人力、计算力和数据 决定了我们在上述的两种途径上的权衡。

猜你喜欢

转载自blog.csdn.net/linsoft1994/article/details/79519062