pyro Bayesian Neural Networks HiddenLayer 是贝叶斯神经网络中的基本构件。它表示单个隐藏层

class HiddenLayer(X=NoneA_mean=NoneA_scale=Nonenon_linearity=<function relu>KL_factor=1.0A_prior_scale=1.0include_hidden_bias=Trueweight_space_sampling=False)[source]

A ~ Normal(A_mean, A_scale) output ~ non_linearity(AX)

Parameters

  • X (torch.Tensor) – B x D dimensional mini-batch of inputs

  • A_mean (torch.Tensor) – D x H dimensional specifiying weight mean

  • A_scale (torch.Tensor) – D x H dimensional (diagonal covariance matrix) specifying weight uncertainty

  • non_linearity (callable) – a callable that specifies the non-linearity used. defaults to ReLU.

  • KL_factor (float) – scaling factor for the KL divergence. prototypically this is equal to the size of the mini-batch divided by the size of the whole dataset. defaults to 1.0.

  • A_prior (float or torch.Tensor) – the prior over the weights is assumed to be normal with mean zero and scale factor A_prior. default value is 1.0.

  • include_hidden_bias (bool) – controls whether the activations should be augmented with a 1, which can be used to incorporate bias terms. defaults to True.

  • weight_space_sampling (bool) – controls whether the local reparameterization trick is used. this is only intended to be used for internal testing. defaults to False.

这种分布是贝叶斯神经网络中的基本构件。它表示单个隐藏层,即应用于一组输入的仿射变换X随后是非线性。权重中的不确定性被编码在由参数指定的正态变分分布中a _比例尺和平均水平。所谓的“局部重新参数化技巧”用于减少方差(见下文参考)。实际上,这意味着权重永远不会被直接采样;取而代之的是在预激活空间中采样(即在应用非线性之前)。由于权重从不被直接采样,当在变分推断的上下文中使用该分布时,必须注意正确缩放对应于权重矩阵的KL散度项。这一术语被归入log_prob这种分布的方法。

实际上,这种分布编码了以下生成过程:

正常(平均值,刻度)输出非线性(AX)

因素

  • X (火炬。张量)–B x D维小批量输入

  • 平均水平 (火炬。张量)–D x H尺寸规格重量平均值

  • a _比例尺 (火炬。张量)–D x H维(对角协方差矩阵)表示重量不确定性

  • 非线性 (请求即付的)–指定所用非线性的可调用函数。默认为ReLU。

  • KL _因子 (漂浮物)–KL散度的比例因子。典型地,这等于小批量的大小除以整个数据集的大小。默认为1.0.

  • a _先验 (漂浮物或者火炬。张量)–假设权重的先验是正态的,均值为零,比例因子为a _先验。默认值为1.0。

  • 包含_隐藏_偏差 (弯曲件)–控制激活是否应增加1,1可用于合并偏差项。默认为真实的.

  • 重量_空间_取样 (弯曲件)–控制是否使用局部重新参数化技巧。这仅用于内部测试。默认为错误的.

参考:

金玛、迪德里克·p、蒂姆·萨利曼斯和马克斯·韦林。"变分丢失和局部重新

Pyro贝叶斯神经网络是一种结合了贝叶斯推断和神经网络的统计模型。该模型利用Pyro库实现,可以用于进行概率编程和深度学习任务。 Pyro贝叶斯神经网络的核心思想是在神经网络模型中引入概率的概念,并利用贝叶斯推断的方法对模型的参数进行不确定性建模。与传统的神经网络相比,Pyro贝叶斯神经网络更能够灵活地处理未标记数据,能够为模型提供更加准确和可靠的预测结果。 在Pyro贝叶斯神经网络中,模型的参数不再是确定的值,而是服从概率分布的随机变量。这样带来的好处是可以在训练模型时对参数的不确定性进行建模,提高模型的鲁棒性。同时,模型的参数也可以根据新的数据进行不断更新和调整,从而实现动态的学习过程。 Pyro贝叶斯神经网络的建模过程主要包括定义模型结构、定义先验分布和定义观测数据的条件概率分布。在建模过程中,可以使用Pyro提供的各种分布函数和算子来构建模型的组件。通过贝叶斯推断的方法,可以从观测数据中推断出后验分布,从而得到模型参数的不确定性估计。 总之,Pyro贝叶斯神经网络是一种结合了贝叶斯推断和神经网络的强大统计模型。它能够灵活地处理不确定性,并为模型提供更准确和可靠的预测结果。它的出现进一步丰富了概率编程和深度学习领域的工具箱,为解决实际问题提供了一个强大的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值