|
Скрытые марковские модели., Принцип работы, обучения. |
|
|
|
Aug 30 2012, 11:51
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 1-12-06
Пользователь №: 23 016

|
Всем привет. Давно интересует этот вопрос.
Нужно понять как работает сеть на основе Скрытых Марковских Моделей в общих чертах.
Математикой не владею и нигде нет простого объяснения, на пальцах так сказать, или простейшей программы с исходным кодом для нескольких данных, либо километровые формулы, либо кружки со стрелочками. Было бы хорошо если будет простейший пример или код.
Например: есть входные данные X(n)=1..5, они поступают на СММ, что дальше СММ делает, что с чем сравнивает, какие коэффициенты подстраиваются и обучаются, к чему стремится система СММ. Программного кода нигде нет, где было бы видно по шагам, как программа и что вычисляет и куда записывает.
Так что для меня пока понятно лишь одно СММ это вероятность появления или ожидания определенных последовательностей данных. А как этот опыт при обучении записывается в каких коэффициентах, где аккумулируется и как сравнивается - совпадение, несовпадение пришедших данных с опытом и памятью обученой системы на основе СММ непонятно.
Писал на других форумах, но везде полная тишина.
|
|
|
|
|
 |
Ответов
|
Aug 30 2012, 12:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(TViT @ Aug 30 2012, 15:51)  Всем привет. Давно интересует этот вопрос.
Нужно понять как работает сеть на основе Скрытых Марковских Моделей в общих чертах.
Математикой не владею и нигде нет простого объяснения, на пальцах так сказать, или простейшей программы с исходным кодом для нескольких данных, либо километровые формулы, либо кружки со стрелочками. Было бы хорошо если будет простейший пример или код.
Например: есть входные данные X(n)=1..5, они поступают на СММ, что дальше СММ делает, что с чем сравнивает, какие коэффициенты подстраиваются и обучаются, к чему стремится система СММ. Программного кода нигде нет, где было бы видно по шагам, как программа и что вычисляет и куда записывает.
Так что для меня пока понятно лишь одно СММ это вероятность появления или ожидания определенных последовательностей данных. А как этот опыт при обучении записывается в каких коэффициентах, где аккумулируется и как сравнивается - совпадение, несовпадение пришедших данных с опытом и памятью обученой системы на основе СММ непонятно.
Писал на других форумах, но везде полная тишина. А Вы посмотрите в сторону Open computer vision library. В 2005 г. все было с исходниками. Обучал систему распознавания номеров, конкретно - на СММ распознавал цифры и буквы вырезанные из картинки - очень гуд. Глубоко не копал, там (в опенCV) были функции для загрузки СММ (обученных), обучения СММ, записи обученных СММ, ну и собственно распознавания образов. Все функции можно было посмотреть, библиотека опенЦВ от начала до конца была с исходниками. Повторюсь, занимался этим в 2005 г., как с ней сейчас дела обстоят не знаю, вроде где-то год назад из интереса смотрел OpenCV - в памяти осталось что теперь это за деньги покупается.
|
|
|
|
|
Aug 30 2012, 12:46
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 1-12-06
Пользователь №: 23 016

