热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

onlinelda的dirichlet_expectation函数

2019独角兽企业重金招聘Python工程师标准起因看onlineldavb.py的时候看到求E[log(theta)]期望的函数如下:defdirichlet

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

起因

看onlineldavb.py的时候看到求E[log(theta)] 期望的函数如下:

def dirichlet_expectation(alpha):"""
For a vector theta ~ Dir(alpha), computes E[log(theta)] given alpha.
"""if (len(alpha.shape) == 1):return(psi(alpha) - psi(n.sum(alpha)))return(psi(alpha) - psi(n.sum(alpha, 1))[:, n.newaxis])
今天看了半天都不理解为何dirichlet的期望可以由上面的函数来实现,后来看到几个公式之后才明白,这里记录一下过程。

psi函数

psi应该是gamma函数的一阶导数,有以下代码可以理解:

>>> from scipy import special
>>> x = [2, 3, 25.5]
>>> special.polygamma(1, x)
array([ 0.64493407, 0.39493407, 0.03999467])
>>> special.polygamma(0, x) == special.psi(x)
array([ True, True, True], dtype=bool)
polygamma是gamma函数的N阶导数。

公式推导

\Psi(x) = \frac{d}{dx} \ln(\Gamma(x))

其它细节可参考链接:http://www.hiit.fi/u/ahonkela/dippa/node95.html

(话说osc如何插入公式?)



转:https://my.oschina.net/dancing/blog/187365



推荐阅读
  • 前端开发PPT页面与评论区展示优化
    本文介绍了如何在前端开发中实现一个类似于StackOverflow样式的PPT展示页面和评论区,提供了项目源代码及在线演示链接,并分享了开发过程中遇到的挑战及其解决方案。 ... [详细]
  • 线段树详解与实现
    本文详细介绍了线段树的基本概念及其在编程竞赛中的应用,并提供了一个具体的线段树实现代码示例。 ... [详细]
  • POJ2263是一个经典的图论问题,涉及寻找从起点到终点的最大载重路径。本文将详细介绍该问题的背景、解题思路及代码实现。 ... [详细]
  • Python Requests模块中的身份验证机制
    随着Web服务的发展,身份验证成为了确保数据安全的重要环节。本文将详细介绍如何利用Python的Requests库实现不同类型的HTTP身份验证,包括基本身份验证、摘要式身份验证以及OAuth 1认证等。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • 本文介绍了如何通过 XMLHttpRequest 对象在不同浏览器中实现 AJAX 的 POST 和 GET 请求,并详细说明了 XMLHttpRequest 的五个状态及其含义。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • 本文探讨了如何高效地计算数组中和为2的幂的偶对数量,提供了从基础到优化的方法。 ... [详细]
  • 本文介绍了如何解决 ChinaASP.Upload 错误 '80040002',即必须添加版权信息的问题,并提供了详细的步骤和注意事项。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • MATLAB是科技工作者的重要工具,以其强大的科学计算能力和简洁的编程风格而广受好评。然而,MATLAB生成的图形默认分辨率较低,这在某些情况下可能会影响图形的质量。本文将介绍如何在MATLAB中保存高分辨率的图形。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 本文探讨了使用 JavaScript 和 HTML5 Canvas 实现经典马里奥游戏克隆过程中遇到的碰撞检测和跳跃问题,并提供了详细的解决方案。 ... [详细]
author-avatar
潘月飞--_758
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有