Обсуждение:Структурные методы анализа изображений и сигналов (курс лекций, А.С. Конушин, Д.П. Ветров, Д.А. Кропотов, О.В. Баринова, В.С. Конушин, 2009)
Материал из MachineLearning.
Добрый день! Возник вопрос по поводу задания 3. Нашёл следующие непонятные для себя моменты:
- «где — коэффициенты авторегрессии, которые зависят от состояния СММ.» Т.е коэффициентов М+1 штука. В то же время в описании функций сказано: «C — коэффициенты авторегрессии, матрица типа double размера K x M;» Не ясно, где ошибка - M или М+1.
- , где - число, - вектор, получается сложение вектора с числом. Хотя если смотреть с точки зрения матлаба, вопрос отпадает :)
- В описании функций указано «Mu — константы в центрах гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор для соответствующего состояния; ». Но по формуле Mu на каждом шаге генерится только с помощью авторегрессии. Для чего тогда передавать этот параметр?
Василий Ломакин 20:14, 1 ноября 2009 (MSK)
- Василий, здравствуйте. По сути, в Вашем вопросе уже содержатся ответы:
- Матрица ;
- В качестве величины используйте -мерный вектор Mu_j из спецификации СММ;
- Коэффициенты авторегрессии считаем общими для всех размерностей вектора . Таким образом, :получаем линейную комбинацию векторов и никаких некорректностей не возникает.
- Желаю Удачи.
- --Д.П. Ветров 16:15, 2 ноября 2009 (MSK)
- Я так и подумал (собственно так уже и реализовал), но на всякий случай решил уточнить. Спасибо за интересное задание!
- Василий Ломакин 08:41, 3 ноября 2009 (MSK)
Здравствуйте! Появился вопрос по поводу 1 варианта 2 задания.
При реализации функции HMM_TEST нужно хранить величину lj (сколько моментов времени мы находимся в данном состоянии) для каждого t(n,j). Как рассчитывать эту величину, если мы не знаем ни того состояния, в котором находимся в начальный момент времени, ни того состояния, куда переходим? Или нужно делать полный перебор для состояния t(n-1,i) по состояниям t(n,j), то есть из каждого состояния можем попасть в одно из К?
Надеюсь на Ваши разъяснения! Извините за корявый вопрос, лучше сформулировать не удалось.
Марина Дударенко 14:30, 13 ноября 2009 (MSK)
- Один из возможных способов решения задачи — вводить функцию Беллмана как стоимость оптимальной траектории при условии, что в момент времени мы находимся в состоянии , причем в следующий момент времени произойдет переход в другое состояние. Пусть и — соответственно минимально и максимально допустимая длина одного сегмента. Тогда функция Беллмана вычисляется как максимум по моментам времени ситуаций, что в момент времени был переход в состояние и затем в этом состоянии мы находились отсчетов. Таким образом, в отличие от классического алгоритма Витерби здесь пересчет идет по моментам смены состояния сигнала. Сложность алгоритма соответственно возрастает в раз.
- Д.А. Кропотов 20:53, 13 ноября 2009 (MSK)
- Спасибо большое за разъяснение!
- Марина Дударенко 20:27, 15 ноября 2009 (MSK) Дударенко Марина
Здравствуйте! Не могли бы вы проверить, правильно ли я вывел формулы для M-шага EM-алгоритма в случае авторегрессионной скрытой марковской модели:
;
;
;
Василий Ломакин 10:43, 23 ноября 2009 (MSK)
- Формула для правильная.
- Формула для не совсем правильная. Во-первых, в знаменателе должна стоять еще и сумма по всем . Что такое у вас в формуле для — не совсем понятно. Во-вторых, в числителе должен быть вектор в мат.ожидании, т.е. компоненты вида . В-третьих, обычно в векторной нотации вектор — это вектор-столбец, т.е. для получения матрицы должно быть выражение вида . Если у вас под вектором понимается вектор-строка, то формула правильная, если нет, то транспонирование должно быть в другом месте.
- Формула для абсолютно неправильная. Помимо прочего она должна зависеть от матрицы и не зависеть от остальных компонент . Попробуйте еще подумать над формулой для . Советую выводить эту формулу сразу для вектора , а не для отдельных его компонент. Если не будет получаться, то тогда, что делать, подскажу правильный вариант.
- Крайний срок сдачи второго задания с уменьшением оценки за позднюю сдачу - ближайшее воскресенье, 29 ноября. После этого срока задание принято не будет (соответственно не будет допуска к экзамену). — Д.А. Кропотов 19:39, 23 ноября 2009 (MSK)
- Да, прошу прощения, при наборе формулы для ковариационной матрицы я напутал, все ваши замечания правильные.
- Насчёт - попробую последовать вашему совету. Эта идея приходила мне в голову, но меня остановило то, что мы не изучали дифференцирование по вектору (по ).
- Насчёт сдачи задания - я ведь его уже сдал, вы его не получили или пока не проверяли? В readme я указал, что выведенные мной формулы работают только для случая = 1. В общем я разберусь в вопросе и новую версию программы досдам, надо же всё-таки работу до конца довести. Если что-то не получится, подойду к вам в четверг. Василий Ломакин 21:47, 23 ноября 2009 (MSK)
- Ваше задание не было получено. Из 517 группы задание получено только от Одиноковой Евгении. В системе проверки задания в таблице есть строчка от еще одного представителя 517 группы, но самого архива с работой нет. Возможно, вы что-то не так сделали на этапе загрузки задания на сервер. Попробуйте загрузить свой архив еще раз.
- Что касается дифференцирования по вектору, то вам понадобятся только два следующих свойства: и . Оба этих свойства легко проверяются путем покоординатного дифференцирования.
- — Д.А. Кропотов 22:23, 23 ноября 2009 (MSK)
- Очень странно, только что зашёл на сайт и скачал оттуда своё собственное задание. Что я делаю не так? Всё равно загрузить повторно?
- Да, спасибо, вывести уже получилось, сейчас проверяю как оно работает...
- И ещё вопрос - а почему заведомо не работала формула, описанная выше? Я принципиально ошибся при дифференцировании или по какой-то причине всё равно не получится рассчитать покоординатно? Василий Ломакин 23:36, 23 ноября 2009 (MSK)