深度神经网络中基于提前退出的快速推理方法的研究与实现

BranchyNet_chainer

基于提前退出部分样本原理而实现的带分支网络(supported by chainer)1


一、摘要

  深度神经网络是具有一定复杂程度的神经网络,可以定义为具有输入层、输出层和至少一个隐藏层之间的网络。每个层在一个过程中执行特定类型的分类和排序,这些复杂的神经网络的一个关键用途是处理未标记或未结构化的数据。一般来说,随着网络深度的增大,网络的性能也将会提升。但是,网络模型在数据集训练以及测试的时间也将变得越来越长,并且对机器资源的消耗需求也会增大。因此,我们提出了一种新的深度网络架构,通过在主网络中添加一个或多个分支网络,对退出点的样本置信度进行判断,从而可以提前退出部分样本,减少后继网络层的样本量。
  本文我们使用几个比较常见的网络(LeNet, AlexNet, ResNet)和数据集(MNIST, CIFAR10)来研究该分支网络架构。首先我们在主网络上添加一个或多个分支网络,在数据集上进行训练,获取网络模型的总体准确率和损失函数值。然后在已经训练好的网络模型上进行测试,通过比较分析普通网络与添加分支后的网络测试效果,从而显示出该网络架构可以提高网络的准确性并且显著减少网络的推理时间。


二、实现过程

  我们所建立的网络架构主要通过求解关联着退出点的损失函数加权和的联合优化问题进行训练,一旦训练好网络,则可以利用退出点让部分符合要求的样本提前退出,从而降低推理成本。在每个退出点,我们会利用分类结果的信息熵作为对预测的置信度度量,并设定每一个退出点的退出阈值。如果当前测试样本的熵低于退出阈值,即分类器 对预测结果有信心,则该样本在这个退出点待着预测结果退出网络,不会被下一层的网络处理。如果当前测试样本的上不低于退出阈值,则认为分类器对此样本的预测结果不可信,样本继续到网络的下一个退出点进行处理。如果样本已经到达最后一个退出点,也就是网络的最后一层,则将其直接退出。

B-LeNet B-AlexNet


三、损失函数设定

  交叉熵(cross entropy)是香农信息论中的一个重要概念,主要用于度量两个概率分布间的差异性信息,也就是交叉熵的值越小,两个概率分布越接近。在分支网络训练过程中,我们先通过 softmax 函数对网络层的输出值进行归一化处理,再对其归一化处理后的值进行计算得到交叉熵值,作为神经网络的损失函数。

我们将 x x x定义为一个输入样本, y y y定义为该输入样本的真实标签, y ^ \hat{y} y^定义为该输入样本的预测输出, S S S定义为所有可能的样本标签集合, θ \theta θ定义为一个分支网络层从入口点到退出点的参数集合, f e x i t n f_{exit_n} fexitn定义为网络层第n个退出点的输出,我们将损失函数 loss 用公式进行如下表达:

L ( y ^ , y ; θ ) = c r o s s _ e n t r o p y ( y ^ , y ) = − 1 ∣ S ∣ ∑ s ϵ S y s l o g

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值