কলম্যান ফিল্টার কীভাবে ব্যবহার করবেন?


12

আমার কাছে একটি 2 ডি স্পেসে (একটি পৃষ্ঠ) একটি বস্তুর ট্রাজেক্টোরি রয়েছে। ট্র্যাজেক্টরিটি (x,y)স্থানাঙ্কের ক্রম হিসাবে দেওয়া হয় । আমি জানি যে আমার পরিমাপটি গোলমাল এবং কখনও কখনও আমার কাছে স্পষ্টভাবে বিদেশীও থাকে। সুতরাং, আমি আমার পর্যবেক্ষণগুলি ফিল্টার করতে চাই।

আমি যতদূর কলম্যান ফিল্টার বুঝতে পেরেছি, এটি আমার যা প্রয়োজন ঠিক তা করে। সুতরাং, আমি এটি ব্যবহার করার চেষ্টা করি। আমি একটি পাইথন বাস্তবায়ন পাওয়া এখানে । এবং এটি দস্তাবেজগুলি সরবরাহ করে এমন একটি উদাহরণ:

from pykalman import KalmanFilter
import numpy as np
kf = KalmanFilter(transition_matrices = [[1, 1], [0, 1]], observation_matrices = [[0.1, 0.5], [-0.3, 0.0]])
measurements = np.asarray([[1,0], [0,0], [0,1]])  # 3 observations
kf = kf.em(measurements, n_iter=5)
(filtered_state_means, filtered_state_covariances) = kf.filter(measurements)
(smoothed_state_means, smoothed_state_covariances) = kf.smooth(measurements)

ইনপুট এবং আউটপুট ব্যাখ্যায় আমার কিছু সমস্যা আছে। আমার অনুমান যে measurementsআমার পরিমাপটি ঠিক এটি (স্থানাঙ্ক)। যদিও আমি কিছুটা বিভ্রান্ত কারণ উদাহরণের পরিমাপটি পূর্ণসংখ্যা।

আমি কিছু সরবরাহ করতে হবে transition_matricesএবং observation_matrices। আমি সেখানে কি মূল্যবোধ করা উচিত? এই ম্যাট্রিকগুলির অর্থ কী?

অবশেষে, আমি আমার আউটপুট কোথায় খুঁজে পাব? এটা হওয়া উচিত filtered_state_meansবা smoothed_state_means। এই অ্যারেগুলির সঠিক আকার রয়েছে (2, n_observations)। তবে এই অ্যারেগুলির মানগুলি মূল স্থানাঙ্কগুলি থেকে খুব বেশি দূরে।

তাহলে, এই কলম্যান ফিল্টারটি কীভাবে ব্যবহার করবেন?


ম্যাট্রিকগুলি কলম্যান ফিল্টার দ্বারা অনুমান করা হবে। অপ্টিমাইজেশন অ্যালগরিদম বা এর মতো জন্য আপনাকে সম্ভবত কিছু প্রাথমিক মান দিতে হবে।
রিচার্ড হার্ডি

1
আপনাকে কোনও রাষ্ট্রীয় স্পেস মডেল নির্দিষ্ট করে শুরু করতে হবে যা আপনার পর্যবেক্ষণগুলি অনাবৃত রাজ্যের সাথে সম্পর্কিত করে এবং সময়ের সাথে সাথে রাষ্ট্র কীভাবে বিকশিত হয় তা বর্ণনা করে; এটি আপনাকে আপনার রূপান্তর এবং পর্যবেক্ষণ ম্যাট্রিক্সের পাশাপাশি রাষ্ট্রীয় ত্রুটির ("প্রক্রিয়া শব্দ") এর কোভারিয়েন্স ম্যাট্রিক্স এবং পর্যবেক্ষণ ত্রুটির জন্য কোভারিয়েন্স ম্যাট্রিক্স দেবে (এগুলি উইকিপিডিয়া পৃষ্ঠায় এফ, এইচ, কিউ এবং আর, এ, আপনার দেওয়া লিঙ্কটিতে সি, কিউ এবং আর)। কালামন ফিল্টার হ'ল (অবিচলিত) রাষ্ট্র এবং তার পরিবর্তনের-কোভারিয়েন্স ম্যাট্রিক্সটি একবার যখন আপনি সমস্ত জিনিস নির্দিষ্ট করে দিয়েছেন তখন অনুমান করার জন্য একটি অ্যালগরিদম।
গ্লেন_বি -রিনস্টেট মনিকা

