شناسایی الگو فرایند تشخیص الگوهای موجود در داده‌ها با استفاده از الگوریتم‌های یادگیری ماشین است؛ درواقع یکی از رایج‌ترین کاربردهای یادگیری ماشین شناسایی الگو است. کامپیوترهایی که از الگوریتم‌های آموزش‌دیده استفاده می‌کنند به‌راحتی می‌توانند حیوانات را در عکس‌ها، ناهنجاری‌های موجود در نوسان‌های سهام و علائم سرطان را در ماموگرافی بسیار بهتر از انسان تشخیص دهند.

شناسایی الگو (Pattern Recognition)

ماشین‌لرنینگ چیست؟

به طور کلی تشخیص الگو زیرشاخه‌ای از ماشین‌لرنینگ (Machine Learning) محسوب می‌شود. اگر بخواهیم تعریفی ساده از ماشین‌لرنینگ داشته باشیم، می توانیم بگوییم که یادگیری ماشین یک فناوری در حال رشد است که رایانه‌ها را قادر می‌سازد تا مانند انسان، به طور خودکار از داده‌های گذشته یاد بگیرند و تسک‌های مشخصی را انجام دهند. یادگیری ماشین از الگوریتم‌های مختلفی برای ساخت مدل‌های ریاضی و پیش‌بینی با استفاده از داده‌ها یا اطلاعات تاریخی استفاده می‌کند. ماشین‌لرنینگ انواع مختلفی دارد که از اصلی‌ترین شاخه‌های آن می‌توان به یادگیری باناظر(Supervised Learning) ، یادگیری بدون ناظر(Unsupervised Learning) و یادگیری تقویتی(Reinforcement Learning) .

در ادامه به طور خلاصه به معرفی هر یک از این شاخه‌های ماشین‌لرنینگ می‌پردازیم:‌

۱. یادگیری باناظر

یادگیری باناظر نوعی روش یادگیری ماشین است که در آن نمونه داده‌های برچسب‌گذاری شده را در اختیار سیستم قرار می‌دهیم تا آن را آموزش دهیم و ماشین بتواند بر این اساس، خروجی مورد نظر را پیش‌بینی می‌کند.

سیستم با استفاده از داده‌های برچسب گذاری شده مدلی را برای درک مجموعه داده‌ها و یادگیری در مورد هر داده ایجاد می‌کند، پس از انجام آموزش و پردازش، مدل را با ارائه یک مجموعه داده‌ی جدید که برچسب ندارد، آزمایش می‌کنیم تا بررسی کنیم که آیا خروجی دقیق را برای داده‌هایی که قبلا روی آن آموزش ندیده است، پیش‌بینی می‌کند یا خیر.

هدف از یادگیری باناظر ترسیم داده‌های ورودی، با داده‌های خروجی است. یادگیری باناظر مبتنی بر نظارت است و مانند زمانی است که دانش آموز زیر نظر معلم مطالبی را یاد می‌گیرد. از نمونه یادگیری باناظر، می‌توان به فیلتر کردن هرزنامه اشاره کرد.

یادگیری نظارت شده را می‌توان بیشتر در دو دسته الگوریتم دسته بندی کرد:

  • طبقه بندی(Classification)
  • رگرسیون (Regression)

۲. یادگیری بدون ناظر

یادگیری بدون ناظر یک روش یادگیری است که در آن ماشین بدون هیچ نظارتی یاد می‌گیرد. آموزش با مجموعه داده‌هایی که برچسب‌گذاری، طبقه‌بندی یا دسته‌بندی نشده اند به ماشین ارائه می‌شود و الگوریتم باید بدون هیچ نظارتی بر روی آن داده‌ها کار کند. هدف از یادگیری بدون ناظر، پیدا کردن الگوهای مشابه در داده‌ها و طبقه‌بندی آن‌ها بر اساس آن ویژگی‌ها و الگوهای مشابه است.

برعکس یادگیری باناظر، در یادگیری بدون ناظر، نتیجه از پیش تعیین شده‌ای نداریم. در این حالت سیستم تلاش می‌کند تا بینش‌های مفیدی را از حجم عظیمی از داده‌ها بیابد.

می‌توان یادگیری بدون ناظر را بیشتر به دو دسته الگوریتم اصلی طبقه‌بندی کرد:

  • خوشه‌بندی (Clustering)
  • همبستگی (Association)

۳. یادگیری تقویتی (Reinforcement Learning)

