首页 > 其他分享 >DIM中的一些知识点(慢更)

DIM中的一些知识点(慢更)

时间:2023-03-31 16:44:44浏览次数:37  
标签:知识点 log DIM 公式 sum KL 一些 上面

最大深度互信息模型(DIM)执行图片搜索器

  1. MINE方法:
    之前看下面这句话的时候总是云里雾里,好好推了下公式终于明白啦。
    利用神经网络计算互信息可以转换为计算两个数据集合的联合分布和边缘分布之间的散度

    具体推导过程:
    image

    如图,首先,我们有:

          I(X;Y) = H(X) - H(X|Y)
    

    其中,H(X|Y) 表示给定随机变量 Y 的条件下,随机变量 X 的条件熵。根据条件熵的定义,我们有:

        H(X|Y) = - sum_x sum_y P(x,y) log(P(x|y))
    

    将这个公式代入上面的公式中,我们得到:

      I(X;Y) = H(X) + sum_x sum_y P(x,y) log(P(x|y))
    

    根据概率论中的乘法规则,我们有 P(x,y) = P(x|y)P(y),因此上面的公式可以写成:

      I(X;Y) = H(X) + sum_x sum_y P(x,y) log(P(x,y)/P(y))
    

    由于 H(X) = - sum_x P(x) log(P(x)),因此上面的公式可以写成:

    I(X;Y) = - sum_x P(x) log(P(x)) + sum_x sum_y P(x,y) log(P(x,y)/P(y))
    

    将上面的公式中的求和号用全概率公式 P(x)=sum_y P(x,y)拆开,我们得到:

    I(X;Y) = - sum_x sum_y P(x,y) log(P(x)) + sum_x sum_y P(x,y) log(P(x,y)/P(y))
    

    接下来,我们将上面的公式中的两个求和号合并成一个求和号,得到:

    I(X;Y)=sum_x sum_y P(x,y)(log(P(x,y))-log(P(x))-log(P(y)))
    

    根据对数函数的性质,我们有 log(a/b)=log(a)-log(b),因此上面的公式可以写成:

    I(X;Y)=sum_x sum_y P(x,y)(log(P(x,y)/(P(x)*P(y))))
    

    根据 KL 散度的定义,我们有 D_KL(P||Q)=sum_x P(x)(log(P(x)/Q(x))),因此上面的公式可以写成:

     I(X;Y)=D_KL(P(X,Y)||P(X)*P(Y))
    

    这就是互信息和 KL 散度之间的关系。

标签:知识点,log,DIM,公式,sum,KL,一些,上面
From: https://www.cnblogs.com/zzz1zzz/p/17276676.html

相关文章

  • QMainWindow知识点记录
    1.新建action toolbaropenFileAction = new QAction(QIcon(":/pic/open"), QString::fromLocal8Bit("打开"), this); openFileAction->setShortcut(tr("Ctrl+O")); openFileAction->setStatusTip(tr("打开一个文件"));-------......
  • playwright 使用日常知识点积累--不定期补充
    简介:Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。官网地址:Playwright|Playwright.NET一:Playwright安装及介绍Pl......
  • CSS总复习(二)一些属性介绍
    CSS字体、文本样式指定字体不能指望用户的机器上一定安装了你想使用的字体。解决这个问题的方法是使用Web字体,我们可以直接下载Web字体并使用在自己的页面上,而不需要用户做什么。使用@font-face指定Web字体,如:@font-face{font-family:'MyFont';font-style:normal;......
  • 总结三次题目集的知识点、题量、难度等情况
    前言:题目集1是Java入门,大至涵盖了Java的几种基本语言结构,如循环,选择,数组。与c语言大致相似,上手较容易。但是题目难度不低,7-10GPS数据处理,不仅题目长难以理解,对有难度的字符串要求掌握熟练,输出要考虑的情况也很多,题目也达12题之多。其他题目在c语言里写过近似一模一样的题,写这个题......
  • MySQL主键的一些思考
    MySQL创建表的时候可以不设置主键吗?MySQL创建表的时候是可以不主动设置主键的,但是表是一定需要一个主键的,MySQL会主动将第一个不为null的唯一索引设置为主键为什么MySQL推荐使用自增id作为主键?MySQL官方推荐不要使用uuid或者不连续不重复的雪花作为主键,而是使用连续自增的主键id......
  • 小小知识点-tag
    1、trunk是带着tag标识转发的,除了默认vlan可以不带tag标识2、access转发出去不带tag标识SW1:<sw1>displaycurrent-configuration #sysnamesw1#vlanbatch1020#clusterenablentdpenablendpenable#dropillegal-macalarm#diffservdomaindefault#drop-profil......
  • LabVIEW | 知识点:移位寄存器
    移位寄存器循环结构里(while、for)常常用到移位寄存器,作为暂存数据的一种很有效的方式(移位寄存器可以存任何类型的数据)。如下图,上面循环对移位寄存器进行过初始化,下面的循环未......
  • 【计算机网络】物理层与数据链路层知识点
    引自CSDN博主「原来如此呀」的原创文章,原文链接计算机网络的正式定义:利用通信线路和通信设备,将地理位置不同的、功能独立的多台计算机互联起来,以功能完善的网络软件来实现......
  • 编写高效C++代码的一些方法
    1.使用基于range的for循环这是C++11中非常酷的特性,如果你想从头到尾迭代,这是最好的方法。usingnamespacestd;intmain(){vector<int>vec={0,1,2,3,4};......
  • 关于 kafka 的一些经验
    1.kafka高吞吐原因PageCache+顺序写磁盘(读与写)producer请求:Server端的I/O线程统一将请求写到操作系统的PageCache后立即返回,当消息达到一定阈值后,Kafka应......