реклама на сайте
подробности

 
 
> Мера близости последовательностей на основе взаимной корреляции
roman73_2
сообщение Oct 13 2014, 17:38
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 13-10-14
Пользователь №: 83 123



Есть две числовые последовательности (времянных ряда, одномерных сигнала и т.д.), с немного разной длиной.
Нужно придумать меру их сходства, например от 0 до 1.

Можно последовательности интерполировать до одинаковой длины и найди ошибку (среднеквадратичную например). Это не совсем подходит, т.к. могут быть небольшие смещения.

Придумали эвристику на основе Левенштейна - цена замены - модуль разницы между сигналами. Как-то работает - но хочется сделать по науке sm.gif

Натолкнился на статью в википедии по взаимной корреляции
https://ru.wikipedia.org/wiki/%D0%92%D0%B7%...%86%D0%B8%D1%8F

Там описано, как из двух последовательностей получить результирующую (алгоритм похож на вычисление свёртки), это понятно. А как из этой последовательности получить число, которое говорило бы - похожи сигналы или нет?

Заранее спасибо.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Oct 13 2014, 18:34
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(roman73_2 @ Oct 13 2014, 21:38) *
Есть две числовые последовательности (времянных ряда, одномерных сигнала и т.д.), с немного разной длиной.
Нужно придумать меру их сходства, например от 0 до 1.


Меру сходства придумать недолго, однако далеко не любая мера имеет физический смысл. Например, даже в том случае, когда обе числовые последовательности одной длины, корреляция, вычисленная традиционным способом (как косинус угла между векторами в N-мерном пространстве) может не иметь ничего общего с правдой, если в первой последовательности поминутные отсчеты, а во второй посекундные.

Т.е. в общем случае формально-математически методы расчета корреляции имеют смысл, только если имеет место строгое соответствие между элементами первой последовательности и второй, даже если это соответствие неизвестно. В противном случае задача на взаимную корреляцию вообще не имеет смысла.

Подобного рода задачи часто возникают в генетике, когда требуется оценить родство геномов или отдельных генов, принадлежащих к разным видам живых организмов или их предполагаемым предкам. При этом очень часто оказывается, что эти гены (являющиеся в математическом смысле тоже последовательностями) неравной длины, а то и зачастую имеют в своем составе делеции (пропуск одного элемента) и/или вставки (добавление лишнего элемента) в произвольном месте последовательности. А при равном числе делеций и вставок может и длина совпадать, однако традиционными методами считать корреляцию тут все равно нельзя, т.к. после прохождения пропущенного или вставленного звена наступает десинхронизация. Это фактически тот же случай, когда пытаются сравнить две бинарные прошивки МК побайтовым сравнением sm.gif.

Из того инструментария, который применяется в таких случаях, могу посоветовать взаимную (кросс-)корреляцию со сдвигом. Это близкий родственник свертки двух функций, когда более короткая последовательно прикладывается к более длинной в разных местах последней. Т.е. сперва нос-к-носу, потом со сдвигом на одно звено, затем на два и т.д., пока не совпадут хвосты обеих последовательностей. А за меру сходства принимается максимальный результат из всех этих сдвиговых корреляцией.
Go to the top of the page
 
+Quote Post
roman73_2
сообщение Oct 13 2014, 20:18
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 13-10-14
Пользователь №: 83 123



Цитата(Xenia @ Oct 13 2014, 21:34) *
Меру сходства придумать недолго, однако далеко не любая мера имеет физический смысл. Например, даже в том случае, когда обе числовые последовательности одной длины, корреляция, вычисленная традиционным способом (как косинус угла между векторами в N-мерном пространстве) может не иметь ничего общего с правдой, если в первой последовательности поминутные отсчеты, а во второй посекундные.

Т.е. в общем случае формально-математически методы расчета корреляции имеют смысл, только если имеет место строгое соответствие между элементами первой последовательности и второй, даже если это соответствие неизвестно. В противном случае задача на взаимную корреляцию вообще не имеет смысла.

