আইসিএ - কোভারিয়েন্স ম্যাট্রিক্সের পরিসংখ্যানগত স্বাতন্ত্র্য এবং ইজেনভ্যালু


14

আমি বর্তমানে মতলব ব্যবহার করে বিভিন্ন সংকেত তৈরি করছি, মিশ্রিত ম্যাট্রিক্স এ দ্বারা তাদেরকে গুণিত করে মিশিয়েছি এবং তারপরে ফাস্টিক্যা ব্যবহার করে মূল সংকেতগুলি ফিরে পাওয়ার চেষ্টা করছি ।

এখনও অবধি, পুনরুদ্ধার করা সিগন্যালগুলি মূল সংখ্যার সাথে তুলনা করার সময় সত্যই খারাপ, যা আমি প্রত্যাশা করি নি।

আমি কিছু ভুল করছি কিনা তা দেখার চেষ্টা করছি। সিগন্যালগুলি আমি তৈরি করছি:

s1 = (-x.^2 + 100*x + 500) / 3000; % quadratic
s2 = exp(-x / 10); % -ve exponential
s3 = (sin(x)+ 1) * 0.5; % sine
s4 = 0.5 + 0.1 * randn(size(x, 2), 1); % gaussian
s5 = (sawtooth(x, 0.75)+ 1) * 0.5; % sawtooth

মূল সংকেত

আইসিএ সফল হওয়ার জন্য একটি শর্ত হ'ল সর্বাধিক একটি সিগন্যাল গাউসিয়ান, এবং আমি এটি আমার সংকেত প্রজন্মের মধ্যে পর্যবেক্ষণ করেছি।

তবে, অন্য শর্তটি হ'ল সমস্ত সংকেত পরিসংখ্যানগতভাবে স্বতন্ত্র।

আমি কেবল জানি এটির অর্থ হ'ল, দুটি সিগন্যাল এ ও বি দেওয়া, একটি সিগন্যাল জেনে অন্যের সাথে কোনও তথ্য দেয় না, যেমন: পি (এ | বি) = পি (এ) যেখানে পি সম্ভাবনা রয়েছে

এখন আমার প্রশ্নটি হ'ল: আমার সংকেতগুলি কি পরিসংখ্যানগতভাবে স্বাধীন? আমি এটি নির্ধারণ করার কোনও উপায় আছে কি? সম্ভবত কিছু সম্পত্তি যে পালন করা আবশ্যক?

আরেকটি জিনিস আমি লক্ষ্য করেছি যে আমি যখন কোভরিয়েন্স ম্যাট্রিক্সের মিশ্রণগুলি (মিশ্র সংকেতযুক্ত ম্যাট্রিক্সের জন্য গণনা করা) গণনা করি তখন ইগেনস্পেক্ট্রামটি দেখায় যে কেবলমাত্র একটি (মূল) মূল উপাদান রয়েছে । এটার আসল অর্থ কী? 5 টি হওয়া উচিত নয়, যেহেতু আমার 5 টি (অনুমিত) স্বাধীন সংকেত রয়েছে?

উদাহরণস্বরূপ, নিম্নলিখিত মিক্সিং ম্যাট্রিক্স ব্যবহার করার সময়:

A =

0.2000    0.4267    0.2133    0.1067    0.0533
0.2909    0.2000    0.2909    0.1455    0.0727
0.1333    0.2667    0.2000    0.2667    0.1333
0.0727    0.1455    0.2909    0.2000    0.2909
0.0533    0.1067    0.2133    0.4267    0.2000

ইগ্যালভ্যালুগুলি হ'ল: 0.0000 0.0005 0.0022 0.0042 0.0345(কেবলমাত্র 4!)

মিক্সিং ম্যাট্রিক্স পরিচয় ম্যাট্রিক্স ব্যবহার করার সময় (অর্থাত মিশ্র সংকেত মূল বেশী হিসাবে একই), eigenspectrum হল: 0.0103 0.0199 0.0330 0.0811 0.1762। বাকিগুলির চেয়ে অনেক বড় একটি মান এখনও আছে ..

আপনার সাহায্যের জন্য ধন্যবাদ।