یادگیری تقویتی یک روش یادگیری مبتنی بر بازخورد است که در آن یک عامل (Agent) یادگیرنده برای هر عمل درست یک پاداش و برای هر عمل اشتباه یک جریمه دریافت می‌کند. عامل به طور خودکار با این بازخوردها یاد می‌گیرد و عملکرد خود را بهبود می‌بخشد. در یادگیری تقویتی، عامل با محیط تعامل می‌کند و آن را کاوش می‌کند. هدف یک عامل کسب بیشترین امتیاز پاداش است و از این رو، عملکرد خود را بهبود می‌بخشد. سگ رباتیک که به طور خودکار حرکت بازوهای خود را یاد می‌گیرد، نمونه ای از یادگیری تقویتی است.

برای آشنایی با یادگیری ماشین این مطلب را مطالعه کنید:

ماشین‌لرنینگ (Machine Learning) چیست و چگونه کار می‌کند؟

شناسایی الگو (Pattern Recognition) چیست؟

تشخیص الگو فرایندی است برای شناسایی قواعد موجود در داده‌ها توسط ماشینی که از الگوریتم‌های یادگیری ماشین استفاده می‌کند. در این فرایند عمل طبقه‌بندی رویدادها براساس اطلاعات آماری، داده‌های تاریخی یا حافظه‌ی دستگاه اتفاق می‌افتد.

هر الگو یک قاعده در جهان یا در مفاهیم انتزاعی است؛ برای مثال، اگر درمورد کتاب یا فیلم صحبت کنیم، یک ژانر یک الگو محسوب می‌شود.

تا این مرحله متوجه شدیم که شناسایی الگو (Pattern Recognition) به چه معناست. حال لازم است بدانیم وظایف یک سیستم شناسایی الگو چیست.

یک سیستم شناسایی الگو چه کاری را انجام می‌دهد؟

اگر بخواهیم ارزیابی کنیم که یک سیستم شناسایی الگو (Pattern Recognition) چقدر خوب یا بد عمل می‌کند، باید به کارهایی که می‌تواند انجام دهد توجه کنیم.

یک سیستم شناسایی الگو باید بتواند این کارها را انجام دهد:

  • یک الگوی آشنا را به‌سرعت و با دقت شناسایی کند؛
  • اشیای ناآشنا را طبقه‌بندی کند؛
  • اشکال و اشیا را از زوایای مختلف تشخیص دهد؛
  • الگوها و اشیا را تشخیص دهد، حتی اگر بخشی از آن‌ها پنهان باشد؛
  • به‌طور خودکار الگوها را تشخیص دهد.

آموزش یک سیستم شناسایی الگو

برای ساخت یک سیستم شناسایی الگو (Pattern Recognition)، باید یک مدل انتخاب کنیم و داده‌ها را آماده کنیم.

برای شناسایی الگو (Pattern Recognition)، اغلب از شبکه‌های عصبی، الگوریتم‌های طبقه بندی مثل Naive Bayes، درخت تصمیم، ماشین‌های بردار پشتیبان (SVM) یا الگوریتم‌های خوشه بندی مثل k-means، Mean Shift استفاده می‌شود.

برای ساخت یک سیستم شناسایی الگو (Pattern Recognition) باید یک مدل انتخاب کنیم و داده‌ها را آماده کنیم.

برای شناسایی الگو اغلب از شبکه‌های عصبی، الگوریتم‌های طبقه‌بندی مانند Naive Bayes، درخت تصمیم، ماشین‌های بردار پشتیبان (SVM) یا الگوریتم‌های خوشه‌بندی، مانند k-means،Mean Shift ، استفاده می‌شود. همان‌طور که گفتیم بعد از انتخاب مدل باید داده را آماده کنیم. برای آماده‌سازی داده باید آن‌ها را به سه دسته مطابق شکل ۱ تقسیم کنیم:

آماده‌سازی داده

مجموعه‌ی آموزش (Training set)

ما برای آموزش مدل از مجموعه آموزش (Training set) استفاده می‌کنیم. درواقع این مجموعه داده نمونه‌هایی هستند که مدل آن‌ها را در مرحله آموزش پردازش می‌کند و آموزش می‌بیند؛ برای مثال، اگر بخواهیم یک سیستم امنیتی مبتنی بر تشخیص چهره بسازیم، به عکس‌های متنوعی از کارمندان نیاز داریم که تمامی اطلاعات مربوط از این داده‌ها استخراج خواهد شد. به‌طور کلی، هشتاد درصد از کل داده‌ها را به مجموعه‌ داده‌ی آموزش اختصاص می‌دهند.