|
Цитата(alexPec @ Aug 30 2012, 16:17)  А Вы посмотрите в сторону Open computer vision library. В 2005 г. все было с исходниками. Обучал систему распознавания номеров, конкретно - на СММ распознавал цифры и буквы вырезанные из картинки - очень гуд. Глубоко не копал, там (в опенCV) были функции для загрузки СММ (обученных), обучения СММ, записи обученных СММ, ну и собственно распознавания образов. Все функции можно было посмотреть, библиотека опенЦВ от начала до конца была с исходниками. Повторюсь, занимался этим в 2005 г., как с ней сейчас дела обстоят не знаю, вроде где-то год назад из интереса смотрел OpenCV - в памяти осталось что теперь это за деньги покупается. Да, я знаю эту библиотеку. Но вот как раз мне хочется имено независимо ни от каких библиотек подойти к СММ т.е. глубоко копать код я не стал, там дикий лес, не одну неделю потратить можно пока проследишь все взаимосвязи в коде какие данные приходят что делается. Да и потом эту библиотеку с собой таскать постоянно это напряжно. Нужен маленький код в результате только для конкретной задачи для СММ. А так из тойже серии набор исходников HTK tool, там тоже есть СММ, но копать там исходники тоже кашмар, нужно немало времени чтобы въехать ... Да еще тем более когда понятия не имеешь какой код за что отвечает и что перед этим с входными данными делается. Знаю списывался с разными людьми что процесс обучения довольно замудреный, то ли алгоритмом Витерби, то ли ЕМ-моделями. Но мне даже это не оч интерессно на крайняк для простоты и понимания перебором обучу простейший пример из нескольких данных. Важно само понимание что есть СММ, марковская цепь. За что коэффициенты отвечают, что потом когда система обучена происходит как сравнение реализовано. Образы я распознавал через нейронную сеть все просто и понятно, хотя в начале голову поломал... Все во время упирается...
Сообщение отредактировал TViT - Aug 30 2012, 12:53
|
|
|
|
|
Sep 2 2012, 20:39
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 26-07-11
Пользователь №: 66 426

|
если это то, что описано в википедии по вопросу СММ - то это легко изобразить в любом функциональном языке достаточно быстро и кода будет очень не много, т.к. это математика ) здесь https://github.com/mikeizbicki/hmm есть сама библиотека (в папке Data файл HMM.hs) на Хаскеле и пример HMMTest.hs как ей пользоваться, там же в низу этого файла можете забить по аналогии любые свои данные и запустить... а так же проследить всю цепочку вычислений (хотя бы даже командой помощи :i [ имя функции или типа] в интерпретаторе ghci), помойму очень доступно, т.к. кода от силы 3-4 листа A4, за два вечера можно понять все взаимосязи между функциями... к тому же есть готовые способы из этого кода собрать все взаимосвязи графически... сделано через алгоритм Витерби, одако там совсем немного стоит поменять под любой желаемый вами, но боюсь время исполнения увеличится... а вот что вообще тут может быть интересным, когда есть сети Такаги-Сугено-Канга ) вот там действительно интересно с ними работать а насчёт того где и что СММ накапливает - да толком она не накапливает где-то, а размазывает по всем своим коэффициентам, судя по формулам такая же есть для лиспа - https://github.com/jmcejuela/CL-HMMи для матлаба - http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.htmlно последние две в силу своего императивного происхождения куда более длинные по коду и более сложные для понимания
Сообщение отредактировал abit - Sep 2 2012, 21:34
|
|
|
|
|
Sep 3 2012, 06:25
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 1-12-06
Пользователь №: 23 016

|
Спасибо abit это уже что-то. Хоть язык Хаскель мне не знаком буду копать ) Главное чтобы никаких функций импортируемых небыло которые всю основную работу делают. Иначе и не поймешь что и как ) И никуда на другой язык не перепишешь...
Сообщение отредактировал TViT - Sep 3 2012, 06:29
|
|
|
|
Сообщений в этой теме
TViT Скрытые марковские модели. Aug 30 2012, 11:51    abit Цитата(TViT @ Sep 3 2012, 10:25) Спасибо ... Sep 3 2012, 16:44     TViT Интересно вы дополнили )))
Про глюонное поле даже ... Sep 3 2012, 17:18      abit Цитата(TViT @ Sep 3 2012, 21:18) Интересн... Sep 3 2012, 18:03       TViT Цитатаисходя из моих сведений, они всё таки предст... Sep 3 2012, 18:27        abit Цитата(TViT @ Sep 3 2012, 22:27) Будет вр... Sep 5 2012, 13:12         TViT Цитата(abit @ Sep 5 2012, 17:12) Давайте ... Sep 5 2012, 14:01
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|