যদি আমার প্রশ্নের উত্তরগুলি বেদনাদায়কভাবে সুস্পষ্ট হয় তবে আমি ক্ষমা চাইছি, তবে আমি পরিসংখ্যানগুলিতে সত্যিই নতুন, আইসিএ এবং মতলব। আবার ধন্যবাদ.

সম্পাদনা

আমার প্রতিটি সিগন্যালের 500 টি নমুনা রয়েছে [0.2, 100] এর পরিসরে, 0.2 এর ধাপে, অর্থাৎ x = 0: 0.1: 100।

এছাড়াও, আইসিএ মডেলটি দেওয়া হয়েছে: এক্স = অ্যাস + এন (আমি এই মুহুর্তে কোনও শব্দ যোগ করছি না), আমি এক্স এর ট্রান্সপোজের ইগেনস্পেক্ট্রামের অর্থ উল্লেখ করছি, অর্থাৎ আইগ (কোভ (এক্স '))।

হালনাগাদ

প্রস্তাবিত হিসাবে (মন্তব্যগুলি দেখুন), আমি কেবল 2 সিগন্যালে ফাস্টিকা চেষ্টা করেছি । ফলাফলগুলি বেশ ভাল ছিল (নীচে ছবি দেখুন)। মিক্সিং ম্যাট্রিক্স ব্যবহৃত হয়েছিল A = [0.75 0.25; 0.25 0.75]। তবে ইগেনস্পেক্ট্রামটি 0.1657 0.7732এখনও কেবল একটি প্রধান প্রধান উপাদান দেখিয়েছে।

সুতরাং আমার প্রশ্নটি নীচের দিকে ফোটে: বেশ কয়েকটি সংকেত ভেক্টর পরিসংখ্যানগতভাবে স্বতন্ত্র কিনা তা পরীক্ষা করতে আমি কোন ফাংশন / সমীকরণ / সম্পত্তি ব্যবহার করতে পারি?

সাইন ও গাউসিয়ান - ফাস্টিকা


1
দুর্দান্ত প্রশ্ন। আমি এখানে দুটি সিগন্যাল স্বতন্ত্র হলে কীভাবে আমরা জানতে পারি ( ডিএসপি.স্ট্যাকেক্সেঞ্জার্স / প্রশ্নোশনস / ১২২২/২ ) এটি সম্পর্কে জানতে চেয়েছি তবে সেটির সাথে খুব বেশি দূরে পৌঁছতে পারিনি । :-) আমি আইসিএতেও নতুন কিন্তু আমি কিছুটা আলোকপাত করতে সক্ষম হতে পারি।
স্পেসি

@ মোহাম্মদ আপনি কি এখনও এই প্রশ্নের জবাব দিতে আগ্রহী? আগ্রহকে আকর্ষণ করার জন্য আমি আনন্দের সাথে এটিতে একটি অনুদান রাখব।
ফোনন

@ মোহাম্মদ আমি আপনার প্রশ্নটিকে সমর্থন করেছি v আশা করি আপনি একটি ভাল উত্তর পেয়েছেন, এটি সত্যিই আমার সাথে সম্পর্কিত। আমি এ পর্যন্ত মন্তব্যগুলি পড়ছি, এবং প্রচুর পরিসংখ্যান চলছে যা আমি বুঝতে পারি না। আপনি দুটি সিগন্যাল স্বাধীন কিনা তা নিশ্চিত করার জন্য একটি নির্দিষ্ট উপায় নিয়ে আসতে পেরেছেন?
রাচেল

@ রাচেল এই মুহূর্তে এখনও নয়, তবে আমি এটি সম্পর্কে আরও কিছু গবেষণা করব এবং আপনাকে জানাব। এটি একটি অত্যন্ত গুরুত্বপূর্ণ ধারণা, যা আমি অনুভব করি সাধারণত দুর্ভাগ্যবশত এটিকে চটকানো হয়।
স্পেসি

আপনাকে ধন্যবাদ মোহাম্মদ। আমি রাজী. স্বতন্ত্র সিগন্যালগুলি যে সম্পত্তি E (s1, s2) = E (s1) x E (s2) পর্যবেক্ষণ করে তবে বাস্তব সংকেতের জন্য এটি কীভাবে গণনা করা যায় তা আমি জানি না।
রাচেল

উত্তর:


8

3 এবং 5 সংকেতগুলি বেশ পারস্পরিক সম্পর্কযুক্ত বলে মনে হয় - তারা তাদের প্রথম সুরেলা ভাগ করে। যদি আমাকে সেগুলির দুটি মিশ্রণ দেওয়া হয় তবে আমি সেগুলি আলাদা করতে সক্ষম হব না, আমি সাধারণ সুরেলাটিকে একটি সংকেত হিসাবে এবং উচ্চতর সুরেলাগুলিকে দ্বিতীয় সংকেত হিসাবে রাখতে প্ররোচিত হব be এবং আমি ভুল হতে হবে! এটি অনুপস্থিত ইগন্যালুয়েজটি ব্যাখ্যা করতে পারে।

1 এবং 2 সংকেতগুলিও স্বতন্ত্র দেখায় না।

দুটি সিরিজের স্বাধীনতার জন্য দ্রুত এবং নোংরা "স্যানিটি-চেক" হ'ল অন্যটির বিপরীতে একটি সিগন্যালের একটি (x, y) প্লট করা:

plot (sig3, sig5)

এবং তারপরে একই সংকেত দিয়ে (x, y) প্লটটি বদলানো:

indices = randperm(length(sig3))
plot(sig3(indices), sig5)

যদি দুটি প্লটের পৃথক চেহারা থাকে তবে আপনার সংকেতগুলি স্বতন্ত্র নয়। আরও সাধারণভাবে, যদি ডেটার (x, y) প্লটটি "বৈশিষ্ট্যগুলি", ডিসাইমেট্রিগুলি ইত্যাদি দেখায়, এটি একটি খারাপ অভ্যাস।

স্বাধীনতার জন্য যথাযথ পরীক্ষার (এবং সেগুলি আইসিএ অপটিমাইজেশন লুপে ব্যবহৃত উদ্দেশ্যমূলক ফাংশনগুলির মধ্যে রয়েছে) উদাহরণস্বরূপ, পারস্পরিক তথ্য।

আইসিএ সর্বাধিক স্বতন্ত্র সংকেতগুলিকে রৈখিক মিশ্রণ পুনরুদ্ধার করছে যাগুলির সাথে আপনার ইনপুট ডেটা দেয় । এটি একটি সিগন্যাল পৃথকীকরণ পদ্ধতি হিসাবে কাজ করবে এবং কেবলমাত্র যদি আপনার আইসিএ বাস্তবায়নে ব্যবহৃত অপ্টিমাইজেশন মানদণ্ড অনুযায়ী সর্বাধিক স্বতন্ত্র থাকে তবে মূল সংকেতগুলি পুনরুদ্ধার করবে।


1
প্রশ্ন: যদি তার ক্ষেত্রে পাঁচটি সংকেত আসলে সমস্ত স্বতন্ত্র থাকে, তবে আমরা সেখানে কোন প্রধান উপাদান সঠিক হওয়ার আশা করবো? (অন্য কথায়, সমস্ত ইগেনভ্যালুগুলি একই রকম হবে)। জ্যামিতিকভাবে, আমাদের 5 টি মাত্রায় একটি গুসিয়ান 'মেঘ' থাকবে, একমত?
স্পেসি

আমি মিশ্রণ থেকে দুটি সাইনোসয়েড অপসারণ সম্পর্কে আইসিএ-র একটি লেখকের সাথেও যোগাযোগ করেছি এবং তিনি বলেছিলেন যে এটি আসলে আইসিএ দিয়েই করা যেতে পারে। এটি 3 এবং 5 সিগন্যালের সাথে আপনি যা বলছেন তার উপর ভিত্তি করে আমাকে কিছুটা বিভ্রান্ত করেছে কারণ (আমি আপনার সাথে একমত) তারা এটিকে পরস্পর সম্পর্কযুক্ত দেখায়।
স্পেসি

আপনার প্রস্তাব অনুসারে @ পিচেনেটস আমি এই গ্রাফগুলি প্লট করেছি - এবং প্লটগুলিতে প্রকৃতপক্ষে ভিন্নতা রয়েছে। দুর্ভাগ্যক্রমে আমি এখনও কীভাবে স্বাধীনতার পরীক্ষা নিয়ে আটকে আছি। পরিসংখ্যানগতভাবে স্বতন্ত্র এমন সিগন্যাল উত্পন্ন করার জন্য আমার সত্যিই একটি উপায় প্রয়োজন, যাতে আমি ফাস্টিকার গতির পারফরম্যান্সকে মূল্যায়ন করতে পারি।
রাচেল

এক্স1[এন]এক্স2[এন]

@ মোহাম্মদ আমি আমার নিজস্ব ভয়েস রেকর্ড করিনি তবে আমি সাইনোসোডিয়াল এবং গাউসিয়ান সিগন্যালের মিশ্রণে ফাস্টিকা ব্যবহার করার চেষ্টা করেছি। আমি ভাবতাম তারা স্বতন্ত্র .. ফাস্টিকা বেশ ভাল পারফর্ম করেছে তবে ইগেনস্পেক্ট্রামটি এখনও অদ্ভুত ছিল। আমি ফলাফল দেখানোর জন্য আমার প্রশ্ন আপডেট করব।
রাচেল

7

আমি আইসিএ-তে বিশেষজ্ঞ নই, তবে স্বাধীনতার বিষয়ে আমি আপনাকে কিছুটা বলতে পারি।

কিছু মন্তব্যে যেমন উল্লেখ করা হয়েছে, দুটি এলোমেলো ভেরিয়েবলের মধ্যে পরিসংখ্যানগত স্বতন্ত্রতার পক্ষে মোটামুটি "" একটি ভেরিয়েবল পর্যবেক্ষণ করা অন্যটির সম্পর্কে দেওয়া তথ্যের পরিমাণ "হিসাবে ব্যাখ্যা করা যেতে পারে।

এক্সওয়াইএক্সওয়াইপি(এক্স,Y)এক্সওয়াইপি(এক্স,Y)=পি(এক্স)পি(Y)

পি(এক্স,Y)

এক্সওয়াইএক্সওয়াইপি(এক্স=আমি,ওয়াই=)=পিআমিপি(এক্স=আমি)=পিআমিপি(ওয়াই=)=পি

আমি(এক্স,ওয়াই)=ΣআমিΣপিআমিলগপিআমিপিআমিপি

এখানে কিছু মতলব কোড যা একটি নির্মিত যৌথ বিতরণ থেকে দুটি স্বতন্ত্র সংকেত উত্পন্ন করবে এবং একটি স্বতন্ত্র স্বতন্ত্র যৌথ বিতরণ থেকে দুটি এবং তারপরে জয়েন্টগুলির পারস্পরিক তথ্য গণনা করবে।

"ComputeMIplugin.m" ফাংশনটি একটি সহজ ফাংশন যা আমি লিখেছি যা উপরের সংক্ষেপ সূত্রটি ব্যবহার করে পারস্পরিক তথ্যকে গণনা করে।

Ndist = 25;
xx = linspace(-pi, pi, Ndist);

P1 = abs(sin(xx)); P2 = abs(cos(xx)); 
P1 = P1/sum(P1); P2 = P2/sum(P2); % generate marginal distributions

%% Draw independent samples.
Nsamp = 1e4;
X = randsample(xx, Nsamp, 'true', P1);
Y = randsample(xx, Nsamp, 'true', P2);

Pj1 = P1'*P2;
computeMIplugin(Pj1)

% I get approx 8e-15 ... independent!

% Now Sample the joint distribution 
cnt = {}; cnt{1} = xx; cnt{2} = xx; % bin centers
Pj1_samp= hist3([X' Y'],cnt); Pj1_samp = Pj1_samp/sum(Pj1_samp(:));
computeMIplugin(Pj1_samp)
% I get approx .02; since we've estimated the distribution from
% samples, we don't know the true value of the MI. This is where
% a confidence interval would come in handy. We'd like to know 
% whether value of MI is significantly different from 0. 

% mean square difference between true and sampled?
% (this is small for these parameter settings... 
% depends on the sample size and # bins in the distribution).
mean( (Pj1_samp(:) - Pj1(:)).^2)

%% Draw samples that aren't independent. 

tx = linspace(0,30,Nsamp);
X = pi*sin(tx);
Y = pi*cos(tx);

% estimate the joint distribution
cnt = {}; cnt{1} = xx; cnt{2} = xx; % bin centers
Pj2= hist3([X' Y'],cnt); Pj2 = Pj2/sum(Pj2(:));
computeMIplugin(Pj2)

% I get 1.9281  - not independent!

%% make figure
figure(1); 
colormap gray
subplot(221)
imagesc(xx,xx,Pj1_samp)
title('sampled joint distribution 1')
subplot(222)
imagesc(xx,xx,Pj2)
title('sampled joint distribution 2')
subplot(223)
imagesc(xx,xx,Pj1)
title('true joint distribution 1')

আবার, এটি ধরে নিয়েছে যে যৌথ বিতরণ সম্পর্কে (অন্যান্য ব্লিথ অনুমানের পাশাপাশি) আপনার একটি ভাল অনুমান রয়েছে তবে এটি থাম্বের নিয়ম হিসাবে কার্যকর হওয়া উচিত।


একটি উত্তরের সিডুলিসি ধন্যবাদ জানাতে ধন্যবাদ, আমি এটিকে আরও গভীরভাবে দেখতে হবে।
স্পেসি

প্রথমত, দীর্ঘ উত্তরের জন্য আপনাকে ধন্যবাদ, এটি খুব তথ্যপূর্ণ ছিল। আমার কাছে কেবল কয়েকটি প্রশ্ন আছে। আপনি চি-স্কোয়ার্ড টেস্ট ব্যবহার করে উল্লেখ করেছেন। আমি এটি দেখেছি এবং সত্যই আকর্ষণীয় দেখছি তবে আমি কীভাবে এটি সংকেতগুলিতে ব্যবহার করতে পারি? এটি কি কেবল শ্রেণিবদ্ধ তথ্যগুলিতে প্রয়োগ করা যায় না?
রাচেল

এছাড়াও, আপনি যৌথ বিতরণ গণনা করার জন্য Pj1 = P1 '* P2 ব্যবহার করছেন, সঠিক? তবে, প্রযুক্তিগতভাবে, আমি বিশ্বাস করি এটি করা যায় না। সম্ভবত আপনি এটি করছেন কারণ আপনি ধরে নিচ্ছেন যে মূল সংকেতগুলি স্বতন্ত্র, এবং ফলাফলটি এতে ধারণ করে? তবে আপনি কীভাবে পারস্পরিক তথ্য গণনা করতে পারেন - যেহেতু ফলাফলটি যৌথ বিতরণের উপর নির্ভর করে ..? এটি হতে পারে যে আমি কিছু ভুল বুঝেছি, তবে দয়া করে একটি স্পষ্টতা চাই।
রাচেল

আমি খুশি হব - যদিও সময় পাওয়ার আগে এটি কিছুটা হলেও হবে :) :)
হ্যাঁ

