آشنایی با پردازش سیگنال برای یادگیری ماشین
پردازش سیگنال
یک سیگنال یا به زبان ریاضی یک تابع، روشی برای انتقال اطلاعات است. صدا، تصویر، سیگنال نوار قلب (electrocardiogram) یا همان ECG، سیگنال رادار، نوسانهای قیمت سهام، جریان و ولتاژ الکتریکی، همگی مثالهایی از سیگنال هستند.
شاخه پردازش سیگنال در علوم مهندسی بر روی شبیهسازی، تحلیل و تغییر این نوع سیگنالها تمرکز دارد. برخی از کاربردهای پردازش سیگنال عبارت است از:
- تبدیل یک سیگنال به سیگنال دیگر همچون فیلتر کردن، تجزیه و حذف نویز.
- استخراج (extraction) و درونیابی (interpolation) اطلاعات همچون بینایی ماشین، شناسایی گوینده، شناسایی عنبیه و شناسایی اثر انگشت.
- کدینگ کنترل کننده خطا و منبع همچون کدهای پریتی با چگالی کم (LDPC)، کدهای توربو، کدینگ پیشبینی خطی (LPC) و فرمتهای فشردهسازی تصویر از جمله JPG, PNG.
- تشخیص (detection) همچون سونار و رادار.
یادگیری ماشین ML
علم یادگیری ماشین حوزهای است که به توسعه الگوریتمهای با قابلیت یادگیری از دادهها میپردازد. بر اساس آنچه که آرتور ساموئل در 1959 گفته است، یادگیری ماشین شاخهای از دانش است که به رایانهها توانایی یادگیری بدون نیاز به برنامهنویسی صریح و آشکار را میدهد. کوین مورفی در کتاب معروف خود “یادگیری ماشین از نگاه احتمالات” یادگیری ماشین را به صورت مجموعهای از الگوریتمها معرفی میکند که به طور خودکار، الگوهای درون داده را تشخیص میدهد و از الگوهای پنهان برای پیشبینی دادههای آینده و هر آنچه که مطلوب است، استفاده میکند.
اساسا یک الگوریتم یادگیری ماشین، یادگیری از داده را برای اهداف زیر انجام میدهد:
- یادگیری از داده برای شناسایی الگوها همچون شناسایی الگوهای متنی در یک مجموعه ایمیل.
- کلاسبندی دادهها به دستههای مختلف همچون کلاسبندی ایمیلها به اسپم و غیر اسپم.
- پیشبینی یک رخداد در آینده همچون پیشبینی اینکه آیا ایمیلی که قرار است دریافت شود اسپم است یا خیر.
الگوریتمهای یادگیری ماشین به سه نوع اصلی تقسیم میشوند:
- یادگیری با ناظر: یک روند یادگیری پیشبینی کننده است که هدف، یادگیری از دادههای برچسب گذاری شده به صورت مجموعه جفتهای ورودی-خروجی است. مجموعه برچسب گذاری شده، مثالهای آموزشی برای کلاسبندی یا پیشبینی بیشتر فراهم میکند. به زبان عامیانه حوزه یادگیری ماشین، ورودیها تحت عنوان شاخص و خروجیها تحت عنوان متغیرهای پاسخ شناخته میشوند.
- یادگیری بدون ناظر: نوع کمتر شناخته شدهای از فرآیند کشف دانش است که هدف، یادگیری الگوهای ساختار یافته در دادهها با جداسازی آنها از نویز غیرساختار یافته خالص است.
- یادگیری تقویتی: یادگیری از طریق تعامل با محیط به منظور انجام امور تصمیمگیری به بهترین شکل ممکن.
بر اساس آنچه که در بالا گفته شد، میتوانیم تشخیص دهیم که چگونه همکاری و همافزایی بین شاخههای پردازش سیگنال و یادگیری ماشین، رویکرد جدیدی در مواجه با بسیاری از مسائل و مشکلات را فراهم میکند.
شناسایی گوینده – کاربردی از الگوریتمهای یادگیری ماشین در پردازش سیگنال
شناسایی گوینده (شکل 1) فرآیند شناسایی فرد گوینده با تحلیل خصوصیات صدای او است. در این کاربرد کلاسبندی باناظر، یک مجموعه داده برچسب گذاری شده از نمونههای صدای افراد مختلف برای انجام فرآیند یادگیری استفاده میشود.
شکل 1- شناسایی گوینده با استفاده از یادگیری ماشین و پردازش سیگنال
نمونههای ضبط شده صدا به همان شکل اولیه خود در فرآیند یادگیری قابل استفاده نیستند. برای پردازش بیشتر، ممکن است به نمونهبرداری، پاکسازی (حذف نویز یا نمونههای غیر معتبر) یا تغییر فرمت نمونهها به یک فرمت مناسب نیاز داشته باشیم. این مرحله پیشپردازش داده نام دارد.
همچنین ممکن است که داده را به حوزه مناسب برای الگوریتمهای یادگیری ماشین و شرایط مساله مورد نظر، تبدیل کنیم. برای آموزش مدل یادگیری ماشین برای شناسایی الگوها در نمونههای صوتی، فرآیند استخراج شاخص بر روی نمونههای صوت به کمک پردازش سیگنال انجام میشود. در این حالت خاص، شاخصهای مورد استفاده برای آموزش مدل یادگیری ماشین، گام صدا و ضرایب سپستروم فرکانس مل (MFCC) از نمونههای صوت استخراج میشوند.
به طور کلی، مجموعه داده در دسترس (مجموعه نمونههای صوتی ورودی) به دو زیرمجموعه تقسیم میشوند: یک مجموعه برای آموزش مدل و دیگری برای تست کردن آن (معمولا با نسبت 0.75% به 0.25%). مجموعه آموزشی برای آموزش و یادگیری مدل یادگیری ماشین استفاده میشود و مجموعه تست برای ارزیابی میزان موثر بودن و عملکرد الگوریتم یادگیری ماشین استفاده میشود.
فرآیند یادگیری بایستی رابطه نهفته بین بردارهای شاخص (ورودی الگوریتم یادگیری باناظر) و برچسب کلاسها (خروجی سیستم یادگیرنده) را تعمیم داده و عامسازی کنند. اعتبارسنجی متقابل (cross validation) یکی از روشهای بررسی و تایید توانایی مدل یادگیری ماشین در تعمیم و عامسازی است.
فرآیند یادگیری همچنین باید از برازش بیش از حد (overfitting) خودداری کند زیرا این موضوع ممکن است تعمیم ضعیف و کلاسبندی اشتباه را در پی داشته باشد. اگر عملکرد الگوریتم نیاز به بهبود داشته باشد، ما باید به عقب برگردیم و در مراحل قبل تغییراتی ایجاد کنیم. معیارهایی همچون دقت (accuracy)، نرخ بازیابی (recall) و ماتریس درهمریختگی (confusion matrix) معمولا برای ارزیابی میزان موثر بودن و قدرت عملکرد الگوریتم یادگیری ماشین استفاده میشوند.
بعد از آموزش الگوریتم یادگیری ماشین به اندازهای که عملکرد مناسبی از خود نشان دهد، ما به فاز اجرا میرویم. در فاز اجرا، زمانیکه یک نمونه صدای بدون برچسب به کلاسبند آموزش دیده اعمال میشود، این سیستم باید تشخیص دهد که این صدا متعلق به چه شخصی است.
منبع: www.gaussianwaves.com
دیدگاه ها (0)