مجموعه‌ی اعتباسنجی (Validation set)

این مجموعه برای تنظیم دقیق (Fine-tuning) مدل استفاده می‌شود. از مجموعه‌ی اعتبارسنجی استفاده می‌کنیم تا نشان دهیم با هر گونه افزایش دقت در مجموعه‌ی داده‌های آموزش (Training set)، دقت در مجموعه‌ی داده‌ای نیز که قبلاً به شبکه نشان داده نشده است افزایش می‌یابد؛ زیرا اگر دقت در مجموعه‌ی داده‌های آموزش افزایش یابد، اما دقت در مجموعه‌ی داده‌های اعتبارسنجی (Validation set) ثابت بماند یا کاهش یابد؛ یعنی مدل در حال overfitting است و باید آموزش را متوقف کنیم.

مجموعه‌ی تست (Test set)

از داده‌های تست برای بررسی دقیق‌بودن خروجی‌های سیستم استفاده می‌شود. حدود بیست درصد از داده‌ها برای آزمایش استفاده می‌شود.

تا اینجا متوجه شدیم که شناسایی الگو (Pattern Recognition) چیست و چطور آموزش می‌بیند. در بخش بعد با نحوه کار یک سیستم شناسایی الگو آشنا می‌شویم.

سیستم شناسایی الگو چطور کار می‌کند؟

این شکل مراحل یک سیستم شناسایی الگو را نشان می‌دهد:

مراحل شناسایی الگو
  1. درک داده (Sensing): یک سیستم شناسایی الگو به ورودی‌هایی از دنیای واقعی نیازدارد که با سنسورها آن‌ها را درک و دریافت می‌کند. چنین سیستمی می‌تواند با هر نوع داده‌ای کار کند: تصویر، ویدیو، عدد یا متن.
  2. پیش‌پردازش و تمیزکردن داده (Preprocessing & cleaning the data): بعد از اینکه داده‌های ورودی دریافت شد، الگوریتم پیش‌پردازش داده را انجام می‌دهد. در این مرحله آن بخش از داده که موردنیاز است باقی می‌ماند و باقی حذف می‌شود؛ برای مثال، وقتی به شما عکسی می‌دهند که در آن تعداد زیادی از افراد وجود دارند و چهره‌ای آشنا توجه شما را به خود جلب می‌کند، این را می‌توان پیش‌پردازش در نظر گرفت.
  3. استخراج ویژگی (Feature Extraction): بعد از این مرحله نوبت به استخراج ویژگی می‌رسد که در آن الگوریتم خصوصیات مشابهی را کشف می‌کند که در نمونه داده‌ها وجود دارد.
  4. قسمت‌بندی داده (Segmentation): در این مرحله براساس اطلاعاتی که از مرحله قبل به دست آمده است داده‌ها طبقه‌بندی (Classification) یا خوشه‌بندی (Clustering) می‌شوند. نتیجه‌ی یک سیستم شناسایی الگو (Pattern Recognition) ممکن است طبقه‌بندی (Classification)، خوشه‌بندی (Clustering) یا رگرسیون (Regression) باشد. در طبقه‌بندی (Classification) الگوریتم براساس ویژگی‌های ازپیش‌تعریف‌شده برچسب‌هایی را به داده‌ها اختصاص می‌دهد. طبقه‌بندی (Classification) نمونه‌ای از یادگیری باناظر (Supervised Learning) است. در خوشه‌بندی (Clustering) یک الگوریتم داده‌ها را براساس شباهت ویژگی‌ها به تعدادی خوشه تقسیم می‌کند که نمونه‌ای از یادگیری بدون ناظر (Unsupervised Learning) است. الگوریتم‌های رگرسیون (Regression) سعی می‌کنند رابطه‌ای میان متغیرها پیدا کنند و براساس داده‌های شناخته‌شده متغیرهای وابسته‌ی ناشناخته را پیش‌بینی کنند. رگرسیون (Regression) مبتنی بر یادگیری باناظراست.
  5. آنالیز: در این مرحله این طبقه‌بندی یا خوشه‌بندی‌ها تجزیه و تحلیل می‌شوند.
  6. پیاده‌سازی: درنهایت از نتایج به‌دست‌آمده برای کار مدنظر استفاده می‌شود.

