最大化熵函数和CVX求解方法


熵函数的凸性

假设随机变量 x = x i , i = 1 , 2 , . . . N x=x_i,i=1,2,...N x=xi,i=1,2,...N 的概率为 p i , i = 1 , 2 , . . . N p_i,i=1,2,...N pi,i=1,2,...N ,则熵可以表示为:
H ( p 1 , p 2 , . . . p N ) = − ∑ n = 1 N p i log ⁡ 2 ( p i ) , ∑ n = 1 N p i = 1 , p i ≥ 0 H(p_1,p_2,...p_N)=-\sum_{n=1}^Np_i\log_2(p_i),\quad\sum_{n=1}^Np_i=1,p_i\geq0 H(p1,p2,...pN)=n=1Npilog2(pi),n=1Npi=1,pi0
极大化熵等价于极小化 − H -H H ,原优化问题可以表示为:
m i n i m i z e − H ( p 1 , p 2 , . . . p N ) s u b j e c t    t o ∑ n = 1 N p i = 1 p i ≥ 0 \quad\quad\quad{\rm{minimize} } \quad -H(p_1,p_2,...p_N)\\ {\rm{subject \; to}} \quad \sum_{n=1}^Np_i=1\\ \quad\quad\quad p_i\geq0 minimizeH(p1,p2,...pN)subjectton=1Npi=1pi0

根据凸函数的性质,通过证明 ∇ p 2 ( − H ) ⪰ 0 \nabla_p^2(-H)\succeq0 p2(H)0即可证明 − H -H H 的凸性:
∇ p 1 ( − H ) = 1 ln ⁡ ( 2 ) ( 1 + ln ⁡ ( p 1 ) 0 0 ⋯ 0 0 1 + ln ⁡ ( p 2 ) 0 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ 1 + ln ⁡ ( p N ) ) \nabla_p^1(-H)=\frac{1}{\ln(2)}\left( \begin{matrix} 1+\ln(p_1)& 0 &0 &\cdots &0 \\ 0 &1+\ln(p_2)& 0 &\cdots &0 \\ \vdots &\vdots &\vdots &\ddots &\vdots\\ 0 & 0&0 &\cdots &1+\ln(p_N)\\ \end{matrix} \right) p1(H)=ln(2)11+ln(p1)0001+ln(p2)0000001+ln(pN)
∇ p 2 ( − H ) = 1 ln ⁡ 2 ( 1 p 1 0 0 ⋯ 0 0 1 p 2 0 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ 1 p N ) ⪰ 0 \nabla_p^2(-H)=\frac{1}{\ln2}\left( \begin{matrix} \frac{1}{p_1} & 0 &0 &\cdots &0 \\ 0 &\frac{1}{p_2} & 0 &\cdots &0 \\ \vdots &\vdots &\vdots &\ddots &\vdots\\ 0 & 0&0 &\cdots &\frac{1}{p_N} \\ \end{matrix} \right)\succeq0 p2(H)=ln21p11000p21000000pN10
由上可知, − H -H H 是一个凸函数,且约束为线性约束,则该问题是凸优化问题。

求解凸优化问题

利用Matlab CVX工具箱求解这个凸优化问题。

clc
clear all
n_p = 32;  %假设概率值的个数为32
cvx_begin 
    variable p(n_p)
    minimize sum(rel_entr(p,1))  
    subject to
        p>=0
        sum(p)==1
cvx_end
result = -p'*log(p)/log(2)

其中 r e l _ e n t r ( x , y ) = x log ⁡ ( x y ) {rel\_entr}(x,y)=x\log(\frac{x}{y}) rel_entr(x,y)=xlog(yx)

求得熵的最大值: r e s u l t = 5 , p i = 1 32 {result}=5,p_i=\frac{1}{32} result=5,pi=321

注意

若直接 m i n i m i z e s u m ( p . ∗ l o g ( p ) ) {\rm{minimize}} \quad {\rm{sum}}(p.*log(p)) minimizesum(p.log(p)),则工具箱会报错:
在这里插入图片描述

总结

首先证明了熵函数的凸性,之后通过CVX工具箱求解了这个凸优化问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值