【极简笔记】Tunneling Neural Perception and Logic Reasoning through Abductive Learning
论文地址https://arxiv.org/abs/1802.01173
本文的核心贡献是提出Neural Logical Machine(NLM),文中实验用它来学习判断一个手写等式是否成立(注意,这个等式可以是二进制计算等式,也可以是异或等式,等式的运算符号和digit都可以自行定义,训练时的label只有等式成立或不成立)。简而言之,给一堆两位数三位数的计算,学习运算规律,判断五位数六位数计算的式子是否满足该运算规律。
NLM输入是手写体式子,预测输出判断该式子是否成立。结构主要分为三部分:
1. perception neural layer
使用CNN+FC layer+softmax实现,用于区分手写符号
2. logical layer
使用Prolog model,利用非梯度优化方法计算获得手写公式的符号标注,训练perception neural layer。为了增强对噪声的适应性,并没有从该层直接逻辑推导得到结果,而是计算得到relation feature
3. decision neural layer
利用神经网络对relation feature进行分类,判断公式是否成立
因为perception neural layer一开始计算得到的式子并不准确(符号都不认识呢),所以要利用已知KB(knowledge base)来猜这个式子应该是咋样的,拿猜的结果训练perception neural layer。
猜就是trial-and-error,就是derivate free优化方法。
已知的KB例如范式:equation :- [digit] [op] [digit] [equal signal] [digit]
把不对的符号设成空格,然后修正,具体算法得看该篇里的references
运算规则通过ALP(abductive logical programming)计算得到,通过逻辑推演使满足该规则的输入样本集合最大。最后将该运算规则转化成二值特征(假设r条规则,对于样本i,如果能由规则k加KB推演得到,则第k位特征为1,否则为0),输入最后的decision neural layer进行分类判断式子是否成立。
本篇文章有些艰涩,读的不太清楚,只把握了一下主要方向。可以进一步参考相关报道:新智元:周志华组最新论文提出 “溯因学习”,受玛雅文字启发的神经逻辑机