چالش جستوجوی الگوها در میان دادهها یک مسئلهی اساسی است که اتفاقاً حضور پررنگی در تاریخ زندگی و تکامل گونهی انسانها دارد. به عنوان مثال: مشاهدات نجومی گسترده TychoBrahe در قرن شانزدهم به یوهانس کپلر اجازه داد تا قوانین تجربی حرکت سیارات را کشف کند، که به نوبه خود سکوی پرشی برای توسعه مکانیک کلاسیک را فراهم کرد. در شرایط مشابه، کشف نظم در طیفهای اتمی نقش کلیدی در توسعه و تأیید فیزیک کوانتومی در اوایل قرن بیستم داشت. امروزه در حوزهی تشخیص الگو با استفاده از الگوریتمهای کامپیوتری به کشف خودکار نظمها در دادهها میپردازند و با استفاده از الگوهای کشف شده به اقداماتی مانند طبقه بندی اطلاعات میپردازند.
برای تشخیص سیبی که در مقابل خود داریم، باید بتوانیم لبهی سیب و پسزمینهي آن را مشخص کنیم. همچنین باید بتوانیم با استفاده از اطلاعات خود در مورد انواع میوه، سیب را از پرتقال تشخیص دهیم. رویای مهندسان این بود که کامپیوتربتواند چیزهایی را که ما به صورت ناخودآگاه تشخیص میدهیم، شناسایی کند. چیزی که این رویا را محقق کرد، توانایی پردازش دادهها و سرعت کامپیوترهای مدرن است. این قابلیتها، که شامل عملیاتهای کامپیوتری اولیه و پردازش نمادین میشود، مانند: استنتاج با سرعت بالاهستند که ساختن سیستمهای تشخیص الگوی پیچیده را برای ما ممکن ساخته است. امروزه، در تشخیص الگوی بصری، یک کامپیوتر میتواند ویژگیهای یک تصویر را با استفاده از تجربه و دادههای اولیه خود تفسیر کند تا بفهمد چه اشیایی در یک الگو ظاهر میشوند. این فناوری و سایر روشهای بنیادی دیگر در حال حاضر در عملیاتهای مختلف پردازش اطلاعات روزمره مانند خواندن خودکار کاراکترها، اعداد و تصاویر، تجزیه و تحلیل عکسها، تشخیص الگوهای سهبعدی، درک اجسام متحرک و … استفاده میشوند. اکنون این شناسایی شامل تشخیص پزشکی، اطلاعات کتابخانه، رباتها، فناوری فضایی و پشتیبانی برای کار در محیطهای متنوع میباشد. در این مطلب به بررسی الگوریتم شناسایی الگو، کاربردهای آن، نحوهی عملکرد آن و مزایا و معایب آن میپردازیم.
فهرست مطالب پیشرو
مزایای استفاده از شناسایی الگو
تفاوت یادگیری ماشین و شناسایی الگو
نکاتی دربارهی ماشین لرنینگ
از میان هفت الگوی هوش مصنوعی که بیانگر روشهایی است که هوش مصنوعی در آن پیادهسازی میشود، یکی از رایجترین آنها الگوی تشخیص است. ایده اصلی الگوی تشخیص هوش مصنوعی این است که ما از یادگیری ماشین و فناوری شناختی برای کمک به شناسایی و طبقهبندی دادههای بدون ساختار در طبقهبندیهای خاص استفاده میکنیم. این دادههای بدون ساختار میتواند تصاویر، ویدئو، متن یا حتی دادههای کمی باشد. قدرت تشخیص الگو این است که ما ماشینها را قادر میسازیم تا کاری را انجام دهند که به نظر میرسد مغز ما به راحتی انجام میدهد: شناسایی آنچه در دنیای واقعی اطرافمان درک میکنیم. تفاوت بین دادههای ساختاریافته و بدون ساختار این است که دادههای ساخت یافته قبلاً تعریف و دستهبندی شدهاند و تفسیر آنها آسان است. با این حال، دادههای بدون ساختار حوزهای است که بیشتر متخصصان در آن با مشکل مواجه هستند. تا 90 درصد از دادههای یک سازمان، دادههای بدون دستهبندی هستند. برای کسبوکارها لازم است که بتوانند این دادهها را درک و تفسیر کنند و اینجاست که هوش مصنوعی وارد میشود. در حالی که ما میتوانیم از فناوری پرس و جو و سیستمهای انفورماتیک موجود برای جمعآوری ارزش تحلیلی از دادههای ساختیافته استفاده کنیم، استفاده از این رویکردها با دادههای بدون ساختار تقریبا غیرممکن است. . این همان چیزی است که یادگیری ماشین را به ابزار قدرتمندی در هنگام استفاده از این دسته از مشکلات تبدیل میکند.
تشخیص و شناسایی الگو چیست؟
تشخیص الگو استفاده از الگوریتمهای یادگیری ماشین برای شناسایی الگوها است. این الگوریتم دادهها را بر اساس اطلاعات آماری یا تجربهي به دست آمده از الگوها و نمایش آنها طبقهبندی میکند. در این تکنیک از دادههای آموزشی برچسب دار برای آموزش سیستمهای تشخیص الگو استفاده میشود. یک برچسب به یک مقدار ورودی خاص متصل میشود که برای تولید یک خروجی مبتنی بر الگو استفاده میشود. در غیاب دادههای برچسبگذاری شده، ممکن است از الگوریتمهای رایانهای دیگر برای یافتن الگوهای ناشناخته استفاده شود.
یادگیری ماشینی از ریاضیات، آمار و دانش و دادههای خاص هر حوزهای برای حل مسائل پیچیده استفاده میکند. ممکن است برای شما این سوأل پیش بیاید که تفاوت یادگیری ماشین و الگوریتم تشخیص الگو یا هر الگوریتمی چیست؟ یادگیری ماشینی تبدیل اشیا (دادهها) به اعداد و یافتن الگوهایی در آن اعداد است. برای یافتن الگوها از الگوریتمها استفاده می شود. الگوریتم مجموعهای از مراحل خاص برای انجام یک کار است. «الگوریتم» در یادگیری ماشین، رویهای است که روی دادهها برای ایجاد «مدل» یادگیری ماشین اجرا میشود. یک الگوریتم یادگیری ماشین برای استخراج مدل نوشته شده است. مدل الگوهای موجود در دادهها را شناسایی میکند که متناسب (Fit) با مجموعه داده است. Fit مترادف “یافتن الگوها در داده” است. یک “مدل” در یادگیری ماشین خروجی یک الگوریتم یادگیری ماشینی است که بر روی دادهها اجرا می شود. یک مدل نشان دهنده آنچه توسط یک الگوریتم یادگیری ماشینی آموخته شده است. این اساساً یک تابع ریاضی است که میتواند با تغییر پارامترهای آن با دادههای جدید سازگار شود.
مدلها مانند معادله کلی یک خط y = a + bx هستند، در حالی که الگوها مانند یک معادله خاص هستند، به عنوان مثال. y = 5 + 2x. وظیفه یا کاربرد دیگر ماشبن لرنینگ این است که این الگوریتمها و تجربهها را در موقعیتها و مسائل جدید نیز بهطرز مؤثر به کار ببرد.
وظیفه اصلی یادگیری ماشینی ایجاد مدلی است که بتواند الگوهای مختلف را از دادهها پیشبینی یا طبقهبندی کند. یکی از کاربردهای این طبقهبندی دادههای اسپم (Spam) یا غیرهرزنامه است.
با افزایش تعداد نمونههای موجود برای یادگیری، الگوریتمها بهطور تطبیقی عملکرد خود را بهبود میبخشند. دو نوع اصلی یادگیری ماشینی یادگیری ماشینی تحت نظارت و بدون نظارت است.
تشخیص الگو در رویکرد نظارت شده طبقه بندی (Classification) نامیده می شود. این الگوریتمها از یک روش دو مرحلهای برای شناسایی الگوها استفاده میکنند. مرحله اول توسعه/ساخت مدل و مرحله دوم شامل پیشبینی اشیاء یا دادههای جدید یا نادیده است.
الگوریتم شناسایی الگو چگونه عمل میکند؟
اول به بررسی اصطلاحاتی دربارهی شناسایی الگوریتم و سپس به نحوهی عملکرد الگوریتم تشخیص الگو میپردازیم.
اصطلاحاتی در پروسهی شناسایی الگو:
مجموعه آموزشی: مجموعه آموزشی نقش مهمی در آموزش مدل ایفا میکند. برنامه این مجموعه داده را با استفاده از قوانین آموزشی پردازش میکند. برای به دست آوردن نتیجه بهتر، باید یک مجموعه داده نسبتاً بزرگ و موثق جمع آوری کرد. اگر کسی در حال ساخت یک تشخیص چهره نقابدار است، به تصاویر زیادی از افرادی که ماسک زده اند نیاز دارد. از آن مجموعه داده، اطلاعات لازم توسط برنامه جمع آوری میشود. به طور کلی، 80٪ از کل مجموعه داده به عنوان مجموعه داده آموزشی استفاده میشود.
مجموعه اعتبار سنجی: تنظیم دقیق به آموزش مدل کمک می کند. اگر برای مجموعه داده آموزشی دقت در حال افزایش باشد، بخش خاصی از دادهها از مجموعه داده آموزشی که برای مدل ناشناخته است انتخاب میشود تا بررسی شود که برای آن مجموعه داده نیز دقت در حال افزایش است. اگر دقت برای مجموعه اعتبار سنجی افزایش نمییابد، برنامه بیش از حد برازش مدل دارد. در آن صورت، توسعهدهنده باید مقدار پارامترها را بررسی کند یا ممکن است مجبور شود مدل را دوباره بررسی کند.
مجموعه تست: مجموعه تست برای گرفتن خروجی از مدل استفاده میشود. بعد از آموزش برای بررسی دقیق بودن مدل استفاده میشود. بقیه 20 درصد مجموعه داده به عنوان یک مجموعه آزمایشی استفاده میشود.
پروسهی عملکرد الگوریتم تشخیص الگو:
پس از دریافت مقداری اطلاعات به عنوان ورودی، الگوریتم شروع به پیش پردازش دادهها می کند. این به معنای جداسازی چیزی جالب از پسزمینه است. به عنوان مثال، هنگامی عکسی از یک پارک و یک چهره آشنا یا هر شیئی که توجه کاربر را به خود جلب میکند به شما داده میشود، این یک پیش پردازش است.
در حالی که داده ها در مرحله پیش پردازش هستند، فیلتر کردن نویز از مجموعه داده اصلی مهم است. بسته به عملکرد عملکرد برنامه، الگوریتم فیلتر تغییر خواهد کرد. به عنوان مثال، یک سیستم تشخیص چهره را در نظر بگیرید که در آن سیستم در حال جمع آوری تصاویر برای اهداف آموزشی است.
برای پردازش داده ها، ابتدا تصاویر را از RGB به مقیاس خاکستری تبدیل می کند. همچنین، سیستم به نواحی دیگری غیر از صورت نیاز ندارد. بنابراین برای فیلتر کردن بخشهای ناخواسته تصاویر و جایگزینی آنها با پسزمینه سفید یا سیاه، مکانیزمهای فیلتر مورد نیاز است. هنگامی که آن مکانیسم های فیلتر روی داده ها استفاده شود، استخراج ویژگی ها از تصاویر فیلتر شده برای سیستم آسان تر خواهد بود.
استخراج ویژگی فرآیندی است برای کشف برخی از صفات مشخصه که شبیه به بیش از یک نمونه داده است. اطلاعات به دست آمده ممکن است ویژگی های کلی باشد که برای سهولت پردازش بیشتر ارزیابی می شوند. به عنوان مثال، در تشخیص تصویر، ویژگی های استخراج شده حاوی اطلاعاتی در مورد سایه خاکستری، بافت، شکل یا زمینه تصویر خواهد بود. این اطلاعات اصلی مورد استفاده در پردازش تصویر است. روش های استخراج ویژگی و ویژگی های استخراج شده وابسته به کاربرد هستند.
پس از استخراج ویژگیها از دادههای پردازششده، نتیجه یک سیستم تشخیص الگو یا تخصیص کلاس (دادههای برچسبگذاریشده)، یا تخصیص خوشهای (مجموعه داده بدون برچسب)، یا مقادیر پیشبینیشده (جایی که رگرسیون اعمال میشود) خواهد بود.
ابزارهای شناخته شدهای که از الگوریتم تشخیص الگو استفاده کردهاند:
Amazon Lex – این یک نرم افزار/سرویس منبع باز است که توسط آمازون برای ساخت عوامل مکالمه هوشمند مانند چت بات ها با استفاده از تشخیص متن و گفتار ارائه شده است.
Google Cloud AutoML – این فناوری برای ساخت مدلهای یادگیری ماشینی با کیفیت بالا با حداقل نیاز استفاده میشود. از شبکه های عصبی (شبکه های عصبی بازگشتی RNN) و یادگیری تقویتی به عنوان پایه ای برای ساخت مدل استفاده می کند.
R-Studio – از زبان برنامه نویسی R برای توسعه کد استفاده می کند. این یک محیط توسعه یکپارچه برای توسعه و آزمایش مدل های تشخیص الگو است.
IBM Watson Studio – IBM Watson Studio یک ابزار منبع باز است که توسط IBM برای تجزیه و تحلیل داده ها و یادگیری ماشین ارائه شده است. برای ساخت و استقرار مدل های یادگیری ماشین روی دسکتاپ استفاده می شود.
Microsoft Azure Machine Learning Studio – ارائه شده توسط مایکروسافت، این ابزار از مفهوم کشیدن و رها کردن برای ساخت و استقرار مدل های یادگیری ماشین استفاده می کند. این یک محیط مبتنی بر GUI (رابط کاربری گرافیکی) برای ساخت و استفاده از مدل ارائه می دهد.
نکاتی در باب شناسایی الگو
- تشخیص الگو از داده ها یاد می گیرد.
- شناسایی خودکار الگوها حتی زمانی که تا حدی قابل مشاهده باشد.
- الگوهای آشنا را تشخیص دهد.
- الگو باید از زوایای مختلف و اشکال مختلف تشخیص داده شود.
مدلهای یادگیری تشخیص الگو
همانطور که در شکل زیر میبینید به طور کلی میتوان مدلهای یادگیری تشخیص الگو را به ۳ دسته تقسیم کرد: ۱ـ مدلهای آماری ۲ـ مدلهای شبکهی عصبی ۳ـ مدلهای سینتکتیک
الگوریتمهای تشخیص الگو
۱ـ تکنیکهای آماری (Statistical Techniques): از این الگوریتم برای ساخت یک مدل آماری استفاده می شود. این مدلی است که الگوهای آن با استفاده از ویژگی ها توصیف شده است. مدل می تواند ماهیت احتمالی الگوها را پیش بینی کند. ویژگی های انتخاب شده برای تشکیل خوشه ها استفاده می شود. توزیع احتمال الگو مورد تجزیه و تحلیل قرار می گیرد و سیستم مطابق با آن سازگار می شود. الگوها در معرض پردازش بیشتر قرار می گیرند. سپس مدل الگوهای آزمایشی را برای شناسایی الگوها اعمال می کند.
۲ـ شبکهی عصبی (Neural Network): این الگوریتم ها مدلی را تشکیل می دهند که از ساختارهای موازی (نرون ها) تشکیل شده است. این مدل به دلیل تواناییهای یادگیری برتر از سایر مدلهای تشخیص الگو شایستگی بیشتری دارد. یک مثال خوب از یک شبکه عصبی مورد استفاده در تشخیص الگو، شبکه عصبی پس انتشار پیشخور (FFBPNN) است.
۳ـ الگوریتمهای ساختاری (Structural Algorithms Model): این الگوریتم ها زمانی موثر هستند که فرآیند تشخیص الگو پیچیده باشد. وقتی از موجودیت های چند بعدی استفاده می شود، اهمیت دارند. الگوها به زیر کلاسها طبقهبندی میشوند، بنابراین یک ساختار سلسله مراتبی تشکیل میدهند. مدل ساختاری رابطه بین عناصر در سیستم را تعریف می کند.
۴ـ الگوریتم تطبیق الگو (Template Matching):از این الگوریتم ها برای ساختن یک مدل تطبیق الگو استفاده می شود که یک مدل تشخیص الگوی ساده است. این مدل از دو تصویر برای ایجاد شباهت استفاده می کند و الگوی همسان در قالب قالب ذخیره می شود. عیب این مدل این است که در تشخیص الگوهای مخدوش کارآمد نیست.
۵ـ مدل فازی (Fuzzy Logic Mode): الگوریتم های مبتنی بر فازی مفهوم منطق فازی را به کار می برند که از مقادیر صدق بین 0 و 1 استفاده می کند. در یک مدل فازی، ممکن است برخی قوانین برای تطبیق یک ورودی داده شده با خروجی مربوطه اعمال شود. این مدل نتایج خوبی تولید می کند زیرا برای دامنه های نامشخص مناسب است
۶ـ مدل هیبریدی (Hybrid Model): الگوریتم های ترکیبی برای ساخت یک مدل ترکیبی استفاده می شود که از چندین طبقه بندی کننده برای تشخیص الگوها استفاده می کند. هر طبقهبندیکننده خاصی بر اساس فضاهای ویژگی تحت آموزش قرار میگیرد. مجموعه ای از ترکیب کننده ها و طبقه بندی کننده ها برای نتیجه گیری استفاده می شود. یک تابع تصمیم برای تصمیم گیری در مورد دقت طبقه بندی کننده ها استفاده می شود
مزایای استفاده از شناسایی الگو
- توالی های DNA را می توان تفسیر کرد.
- به طور گسترده در زمینه پزشکی و رباتیک استفاده می شود.
- مشکلات طبقه بندی را می توان با استفاده از تشخیص الگو حل کرد.
- می تواند یک شی خاص را از زوایای مختلف تشخیص دهد.
- تشخیص بیومتریک
کاربردهای شناسایی الگو
- پردازش زبان طبیعی (Natural Language Processing): برنامههایی مانند چککنندههای املا و دستور زبان، آشکارسازهای هرزنامه، ترجمه و ابزارهای تحلیل احساسات به شدت به روشهای تشخیص الگو بستگی دارند. عبارات منظم در شناسایی الگوهای متن پیچیده برای پردازش زبان طبیعی مفید هستند.
- پردازش تصویر، تقسیم بندی و تجزیه و تحلیل (Image processing, segmentation, and analysis): تشخیص الگو برای دادن هوش تشخیص انسان به ماشین هایی که در پردازش تصویر مورد نیاز هستند استفاده می شود.
- Computer vision: تشخیص الگو برای استخراج ویژگیهای معنیدار از نمونههای تصویر/ویدئوی داده شده استفاده میشود و در بینایی رایانه برای کاربردهای مختلف مانند تصویربرداری بیولوژیکی و زیستپزشکی استفاده میشود. شناسایی تومور یک مثال کلاسیک است.
- Seismic analysis: رویکرد تشخیص الگو برای کشف، تصویربرداری و تفسیر الگوهای زمانی در ثبت آرایههای لرزهای استفاده میشود. تشخیص الگوی آماری در انواع مدل های تحلیل لرزه ای پیاده سازی و استفاده می شود.
- Radar signal classification/analysis: روشهای تشخیص الگو و پردازش سیگنال در کاربردهای مختلف طبقهبندی سیگنال راداری مانند شناسایی و شناسایی مینهای زمینی استفاده میشوند.
- Speech recognition: بیشترین موفقیت در تشخیص گفتار با استفاده از پارادایم های تشخیص الگو با در نظر گرفتن هر کلمه به عنوان یک واحد به دست آمده است.
- Fingerprint identification: بسیاری از روشهای تشخیص اثر انگشت برای انجام تطبیق اثر انگشت استفاده میشوند که از این روشهای تشخیص الگو به طور گسترده استفاده میشود. یکی از برنامه های کاربردی برای ردیابی حضور و غیاب در سازمان ها استفاده می شود.
- زمین شناسی: تشخیص سنگ، به زمین شناس کمک می کند تا سنگ ها را تشخیص دهد.
- مهندسی: تشخیص گفتار به طور گسترده در سیستم هایی مانند الکسا، سیری و گوگل Now استفاده می شود.
- Civil administration: سیستم های نظارت و تجزیه و تحلیل ترافیک برای شناسایی اشیایی مانند اتومبیل.
تفاوت یادگیری ماشین و شناسایی الگو
یادگیری ماشین جنبهای است که از دادهها بدون برنامهریزی صریح یاد میگیرد، که ممکن است ماهیت تکراری داشته باشد و با ادامه انجام و تکرار این روندها و وظایف به مرور دقیق میشود. ماشین لرنینگ شکلی از تشخیص الگو است که اساساً ایده ماشینهای آموزشی برای تشخیص الگوها و اعمال آنها در مسائل عملی است. ML یک ویژگی است که میتواند از دادهها یاد بگیرد و به طور مکرر خود را به روز کند تا عملکرد بهتری داشته باشد، اما تشخیص الگو مشکلات را یاد نمی گیرد، اما میتوان آن را برای یادگیری الگوها کدگذاری کرد. تشخیص الگو به عنوان طبقهبندی دادهها بر اساس اطلاعات آماری به دست آمده از الگوها تعریف میشود. تشخیص الگو نقش مهمی در کاری که یادگیری ماشینی در تلاش برای رسیدن به آن است ایفا می کند همانطور که انسانها با شناخت الگوها یاد می گیرند. الگوها از الگوهای بصری، الگوهای صوتی، سیگنالها، دادههای آب و هوا و… متفاوت و متنوع هستند. نتایج استفاده از الگوریتم شناسایی الگو ممکن است یک مقدار احتمالی باشد یا به احتمال وقوع داده بستگی دارد.
یادگیری ماشین | تشخیص الگو |
یادگیری ماشینی روشی برای تجزیه و تحلیل داده است که ساخت مدل تحلیلی را خودکار می کند. | تشخیص الگو، کاربرد مهندسی الگوریتم های مختلف به منظور تشخیص الگوها در داده ها است. |
یادگیری ماشین بیشتر جنبه عملی دارد | تشخیص الگو بیشتر در جنبه نظری است |
برای اعمال الگوریتم های یادگیری ماشینی به ماشین ها/کامپیوتر نیاز داریم. | تشخیص الگو ممکن است خارج از دستگاه باشد |
It can be a solution of real time problem | It can be a real time problem |
آیندهی الگوریتم تشخیص الگو
تشخیص الگو یک تکنیک مهم است که تشخیص قانونمندیها و الگوهای دادهها را افزایش میدهد. تعداد برنامههایی که از این فرآیند استفاده میکنند در دههی اخیر به شدت افزایش یافته است. این الگوریتمها با استفاده از دادههای آموزشی، دادههای آزمایشی و طبقهبندی کنندهها، چالشهای مختلف زندگی واقعی را حل کردهاند. تشخیص الگو این پتانسیل را دارد که به یک فرآیند هوشمندتر تبدیل شود که از فناوریهای دیجیتال مختلف پشتیبانی میکند. این تکنیک میتواند منبع پیشرفت در رباتیک و اتوماسیون، به ویژه در بهبود نحوه آموزش روباتهای انساننما باشد. تشخیص الگو نیز احتمالاً در خودروهای خودران به طور گسترده مورد استفاده قرار خواهد گرفت. همانطور که رانندگی خودکار در حال افزایش است، اهمیت تشخیص الگو ممکن است به دلیل نیاز به شناسایی اشیاء، اتومبیلها، افراد و چراغ های راهنمایی افزایش یابد.
سخن آخر
امروزه تقریباً در هر صنعتی، چه فنی و چه غیر فنی، از تشخیص الگو در یادگیری ماشین استفاده میشود. الگوریتم شناسایی الگو به تحلیل و تجسم گرایشهای مختلف کمک کرده است. این امر نه تنها کارایی و سهولت تحلیل و پیشبینی را افزایش داده است، بلکه فرصتهای شغلی در این زمینه را نیز افزایش داده است. شرکتهای درجه یک و بزرگ مانند مایکروسافت، گوگل، آمازون به دنبال افراد ماهر در زمینهی تشخیص الگو و تجزیه و تحلیل دادهها برای پیشبینی موقعیتهای متفاوت هستند. بنابراین، میتوان نتیجه گرفت که تشخیص الگو یکی از پیشرفتهترین زمینهها در یادگیری ماشین است.امیدوارم که این مطلب معرفی خوبی از الگوریتم تشخیص الگو در ماشین لرنینگ برای شما بوده است.