Про фільтрі Калмана простою мовою
Цей фільтр застосовують у різних областях - від радіотехніки до економіки. Тут ми обговоримо основну ідею, зміст, суть даного фільтра. Викладатися вона буде максимально простою мовою.
Припустимо, що у нас є необхідність у вимірах деяких величин якогось об'єкта. У радіотехніці найчастіше мають справу з вимірами напруг на виході якогось пристрою (датчика, антени і т.д.). У прикладі з електрокардіографом (див. Тут) ми маємо справу з вимірами биопотенциалов на тілі людини. В економіці, наприклад, вимірюваноївеличиною можуть бути курси валют. Каждиё день курс валют різний, тобто кожен день "його вимірювання" дають нам різну величину. А якщо узагальнювати, то можна сказати, що більша частина діяльності людини (якщо не вся) зводиться саме до постійних вимірах-порівнянь тих чи інших величин (див. Книгу).
Отже, припустимо, що ми щось постійно вимірюємо. Так само припустимо, що наші виміри завжди йдуть з деякою помилкою - воно й зрозуміло, адже немає ідеальних вимірювальних приладів, і кожен видає результат з помилкою. У найпростішому випадку описане можна звести до наступного виразу: z = x + y, де x - справжнє значення, яке ми хочемо виміряти і яке виміряли б якби у нас був ідеальний вимірювальний прилад, y - помилка вимірювання, яку вносить вимірювальним приладом, а z - виміряна нами величина. Так ось завдання фільтра Калмана полягає в тому, щоб по виміряної нами z все-таки здогадатися (визначити), а яке ж справжнє значення x було, коли ми отримували нашу z (в якій "сидить" істинне значення і помилка вимірювання). Необхідно відфільтрувати (відсіяти) з z справжнє значення x - прибрати з z спотворює шум y. Тобто, маючи на руках лише суму нам необхідно здогадатися про те, які складові дали цю суму.
У світлі вищеописаного сформулюємо тепер все наступним чином. Нехай є всього лише два випадкових числа. Нам дається тільки їх сума і від нас вимагається за цією сумою визначити, якими є складові. Наприклад, нам дали число 12 і кажуть: 12 - це сума чисел x і y, питання - чому дорівнюють x і y. Щоб відповісти на це питання, складаємо рівняння: x + y = 12. Ми отримали одне рівняння з двома невідомими, тому, строго кажучи, знайти два числа які і дали цю суму не можливо. Але дещо про ці числа ми все-таки можемо сказати. Ми можемо сказати, що це були або числа 1 і 11, або 2 і 10, або 3 і 9, або 4 і 8 і т.д. також це або 13 і -1, або 14 і -2, або 15 і -3 і т.д. Тобто ми можемо за сумою (в нашому прикладі 12) визначити безліч можливих варіантів, які дають в сумі саме 12. Один з цих варіантів - це шукана нами пара, яка насправді прямо зараз і дала 12. Не зайве так само відзначити, що всі варіанти пар чисел дають в сумі 12 утворюють пряму, зображену на рис.1, яка і задається рівнянням x + y = 12 (y = -x + 12).
Таким чином, шукана нами пара лежить десь на цій прямій. Повторюся, вибрати з усіх цих варіантів ту пару, яка була насправді - яка дала число 12, не володіючи якими-небудь додатковими підказками, неможливо. Однак, в ситуації, для якої винайдений фільтр Калмана, такі підказки є. Там заздалегідь про випадкових числах дещо відомо. Зокрема там відома так звана гістограма розподілу для кожної пари чисел. Вона зазвичай буває отримана після досить тривалих спостережень за випаданнями цих самих випадкових чисел. Тобто, наприклад, з досвіду відомо, що в 5% випадків зазвичай випадає пара x = 1, y = 8 (позначимо цю пару так: (1,8)), в 2% випадків пара x = 2, y = 3 ( 2,3), в 1% випадків пара (3,1), в 0.024% випадків пара (11,1) і т.д. Повторюся, ця гістограма задана для всіх пар чисел, в тому числі і для тих, що утворюють в сумі 12. Таким чином, для кожної пари, що дає в сумі 12, ми можемо сказати, що, наприклад, пара (1, 11) випадає в 0.8% випадків, пара (2, 10) - в 1% випадків, пара (3, 9) - в 1.5% випадків і т.д. Таким чином, ми можемо по гістограмі визначити, в скількох відсотках випадків сума доданків пари дорівнює 12. Нехай, наприклад, в 30% випадків сума дає 12. А в інших 70% випадають інші пари - це (1,8), (2, 3), (3,1) і т.д. - ті, що в сумі дають числа відмінні від 12. Причому нехай, наприклад, пара (7,5) випадає в 27% випадків в той час, як всі інші пари, що дають в сумі 12, випадають в 0.024% + 0.8% + 1% + 1.5% + ... = 3% випадків. Отже, по гістограмі ми з'ясували, що числа дають в сумі 12 випадають в 30% випадків. При цьому ми знаємо, що якщо випало 12, то найчастіше (в 27% з 30%) причиною цього є пара (7,5). Тобто якщо вже випало 12, то ми можемо сказати, що в 90% (27% з 30% - або, що те ж саме 27 разів з кожних 30-ти) причиною випадання 12 є пара (7,5). Знаючи, що найчастіше причиною отримання суми, що дорівнює 12 є пара (7,5) логічно припустити, що, швидше за все, вона випала і зараз. Звичайно, все-таки не факт, що насправді зараз число 12 утворено саме цією парою, проте, в наступні рази, якщо нам попадеться 12, і ми знову припустимо пару (7,5), то десь в 90% випадків з 100% маємо рацію. А ось якщо ми будемо припускати пару (2, 10), то маємо рацію лише в 1% з 30% випадків, що дорівнює 3.33% правильних здогадок в порівнянні з 90% при припущенні пари (7,5). Ось і все - в цьому і полягає сенс алгоритму фільтра Калмана. Тобто фільтр Калмана не гарантує, що ні помилиться у визначенні доданка за сумою, проте він гарантує, що помилиться мінімальну кількість разів (ймовірність помилки буде мінімальна), так як використовує статистику - гистограмму випадання пар чисел. Так само необхідно підкреслити, що часто в алгоритмі фільтрації Калмана використовується так звана щільність розподілу ймовірності (ПРВ). Однак необхідно розуміти, що сенс там той же, що і у гістограми. Більш того, гістограма - це функція, побудована на основі ПРВ і є її наближенням (див. Наприклад, тут).
В принципі ми цю гистограмму можемо зобразити у вигляді функції двох змінних - тобто у вигляді якоїсь поверхні над площиною xy. Там, де поверхня вище, там вище і ймовірність випадання відповідної пари. На рис.2 зображена така поверхня.
Як видно над прямий x + y = 12 (яка є варіанти пар дають в сумі 12) розташовані точки поверхні на різній висоті і найбільша висота у варіанту з координатами (7,5). І коли нам зустрічається сума рівна 12, в 90% випадків причиною появи цієї суми є саме пара (7,5). Тобто саме ця пара, що дає в сумі 12, має найбільшу ймовірність появи за умови, що сума дорівнює 12.
Таким чином, тут описана ідея лежить в основі фільтра Калмана. Саме на ній і побудовані всілякі його модифікації - однокрокові, багатокрокові рекурентні і т.д. Для більш глибокого вивчення фільтра Калмана рекомендую книгу: Ван Тріс Г. Теорія виявлення, оцінок і модуляції.
p.s. Для того, хто цікавиться поясненнями понять математики що називається "на пальцях" можна порадити ось цю книгу і зокрема голови з її розділу "Математика" (саму книгу або окремі розділи з неї ви можете придбати тут).
Костянтин. А чому Ви не розглядаєте використання нейронних мереж для проектування фільтрів відомих в даний час і тих. які будуть винайдені найближчим часом. Адже будь-який фільтр - це окремий випадок застосування нейронних мереж. Навіщо витрачати час на сторонні речі. коли можна витратити його на вивчення методики. що дозволяє спроектувати будь-яку випадковість. Що думаєте з цього приводу?
Нейронна мережа навчена на прикладах може виявитися не точною в порівнянні, наприклад, з тим же фільтром Калмана побудованого під конкретні умови. Так як набір прикладів для навчання мережі може виявитися не повним.
Ну тут буде винна не концепція нейронних мереж. а той. хто їй не володіє достатньою мірою. Певною мірою це мистецтво. Але дуже перспективне.
Саме так, поки що люди не вміють підбирати параметри нейронної мережі крім навчання її на прикладах, а тут вже велика ймовірність помилки. Немає вивірених точних методик підбору навчального набору прикладів і поки навіть це на рівні мистецтва.