کاربردهای سیستم شناسایی الگو

شناسایی الگو می‌تواند کاربردهای بسیار متنوعی را داشته باشد. در این بخش ما به چندین نمونه از آنها اشاره می‌کنیم.

بینایی ماشین (Computer Vision)

تشخیص الگو برای استخراج ویژگی‌های معنی دار از داده‌های تصویر / ویدیو به کار می‌رود و در بینایی ماشین (Computer Vision) برای کاربردهای مختلف مانند تصویربرداری بیولوژیکی و پزشکی استفاده می‌شود.

تشخیص گفتار (Speech Recognition)

بیشترین موفقیت در تشخیص گفتار (Speech Recognition) با استفاده از سیستم‌های شناسایی الگو (Pattern Recognition) به دست آمده است. به طور مثال دستیاران مجازی مانند الکسا (Alexa) و سیری (Siri) از تکنولوژی تشخیص گفتار (Speech Recognition) استفاده می‌کنند.

برای آشنایی با تشخیص گفتار این مطلب را مطالعه کنید:

تشخیص گفتار (Speech Recognition) چیست و چگونه کار می‌کند؟

شناسایی اثر انگشت (Fingerprint Identification)

برای شناسایی اثر انگشت از روش‌های شناسایی مختلفی استفاده می‌شود. رویکرد شناسایی الگو (Pattern Recognition) به طور گسترده‌ای هم در امور جنایی و هم در گوشی‌های هوشمند مورد استفاده قرار می‌گیرد. قفل اثر انگشتی که در تلفن همراه خود داریم همان سیستم شناسایی الگو (Pattern Recognition) است.

تحلیل بازار سهام (Stock Market analysis)

پیش بینی بازار سهام کار دشواری است. با این حال، حتی در آنجا نیز الگوهایی وجود دارد که قابل شناسایی و استفاده است. اغلب نرم‌افزارهای مدرن از هوش مصنوعی (AI) برای ارائه خدمات مشاوره‌ای به کاربران خود استفاده می‌کنند.

تشخیص پزشکی (Medical Diagnosis)

همچنین از الگوریتم‌های شناسایی الگو (Pattern Recognition) که بر روی داده‌های واقعی آموزش دیده‌اند می‌توان برای تشخیص انواع سرطان‌ها استفاده کرد.

برای آشنایی با کاربردهای یادگیری ماشین این مطلب را مطالعه کنید:

کاربردهای برتر یادگیری ماشین در ۲۰۲۲ چیست؟

سیستم تشخیص چهره (Face Recognition)

سیستم تشخیص چهره، که یکی از کاربردهای اصلی تشخیص الگو محسوب می‌شود، نرم‌افزاری است که با استفاده از چهره افراد، هویت افراد را شناسایی یا تایید می‌کند و با شناسایی و اندازه گیری ویژگی‌های صورت در یک تصویر کار می‌کند. درواقع در این فناوری هم کار اصلی شناسایی الگوهای خاص موجود در صورت افراد است. تشخیص چهره می تواند چهره انسان را در تصاویر یا ویدیوها شناسایی کند، تعیین کند که آیا چهره در دو تصویر متعلق به یک شخص است یا خیر، یا یک چهره را در میان مجموعه بزرگی از تصاویر موجود جستجو کند. سیستم‌های امنیتی بیومتریک از تشخیص چهره برای شناسایی منحصربه‌فرد افراد در هنگام ورود کاربر یا ورود به سیستم و همچنین تقویت فعالیت احراز هویت کاربر استفاده می‌کنند. گوشی‌های همراه هوشمند و کامپیوترهای شخصی نیز معمولاً از فناوری تشخیص چهره برای امنیت دستگاه استفاده می‌کنند.

از کاربردهای تشخیص چهره می‌توان به موارد زیر اشاره کرد:

تشخیص تقلب (Fraud Detection)

شرکت‌ها از تشخیص چهره برای شناسایی کاربرانی که یک حساب کاربری جدید در یک پلت‌فرم آنلاین ایجاد می‌کنند، استفاده می‌کنند. پس از انجام این کار، می‌توان از تشخیص چهره برای تأیید هویت شخص واقعی استفاده‌کننده از حساب در صورت فعالیت مخاطره‌آمیز یا مشکوک حساب استفاده کرد.

امنیت سایبری (Cyber Security)

