Matlab中FastICA工具箱的使用说明
一、 工具箱使用方法
1. 把工具箱的整个文件夹添加到工作目录(Current Directory)下,或者点击
fileSet PathAdd Folder/Add with Subfolders把 fastICA 的那个文件夹加进
去save。后面的方法是一劳永逸的事情,这样在任何工作目录下都能够调
用工具箱的函数了。
2. 在命令窗口(command window)直接输入 fasticag 回车,就可以使用图形
化用户界面了。也可以在你的程序中调用 fastica()这个函数,具体参数的设置
看后面有详解。
二、 各个文件的作用
Cotents.m 文件全部都是注释,说明了每个文件的用途,不过都是英文,现总结
如下:
fastICA 有两种使用方法(fastICA 用了 fixed‐point 算法)
1.
2.
其他文件都是被 fasticag.m 和 fastica.m 调用。
fasticag.m 是这个工具箱的图形化界面
fastica.m 是命令行版本
被 fasticag.m 和 fastica.m 调用的函数
1.
fpica.m 计算独立成分的主要算法
2. whitennv.m 白化数据
3. pcamat.m 对数据 pca
4.
remmean.m 减去均值
icaplot.m 画出信号的曲线图。根据参数不同有不同的调用方式,具体看程序
5.
前面的注释(偷懒了啊)
只被 fasticag.m 调用的函数
1. gui_cb.m
2. gui_adv.m
3. gui_advc.m
4. gui_l.m 装载数据 初始化高斯矩阵
5. gui_lc.m
6. gui_s.m
7. gui_sc.m
8. gui_cg.m
9. gui_help.m
备注:fasticag.m 主要调用 gui_cb.m 其它有的的是被 gui_cb.m 调用的,总之,直
接或间接它们是被 fasticag.m 调用。
北京理工大学 计算机学院 刘茜 倾心制作
杂项:不调用别人也不被调用
demosig.m 人工生成测试信号和混合信号(不需要输入参数)。 用户可以,输入
混合信号来看看 FASTICA 是怎么工作的。
已经被遗弃的
dispsig.m 画数据向量的,现被 icaplot.m,取代了
三、 函数 fasticag.m 和 fastica.m 的使用说明
fasticag.m
调用此函数时参数不是必要的。也可以输入参数fasticag(mixedsig, InitialGuess)
mixedsig 是以多维信号为行向量的矩阵
InitialGuess 给出算法混合矩阵的初始值
fastica.m
[Out1, Out2, Out3] = fastica(mixedsig, varargin)
[icasig] = fastica (mixedsig)
函数的输出由输出参数的个数决定,调用方式有以下几种
1.
mixedsig 是以多维信号为行向量的矩阵。
icasig 的每一行是估计出的独立成分(IC)
[icasig, A, W] = fastica (mixedsig)
2.
mixedsig 是以多维信号为行向量的矩阵。
icasig 的每一行是估计出的独立成分(IC)
A 是计算出的混合矩阵
W 是计算出的解混矩阵
3.
[A, W] = fastica (mixedsig)
只保存混合矩阵和解混矩阵
fastica 被调用时也可以加入选项参数。选项参数以参数对形式出现,顺序为参数
名、参数值。不同参数对直接顺序可任意。
参数名
值和参数描述
‘approach’
‘num’
‘g’
基本参数
选择去相关的方法
‘symm’并行估计独立成分
‘delf’一个一个的估计独立成分,为默认值
估计出的独立成分的个数,默认与数据维数相等
选择非线性
非线性(nonlinearity)的不同方法
'pow3' (default)
g(u)=u^3
北京理工大学 计算机学院 刘茜 倾心制作
‘finetune’
‘a1’
‘a2’
‘mu’
‘stabilization’
‘initGuess’
‘verbose’
‘displayMode’
’
‘displayInterval’
‘firstEig’
’lastEig’
‘interactivePCA’
控制收敛
终止准则,默认为 0.0001
‘epsilon’
‘maxNumIterations’ 最大迭代次数,默认为 1000
‘sampleSize’
g(u)=tanh(a1*u)
g(u)=u*exp(‐a2*u^2/2)
g(u)=u^2
'tanh'
'gauss
'skew'
调整(提高算法的统计性能)
‘off’ 不调整
pow3' 调整时采用此非线性方法g(u)=u^3
'tanh' 调整时采用此非线性方法g(u)=tanh(a1*u)
'gauss 调整时采用此非线性方法g(u)=u*exp(‐a2*u^2/2)
'skew'
当使用’g’时,g(u)=tanh(a1*u)中的参数 a1,默认为 1
当使用’g’时,g(u)=u*exp(‐a2*u^2/2)中的参数 a2,默认为 1
步长,默认为 1;如果此值小于 1,项目就使用稳定化的算
法
‘on’ ‘off’默
认
控制是否进行稳定化,如果为’on’,当算法在两点之间或迭
代次数为最大值的一半时还未收敛,mu 就会减半
调整时采用此非线性方法 g(u)=u^2
一次迭代中的样本百分比(样本的选择是随机的),是 0‐1
之间的数字,默认为 1,即全部样本
初始高斯矩阵 A,默认为随机产生
图像和文本输出
是否以文本的格式输出算法的进展情况
‘on’ 默认
‘off’
画出正在运行的独立成分的估计
‘signals’
‘basis’
‘filters’
‘off’默认
迭代几次后绘图一次
默认为 1
控制维度的减少和白化
‘firstEig’和’lastEig’决定了要保留的特征值的范围 ‘firstEig’是
要保留的最大特征值的索引,默认为 1
’lastEig’ 是要保留的最小特征值的索引,默认为数据的维度。
如果‘firstEig’和’lastEig’都取默认值那么就是取所有特征值
‘on’显示特征值给用户,用户可以和程序交互,选择特征值
的范围。
‘off’默认
‘gui’用户可以使用和 fasticag 相同的图形化用户界面
如果已经知道协方差矩阵的特征值分解,就不必再计算了,可直接以参数形式给
北京理工大学 计算机学院 刘茜 倾心制作
(矩阵)特征向量
(矩阵)特征值
出,如下
‘pcaE’
‘pcaD’
如果已经知道白化数据,可以直接在算法中以参数给出,如下
’whiteSig’
‘whiteMat’
‘dewhiteMat’
(矩阵)白化信号
(矩阵)白化矩阵
(矩阵)去白化矩阵
‘only’
如果只想进行一些预处理,比如只白化或 pca,那么使用 only 选项
‘white’只进行白化
程序调用方法:
[whitesig, WM, DWM] = fastica(mixedsig, 'only', 'white')
返回白化的信号、白化矩阵、去白化矩阵。在fastICA这个算
法中白化矩阵主要用来白化和降维,去白化矩阵是白化矩阵
的伪逆。
‘pca’只进行 pca 降维
程序调用方法:
[E, D] = fastica(mixedsig, 'only', 'pca')
返回特征向量和对角特征值矩阵
‘all’默认值,进行白化‐降维‐ICA
函数调用的例子:
%使用'tanh' g(u)=tanh(a1*u)进行非线性,并行进行独立成分估计
[icasig] = fastica (mixedsig, 'approach', 'symm', 'g', 'tanh');
%降维到10维,只估计出3个独立成分(IC)
[icasig] = fastica (mixedsig, 'lastEig', 10, 'numOfIC', 3);
%不输出收敛报告,不画独立成分的图
[icasig] = fastica (mixedsig, 'verbose', 'off', 'displayMode', 'off');
北京理工大学 计算机学院 刘茜 倾心制作
四、 图形化界面介绍
1. 点击 Load data 载入数据,在弹出的输入框中输入矩阵的变量名。输入矩阵的
行是一个信号。假如输入矩阵以列向量存储信号,可点击 Transpose 来将矩阵
转置。
2. 点击 Do ICA 来进行分析。
3. 点击 Save results 存储结果。在弹出输入框中填写后缀名字,比如填写 FastICA
那么工作空间中就存储了变量 A_FastICA , D_FastICA, E_FastICA IC_FastICA
W_FastICA 等等。
4. 选项
1) 点击 Plot data 可以看数据的一维图
2) 点击 Reduce dim.给出了数据的协方差矩阵的特征值结构的图。可以填写
最大和最小特征值的索引号来限定特征值的范围,从而降维。如果要撤
销这一降维的操作,就点击 Original dim.
3) 点击 Plot whitened 可以画出预处理过的数据。
4) 点击 Plot ICs 和点击 Do ICA 有一样的进行主成份分析的效果,就是点击
Do ICA 强制重新计算 ICA,而点击 Plot ICs 如果之前计算过结果,那么不
重新计算,只画图。
5) 如果算法可能不收敛,那么就可以用稳定化的版本,就要把 Stablization
下拉菜单中选成’on’。假如在 Adv. options 中的 mu 是小于 1 的,那么
Stablization 就不能选了,那是因为系统会自动应用 Stablization 模式
6) 其它选项比如 Approach 等可参见上面 fastica.m 的参数对照表
7) 点击 Help 可以参见英文帮助