对于一个加性高斯白噪声信道
假设输入信号X的功率为3w,噪声a的功率为0.2w,其中X和a是相互独立的。于是 互信息的理论值计算如下。
然后构建数据集:
data_dim = 3
instances_num = 20000,
X.shape = [instances_num, data_dim ] = [20000, 3]
Y.shape = [instances_num, data_dim ] = [20000, 3]
tiled_x = [x, x] (shape=[40000, 3])
cat_y = [y, shuffled_y](shape=[40000, 3])
input 是把tiled_x和cat_y二维拼接到一起,shape=[40000, 6],结构是
输入时输出是六维,经过hidden层输出一维。其中前[:instances_num]个是联合分布的结果,后半部分是边缘分布的乘积的结果。然后带入原论文中的公式并通过神经网络进行梯度上升。
最后的结果如下
思考:
为什么前半部分相当于联合分布的结果、后半部分相当于边缘分布的乘积的结果?
在上图这个神经网络的计算过程中,因为x1和z1是来自于同一个数据源d1的,所以(x1, z1)可以看似成是联合分布中的采样。而x1和z2是来自于不同数据源的,所以(x1, z2)可以看似成是联合分布中的采样。