No testdata at current.
不太懂这些公式怎么算,有懂哥可以写一份标答给塔子哥,塔子哥来出数据
KL 散度是机器学习,深度学习等领域中关于分布距离度量的重要的方法。
对于两个给定连续分布 P 和 Q ,他们的 KL 散度定义为 DKL(p∣∣q)=∫p(x)logq(x)p(x)dx 。
对于两个正态分布 N(μp,Σp) 和 N(μq,Σq) ,可以通过简单的运算得知他们的 KL 散度为
$D_{KL(p||q)} = \frac{1}{2} [log\frac{\sum_q}{ \sum_p} - k +(\mu_p -\mu_q)^T\Sigma^{-1}_{q}(\mu_p - \mu_q)+tr\{\Sigma^{-1}_q \Sigma_p\}]$
其中 ∣⋅∣ 表示矩阵的行列式, tr(⋅) 表示矩阵对角线元素求和, log 以自然对数 e 为底。
现在给定其中一个正态分布 q 为 N(0,I) ,另一个分布 p 为 N(0,Σp′) , Σp′ 是一个 k 阶对角阵,试判断这两个正态分布的 KL 散度 DKL(p∣∣q) 是否大于给定闻值 t ,若大于则输出 1 ,否则输出 0 。
第一行表示为测试数据组数 T ,接下来每一组有 2 行,
一组的第一行为 k 和 t ,矩阵 Σp′ 的维度是 k×k , t 为给定阈值。其中 1≤k≤103 , 1≤t≤105 。
一组的第二行有有 k 个浮点数,为矩阵 Σp′ 的对角元。
这两个正态分布的 KL 散度是否大于给定阈值 t ,若大于则输出 1 ,否则输出 0 。
输入
2
3 10.5
4.5 3.4 6.5
3 2.2
4.5 3.4 6.5
输出
0
1
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.