「机器之心」决策树的复兴?结合神经网络,提升ImageNet分类准确率且可解释( 三 )
How it Works
Neural-Backed 决策树的训练与推断过程可分解为如下四个步骤:
为决策树构建称为诱导层级「Induced Hierarchy」的层级;
该层级产生了一个称为树监督损失「Tree Supervision Loss」的独特损失函数;
通过将样本传递给神经网络主干开始推断 。 在最后一层全连接层之前 , 主干网络均为神经网络;
以序列决策法则方式运行最后一层全连接层结束推断 , 研究者将其称为嵌入决策法则「Embedded Decision Rules」 。
本文插图
Neural-Backed 决策树训练与推断示意图 。
运行嵌入决策法则
这里首先讨论推断问题 。 如前所述 , NBDT 使用神经网络主干提取每个样本的特征 。 为便于理解接下来的操作 , 研究者首先构建一个与全连接层等价的退化决策树 , 如下图所示:
本文插图
以上产生了一个矩阵-向量乘法 , 之后变为一个向量的内积 , 这里将其表示为$\hat{y}$ 。 以上输出最大值的索引即为对类别的预测 。
本文插图
简单决策树(naive decision tree):研究者构建了一个每一类仅包含一个根节点与一个叶节点的基本决策树 , 如上图中「B—Naive」所示 。 每个叶节点均直接与根节点相连 , 并且具有一个表征向量(来自 W 的行向量) 。
使用从样本提取的特征 x 进行推断意味着 , 计算 x 与每个子节点表征向量的内积 。 类似于全连接层 , 最大内积的索引即为所预测的类别 。
全连接层与简单决策树之间的直接等价关系 , 启发研究者提出一种特别的推断方法——使用内积的决策树 。
构建诱导层级
该层级决定了 NBDT 需要决策的类别集合 。 由于构建该层级时使用了预训练神经网络的权重 , 研究者将其称为诱导层级 。
本文插图
具体地 , 研究者将全连接层中权重矩阵 W 的每个行向量 , 看做 d 维空间中的一点 , 如上图「Step B」所示 。 接下来 , 在这些点上进行层级聚类 。 连续聚类之后便产生了这一层级 。
使用树监督损失进行训练
本文插图
考虑上图中的「A-Hard」情形 。 假设绿色节点对应于 Horse 类 。 这只是一个类 , 同时它也是动物(橙色) 。 对结果而言 , 也可以知道到达根节点(蓝色)的样本应位于右侧的动物处 。 到达节点动物「Animal」的样本也应再次向右转到「Horse」 。 所训练的每个节点用于预测正确的子节点 。 研究者将强制实施这种损失的树称为树监督损失(Tree Supervision Loss) 。 换句话说 , 这实际上是每个节点的交叉熵损失 。
使用指南
我们可以直接使用 Python 包管理工具来安装 nbdt:
pip install nbdt
安装好 nbdt 后即可在任意一张图片上进行推断 , nbdt 支持网页链接或本地图片 。
nbdt https://images.pexels.com/photos/126407/pexels-photo-126407.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=32
# OR run on a local image
nbdt /imaginary/path/to/local/image.png
不想安装也没关系 , 研究者为我们提供了网页版演示以及 Colab 示例 , 地址如下:
Demo:http://nbdt.alvinwan.com/demo/
Colab:http://nbdt.alvinwan.com/notebook/
下面的代码展示了如何使用研究者提供的预训练模型进行推断:
- 军人驿站国际观察俄土科技差距显露无疑,美称此战可载入史册,叙利亚爆发机器人大战
- 埃尔法哥哥还可以做扫地机器人啊,自动驾驶不做了
- 界面新闻MIT:美国制造业每多1个机器人,平均取代3.3名工人
- 读懂新金融营销、城市、机器人、养牛养鱼……新型科技公司的十八般武艺
- 极客公园机器人大爆发的时代来了?风口上的优必选说要「保持冷静」
- 15个最流行的GitHub机器学习项目
- 科技智能制造TB细数机器人十大工控产品,没有这些机器人自动化就不能实现
- 重庆之声生产线接入网络提升产量30%,重庆用友:机器换人·数据换脑
- 知道丶朝歌文化模仿猎豹的“最快”软体机器人来了
- 环球网新加坡派机器狗在公园提醒市民保持社交距离,网友:太吓人,