আপনি যে ফাংশনটির সাথে লিঙ্ক করেছেন সেটি স্ট্যান্ডার্ড কেএফ থেকে কিছুটা আলাদা বাস্তবায়ন করে বলে মনে হচ্ছে যেটি আপনি সাধারণত নির্দিষ্টভাবে নির্দিষ্ট কিছু জিনিস অনুমান করতে EM ব্যবহার করতে পারেন।
গ্লেন_বি -রিনস্টেট মনিকা

উত্তর:


8

এখানে একটি 2-মাত্রিক কালমন ফিল্টার উদাহরণ যা আপনার পক্ষে কার্যকর হতে পারে is এটি পাইথনে আছে।

রাষ্ট্র ভেক্টরটি চারটি ভেরিয়েবল নিয়ে গঠিত: x0- দিকের অবস্থান, x1- দিকের অবস্থান, x0- দিকের বেগ এবং x1-দিকের বেগ in মন্তব্য করা লাইনটি "x: অবস্থান এবং গতিবেগের 4-দ্বিগুণ প্রাথমিক অবস্থা: (x0, x1, x0_dot, x1_dot)" দেখুন।

রাষ্ট্র-রূপান্তর ম্যাট্রিক্স (এফ), যা পরবর্তী রাষ্ট্রের সিস্টেম / অবজেক্টগুলির পূর্বাভাস দেয় facil অবস্থান এবং বেগের বর্তমান রাষ্ট্রীয় মানকে পজিশন (যেমন x0 + x0_dot এবং x1 + x1_dot) এবং এর বেগের বর্তমান রাষ্ট্রীয় মানগুলিকে একত্র করে বেগ (যেমন x0_ ডট এবং এক্স 1_ডট)।

পরিমাপের ম্যাট্রিক্স (এইচ) উভয়ই x0 এবং x1 উভয় অবস্থানেই অবস্থান বিবেচনা করে।

গতি শব্দের ম্যাট্রিক্স (কিউ) একটি 4-বাই -4 সনাক্তকরণ ম্যাট্রিক্সে আরম্ভ করা হয়েছে, যখন পরিমাপের শব্দটি 0.0001 এ সেট করা আছে।

আশা করি এই উদাহরণটি আপনাকে আপনার কোডটি কাজ করতে দেয়।


1

কলম্যান ফিল্টার একটি মডেল ভিত্তিক ভবিষ্যদ্বাণীপূর্ণ ফিল্টার - যেমন ইনপুটটিতে নিয়মিত পরিমাপের সাথে খাওয়ানো হলে ফিল্টারটির সঠিক প্রয়োগের ফলে আউটপুটটিতে সামান্য বা কোনও সময় দেরি হবে না। লাইব্রেরি ব্যবহারের বিপরীতে কলমন ফিল্টার সরাসরি প্রয়োগ করা আমার পক্ষে সর্বদা আরও সহজ বলে মনে হয় কারণ মডেলটি সর্বদা স্থির থাকে না।

ফিল্টারটি যেভাবে কাজ করে তা হ'ল প্রক্রিয়াটির গাণিতিক বিবরণ ব্যবহার করে পূর্বের অবস্থার উপর ভিত্তি করে বর্তমান মানটির পূর্বাভাস দেয় এবং তারপরে বর্তমান সেন্সর পরিমাপের ভিত্তিতে সেই প্রাক্কলনটিকে সংশোধন করে। এটি লুকানো অবস্থা (যা পরিমাপ করা হয় না) এবং অন্যান্য পরামিতিগুলি মডেলটিতে ব্যবহৃত হয় যতক্ষণ না তাদের পরিমাপক অবস্থার সাথে সম্পর্কগুলি মডেলটিতে সংজ্ঞায়িত করা যায় ততক্ষণে এটি নির্ধারণ করতে সক্ষম।

আমি আপনাকে আরও বিস্তারিতভাবে কলম্যান ফিল্টার অধ্যয়ন করার পরামর্শ দেব কারণ অ্যালগরিদম না বুঝে ফিল্টারটি ব্যবহার করার চেষ্টা করার সময় ভুল করা খুব সহজ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.