Перейти к содержанию
    

Сложение сигналов в самый "узкий"

Вы, видимо, ветку не читали.

1. Уважаемый Oldring, привел очень быстрое и простое решение для случая, когда сумма КВАДРАТОВ весовых коэффициентов равна единице.

2. Постом выше написано, как решается задача, когда сумма коэффициентов равна единице.

3. И там же, как можно решить задачу (медленно, но работает), когда сумма МОДУЛЕЙ весовых коэффициентов равна единице.

4. Также в ходе обсуждения ставилась задача уменьшения не средне-квадратичной ошибки (дисперсии), а средне-абсолютной ошибки. Видение решения такой задачи уважаемый Oldring привел для двухмерного случая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Найти такой вектор V, чтобы дисперсия вектора (InMatrix*V) была минимальна.

При этом сумма АБСОЛЮТНЫХ значений элементов вектора V равна единице.

Мат. ожидание столбцов матрицы InMatrix равно нулю.

Очень интересное свойство у решения, точнее у получившегося сложенного сигнала (NewVector):

1. ковариации NewVector c любым исходным сигналом равны. При этом обязательность условия "АБСОЛЮТНЫХ" не нужна.

2. Если дисперсии исходных сигналов равны, то из п.1 следует, что коэффициент корреляции NewVector c любым исходным сигналом совпадает.

P.S. Интересно, как сложить сигналы, чтобы получившийся сигнал имел одинаковый коэффициент корреляции с исходными, даже если дисперссии исходных сигналов неравны...

Изменено пользователем getch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Интересно, как сложить сигналы, чтобы получившийся сигнал имел одинаковый коэффициент корреляции с исходными, даже если дисперссии исходных сигналов неравны...

 

Ну например так.

 

Решение не зависит от нормировок векторов и от нормировки вектора коэффициентов комбинации, оно зависит только от направлений исходных векторов и результата. Поэтому, нормируем все вектора на единичную дисперсию. Считаем, что среднее каждого вектора нулевое, и что ковариационная матрица невырожденная. Так что задача сводится к поиску одинаковой ковариации результата со всеми векторами.

 

Уравнение: A*v=I, где I - единичный вектор-столбец высотой, равной числу векторов. Тогда v=inv(A)*I - сумма столбцов обратной от ковариационной матрицы отнормированных векторов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уравнение: A*v=I, где I - единичный вектор-столбец высотой, равной числу векторов. Тогда v=inv(A)*I - сумма столбцов обратной от ковариационной матрицы отнормированных векторов.

Так это решение я написал выше. И оно делает одинаковые ковариации, но не корреляции на случай несовпадающих исходных дисперсий.

P.S. Не пойму, почему при минимизации дисперсии суммы двух векторов с одинаковой дисперсией весовые коэффициенты всегда равны?

P.P.S. Интересное наблюдение, для двух сигналов с КК = 0 существует сигнал, который имеет одинаковый КК к исходным, и КК далеко не нулевой (у себя на примере получил > 0.7)

Изменено пользователем getch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так это решение я написал выше. И оно делает одинаковые ковариации, но не корреляции на случай несовпадающих исходных дисперсий.

 

Так перенормируйте исходные вектора на единичные дисперсии. Нормировку потом учтете в конце в векторе коэффициентов. Ну и упростите потом результат.

 

P.P.S. Интересное наблюдение, для двух сигналов с КК = 0 существует сигнал, который имеет одинаковый КК к исходным, и КК далеко не нулевой (у себя на примере получил > 0.7)

 

Потому что cos(90/2)=0.707... :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так перенормируйте исходные вектора на единичные дисперсии. Нормировку потом учтете в конце в векторе коэффициентов. Ну и упростите потом результат.

Под вечер, наверное, туплю. Как учесть нормировку в векторе полученных коэффициентов?

 

Потому что cos(90/2)=0.707... :laughing:

Точно, ступил. Нулевая корреляция - это же нулевое скалярное произведение векторов. Т.е. они ортонормированы. И соответственно угол 45. Спасибо, действительно, смешной вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под вечер, наверное, туплю. Как учесть нормировку в векторе полученных коэффициентов?

 

Поделить каждый коэффициент результата на использованный нормировочный коэффициент соответствующего ему вектора. :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделить каждый коэффициент результата на использованный нормировочный коэффициент соответствующего ему вектора. :laughing:

Ага, спасибо! Я точно ступил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Не пойму, почему при минимизации дисперсии суммы двух векторов с одинаковой дисперсией весовые коэффициенты всегда равны?

 

Не всегда, но возможно вам подскажет, что у симметричной матрицы 2х2 с одинаковыми элементами на главной диагонали собственные вектора всегда [1, 1] и [1, -1]. Когда их два.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спрошу еще, мне непонятен сей момент:

Simple2.png

Как такое может быть в данном случае, чтобы средне-квадратичная ошибка была меньше у NewV1 (в сравнении с NewV2), а средне-абсолютная - больше?

Ведь по графикам видно, что и NewV1 и NewV2 находятся в диапозоне (-1; 1).

Изменено пользователем getch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ведь по графикам видно, что и NewV1 и NewV2 находятся в диапозоне (-1; 1).

 

И что?

Очевидно же, что если вы находите глобальный минимум некой функции, то значение минимума не превышает значение функции во всех остальных точках. Иначе вы нашли не минимум. :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что?

Очевидно же, что если вы находите глобаотный минимум некой функции, то значение минимума не превышает значение функции во всех остальных точках. Иначе вы нашли не минимум. :laughing:

Элементы векторов NewV1 и NewV2 находятся в диапазоне (-1;1).

Раз сумма квадратов элементов NewV1 < суммы квадратов элементов NewV2, то отсюда же должно следовать, что и сумма модулей элементов NewV1 < суммы модулей элементов NewV2. А на картинке это не так.

Я бы понял, если бы элементы NewV1 и NewV2 вылезали за диапазон [-1;1], но они все внутри.

P.S. Представьте, что я ничего не говорил про V1 и V2. А сразу показал NewV1 и NewV2.

Изменено пользователем getch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз сумма квадратов элементов NewV1 < суммы квадратов элементов NewV2, то отсюда же должно следовать, что и сумма модулей элементов NewV1 < суммы модулей элементов NewV2.

 

Не должно. Рассмотрите, ну, например... Бином Ньютона. :laughing:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу, поясните свое решение для минимизации средне-абсолютной ошибки:

Впрочем, как искать эффективно то, что вы хотите, в случае двух последовательностей, понятно.

 

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

 

Во-вторых, рассмотрим отрезок x+y=1. Отсюда y=1-x, при этом x изменяется от 0 до 1.

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

 

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

 

Всё. Пройдя по 4-м отрезкам ограничения вычисляем положение глобального минимума.

 

Ну а для многомерного случая... Опять же, искомая функция будет кусочно-линейной. На замкнутой кусочно-линейной гиперповерхности размерности n-1, каждый из гипертетраэдров будет разбиваться десятками тысяч узлов на множество мелких тетраэдров, на которых целевая функция - линейна. Соотвтетсвенно, минимум достигается в одной из одномерных вершин этой конструкции. Если очень хотите - можете решить сами эту бессмыссленную чисто программистскую задачу. :)

Даже для двухмерного случая не понял (выделил).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу, поясните свое решение для минимизации средне-абсолютной ошибки:

 

Вспомните как выглядит график функции модуля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...