广义高斯分布(GGD)和非对称广义高斯分布(AGGD)
《No-Reference Image Quality Assessment in the Spatial Domain》,BRISQUE。
1. 广义高斯分布,generalized Gaussian distribution,GGD
1.1 描述
零均值的广义高斯分布如下:

其中

而 Γ(·) 是gamma函数。
形状参数 γ 控制分布的“形状”,而 σ² 控制方差。
例如另 γ = 2 就会得到零均值的高斯分布:

首先记

则

因此

就得到了一个比函数:

1.2 参数估计方法
对于零均值广义高斯分布,计算估计值:

然后就有

在知道了 ρ(γ) 的估计值之后,就很容易通过枚举的方式来估计 γ。
1.3 代码
参考BRISQUE中给出的源代码:
function [gamparam sigma] = estimateggdparam(vec)
gam = 0.2:0.001:10;
r_gam = (gamma(1./gam).*gamma(3./gam))./((gamma(2./gam)).^2); sigma_sq = mean((vec).^2);
sigma = sqrt(sigma_sq);
E = mean(abs(vec));
rho = sigma_sq/E^2;
[min_difference, array_position] = min(abs(rho - r_gam));
gamparam = gam(array_position);
2. 非对称广义高斯分布,asymmetric generalized Gaussian distribution,AGGD
2.1 描述
零均值的非对称广义高斯分布如下:

其中

形状参数 α 控制分布的“形状”,而 σl2 和 σr2 是缩放参数,它们控制模式两边的扩散程度。当 σl2 = σr2 的时候,AGGD退化成GGD。
参考论文《MULTISCALE SKEWED HEAVY TAILED MODEL FOR TEXTURE ANALYSIS》的做法:
记

则

因此

所以记

就有

类似地

然后计算比值:

其中

2.2 参数估计方法
首先估计 σl2 和 σr2 :

所以

而 r 的一个无偏估计是

所以就可以

求得

然后就和上文的GGD的方法一样,枚举求出最优的 α 就可以了。
2.3 代码
也是来自BRISQUE的matlab代码:
function [alpha leftstd rightstd] = estimateaggdparam(vec)
gam = 0.2:0.001:10;
r_gam = ((gamma(2./gam)).^2)./(gamma(1./gam).*gamma(3./gam)); leftstd = sqrt(mean((vec(vec<0)).^2));
rightstd = sqrt(mean((vec(vec>0)).^2));
gammahat = leftstd/rightstd;
rhat = (mean(abs(vec)))^2/mean((vec).^2);
rhatnorm = (rhat*(gammahat^3 +1)*(gammahat+1))/((gammahat^2 +1)^2);
[min_difference, array_position] = min((r_gam - rhatnorm).^2);
alpha = gam(array_position);
广义高斯分布(GGD)和非对称广义高斯分布(AGGD)的更多相关文章
- 广义表操作 (ava实现)——广义表深度、广义表长度、打印广义表信息
广义表是对线性表的扩展——线性表存储的所有的数据都是原子的(一个数或者不可分割的结构),且所有的数据类型相同.而广义表是允许线性表容纳自身结构的数据结构. 广义表定义: 广义表是由n个元素组成的序列: ...
- Bayesian generalized linear model (GLM) | 贝叶斯广义线性回归实例
一些问题: 1. 什么时候我的问题可以用GLM,什么时候我的问题不能用GLM? 2. GLM到底能给我们带来什么好处? 3. 如何评价GLM模型的好坏? 广义线性回归啊,虐了我快几个月了,还是没有彻底 ...
- 第三章 广义线性模型(GLM)
广义线性模型 前面我们举了回归和分类得到例子.在回归的例子中,$y \mid x;\theta \sim N(u,\sigma ^{2})$,在分类例子中,$y\mid x;\theta \sim ...
- 广义线性模型 - Andrew Ng机器学习公开课笔记1.6
在分类问题中我们如果: 他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族. 指数分布族(The Exponential Family) 假设一个分布能够用例如以下公式表达, ...
- 广义线性模型(GLM)
一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...
- 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)
指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...
- C语言产生标准正态分布或高斯分布随机数
C语言 产生标准正态分布或高斯分布 随机数 产生正态分布或高斯分布的三种方法: 1. 运用中心极限定理(大数定理) #include #include #define NSUM 25 double g ...
- SPSS数据分析—广义线性模型
我们前面介绍的一般线性模型.Logistic回归模型.对数线性模型.Poisson回归模型等,实际上均属于广义线性模型的范畴,广义 线性模型包含的范围非常广泛,原因在于其对于因变量.因变量的概率分布等 ...
- 数据结构算法C语言实现(十九)--- 5.5&5.6&5.7广义表
一.简述 传说Lisp的基本数据结构就是广义表,广义表也是具有典型递归属性的数据结构,此外,由于建表要处理字符串,用C语言处理起来也是一脸懵逼.....最后自己还想写一个将广义表还原成字符串的函数,一 ...
随机推荐
- JS实现全选,取消全选,正常选择
//点击选择方法 onUserIdsChange(selVal) { if (this.form.groupUserIds.includes(-1) && !this.isSelect ...
- Linux下四种安装软件方式
1.yum源安装 可以解决依赖关系,但不确定安装的位置 2.rpm 基础安装 要自己解决依赖问题 rpm -ivh 安装 rpm -uvh 更新 rpm -e --nodeps 卸载 取消依赖 ...
- 攻防世界web新手练习区(2)
弱认证:http://111.198.29.45:43769/ 打开是这个页面: 用户名输入1,密码输入2,试试看.会提示你用户名为admin.接下来用burp对密码进行爆破,发现弱口令0123456 ...
- CodeForces - 876D Sorting the Coins
题意:有n个数的序列,n个数都为0,每次指定某个数变为1,当序列中第i个数为1,第i+1个数为0时,这两个数可交换,将序列从头到尾进行一次交换记为1次,直到某一次从头到尾的交换中没有任何两个数交换.序 ...
- 【Winform】ProgressBar
var progressBar1 = new System.Windows.Forms.ProgressBar(); ; progressBar1.Maximum = ; progressBar1.V ...
- Program-Language
1. 主流编程语言 2. 编程语言分类 2.1 编译or解释 2.2 按照客观系统的描述可分为两类 2.3 按照编程范型可分为 3. 语言范式 Paradigm 4. 计算机语 ...
- 浅谈MSF渗透测试
在渗透过程中,MSF漏洞利用神器是不可或缺的.更何况它是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.是信息收集. ...
- SpringAOP源码跟踪及学习
Spring 版本 4.3.2 在拿到 Bean 实例以后,会经历一系列的初始化工作,如:工厂回调.init 方法.后处理器在 Bean 初始化前后的处理等,在一般情况下(非 factory-meth ...
- yolov3.cfg参数解读
对于模型的优化,我们可以通过适当修改网络基本配置信息完成训练上的优化. yolov3.cfg文件: [net]# Testing #测试模式 batch=1 subdivisions=1# Train ...
- C语言备忘录——qsort
写了这么久的排序感觉还是用现成的最舒服.其实C语言其实自己带了一个快速排序在stdlib 库里,但是其函数调用的接口过于复杂,所以让人望而却步.为了加深自己的记忆,所以写下这篇博客 先来看一下函数原型 ...