Splot A Korelacja

Czy ktoś może mi wyjaśnić podobieństwa i różnice, korelacji i splotu ? Proszę wyjaśnić intuicję za tym, a nie równanie matematyczne(tzn. przerzucanie jądra / impulsu).. Przykłady aplikacji w dziedzinie przetwarzania obrazów dla każdej kategorii będą mile widziane

Author: Varo, 2013-12-02

3 answers

Prawdopodobnie dostaniesz znacznie lepszą odpowiedź na dsp stack exchange, ale... na początek znalazłem wiele podobnych terminów i mogą być trudne do określenia definicji.

  1. korelacja
  2. korelacja Krzyżowa
  3. splot
  4. współczynnik korelacji
  5. Produkt przesuwny dot
  6. korelacja Pearsona

1, 2, 3, i 5 są bardzo podobne

4,6 są podobne

Zauważ, że wszystkie te terminy mają produkty dot głowice

Pytałeś o korelację i splot-są one koncepcyjnie takie same, z wyjątkiem tego, że wyjście jest odwrócone splotem. Podejrzewam, że być może pytałeś o różnicę między współczynnikiem korelacji (np. Pearson) a splotem / korelacją.

Wymagania wstępne

Zakładam, że wiesz, jak obliczyć iloczyn kropkowy. Biorąc pod uwagę dwa równe wektory v i w każdy z trzema elementami, algebraiczny iloczyn punktowy wynosi v [0] * w [0]+v [1] * w [1]+v [2] * w [2]

Za produktem kropkowym kryje się wiele teorii pod względem tego, co reprezentuje itp....

Zwróć uwagę, że iloczyn punktowy jest pojedynczą liczbą (skalarem) reprezentującą odwzorowanie między tymi dwoma wektorami/punktami v,w w geometrii często oblicza się cosinus kąta między dwoma wektorami, który wykorzystuje iloczyn punktowy. Cosinus kąta między dwoma wektorami wynosi od -1 do 1 i może być traktowany jako miara podobieństwa.

Współczynnik korelacji (Pearson)

Współczynnik korelacji pomiędzy równomierną długością v, w jest po prostu iloczynem dwóch średnich sygnałów zerowych (odjąć średnią v od v, aby uzyskać zmv i średnią w OD w, aby uzyskać zmw - tutaj zm jest skrótem od średniej zerowej) podzielonych przez magnitudę zmv i zmw.

Aby otrzymać liczbę od -1 do 1. Blisko zera oznacza niewielką korelację, blisko + / - 1 to wysoka korelacja. mierzy podobieństwo między tymi dwoma wektory.

Zobacz http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient dla lepszej definicji.

Splot i korelacja

Kiedy chcemy skorelować / połączyć v1 i v2, zasadniczo obliczamy serię produktów kropkowych i umieszczamy je w wektorze wyjściowym. Załóżmy, że v1 to trzy elementy, a v2 to 10 elementów. Obliczane przez nas produkty dot są następujące:

output[0] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[1] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[2] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[3] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[4] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[5] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]
output[6] = v1[0]*v2[8]+v1[1]*v2[9]+v1[2]*v2[10] #note this is 
#mathematically valid but might give you a run time error in a computer implementation 

Wyjście może być odwrócone, jeśli true potrzebna jest splot.

output[5] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[4] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[3] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[2] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[1] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[0] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]

Zauważ, że mamy mniej niż 10 elementów na wyjściu, ponieważ dla uproszczenia obliczam splot tylko tam, gdzie zdefiniowane są zarówno v1, jak i v2

Zauważ również, że splot jest po prostu liczbą produktów dot. Na przestrzeni lat przeprowadzono wiele prac, aby przyspieszyć Zawirowania. Zamiatanie produktów kropek są powolne i mogą być przyspieszone przez najpierw przekształcenie wektorów w Fouriera przestrzeni bazowej, a następnie obliczanie pojedynczego mnożenie wektorowe, a następnie odwracanie wyniku, choć nie będę w to wchodzić tutaj...

Możesz spojrzeć na te zasoby, a także googling: Obliczanie korelacji Pearsona i znaczenia w Pythonie

 22
Author: Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:09:27

Najlepszą odpowiedź dostałem z tego dokumentu: http://www.cs.umd.edu/ ~ djacobs / CMSC426 / Convolution.pdf

Skopiuję tylko fragment z doc:

" kluczową różnicą między nimi jest to, że splot jest asocjacyjny. Oznacza to, że jeśli F I G są filtrami, to F*(GI) = (F G) * I. jeśli w to nie wierzysz, wypróbuj prosty przykład, używając na przykład F=G=(-1 0 1). Jest to bardzo wygodne, aby splot był asocjacyjny. Załóżmy na przykład, że chcesz wygładzić obraz, a następnie wziąć jego pochodną. Możemy to zrobić, splatając obraz filtrem Gaussa, a następnie splatając go filtrem pochodnym. Ale możemy alternatywnie połączyć filtr Pochodny z Gaussa, aby stworzyć filtr zwany różnicą Gaussa (pies), a następnie połączyć to z naszym obrazem. Fajną rzeczą w tym jest to, że filtr psa może być wstępnie obliczony, a my musimy tylko połączyć jeden filtr z naszym obrazem.

Ogólnie, ludzie używają splotu do operacji przetwarzania obrazu, takich jak wygładzanie, i używają korelacji, aby dopasować szablon do obrazu. Nie mamy nic przeciwko temu, że korelacja nie jest asocjacyjna, ponieważ łączenie dwóch szablonów w jeden z korelacją nie ma sensu, podczas gdy często możemy chcieć połączyć dwa filtry razem dla splotu."

 8
Author: user2569364,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-15 23:40:10

Splot jest tak samo jak korelacja, z tym, że odwracamy filtr przed korelacją

 5
Author: Yousaf Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 19:56:11