|
|
  |
Сложение сигналов в самый "узкий", Как найти весовые коэффициенты для сложения? |
|
|
|
Nov 22 2010, 15:35
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Kluwert @ Nov 22 2010, 13:06)  Вы, видимо, ветку не читали. 1. Уважаемый Oldring, привел очень быстрое и простое решение для случая, когда сумма КВАДРАТОВ весовых коэффициентов равна единице. 2. Постом выше написано, как решается задача, когда сумма коэффициентов равна единице. 3. И там же, как можно решить задачу (медленно, но работает), когда сумма МОДУЛЕЙ весовых коэффициентов равна единице. 4. Также в ходе обсуждения ставилась задача уменьшения не средне-квадратичной ошибки (дисперсии), а средне-абсолютной ошибки. Видение решения такой задачи уважаемый Oldring привел для двухмерного случая.
|
|
|
|
|
Nov 22 2010, 17:42
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(getch @ Nov 19 2010, 16:53)  Найти такой вектор V, чтобы дисперсия вектора (InMatrix*V) была минимальна. При этом сумма АБСОЛЮТНЫХ значений элементов вектора V равна единице. Мат. ожидание столбцов матрицы InMatrix равно нулю. Очень интересное свойство у решения, точнее у получившегося сложенного сигнала (NewVector): 1. ковариации NewVector c любым исходным сигналом равны. При этом обязательность условия "АБСОЛЮТНЫХ" не нужна. 2. Если дисперсии исходных сигналов равны, то из п.1 следует, что коэффициент корреляции NewVector c любым исходным сигналом совпадает. P.S. Интересно, как сложить сигналы, чтобы получившийся сигнал имел одинаковый коэффициент корреляции с исходными, даже если дисперссии исходных сигналов неравны...
Сообщение отредактировал getch - Nov 22 2010, 18:16
|
|
|
|
|
Nov 22 2010, 19:01
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(getch @ Nov 22 2010, 20:42)  P.S. Интересно, как сложить сигналы, чтобы получившийся сигнал имел одинаковый коэффициент корреляции с исходными, даже если дисперссии исходных сигналов неравны... Ну например так. Решение не зависит от нормировок векторов и от нормировки вектора коэффициентов комбинации, оно зависит только от направлений исходных векторов и результата. Поэтому, нормируем все вектора на единичную дисперсию. Считаем, что среднее каждого вектора нулевое, и что ковариационная матрица невырожденная. Так что задача сводится к поиску одинаковой ковариации результата со всеми векторами. Уравнение: A*v=I, где I - единичный вектор-столбец высотой, равной числу векторов. Тогда v=inv(A)*I - сумма столбцов обратной от ковариационной матрицы отнормированных векторов.
--------------------
Пишите в личку.
|
|
|
|
|
Nov 22 2010, 19:07
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Nov 22 2010, 22:01)  Уравнение: A*v=I, где I - единичный вектор-столбец высотой, равной числу векторов. Тогда v=inv(A)*I - сумма столбцов обратной от ковариационной матрицы отнормированных векторов. Так это решение я написал выше. И оно делает одинаковые ковариации, но не корреляции на случай несовпадающих исходных дисперсий. P.S. Не пойму, почему при минимизации дисперсии суммы двух векторов с одинаковой дисперсией весовые коэффициенты всегда равны? P.P.S. Интересное наблюдение, для двух сигналов с КК = 0 существует сигнал, который имеет одинаковый КК к исходным, и КК далеко не нулевой (у себя на примере получил > 0.7)
Сообщение отредактировал getch - Nov 22 2010, 19:28
|
|
|
|
|
Nov 22 2010, 19:35
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Nov 22 2010, 22:31)  Так перенормируйте исходные вектора на единичные дисперсии. Нормировку потом учтете в конце в векторе коэффициентов. Ну и упростите потом результат. Под вечер, наверное, туплю. Как учесть нормировку в векторе полученных коэффициентов? Цитата(Oldring @ Nov 22 2010, 22:31)  Потому что cos(90/2)=0.707...  Точно, ступил. Нулевая корреляция - это же нулевое скалярное произведение векторов. Т.е. они ортонормированы. И соответственно угол 45. Спасибо, действительно, смешной вопрос.
|
|
|
|
|
Nov 22 2010, 19:49
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Nov 22 2010, 22:42)  Поделить каждый коэффициент результата на использованный нормировочный коэффициент соответствующего ему вектора.  Ага, спасибо! Я точно ступил.
|
|
|
|
|
Nov 22 2010, 20:24
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Спрошу еще, мне непонятен сей момент:  Как такое может быть в данном случае, чтобы средне-квадратичная ошибка была меньше у NewV1 (в сравнении с NewV2), а средне-абсолютная - больше? Ведь по графикам видно, что и NewV1 и NewV2 находятся в диапозоне (-1; 1).
Сообщение отредактировал getch - Nov 22 2010, 20:38
|
|
|
|
|
Nov 22 2010, 20:44
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Nov 22 2010, 23:37)  И что? Очевидно же, что если вы находите глобаотный минимум некой функции, то значение минимума не превышает значение функции во всех остальных точках. Иначе вы нашли не минимум.  Элементы векторов NewV1 и NewV2 находятся в диапазоне (-1;1). Раз сумма квадратов элементов NewV1 < суммы квадратов элементов NewV2, то отсюда же должно следовать, что и сумма модулей элементов NewV1 < суммы модулей элементов NewV2. А на картинке это не так. Я бы понял, если бы элементы NewV1 и NewV2 вылезали за диапазон [-1;1], но они все внутри. P.S. Представьте, что я ничего не говорил про V1 и V2. А сразу показал NewV1 и NewV2.
Сообщение отредактировал getch - Nov 22 2010, 20:46
|
|
|
|
|
Nov 22 2010, 21:03
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Прошу, поясните свое решение для минимизации средне-абсолютной ошибки: Цитата(Oldring @ Sep 30 2010, 18:02)  Впрочем, как искать эффективно то, что вы хотите, в случае двух последовательностей, понятно. Во-первых, условие, что сумма модулей весов равна единице. Из этого следует, что минимум расположен на одном из четырех отрезков. Их можно перебрать поочередно. Во-вторых, рассмотрим отрезок x+y=1. Отсюда y=1-x, при этом x изменяется от 0 до 1. Вклад каждого отсчета последовательностей для x, изменяющегося от 0 до 1, есть кусочно-линейная функция с максимум одним изломом в середине. Проходим по всем отсчетам и вычисляем параметры суммарной линейной функции при x=0 и, возможно, положение излома и скачок параметров линейной функции в этой точке излома.После этого сортируем все точки изломов по возрастанию координат, проходим по списку, обновляя параметры линейной функции и вычисляем точку, в которой значение искомой кусочно-линейной функции минимально. Благо, очевидно, что минимум будет достигаться в одном из узлов последовательности. Всё. Пройдя по 4-м отрезкам ограничения вычисляем положение глобального минимума. Ну а для многомерного случая... Опять же, искомая функция будет кусочно-линейной. На замкнутой кусочно-линейной гиперповерхности размерности n-1, каждый из гипертетраэдров будет разбиваться десятками тысяч узлов на множество мелких тетраэдров, на которых целевая функция - линейна. Соотвтетсвенно, минимум достигается в одной из одномерных вершин этой конструкции. Если очень хотите - можете решить сами эту бессмыссленную чисто программистскую задачу.  Даже для двухмерного случая не понял (выделил).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|