计算条件熵的小例子

一个二进制源X发出符号集为{-1,1},经过离散无记忆信道传输,由于信道中噪音的存在,接收端Y收到符号集为{-1,1,0}。已知:
P(x=-1)=1/4,P(x=1)=3/4,P(y=-1|x=-1)=4/5,P(y=0|x=-1)=1/5,P(y=1|x=1)=3/4,P(y=0|x=1)=1/4
求:H(Y|X)。

H(Y|X)=p(x=-1)*H(y|x=-1) + p(x=1)*H(y|x=1)

1变成了{1, 0}的情况:
H(y|x=1)=-P(y=1|x=1)*log[P(y=1|x=1)] - P(y=0|x=1)*log[P(y=0|x=1)]
        = -3/4 * log(3/4) - 1/4 * log(1/4)
        = 0.75*0.125/0.301 + 0.25*0.602/0.301
        = (0.09375‬ + 0.1505‬)/0.301
        = 0.81146

-1变成了{-1, 0}的情况:

H(y|x=-1)=-P(y=-1|x=-1)*log[P(y=1|x=-1)] - P(y=0|x=-1)*log[P(y=0|x=-1)]
         =-4/5 * log(4/5) - 1/5 * log(1/5)
         = -0.8*(-0.097)/0.301 - 0.2 * (-0.70)/0.301
         = (0.0776‬+0.14)/0.301 
         = 0.7229

H(Y|X) = 1/4 * 0.7229 + 3/4 * 0.81146
       = 0.18072 + 0.6086 = 0.7893

注:win10计算器log是以10为底的(由 log(8) / log(2) = 3可知),转换成以2为底需要除以lg2。lg2 = 0.301。

所以log(2, 0.75) = lg(0.75) / lg2 = -0.125 / 0.301 = -0.415

 

 

 

 

 

计算最优分布概率的问题是一个优化问题,通常可以使用数值优化方法来解决。以下是一个使用 MATLAB 的 fmincon 函数进行最优化的示例代码: ```matlab % 输入数据 data = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]; % 计算数据集大小 n = numel(data); % 定义目标函数 obj_fun = @(p) -sum(p .* log2(p)); % 定义约束条件 A = []; b = []; Aeq = ones(1, n); beq = 1; lb = zeros(1, n); ub = ones(1, n); % 进行优化 initial_guess = ones(1, n) / n; % 初始猜测为均匀分布 options = optimoptions('fmincon', 'Display', 'off'); optimal_probabilities = fmincon(obj_fun, initial_guess, A, b, Aeq, beq, lb, ub, [], options); % 打印最优概率分布 fprintf('最优概率分布: '); disp(optimal_probabilities); ``` 在这个示例中,我们首先定义了一个数据集 `data`,它包含了一些整数值。然后我们计算了数据集的大小 `n`。接下来,我们定义了目标函数 `obj_fun`,即需要最小化的函数,这里使用了信息熵的负值。我们还定义了约束条件,其中 `A` 和 `b` 是不等式约束,`Aeq` 和 `beq` 是等式约束,`lb` 和 `ub` 是变量的上下界。在这个例子中,我们将约束条件设置为概率之和为1,以确保最优化得到的概率分布是有效的。 最后,我们使用 `fmincon` 函数进行优化,其中 `initial_guess` 是初始猜测的概率分布,`options` 是优化选项,这里设置为不显示优化过程。优化完成后,我们将得到的最优概率分布打印出来。 请注意,这只是一个简单的示例代码,你需要根据你的具体需和约束条件进行相应的修改。同时,由于优化问题可能有多个局部最优解,所以结果可能会受到初始猜测和优化算法的影响。因此,在实际应用中,可能需要使用不同的初始猜测和优化算法来获取更好的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值