আপনাকে ধন্যবাদ @ সাইডিউলিসি। আমি একটি উত্তর চাই যা অনুমান করে না যে আমার কাছে যৌথ বিতরণ সম্পর্কে জ্ঞান আছে, দয়া করে।
রাচেল

3

উপরে উল্লিখিত হিসাবে, 3 এবং 5 উভয় সংকেতই বেশ পারস্পরিক সম্পর্কযুক্ত বলে মনে হয় এবং এর একই সময়সীমা রয়েছে।

আমরা দুটি সংকেত পারস্পরিক সম্পর্কযুক্ত হওয়ার কথা ভাবতে পারি যদি আমরা কোনও উত্স বাম বা ডানে স্থানান্তর করতে পারি এবং এর প্রশস্ততা বাড়াতে বা হ্রাস করতে পারি যাতে এটি অন্য উত্সের শীর্ষে ফিট করে। দ্রষ্টব্য আমরা উত্সটির ফ্রিকোয়েন্সি পরিবর্তন করছি না, আমরা কেবল একটি পর্যায় এবং প্রশস্ততা শিফট করছি।

উপরের ক্ষেত্রে, আমরা উত্স 3 স্থানান্তর করতে পারি যাতে এর চূড়াগুলি উত্স 5 এর সাথে মিলে যায় thing এটি স্বাধীনভাবে অনুমানের কারণে আইসিএ ব্যবহার করার সময় উত্স নিষ্কাশনকে গোলমাল করবে এই জিনিস thing

