شناسایی الگو چیست؟
شناسایی الگو یک فرایند شناختی است که در مغز ما زمانی که با برخی اطلاعاتی روبرو میشویم که با اطلاعات ذخیره شده در حافظه ما مطابقت دارد اتفاق می افتد. در علوم کامپیوتر، شناسایی الگو یک فرایند علمی است که در آن تمرکز بر شناخت خودکار الگوی دادههای ورودی است. در حوزه علوم کامپیوتر شناسایی الگو یک تکنولوژی هست که اطلاعات ذخیره شده در پایگاه داده را با نمونه جدید مطابقت داده و آن را را شناسایی میکند!
آیا تا به حال این فکر کرده اید که مغز ما چطور دنیای اطراف ما را ارزیابی میکند؟ برای مثال وقتی شما پستهای متنوعی را در اینستاگرام میبینید، زمانی که در میان این همه عکس با یک عکس آشنا روبرو می شوید سریع توجهتون به سمت اون عکس میره!
ما روزانه هزاران دفعه شناسایی الگو انجام میدهیم، بدون اینکه بهش توجهی کرده باشیم! برای مثال یکی از پشت سر صدایمان می کند، بدون اینکه سرمون رو برگرونیم، براساس لحن و تن صدای فرد متوجه میشویم صدای یک فرد آشنا هست یا غریبه!
یه مثال ساده تر بزنیم که در کشور ما این خیلی رایج است، وقتی یکی زنگ در رو میزنه، آیفون رو جواب میدید، بعد اونی که درو زده بدون اینکه خودش رو معرفی کنه میگه: “منم”!
شما هم درو باز میکنید! همین!
واقعیت اینه شما از قبل چندین بار صدای فرد رو شنیده اید، با لحن و تن صدای فرد کاملا آشنا هستید، حال وقتی فرد میگه “منم”، مغز شما صدای فرد را با داده های ذخیره شده در حافظه مقایسه میکند تا ببیند با کدام یک از صداها مطابقت میکند، بعد اگر این صدا برای مغز شما نا آشنا باشد احتمالا درو باز نمیکنید و از شخص میخواهید خودش را معرفی کند! البته تو ایران ما در هر صورت در رو باز میکنیم!
شناسایی الگوی چیست؟
با اینکه ما اصطلاح شناسایی الگو را در دنیای هوش مصنوعی و IT می شنویم، ولی واقعیت اینه که شناسایی الگو توسط علوم شناختی و فیزولوژی ارائه شده است.
شناسایی الگو یک فرایند شناختی است که در مغز ما زمانی که با برخی اطلاعاتی روبرو میشویم که با اطلاعات ذخیره شده در حافظه ما مطابقت دارد اتفاق می افتد.
یک مثال ساده بزنیم، یک مادر میخواهد به فرزندش شمارش اعداد یک تا سه رو یاد بده، و شروع میکنه به گفتن اعداد 1 2 3 . بعد از چندین تکرار متعدد، وقتی مادر میگه 1 2، فرزندش در پاسخ میگه 3! همانطور که میبینیم اینجا فرزند الگو را شناسایی کرده است.
در مغز ما میلیونها سلول وجود دارد که کنار هم شناسایی الگو انجام میدهند که این یک فرایند بیولوژیکی هست.
در علوم کامپیوتر و یادگیری ماشین، شناسایی الگو چجوری انجام میشه؟
در این حوزه شناسایی الگو یک تکنولوژی هست که اطلاعات ذخیره شده در پایگاه داده را با داده جدید مطابقت داده داده و داده جدید را شناسایی میکند!
خیلی جاها سوال مطرح میشود که تفاوت شناسایی الگو با یادگیری ماشین چیه؟ جواب خیلی ساده است، شناسایی الگو یک نوعی از یادگیری ماشین است!
شناسایی الگو یک فناوری است که فرایند یادگیری را برای الگوریتمهای یادگیری ماشین امکانپذیر میکند. یک بخش جداییناپذیر در مباحث یادگیری ماشین است و به الگوریتمها کمک میکند تا الگوی دادهها را شناسایی کرده و داده ها را به دسته های مختلف دسته بندی کنند.
مراحل یک سیستم شناسایی الگو
میتوان از شناسایی الگو در سه نوع مسئله طبقهبندی، رگرسیون و خوشهبندی استفاده کرد، ولی اینجا برای درک بهتر مباحث، توضیحات را برای مسائل طبقهبندی ارائه میدهیم.
به طور کلی یک سیستم شناسایی الگو از 5 مرحله اساسی تشکیل شده است.
هدف سیستم شناسایی الگو تشخیص الگوی این است که تشخیص دهد داده ورودی به چه کلاسی تعلق دارد.
همه مراحل در یک سیستم شناسایی الگو نقش مهمی دارند و اگر به خوبی به کار گرفته نشوند، تصمیم درستی گرفته نخواهد شد.
حسگرهای ورودی
در مرحله اول توسط سنسور از object ورودی سیگنال ثبت شده و برای تجزیه و تحلیل وارد سیستم میشود. سنسور ورودی میتواند الکترود، میکروفن، دوربین، دستگاههای تصویر برداری پزشکی و … باشد.
پیش پردازش
همانطور که قبلا در بخش “چطور ویژگی استخراج کنیم ” هم گفتهایم، سیگنال ثبت شده علاوه بر اطلاعات مرتبط با مسئله، حاوی اطلاعات دیگهای نیز هست که ممکن است مفید نباشند، مثل نویز، اطلاعات مشترک و …
در مرحله پیش پردازش هدف این است که تا جایی که میتوانیم اطلاعات نامرتبط را حذف کنیم تا در مرحله استخراج ویژگی، ویژگیهای مناسبی استخراج شود و طبقهبند بتواند با کمک آنها لیبل داده ورودی را به درستی تخمین بزند.
استخراج ویژگی
ویژگی یک پارامتر یا خصیصه قابل اندازهگیری از یک پدیدهای هست که مشاهده میکنیم. ویژگی برخی مشخصات مهم یک object را کمّی میکند.
در مرحله استخراج ویژگی از سیگنال تمیز شده در مرحله پیش پردازش تعدادی ویژگی استخراج می شود. ما معمولا در مرحله استخراج ویژگی تا جایی که میتوانیم پارامترهای مختلفی از سیگنال ووردی استخراج میکنیم و همه را در یک بردار ویژگی کنار هم قرار میدهیم تا بعدا طبقه بند با کمک این بردار ویژگی لیبل داده جدید را تخمین بزند. جنس ورودی این مرحله سیگنال هست و جنس خروجی آن از نوع ویژگی هست.
اهمیت استخراج ویژگی در یک سیستم شناسایی الگو بسیار زیاد است، و اگر ویژگیها را به درستی استخراج نشوند، طبقهبند هرچقدر هم خوب باشد، لیبل داده را به درستی تخمین نخواهد زد.
مرحله استخراج ویژگی و پیش پردازش application dependent هستند و در هر پروژه ای بسته به نوع ورودی میتوانند متفاوت باشند. اما مراحل انتخاب ویژگی و طبقه بندی در همه پروژه ها یکسان است.
انتخاب ویژگی
معمولا بعدا از استخراج ویژگی با تعداد بسیار زیادی از ویژگی ها روبرو هستیم، به عبارتی یک بردار ویژگی با ابعاد بالا داریم و قرار است طبقه بند براساس این بردار ویژگی نمونه ورودی را دسته بندی کند.
وقتی ابعاد بالا باشد، کار تصمیم گیری برای طبقه بند سخت خواهد شد. از طرفی ممکن است در بین ویژگیهای استخراج شده، ویژگی هایی باشند که نه تنها حاوی اطلاعات نیستند بلکه ابعاد را هم بالا برده اند. پس بهتر است یک مرحله انتخاب ویژگی داشته باشیم، و از بین ویژگیهای استخراج شده، به نحوی ویژگیهای مناسب که حاوی اطلاعات هستند را شناسایی کرده و انتخاب کنیم. با این کار هم تعداد ویژگی ها را کم میکنیم و هم ویژگی هایی را نگه میداریم که حاوی اطلاعات هستند در نتیجه کار تصمیم گیری را برای طبقه بند تسهیل میکند.
طبقه بندی
کار تصمیم گیری در یک سیستم شناسایی الگو در مرحله آخر توسط طبقه بند انجام می شود.
برای اینکار هم، طبقه بند در ابتدا، قبل اینکه وارد پروسه تصمیم گیری شود، با کمک یک پایگاه داده آموزش می بیند تا با الگوی نمونه های همه کلاسها آشنا شود، سپس بعد در عمل میتواند الگوی نمونه جدید(بردار ویژگی ) را با پایگاه داده مقایسه میکند تا متوجه شود نمونه جدید به چه کلاسی تعلق دارد.
نتیجه گیری
به یاد داشته باشید که یک سیستم شناسایی الگو چند منظوره نیست! و هر کدام برای حل یک مسئله ای طراحی می شوند و نمی توان از آن سیستم طراحی شده برای سایر مسائل استفاده کرد.
برای مثال اگر ما یک سیستم شناسایی الگو طراحی کردیم که میتواند موز و سیب را از هم تفکیک کند، نمتوانیم برای تفکیک پیاز و سیب زمینی استفاده کنیم!
یا اگر یک سیتسم طراحی کردیم که میتواند تومور بدخیم و خوشخیم مغزی را تشخیص میدهد، نمتوان برای تشخیص تومور بدخیم و خوش خیم سرطان سینه استفاده کرد.
برای هر مسئله ای باید در ابتدا پایگاه داده مناسب جمع آوری کنیم و با کمک آن برای مسئله مورد نظر یک سیتسم شناسایی الگو طراحی کنیم!
اساس همه پروژه های تخصصی شناسایی الگو هست، پس در اولین فرصت تمام ابزار مورد نیاز در این حوزه را یاد بگیرید تا بتوانید پروژه های تخصصی را انجام بدهید.
ما در آکادمی onlinebme برای اولین بار در ایران یک دوره جامع 140 ساعته برای شناسایی الگو-یادگیری ماشین آماده کرده ایم که یک دوره کاملا تخصصی و پروژه محور است و تمام ابزار مورد نیاز در انجام پروژه ها را به صورت صفر تا صد آموزش داده ایم . در این دوره در ابتدا تئوری و مباحث ریاضیاتی الگوریتمها آموزش داده شده، سپس به صورت مرحله به مرحله روی یک مثال بسیار ساده پیاده سازی شده تا درک بهتری از عملکرد الگوریتم بدست بیاوریم و سپس چندین پروژه عملی انجام داده ایم تا با کابردهای عملی هر الگوریتم در پروژه های واقعی آشنا شویم، و همچنین با چالش های واقعی انجام یک پروژه تخصصی روبرو شده و متوجه شویم که چطور میتوان از یک ابزار به شکل بهینه در پروژه های عملی استفاده کرد.
این دوره تخصصی به دوستانی پیشنهاد میشود که علاقه مند هستند پروژه های درسی و پایان نامه خودشون رو انجام بدهند. ما در دوره به شما آموزش میدهیم که چطور میتوان یک پروژه با کیفیت انجام داد. تمام ابزار مورد نیاز در انجام پروژه ها را به شما در طول دوره 140 ساعته آموزش میدهیم.
[…] که میدانیم یک سیستم شناسایی الگو از 5 مرحله اساسی تشکیل شده است و هر کدام از این مراحل […]
بسیار عالی و مفهومی و ساده مطالب بیان شده