HNN混合神经网络 混合密度神经网络_神经网络


假设我们用神经网络拟合这些数据,结果如下,效果不错。

HNN混合神经网络 混合密度神经网络_HNN混合神经网络_02

But,只适用于1输入1输出(one-to-noe),多输入1输出(many to one)的情况,如果我们将数据集倒转(invert)一下

HNN混合神经网络 混合密度神经网络_神经网络_03


我们看到训练的神经网络只会拟合这些数据的均值,如上图。

当前模型只预测每个输入的一个输出值,所以这种方法将失败。 我们想要具有预测每个输入的不同输出值范围的能力的模型。 这需要混合密度网络(MDN)。
该方法更希望网络预测单个输出值,网络将预测输出的整个概率分布。 这个概念相当给力,可以用于机器学习研究的许多当前领域。 它还允许我们在网络正在进行的预测中计算某种置信因子。

我们选择的反正弦数据不仅仅是一个玩具问题,因为在机器人领域有应用,例如,我们想要确定哪个角度需要移动机器人手臂以实现目标位置。 MDN也可以用于模拟手写,其中下一个笔划是从多个可能性的概率分布绘制的,而不是坚持一个预测。

Bishop的MDNs的实现将预测称为混合高斯分布的一类概率分布,其中输出值被建模为许多高斯随机值的和,每个具有不同的均值和标准偏差。 因此对于每个输入x,我们将预测概率分布函数(probability distribution function pdf)

P(Y=y|X=x)是较小高斯概率分布的概率加权和。

HNN混合神经网络 混合密度神经网络_MDN_04

HNN混合神经网络 混合密度神经网络_数据_05

由MDN得到

这里有些限制,

HNN混合神经网络 混合密度神经网络_神经网络_06

的和为1,为了保证概率和为1,

HNN混合神经网络 混合密度神经网络_MDN_07

必须是正数。

在我们的实现中,我们将使用一个隐藏的神经网络,后来具有24个节点,并且还生成24个混合,因此将存在单个输入的神经网络的72个实际输出。 我们的定义将分为2部分:

HNN混合神经网络 混合密度神经网络_神经网络_08


Z是一个由72个值的向量,稍后被分为三部分Z0~23,Z24~43,Z44~71

HNN混合神经网络 混合密度神经网络_HNN混合神经网络_09


HNN混合神经网络 混合密度神经网络_神经网络_10

要放入softmax运算符中,为确保和为1,并且每个mixture的概率是正的。结果如下:

HNN混合神经网络 混合密度神经网络_HNN混合神经网络_11