1. 独立成分分析建模
独立成分分析目标是实现在海量数据中学习完备的单位正交基,所以,所以,可以建立如下的最优化问题:
其中,第一项为稀疏约束,第二项为完备单位正交基约束,熟悉稀疏表示的可能会注意到,为什么上述最优化问题中,没有显式加入约束,因为W为正交矩阵,所以上述误差为0.
2. 独立成分分析最优化问题求解
(1)稀疏约束优化:转化为如下能量泛函的最优化问题
其导数如下:
(2)完备单位正交基约束优化:通过投影实现,投影如下:
注意,由于我们的完备单位正交基来源于数据,所以,在进行迭代训练前,需要对数据样本进行ZCA White和投影的对比如下:
(3) 优化步骤:
step1: 对训练数据进行中心化、ZCA White处理
step2:根据梯度下降法更新W
step3:对W进行投影
step4:是否满足收敛条件,满足则结束,否则重复step2-3;
(4) 示例代码:
%% CS294A/CS294W Independent Component Analysis (ICA) Exercise
% Instructions
% ------------
%
% This file contains code that helps you get started on the
% ICA exercise. In this exercise, you will need to modify
% orthonormalICACost.m and a small part of this file, ICAExercise.m.
%%======================================================================
%% STEP 0: Initialization
% Here we initialize some parameters used for the exercise.
numPatches = 20000;
numFeatures = 121;
imageChannels = 3;
patchDim = 8;
visibleSize = patchDim * patchDim * imageChannels;
outputDir = '.';
epsilon = 1e-6; % L1-regularisation epsilon |Wx| ~ sqrt((Wx).^2