小镇的夕阳|CCF-GAIR 2020,周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”|( 三 )
机器学习呢 , 它走的是另外一个路线 。 我们会收集很多的数据 , 比方说把这个数据组织成这么一个表格形式 , 每一行就是一个对象或者事件 , 每一列是刻画它的一个属性或特征 , 这就是所谓的“属性-值“表示形式 。 如果从逻辑的角度来看 , 这种表示是非常基础的命题逻辑的表示方式 , 可以把属性值表对应成逻辑真值表 。 而命题逻辑和硬件逻辑中间是有非常大的差别 , 很重要的就是有对于“任意”以及“存在”这样的量词会发生作用 。 一阶逻辑表示由于涉及量词 , 比方说如果要把“任意”这个量词拆开把每个可能的X当做一个样本 , 那就会变成无限大的样本集 。 如果把一阶逻辑中的谓词比方说“parent”当作一个属性 , 那么你会发现 , 每个逻辑子句刻画的并不是某个样本 , 而是在刻画样本之间的某种关系 。 于是 , 当我们把谓词直接当做属性试图展开成普通数据集的时候 , 会发现数据集里甚至没有真正的属性-值的描述 。
虽然很困难 , 但大家都知道 , 如果能把两者结合起来 , 可能会有更大的威力 , 因此历史上已经有很多研究者在做努力 。 我们可以归结是大致两个方向的努力 。 一个方向主要是做逻辑推理方面的学者 , 尝试引入一些机器学习里面的基础的技术或者概念 。 这里面形成了一大类技术 , 有很多的做法 。 我们举一个最简单的例子 , 比方说刚刚给大家看到的几个子句 , 每个逻辑子句是确定的:要么成立 , 要么不成立 。 我们现在可以给每个逻辑子句加上一个权重 , 一定程度上我们可以认为它反映这个子句成立的概率 。 比如说:如果一个人是大学三年级 , 另一个人是大学一年级 , 那么第一个人很可能比第二个人年长 , 这个可能性是80% 。 通过加一个0.8 , 我们就使得这个事实变成一个概率的成立 。 这样得到的带有概率权重的子句 , 就可以进行一定程度的概率推理 。
另一个方向是从机器学习的角度 , 尝试把一些逻辑推理方面的东西引进来 。 比方说我们看到有这么一条子句 , 如果一个人他抽烟 , 那么他很有可能得癌症 。 有了这么一个知识 , 我们就可以在做贝叶斯网初始化的时候 , 把任何一个X , 如果他smoke , 我们就把它和cancer之间的这条边连起来 , 也就是说我们用这个初步的规则帮助我们做这个网络的初始化 。 初始化之后 , 原来贝叶斯网该怎么学就怎么学 。
推荐阅读