দ্রষ্টব্য : উপরের ধারণার একটি সুন্দর চিত্র হল দুটি সাইনোসয়েডাল তরঙ্গ সম্পর্কে চিন্তা করা। এগুলি উভয়ই সম্পূর্ণ নির্দোষ। যদি উভয়েরই একই ফ্রিকোয়েন্সি হয় (এমনকি বিভিন্ন ধাপের সাথেও) তবে তারা পুরোপুরি সম্পর্কযুক্ত এবং আইসিএ সেগুলি আলাদা করতে সক্ষম হবে না। পরিবর্তে যদি তাদের বিভিন্ন ফ্রিকোয়েন্সি থাকে (এটি একে অপরের পূর্ণসংখ্যার গুণক নয়) তবে তারা স্বাধীন এবং পৃথক হতে পারে।

আপনার নিজের এটি দেখার জন্য নীচে কিছু মতলব কোড দেওয়া আছে

%Sine waves of equal frequency
X = 1:1000;
Y(1,:) = sin(2*pi*X*10/1000);
Y(2,:) = sin(1+2*pi*X*10/1000);

figure
subplot(3,2,1)
plot(Y(1,:))
title('Initial Source 1')
subplot(3,2,2)
plot(Y(2,:))
title('Initial Source 2')
A = [1, 2; 4, -1];
Y = A*Y;
subplot(3,2,3)
plot(Y(1,:))
title('Signal 1')
subplot(3,2,4)
plot(Y(2,:))
title('Signal 2')

