本发明涉及数据处理技术领域,尤其涉及一种深度神经网络的贝叶斯结构学习方法及装置。
背景技术:
贝叶斯深度学习旨在为灵活而有效的深度神经网络提供准确可靠的不确定性评估。传统上,贝叶斯网络在网络权重上引入不确定性,这往往可以防止模型容易过拟合的问题,也为模型带来了使用高效的预测不确定性。然而,在网络权重上引入不确定性存在问题。首先,人为设定的权重的先验分布往往不可靠,容易导致过剪枝等问题,使得模型拟合能力大大受限;其次,在权重上引入灵活的变分分布容易带来推理的困难,这是因为变分分布中复杂的依赖关系。最近,基于粒子的变分推理技术也被使用来优化贝叶斯网络,但是它们也存在粒子塌陷和退化等问题。
因此,现在的贝叶斯网络在实际应用中无法提供准确可靠的预测性能。
技术实现要素:
由于现有方法存在上述问题,本发明实施例提供一种深度神经网络的贝叶斯结构学习方法及装置。
第一方面,本发明实施例提供了一种深度神经网络的贝叶斯结构学习方法,包括:
构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构;
从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构;
根据所述采样的网络结构,计算所述深度神经网络的证据下界elbo;
若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练;
若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
进一步地,所述采用重参数化过程采样所述学习单元的网络结构;具体包括:
根据预设的适应性系数,采用重参数化过程采样所述学习单元的网络结构。
进一步地,所述根据所述采样的网络结构,得到所述深度神经网络的证据下界;具体包括:
根据所述采样的网络结构,计算所述训练子集中经过标注的各样本对应的输出结果,并计算所述深度神经网络的误差,以及所述网络变分分布与预设的先验分布中的对数密度差值;
将所述深度神经网络的误差和所述对数密度差值进行加权求和,以得到所述深度神经网络的证据下界。
进一步地,所述构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元;具体包括:
构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,在预先确定的学习单元间插入预设的下采样层和/或上采样层;其中,所述下采样层包括:批正则化层、线性整流层、卷积层和池化层,所述上采样层由反卷积层构建。
进一步地,所述深度神经网络的输入层为用于预处理的卷积层,输出层为线性全连接层。
进一步地,所述变分分布为concrete分布。
第二方面,本发明实施例提供了一种深度神经网络的贝叶斯结构学习装置,包括:
构建单元,用于构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构;
训练单元,用于从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构;
误差计算单元,用于根据所述采样的网络结构,得到所述深度神经网络的证据下界elbo;
判断单元,用于若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练;若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
进一步地,所述训练单元具体用于,从预设的训练集中随机提取训练子集,并根据预设的适应性系数,采用重参数化过程采样所述学习单元的网络结构。
第三方面,本发明实施例还提供了一种电子设备,包括:
处理器、存储器、通信接口和通信总线;其中,
所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;
所述通信接口用于该电子设备的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:
构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构;
从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构;
根据所述采样的网络结构,计算所述深度神经网络的证据下界elbo;
若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构的分布和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练;
若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:
构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构;
从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构;
根据所述采样的网络结构,计算所述深度神经网络的证据下界elbo;
若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构的分布和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练;
若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
本发明实施例提供的深度神经网络的贝叶斯结构学习方法及装置,通过构建包括多个相同内部结构的学习单元的深度神经网络,并通过训练集对所述学习单元中各隐层间各计算单元的相对权重进行训练,以得到所述学习单元的优化的网络结构,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的深度神经网络的贝叶斯结构学习方法流程图;
图2为本发明实施例的深度神经网络的贝叶斯结构学习装置结构示意图;
图3示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的深度神经网络的贝叶斯结构学习方法流程图,如图1所示,所述方法包括:
步骤s01、构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构。
根据实际的需要构建深度神经网络,所述深度神经网络包括:输入层、输出层,以及位于输入层和输出层之间的至少一个重复堆砌的学习单元,且各学习单元依次串联,具有相同的网络结构。
所述学习单元包括预设层数k个隐层,且任意两个隐层间包括多个计算单元,例如,全连接单元、卷积单元和池化单元等。所述学习单元的网络结构α={α(i,j)|1≤i<j≤k},其中,α(i,j)包括第i层隐层与第j层隐层之间与各计算单元对应的相对权重。所述第i层隐层的特征表示到第j个隐层的特征表示的计算为:根据所述α(i,j),两者之间各计算单元输出的加权和。
所述与各计算单元对应的相对权重,服从分类分布,为了方便基于优化方法进行训练,可设定为可学习的、连续化、参数化的变分分布,以此构建所述网络结构。
进一步地,所述变分分布为concrete分布。
所述变分分布可根据实际的需要来进行设定,本发明实施例仅给出了其中的一种举例说明:concrete分布,但为了简便起见,在下面的实施例中都concrete分布为例进行举例说明。
步骤s02、从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构。
步骤s03、根据所述采样的网络结构,得到所述深度神经网络的证据下界elbo。
步骤s04、若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构的分布和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练。
步骤s05、若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
预先设定包含n个样本的训练集,每个样本(xn,yn)包括输入数据xn以及对应的预先标注的输出结果yn。
根据所述训练集,对所述深度神经网络进行训练,并在结束训练后,最终得到所述学习单元的优化的网络结构,所述优化的网络结构包括每两个隐层间各计算单元对应的优化的相对权重。具体的训练过程如下:
1.随机选取训练集中一个大小为k的子集
2.根据所述采样的网络结构,得到所述深度神经网络当前的证据下界(evidencelowerbound,elbo)。
3.将当前的证据下界与上次训练完成后得到的证据下界进行比较,以得到所述证据下界的变化。若本次训练后得到证据下界的变化超过了预设的损失阈值,则判定训练未完成,进一步根据预设的优化方法,对当前的网络结构和网络权重进行优化。然后,重新从训练集中选取子集以继续执行1-3的训练过程。直到所述证据下界的变化小于等于所述损失阈值,则判定训练结束。
由上述的训练过程可知,本发明实施例的训练过程仅是对学习单元内部各隐层之间的连接关系进行训练,因此对于k层隐层结构,所述学习单元的网络结构α中共有k(k-1)/2个变量,每一个变量表示一对隐层之间的计算单元的相对权重。
本发明实施例通过构建包括多个相同内部结构的学习单元的深度神经网络,并通过训练集对所述学习单元中各隐层间各计算单元的相对权重进行训练,以得到所述学习单元的优化的网络结构,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
基于上述实施例,进一步地,所述步骤s02中采用重参数化过程采样所述学习单元的网络结构;具体包括:
根据预设的适应性系数,采用重参数化过程采样所述学习单元的网络结构。
为了防止在训练过程中出现训练难以收敛的问题,因此,在构建学习单元时,对重参数化过程添加预先设置的适应性系数β={β(i,j)}来调节采样的方差。从而得到的具体的重参数化过程为
具体过程如下:
a.从gumbel分布里随机采样出一组独立变量∈;
b.将(a)中得到的变量与适应性系数β相乘得到缩放后的变量;
c.将(b)中得到的变量与concrete分布的参数θ相加,然后除以温度系数τ;
d.将(c)中得到的结果输入softmax变换,得到采样的网络结构α=g(θ,β,∈)。
本发明实施例通过为所述重参数化过程调协适应性系数,从而防止了训练过程中出现训练难以收敛的问题,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
基于上述实施例,进一步地,所述步骤s03具体包括:
步骤s031、根据所述采样的网络结构,计算所述训练子集中经过标注的各样本对应的输出结果,并计算所述深度神经网络的误差,以及所述网络变分分布与预设的先验分布中的对数密度差值。
步骤s032、将所述深度神经网络的误差和所述对数密度差值进行加权求和,以得到所述深度神经网络的证据下界。
在每次根据提取出的训练子集,采用重参数化过程采样得出所述学习单元的采样的网络结构后,根据采样的网络结构得到训练子集中各样本经过当前的深度神经网络得到的预测结果,并计算预测结果的误差,所述误差的计算方法有很多,在此仅以交叉熵为例进行举例说明:交叉熵
因此,易得差值记为kl;
将所述交叉熵和对数密度的差值进行加权,得到深度神经网络整体的损失为
本发明实施例中在每一次训练中,计算交叉熵和对数密度的差值,相加权后得到所述深度神经网络的证据下界,并根据证据下界的变化对网络结构进行优化,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
基于上述实施例,进一步地,所述步骤s01具体包括:
构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,在预先确定的学习单元间插入预设的下采样层和/或上采样层;其中,所述下采样层包括:批正则化层、线性整流层、卷积层和池化层,所述上采样层由反卷积层构建。
本发明实施例所构建的深度神经网络中包括多个串联的学习单元,并且在部分预先确定的学习单元之间根据实际应用的需求插入预设的下采样层和/或上采样层。其中,所述图片分类中,仅需要插入下采样层,而对于语义分割,则均需要插入。其中,所述下采样层一般由批正则化-线性整流-卷积-池化组成,而上采样一般由反卷积构建。
进一步地,所述深度神经网络的输入层为用于预处理的卷积层,输出层为线性全连接层。
使用的卷积计算单元采用批正则化-线性整流-卷积-批正则化的操作顺序;
将同时发生的、相互独立的、同类别的计算单元整合为一个组操作,提高计算效率,主要是将多个卷积整理成一个组卷积,提高计算效率。
本发明实施例通过在预先确定的学习单元之间插入下采样层和/或上采样层,在输入层增加一个预处理的卷积层,在网络最后插入一个线性全连接层,从而增加了深度神经网络的性能。
上述实施例构建的深度神经网络可以应用于各个场景,例如:
图片分类:
1)使用网络预测结果与标注的交叉熵作为模型训练中的误差进行训练;
2)测试时,对于一组测试样例,随机从学习得到的网络结构的分布里采样出100个网络结构,基于这些结构,模型给出100组预测概率;
3)将这些预测概率取均值,得到预测概率;
4)取3)中预测概率最大的类别作为图片的分类。
语义分割:
1)使用所有像素的预测结果与标注的交叉熵之和作为模型训练中的误差进行训练;
2)测试时,对于一组测试样例,随机从学习得到的网络结构的分布里采样出100个网络结构,基于这些结构,模型给出100组像素级的预测概率;
3)将这些预测概率取均值,得到像素级预测概率;
4)取3)中得到的结果在每一个像素上最大的类别作为该像素的分割结果。
检测对抗样本:
1)对于一组对抗样本,随机从学习得到的网络结构分布里采样出30个网络结构;
2)基于这些结构,模型给出30组预测概率;
3)将这些预测概率取均值,得到模型最终的预测概率;
4)计算3)中得到的预测概率的熵,作为检测的指标;
5)如果4)中得到的熵明显大于正常样本的预测对应的熵,则说明检测出对抗样本。
检测领域迁移:
1)对于一组与训练数据采样自不同领域的样本,随机从学习得到的结构分布里采样出100个网络结构;
2)基于这些结构,模型给出100组预测概率;
3)将这些预测概率取均值,得到模型最终的预测概率;
4)计算3)中得到的预测概率的熵,作为检测的指标;
5)如果4)中得到的熵明显大于正常样本的预测对应的熵,则说明检测出领域迁移。
使用如下述实施例的深度贝叶斯结构网络在自然图片分类数据集cifar-10和cifar-100上进行测试,训练得到的模型分别达到了4.98%和22.50%的分类错误率,大幅优于最先进的深度神经网络resnet和densenet。将本发明应用到camvid语义分割任务中,在与强力的fc-densenet方法使用相同的训练条件的情况下,可以取得比fc-densenet高2.3的平均iou,同时达到和世界领先水平的方法相媲美的水平。此外,本发明训练得到的模型可以通过预测的不确定性检测对抗样本和领域迁移,在测试中该发明展示出显著优于传统贝叶斯神经网络的预测不确定性。综上所述,本发明通过利用神经网络架构搜索中提出的网络结构学习空间,为深度网络的网络结构引入不确定性,进行贝叶斯建模,使用随机变分推理方法进行学习,缓解拥有权重不确定性的贝叶斯深度网络的难设计先验、难推理后验等问题,为网络模型的预测性能和预测不确定性带来了全面提升,显著提高了贝叶斯神经网络在图片分类、语义分割、检测对抗样本和领域迁移等任务上的表现。
图2为本发明实施例的深度神经网络的贝叶斯结构学习装置结构示意图,如图2所示,所述装置包括:构建单元10、训练单元11、误差计算单元12和判断单元13,其中,
所述构建单元10用于构建深度神经网络,所述深度神经网络包括至少一个具有相同内部结构的学习单元,所述学习单元包括预设层数的隐层,且每两个隐层间包括复数种计算单元,定义网络结构为各计算单元的相对权重,并采用参数化的变分分布来建模所述网络结构;所述训练单元11用于从预设的训练集中随机提取训练子集,并采用重参数化过程采样所述学习单元的网络结构;所述误差计算单元12用于根据所述采样的网络结构,得到所述深度神经网络的证据下界elbo;所述判断单元13用于若所述证据下界的变化超过预设的损失阈值,则根据预设的优化方法优化所述网络结构和网络权重,并再次从所述训练集中随机提取训练子集以继续对所述学习单元的网络结构进行训练;若所述证据下界的变化未超过预设的损失阈值,则判定训练结束。
构建单元10根据实际的需要构建深度神经网络,所述深度神经网络包括:输入层、输出层,以及位于输入层和输出层之间的至少一个重复堆砌的学习单元,且各学习单元依次串联,具有相同的网络结构。
所述学习单元包括预设层数k个隐层,且任意两个隐层间包括多个计算单元,例如,全连接单元、卷积单元和池化单元等。所述学习单元的网络结构α={α(i,j)|1≤i<j≤k},其中,α(i,j)包括第i层隐层与第j层隐层之间与各计算单元对应的相对权重。所述第i层隐层的特征表示到第j个隐层的特征表示的计算为:根据所述α(i,j),两者之间各计算单元输出的加权和。
所述与各计算单元对应的相对权重,服从分类分布,为了方便基于优化方法进行训练,可设定为可学习的、连续化、参数化的变分分布。
进一步地,所述变分分布为concrete分布。
所述变分分布可根据实际的需要来进行设定,本发明实施例仅给出了其中的一种举例说明:concrete分布,但为了简便起见,在下面的实施例中都concrete分布为例进行举例说明。
训练单元11预先设定包含n个样本的训练集,每个样本(xn,yn)包括输入数据xn以及对应的预先标注的输出结果yn。
根据所述训练集,对由所述构建单元10构建的所述深度神经网络进行训练,并在结束训练后,最终得到所述学习单元的优化的网络结构,所述优化的网络结构包括每两个隐层间各计算单元对应的优化的相对权重。具体的训练过程如下:
1.由训练单元11随机选取训练集中一个大小为k的子集
2.误差计算单元12根据所述采样的网络结构,得到所述深度神经网络当前的证据下界(evidencelowerbound,elbo)。
3.判断单元13将当前的证据下界与上次训练完成后得到的证据下界进行比较,以得到所述证据下界的变化。若本次训练后得到证据下界的变化超过了预设的损失阈值,则判定训练未完成,进一步根据预设的优化方法,对所述采样的网络结构和网络参数进行优化。然后,重新从训练集中选取子集以继续执行1-3的训练过程。直到所述证据下界的变化小于等于所述损失阈值,则判定训练结束。
由上述的训练过程可知,本发明实施例的训练过程仅是对学习单元内部各隐层之间的连接关系进行训练,因此对于k层隐层结构,所述学习单元的网络结构α中共有k(k-1)/2个变量,每一个变量表示一对隐层之间的计算单元的相对权重。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过构建包括多个相同内部结构的学习单元的深度神经网络,并通过训练集对所述学习单元中各隐层间各计算单元的相对权重进行训练,以得到所述学习单元的优化的网络结构,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
基于上述实施例,进一步地,所述训练单元具体用于,从预设的训练集中随机提取训练子集,并根据预设的适应性系数,采用重参数化过程采样所述学习单元的网络结构。
为了防止在训练过程中出现训练难以收敛的问题,因此,在构建学习单元时,所述构建单元对重参数化过程添加预先设置的适应性系数β={β(i,j)}来调节采样的方差。从而所述训练单元得到的具体的重参数化过程为
具体过程如下:
a.从gumbel分布里随机采样出一组独立变量∈;
b.将(a)中得到的变量与适应性系数β相乘得到缩放后的变量;
c.将(b)中得到的变量与concrete分布的参数θ相加,然后除以温度系数τ;
d.将(c)中得到的结果输入softmax变换,得到采样的网络结构α=g(θ,β,∈)。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过为所述重参数化过程调协适应性系数,从而防止了训练过程中出现训练难以收敛的问题,从而为深度神经网络的预测性能和预测不确定性带来了全面提升。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(communicationsinterface)303、存储器(memory)302和通信总线304,其中,处理器301,通信接口303,存储器302通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行上述方法。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
本领域普通技术人员可以理解:此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。