Подобного рода задачи часто возникают в генетике, когда требуется оценить родство геномов или отдельных генов, принадлежащих к разным видам живых организмов или их предполагаемым предкам. При этом очень часто оказывается, что эти гены (являющиеся в математическом смысле тоже последовательностями) неравной длины, а то и зачастую имеют в своем составе делеции (пропуск одного элемента) и/или вставки (добавление лишнего элемента) в произвольном месте последовательности. А при равном числе делеций и вставок может и длина совпадать, однако традиционными методами считать корреляцию тут все равно нельзя, т.к. после прохождения пропущенного или вставленного звена наступает десинхронизация. Это фактически тот же случай, когда пытаются сравнить две бинарные прошивки МК побайтовым сравнением sm.gif.

Вот не надо про гены и бинарные прошивки. Мне кажется я нормально описал задачу. Последовательности числовые, могут "немного" различаться масштабом (по x и/или по y), может быть сдвиг.

Цитата(Xenia @ Oct 13 2014, 21:34) *
Из того инструментария, который применяется в таких случаях, могу посоветовать взаимную (кросс-)корреляцию со сдвигом. Это близкий родственник свертки двух функций, когда более короткая последовательно прикладывается к более длинной в разных местах последней. Т.е. сперва нос-к-носу, потом со сдвигом на одно звено, затем на два и т.д., пока не совпадут хвосты обеих последовательностей. А за меру сходства принимается максимальный результат из всех этих сдвиговых корреляцией.

Спасибо, это уже ближе к телу. А формул не подкинете? Как в этом случае вычисляется сходство сдвинутых последовательностей, скалярное произведение? Или скреднеквадратичное отклонение?

Насколько я понял, элемент взаимнокорреляционного полинома (как и свёртки) складывается из многих элементов исходных последовательностей. И может быстро вычисляться через БПФ.
Вы кажется предлагаете какое-то попарное сравнение с перебором. Это не подходит. Сигнал может быть визуально сходен, но при попарном сравнении будет каша из-за разнице в масштабах по x. Или может я чего недопонял...
Я спрашиваю, как получить из взаимнокорреляционного полинома некоторую числовую меру сходства.

Другие идеи сравнения я не отметаю, но хотелось бы чего-нибудь математически обоснованного sm.gif
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 13 2014, 21:41
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(roman73_2 @ Oct 14 2014, 00:18) *
Вот не надо про гены и бинарные прошивки. Мне кажется я нормально описал задачу. Последовательности числовые, могут "немного" различаться масштабом (по x и/или по y), может быть сдвиг.

Если отличие в масштабе по Y, то это совершенно нормально. А вот различие масштабов по Х - очень плохо. Плохо потому, что не позволяет сводить меру сходства к числу совпадений.

Вы напрасно отмахиваетесь от моих объяснений sm.gif, полагая, что я говорю о чем-то, не имеющего отношения к вашей задаче. На самом деле это не так. Пусть с пример на генетических текстах вас расстроил sm.gif, но я могу привести и более приземленный пример. Скажем текст книги в электронном формате, где каждая буква = байт = один элемент последовательности. И вот редактор добавляет в середину текста мягкий знак, который автор по ошибке пропустил. Спрашивается, какой мерой оценить изменение текста в процессе редактирования? Насколько сильно текст был модифицирован при редактировании? Если вы подумаете, то поймете, что эта задача сродни вашей, поскольку текст удлинился (на одну букву), и теперь приходится сравнивать между собой две последовательности разной длины (до и после редактирования).

Если мы теперь приложим оба текста (старый и новый) началами, то совпадут все буквы до вставленного мягкого знака, а после него совпадения будут крайне редки и случайны. Ситуация не изменится, если сложить тексты хвостами - только теперь совпадут вторые половины теста, а первые нет. В итоге, как бы ны не приложили их друг к другу, половина букв, стоящих напротив, будут отличаться. А из-за этого получится неверная оценка, как будто редактор изменил половину теста, тогда как он вставил одну единственную букву. Вот она - главная проблема, возникающая из-за десинхронизации, вызванной сдвигом по X или изменения масштаба по X. И здесь я была обязана вас об этом предупредить, прежде чем предлагать вариант со сдвигом.

