信息极大化(Informax)盲分离算法及matlab源码

参考文献:独立分量分析FastICA和Informax算法比较研究
1988年Linker提出了Infomax(Information Maximization)原则,即信息传输极大原则。可描述为:网络的输入端和输出端的互信息达到最大时,等价于输出端各分量间的冗余信息得到去除。
算法的思路是:对每个观测向量 X(t)先通过线性变换求一个中间向量Y=WX(t) 。然后通过非线性变换 Zi=g(Yi)求得输出向量Z 。根据互信息的性质可知:分量到分量的非线性映射 g(.)对互信息不产生任何的影响, I(Z)的最小化也意味着I(Y) 的最小化。于是针对 Z(t)建立一个目标函数,这里选择 Z(t)的熵作为目标函数,因为熵是一个随机量无序性的度量,如果Z(t) 的各分量的统计独立性越高则相应 Z(t)的熵越大,所以只需求得使得目标函数达到最大的W 即求得了ICA的解。此思路是模仿单层前向神经网络,X 和 Z分别网络的输入与输出。
盲分离框图是
信息极大化(Informax)盲分离算法及matlab源码_第1张图片
由概率论知识可知,当非线性函数g(y)是一个单调可逆的函数时候,输出信号的概率密度可以用输入信号的概率密度来表示,公式为(单信号的信号)
这里写图片描述
当为多信号的时候,输出的概率密度表达式可表示为
这里写图片描述
式中 |J|是雅可比变换的绝对值,其表示为
信息极大化(Informax)盲分离算法及matlab源码_第2张图片
而其中
这里写图片描述
故对于盲分离系统,雅可比变换可以简化
这里写图片描述
再则,根据上述论述, Infomax算法的目标函数为:
这里写图片描述
则可知
这里写图片描述
化简后有
这里写图片描述
用随机梯度法求解可得
这里写图片描述
式中:这里写图片描述为概率密度函数。
由于上式需要对 W求逆,很大程度上影响了算法的收敛速度。故1996年Amari等人提出了自然梯度法或者说相对梯度法。相对梯度法是在随机梯度算法求得的等式右乘一个 这里写图片描述,即:
这里写图片描述

因此信息最大化算法的matlab如下,可以看出和极大似然算法推导的盲分离算法一致。

function w=informaxICA(Z,number)
%%
% Z为输入的混合信号
% number为信号的个数
% /////去均值和预白化处理////////////
[m,n]=size(Z);
% ///////////////////

% 、、、、、、、、、、使用自然梯度分离信源、、、、、、、、、
%% separate 
I = eye(number);  
W = I;  
lamda=0.005;
%%%%%%逐个点的运算---------------------
for sep_t = 1:n 
    y = W*Z(:,sep_t); 
    f = diag(y*y').*y;
%f=y-tanh(y);%混合高斯函数的刻画函数(亚高斯)。y+tanh(y)为修正的双曲正割函数平方的激活函数,f=-p'/p其中p'表示的是求导数;

   g=y';
    W = W+lamda*(I-f*g)*W; %这是用于在无噪条件下的梯度分离
end 
%%%------------------------------------------------------
w=W;

你可能感兴趣的:(盲源分离相关算法讲解)