Использование FastICA в Matlab для разделения смеси гауссовых и пуассоновских матриц - PullRequest
1 голос
/ 17 декабря 2011

Мне нужно сгенерировать матрицу с гауссовым распределением (со значениями, разбросанными в основном от -5 до 5), матрицу Пуассона, смешать их и передать в качестве входных данных для Matlab FastICA .

Я новичок в Matlab, дистрибутивах и ICA, так что несколько указателей действительно помогут.Я очень старался, но не знаю, нахожусь ли я на правильном пути.

Чтобы сгенерировать матрицы Гаусса и Пуассона, я сгенерировал два массива:

s2 = poissrnd(2, 1, 40000); %Poisson distribution with lambda 2
s1 = rand(size(s2)) * 10 - 5; %Gaussian distribution and values ranging from -5 to 5

Затем я использую функцию reshape , чтобы сгенерировать две матрицы 200x200.При использовании image я получаю следующие изображения:

enter image description here

Мой 1-й вопрос заключается в следующем: это правильный способ генерации гауссова и пуассоновскогоматрицы в Matlab?Или есть какие-то встроенные функции, которые фактически генерируют матрицы вместо того, чтобы генерировать и изменять формы массивов?

Теперь вторая проблема: использование FastICA .

Ссылаясь на очень хороший ответ по адресу: Алгоритм быстрой фиксированной точки ICA (независимый анализ компонентов) , он упоминает, что FastICA нуждается в каждом сигнале подряд.

Поэтому я генерирую свою матрицу сигналовпо:

S(1,:) = s1; %row 1
S(2,:) = s2; %row 2

Затем я сгенерирую матрицу микширования, добавлю немного шума и дам результирующую матрицу в качестве входных данных для функции fastica ().

Мой вопрос: возможно липередать 2D данные напрямую в FastICA?Что если у вас есть изображение со множеством смешанных сигналов и вы хотите передать его в ICA, чтобы он мог найти независимые компоненты?

Ссылка на учебное пособие, объясняющее, как использовать FastICA на разных входах, была бы очень полезна.

Заранее спасибо всем, кто читает этот пост и пытается помочь.И извините за длинный вопрос, я хотел убедиться, что он хорошо понят!

1 Ответ

0 голосов
/ 17 декабря 2011

Как вы создаете смешанный сигнал? FastICA попытается оценить матрицу, которую вы использовали для смешивания (исходные компоненты). Пока у вас есть достаточное количество измерений для ваших наблюдений (сигналов), FastICA может смешивать любое количество смешанных сигналов. Смотри, в ответе, с которым ты связан, четыре сигнала смешиваются и разлагаются.

Данные, которые вы вводите в FastICA, уже 2D (m x n), только что сформированные в другой размер (1 x mn).

...