初识贝叶斯压缩感知
一、贝叶斯理论:1. 先验信息:在抽样前有关统计推断的一些信息,贝叶斯公式数学表达为:P(A|B)=P(A,B)P(B)(公式1)P(A|B)=\frac{P(A ,B)}{P(B)}(公式1) 2. 先验分布:将θ∈Θ\theta\in\Theta当作取值于Θ\Theta的随机变量,若θ∈Θ\theta\in\Theta满足概率密度函数p(θ)p(\theta),则称
一、贝叶斯理论:
1. 先验信息:
在抽样前有关统计推断的一些信息,贝叶斯公式数学表达为:
2. 先验分布:
将 θ∈Θ <script type="math/tex" id="MathJax-Element-2">\theta\in\Theta</script>当作取值于 Θ <script type="math/tex" id="MathJax-Element-3">\Theta</script>的随机变量,若 θ∈Θ <script type="math/tex" id="MathJax-Element-4">\theta\in\Theta</script>满足概率密度函数 p(θ) <script type="math/tex" id="MathJax-Element-5">p(\theta)</script>,则称 p(θ) <script type="math/tex" id="MathJax-Element-6">p(\theta)</script>为参数 θ <script type="math/tex" id="MathJax-Element-7">\theta</script>的先验概率分布。
3. 似然函数:
假设样本 X={x1,x2,x3,x4,…,xN} <script type="math/tex" id="MathJax-Element-8">X=\{x_1,x_2,x_3,x_4,\ldots,x_N\}</script>,各样本是相互独立的,则样本的联合分布密度函数为:
4. 后验分布:
在公式2的联合分布当中,若样本给定,设未知参数为 θ <script type="math/tex" id="MathJax-Element-15">\theta</script>,
那么 θ <script type="math/tex" id="MathJax-Element-16">\theta</script>的条件概率密度函数可表示为:
二、贝叶斯压缩感知
1.贝叶斯压缩感知
设一个原始信号 X <script type="math/tex" id="MathJax-Element-20">X</script>。它是实值、有限长并且一维离散的。假定
基于压缩感知框架,将x投影到某个测量矩阵 Φ <script type="math/tex" id="MathJax-Element-29">\Phi</script>上。
2. 简单代码demo
要运行下面这段代码,还必须去这个网站
:http://people.ee.duke.edu/~lcarin/BCS.html
上面下载 bcs_ver0.1.zip 这个代码包。复制里面的BCS_fast_rvm.m文件和下面这段代码放在同一个workspace下面就可以了。另外需要下载lena.bmp这张256*256大小的测试图片。
%------------------------------------------------------
% This code generates Figure 2 of the following paper:
% "Bayesian Compressive Sensing" (Preprint, 2007)
% This example is modified from l1qc_example.m, an example
% from l1magic.
% Coded by: Shihao Ji, ECE, Duke University
% last change: Jan. 2, 2007
%------------------------------------------------------
clear all
addpath('BCSdemo');
img=imread('lena.bmp'); % read in the image "lena.bmp"
img=double(img);
[height,width]=size(img);
img_rec=zeros(height,width);
N=height; % signal length
K = 150; % number of CS measurements
% projection matrix
phi= randn(K,N);
phi = phi./repmat(sqrt(sum(phi.^2,2)),[1,N]);
% noisy observations
sigma = 0.0001;
e = sigma*randn(K,1);
%DCT基
mat_dct_1d=zeros(256,256); % building the DCT basis (corresponding to each column)
for k=0:1:255
dct_1d=cos([0:1:255]'*k*pi/256);
if k>0
dct_1d=dct_1d-mean(dct_1d);
end;
mat_dct_1d(:,k+1)=dct_1d/norm(dct_1d);
end
Theta_1d=phi*mat_dct_1d;%测量矩阵乘上基矩阵
for i=1:width
%利用BCS重建
x=img(:,i);
y =phi*x + e;
initsigma2 = std(y)^2/1e2;% std(y):Standard deviation
[weights,used,sigma2,errbars] = BCS_fast_rvm(Theta_1d,y,initsigma2,1e-8);
x_BCS = zeros(N,1); err = zeros(N,1);
x_BCS(used) = weights; err(used) = errbars;
img_rec(:,i)=x_BCS';
end
img_rec=mat_dct_1d*img_rec; % inverse transform 稀疏系数乘上
figure
subplot(1,2,1),imshow(uint8(img)),title('original image')
subplot(1,2,2),imshow(uint8(img_rec)),title('rec image')
3. 结果
.
更多推荐
所有评论(0)