Цитата(roman73_2 @ Oct 14 2014, 00:18) *
Спасибо, это уже ближе к телу. А формул не подкинете? Как в этом случае вычисляется сходство сдвинутых последовательностей, скалярное произведение? Или среднеквадратичное отклонение?

Формула в Википедии в статье "Корреляция" (это там, дается выражение для rXY=).
Но я полагаю, что счет будет быстрее, если сперва из каждой последовательности вычесть среднее, а потом нормировать на единицу. А уже с модифицированными таким образом последовательностями просто вычислять скалярное произведение. Алгебраически то на то и получится, зато не надо будет при каждом сдвиге перевычислять знаменатель.
А то, что я вам предложила - это поиск максимума "автокорреляционной функции". Про автокорреляционнаую функцию в Википедии тоже есть статья.
Только не забывайте мой пример с редактированием теста, т.к. иначе вы рискуете стать жертвой красоты формул. sm.gif

Цитата(roman73_2 @ Oct 14 2014, 00:18) *
Насколько я понял, элемент взаимнокорреляционного полинома (как и свёртки) складывается из многих элементов исходных последовательностей. И может быстро вычисляться через БПФ.

Если у вас длина более короткой последовательности является целой степенью двойки, то тогда с БПФ может быть стоит возиться. Здесь главным является то, насколько одна из ваших последовательности короче другой. Ведь именно эта разность определяет число возможных сдвигов. И если они отличаются не более, чем на 50%, то связываться с БПФ смысла не имеет.

Цитата(roman73_2 @ Oct 14 2014, 00:18) *
Вы кажется предлагаете какое-то попарное сравнение с перебором. Это не подходит. Сигнал может быть визуально сходен, но при попарном сравнении будет каша из-за разнице в масштабах по x. Или может я чего недопонял...
Я спрашиваю, как получить из взаимнокорреляционного полинома некоторую числовую меру сходства.

Не нравится поиск максимума - вычислите его интеграл. sm.gif Но максимум, на мой взгляд, лучше.

Цитата(roman73_2 @ Oct 14 2014, 00:18) *
Другие идеи сравнения я не отметаю, но хотелось бы чего-нибудь математически обоснованного

Автокорреляционная функция - это как раз очень обоснованный метод, широко применяемый в задачах распознавания образов. А ваша задача по вычислению меры сходства двух объектов, заданных векторами, является промежуточным продуктом задачи распознавания образов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- roman73_2   Мера близости последовательностей на основе взаимной корреляции   Oct 13 2014, 17:38
|- - Dr.Alex   "Мера сходства" зависит от статистики ис...   Oct 13 2014, 21:32
||- - Дмитриос   Цитата(Dr.Alex @ Oct 14 2014, 01:32) ...   Oct 15 2014, 18:48
||- - Dr.Alex   Цитата(Дмитриос @ Oct 15 2014, 22:48) под...   Oct 15 2014, 21:16
|||- - Дмитриос   Цитата(Dr.Alex @ Oct 16 2014, 01:16) Не м...   Oct 16 2014, 15:15
|||- - Dr.Alex   Вообще это адаптивным фильтром делается, описано в...   Oct 16 2014, 17:47
||- - andyp   Цитата(Дмитриос @ Oct 15 2014, 22:48) под...   Oct 16 2014, 08:19
- - asoharev   Иногда для сравнения последовательностей (например...   Oct 14 2014, 20:33
|- - roman73_2   Цитата(asoharev @ Oct 15 2014, 00:33) Ино...   Oct 14 2014, 22:53
|- - asoharev   Цитата(roman73_2 @ Oct 15 2014, 02:53) Да...   Oct 15 2014, 18:15
- - V_G   Вообще-то ДО математики надо для себя понять, что ...   Oct 14 2014, 23:23
- - WitFed   Да, неужели нельзя настроить АЦП при приёме второй...   Oct 15 2014, 11:32
- - mvb   А можно побольше описания физики процесса? Что за ...   Oct 17 2014, 13:15


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 12:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016