Assume $X$ and $N$ are two sets of vectors (observations) from a normal distribution, where $X$ represents clean data and $N$ represents noise; and $A$ a projection matrix of a filter. The scenario is that our clean data was corrupted by a multiplicative noise via matrix $A$ and an additive noise of $N$:
$$Y=A X + N.$$
How can we learn the projection matrix $A$ and $N$ from the training data $X,Y$? Does the Gaussian assumption of $A$, $N$ and $X$ help to have a better estimation or guide to use a specific solution?
Here is matlab code for the training data, noise and a simple projection:
dataVariance = .10; noiseVariance = .05; mixtureCenters=randn(13,1); X=randn(13, 1000)*sqrt(dataVariance ) + repmat(mixtureCenters,1,1000); %N and A are unknown and we want to estimate them. N=randn(13, 1000)*sqrt(noiseVariance ) + repmat(mixtureCenters,1,1000); A=2*eye(13); Y=A*X+N; for iter=1:1000 A_hat,N_hat = training(X_hat,X,Y); end
Note: if necessary, for each estimation of $A$, an error can be calculated for an estimation of $N$ using a current $A$.
for iterate=1:1000 initiate A estimate N using current A (N=Y-A*X) calculate error of estimation (err=Y-A*X+N) update A
But I would prefer not to go for gradient descent approaches.