Z = fastica(Y);

subplot(3,2,5)
plot(Z(1,:))
title('Source 1')
subplot(3,2,6)
plot(Z(2,:))
title('Source 2')

%Sine waves of different frequency
X = 1:1000;
Y(1,:) = sin(2*pi*X*10/1000);
Y(2,:) = sin(1+2*pi*X*8/1000);

figure
subplot(3,2,1)
plot(Y(1,:))
title('Initial Source 1')
subplot(3,2,2)
plot(Y(2,:))
title('Initial Source 2')
A = [1, 2; 4, -1];
Y = A*Y;
subplot(3,2,3)
plot(Y(1,:))
title('Signal 1')
subplot(3,2,4)
plot(Y(2,:))
title('Signal 2')

Z = fastica(Y);

subplot(3,2,5)
plot(Z(1,:))
title('Source 1')
subplot(3,2,6)
plot(Z(2,:))
title('Source 2')

নোট করুন যে একই ফ্রিকোয়েন্সি তরঙ্গগুলির জন্য, আইসিএ কেবল ইনপুট সংকেতগুলি দেয়, তবে বিভিন্ন ফ্রিকোয়েন্সিগুলির জন্য এটি মূল উত্সগুলি দেয়।


2

র্যাচেল,

আমার গবেষণা থেকে আমি এখনও অবধি ' চি-স্কোয়ার্ড টেস্ট ফর ইন্ডিপেন্ডেন্স ' নামে কিছু খুঁজে পেতে সক্ষম হয়েছি, তবে এই মুহুর্তে এটি কীভাবে কাজ করে তা আমি নিশ্চিত নই, তবে এটি সম্ভবত দেখার মতো হতে পারে।


চি-স্কোয়ার্ড পরীক্ষাটি কীভাবে সম্পাদন করতে হয় সে সম্পর্কে আমি এই দুটি টিউটোরিয়াল পেয়েছি: ling.upenn.edu/~clight/chisquared.htm এবং math.hws.edu/javamath/ryan/ChiSquare.html । তবে পরীক্ষাটি কেবল শ্রেণিবদ্ধ তথ্যগুলিতে করা যেতে পারে। এটি আমাদের সংকেত পর্যবেক্ষণগুলিতে প্রয়োগ করা যেতে পারে কিনা তা আমি জানি না ..
রাচেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.