شرکت‌ها برای تقویت اقدامات امنیت سایبری به جای رمز عبور از فناوری تشخیص چهره استفاده می‌کنند. دسترسی غیرمجاز به سیستم‌های تشخیص چهره چالش برانگیز است، زیرا هیچ چیز را نمی‌توان در مورد چهره افراد تغییر داد. نرم افزار تشخیص چهره نیز یک ابزار امنیتی راحت و بسیار دقیق برای باز کردن قفل گوشی‌های هوشمند و سایر دستگاه‌های شخصی است.

کنترل فرودگاه‌ها و مرزها

بسیاری از فرودگاه‌ها از داده‌های بیومتریک به‌عنوان گذرنامه استفاده می‌کنند و به مسافران این امکان را می‌دهند که به جای ایستادن در صف‌های طولانی، از یک ترمینال خودکار عبور کنند تا سریع‌تر به گیت خود برسند. فناوری تشخیص چهره در قالب گذرنامه‌های الکترونیکی زمان انتظار مسافران را کاهش می‌دهد و امنیت مکان‌هایی مثل فرودگاه و مرزها را بهبود می بخشد.

بانکداری

در این حالت با استفاده از سیستم تشخیص چهره، افراد به جای استفاده از رمزهای عبور یکبار مصرف یا تأیید دو مرحله ای، تراکنش‌ها را با نگاه کردن به تلفن یا رایانه خود تأیید می‌کنند. تشخیص چهره ایمن‌تر است، زیرا هیچ رمز عبوری وجود ندارد که هکرها بتوانند آن را به خطر بیاندازند. به طور مشابه، برخی از برداشت‌های نقدی ATM و ثبت‌های پرداخت می‌توانند از تشخیص چهره برای تأیید پرداخت‌ها استفاده کنند.

پزشکی

برای دسترسی به پرونده بیماران می‌توان از تشخیص چهره استفاده کرد. این کار می‌تواند فرآیند ثبت نام بیمار را در یک مرکز درمانی ساده‌تر و با صرف زمان کم‌تر کند و درد را در بیماران به طور خودکار تشخیص دهد.

جمع‌بندی مطالب

در این مطلب سیستم شناسایی الگو را شرح دادیم و با چند کاربرد آن آشنا شدیم. به‌طور کلی، می‌توان گفت الگوریتم‌های شناسایی الگو داده‌ها را تجزیه‌و‌تحلیل می‌کنند و پیش‌بینی‌های دقیقی انجام می‌دهند که به مشاغل و کمک می‌کند تا تصمیم‌های صحیحی بگیرند.

آموزش علم داده و یادگیری ماشین در کافه‌تدریس

اگر به حوزه یادگیری ماشین و علم داده علاقه‌مند هستید، کافه‌تدریس کلاس‌های آنلاین آموزش علم داده را به‌صورت مقدماتی و پیشرفته برگزار می‌کند.

کلاس‌های آنلاین آموزش علم داده کافه‌تدریس به شما امکان می‌دهد از هر نقطه‌ی جغرافیایی به جامع‌ترین و به‌روزترین آموزش دیتا ساینس و ماشین لرنینگ دسترسی داشته باشید.

برای آشنایی بیشتر با کلاس‌های آنلاین آموزش دیتا ساینس کافه تدریس و مشاوره‌ی رایگان برای شروع یادگیری روی این لینک کلیک کنید:

کلاس‌های آنلاین علم داده کافه‌تدریس

هفت‌خوان

هفت‌خوان: مطالعه کن، نظر بده، جایزه بگیر!

هفت‌خوان مسابقه‌ی وبلاگی کافه‌تدریس است. شما با پاسخ به چند پرسش درباره‌ی مطلبی که همین حالا مطالعه کرده‌اید، فرصت شرکت در قرعه‌کشی جایزه نقدی و کلاس رایگان کافه‌تدریس را پیدا خواهید کرد.

جوایز هفت‌خوان

  • ۳۰۰,۰۰۰ تومان جایزه نقدی
  • ۵ کلاس رایگان ۳۰۰,۰۰۰ تومانی

پرسش‌های مسابقه

برای شرکت در هفت‌خوان کافه‌تدریس در کامنت همین مطلب به این پرسش‌ها پاسخ دهید:

  • سیستم شناسایی الگو باید قادر به انجام‌دادن چه کارهایی باشد؟
  • سیستم شناسایی الگو چطور کار می‌کند؟
  • سیستم شناسایی الگو را به زبان ساده توضیح دهید.