اصطلاحات رایج در هوش مصنوعی برای شروع یادگیری آن

0 98

امروزه هیچکس منکر تاثیرات بیشمار هوش مصنوعی در زندگی بشر نیست. به نظر می‌رسد جمله‌ی پروفسور Andrew Ng، استاد دانشگاه استنفورد و رهبر Google Brain، در مورد هوش مصنوعی که می‌گوید: “هوش مصنوعی الکتریسته جدید است!“، خلاصه‌ای از تاثیرات فعلی و پیش روی تاثیرات هوش مصنوعی بر دنیا باشد.

بطور خاص در امنیت سایبری، هوش مصنوعی تاثیرات فراوانی داشته است و کمتر پژوهشی در امنیت سایبری، مخصوصا سیستم های تشخیص نفوذ، سیستم‌ های تشخیص حملات APT، آنتی ویروس ها و… را می‌بینیم که در آن از هوش مصنوعی استفاده نشده باشد. بنابراین یادگیری آن می‌ تواند یک ضرورت برای فعالان حوزه های مختلف علم کامپیوتر از جمله امنیت، علم داده، بیوانفورماتیک، مدیریت منابع انسانی، پیش بینی در زمینه های مختلف و… باشد.

به دلایلی که در بالا گفته شد، در این مقاله سعی شده است اصطلاحات و عبارات رایج در هوش مصنوعی ارائه شود. بدیهی است که درک و یادگیری این اصطلاحات نقطه ی ورود به یادگیری هوش مصنوعی می باشد. توجه شود این اصطلاحات و عبارات در حوزه هوش مصنوعی تعریف شده و ممکن است بعضی از این موارد (مثل الگوریتم) در زمینه های دیگر، معانی دیگری نیز داشته باشند.

  • Artificial Intelligence: هوش مصنوعی به طور خلاصه به توانایی یک ماشین در تصمیم گیری یا شبیه سازی هوش و رفتار انسانی اطلاق می شود.
  • Algorithm: الگوریتم، مجموعه ای از قوانین و دستورالعمل ها است که به یک ماشین ارائه می شود که بتواند براساس آن عمل یادگیری را انجام دهد. انواع معروف الگوریتم در هوش مصنوعی عبارتند از: کلاس بندی (Classification)، خوشه بندی (Clustering) و رگرسیون (Regression) می باشند.
  • Autonomic Computing: محاسبات خودمختار یا خودکار بطور خلاصه توانایی و ظرفیت یک سیستم برای انجام کارها، مدیریت منابع و محاسبات سطح بالا بدون دخالت انسان می باشد.
  • Chatbot: ربات چت برای شبیه سازی مکالمه بین انسان ها طراحی می شود. این شبیه سازی ممکن است در در قالب صدا، متن یا هردو صورت گیرد. عموما از این مورد در سیستم هایی با قابلیت هوش مصنوعی استفاده می شود. نمونه بارز آن سیری (Siri) در محصولات اپل می باشد.
  • Classification: الگوریتم های کلاس بندی سعی در دسته بندی داده ها دارند. این الگوریتم ها با استفاده از داده های آموزشی در فاز آموزش کار می کنند به این صورت که با دیدن یک سری نمونه داده و دسته ی آن ها، در فاز تست سعی می کنند دسته ی داده های ورودی را پیش بینی کنند. برای مثال فرض کنید در فاز آموزش ده هزار داده که هر کدام از آن ها خصوصیات یک اتومبیل (تعدا سیلندر، مصرف سوخت، گنجایش و…) است به الگوریتم داده شده و دسته ی آن ها نیز برای الگوریتم مشخص شده است (برای مثال یک اتومبیل با یک سری مشخصات گران محسوب می شود |‌درواقع گران دسته ی آن اتومبیل است). الگوریتم با استفاده از این داده ها و دسته ی آن ها شروع به بهینه سازی و یادگیری یک سری پارامتر (و در نهایت یک تابع) می کند. سپس در فاز تست با استفاده از تابع مورد نظر گران یا ارزان بودن اتومبیل ورودی حدس زده می شود.
  • Clustering: الگوریتم های خوشه بندی (کلاستر بندی) سعی در گروه بندی داده هایی دارند که شبیه هم هستند. در این الگوریتم ها برخلاف کلاس بندی نیاز به دسته یا برچسب داده ها در زمان آموزش نیست و بیشتر الگوها بررسی می شوند. برای مثال فرض کنید سیستمی با استفاده از خوشه بندی اقدام به تشخیص Spam (اسپم یا هرزنامه) در ایمیل می کند. در اینجا خصوصیات ایمیل ها بررسی می شوند. برای مثال اگر در ایمیلی تصاویر با لینک مشکوک دیده شود آن ایمیل در گروه اسپم ها قرار می گیرد.
  • Cluster Analysis: تحلیل خوشه یا تحلیل کلاستر نوعی از یادگیری غیر نظارتی است که به بررسی الگوهای و گروه های نهفته می پردازد. خوشه ها یا کلاسترها با استفاده از اندازه گیری شباهت که براساس یک متر (اقلیدسی، احتمالاتی و…) معرفی می شوند مدل سازی می شوند. برای مثال شباهت می تواند میزان نزدیکی دو نقطه به هم در متر اقلیدسی باشد.
  • Cognitive Computing: محاسبات شناختی سعی در بطورکلی سعی در تقلید کردن از شیوه فکری انسان دارند. این کار شامل خودیادگیری، پردازش زبان طبیعی و تشخیص الگو می شود. برای مثال سیستمی که طرز فکر یک دانشمند را مدل می کند، پس از مرگ آن دانشمند نیز قادر به فکر کردن مثل وی است. این سیستم یک عامل شناختی یا Cognitive Agent محسوب می شود.
  •  Data Mining: الگوریتم های داده کاوی سعی در پیدا کردن الگو در مجموعه داده ها را برای استفاده بعدی دارند.
  • Data Science: علم داده به علمی اطلاق می شود که با ترکیب و استفاده از روش ها، پردازش ها و سیستم ها در آمار، علوم کامپیوتر و تئوری اطلاعات اقدام به فراهم آوری بینشی نسبت به پدیده ها با استفاده از داده های ساختار یافته یا غیر ساختار یافته می کند.
  • Decision Tree: درخت تصمیم با استفاده از یک مدل درختی، تصمیم و نتایج حاصل از تصمیم را مدل می‌کند. از درخت تصمیم برای نمایش الگوریتم هایی که صرفا بر اساس شرایط اجرا می شوند هم بکار می رود. شکل زیر یک درخت تصمیم را نمایش می دهد که تصمیم برای خرید یک اتومبیل را مدل می کند. برای مثال ابتدا (ریشه) بررسی می کند رنگ اتومبیل قرمز است یا خیر. اگر قرمز بود به شاخه سمت چپ رفته و بررسی می کند مدل اتومبیل بالاتر از سال ۲۰۱۰ است یا خیر. اگر مدل اتومبیل بالاتر از سال ۲۰۱۰ بود تصمیم خرید را پیشنهاد می کند.
درخت تصمیم
درخت تصمیم
  • Deep Learning: یادگیری عمیق بخشی از خانواده یادگیری ماشین است که شامل متدهایی برای تقلید شیوه ی تفکر انسان بر اساس شبکه های عصبی مصنوعی است. این شبکه ها شامل لایه های متعددی از اطلاعات و محاسبات هستند.
  • Genetic Algorithm: الگوریتم ژنتیک یک روش بهینه سازی براساس ژنتیک و انتخاب طبیعی است. از الگوریتم ژنتیک برای حل مسائلی که ممکن است مدت زیادی برای پیدا کردن جواب آن ها زمان لازم باشد استفاده می شود. درواقع برای آن ها یک جواب بهینه یا نزدیک بهینه بدست می آید.
  • Heuristic: هیوریستیک رویکردی برای بدست آوردن پاسخ یا تقریبی از پاسخ به یک مساله که لزوما کامل و بهینه نیست می‌ باشد. این پاسخ ها برای مواردی که نیاز به پاسخ سریع دارند یا برای اهداف کوتاه مدت به کار می رود. برای مثال سعی و خطا یک نمونه از هیوریستیک است که نتیجه ی دقیق و بهینه ای ممکن است ندهد اما برای استفاده در موارد ضروری مناسب است.
  • Machine Learning: یادگیری ماشین بخشی از هوش مصنوعی است که بر بهبود خودکار الگوریتم های ماشین بر اساس تجربه تمرکز دارد. برای مثال با داشتن تعدادی نقطه در فضا، بدست آوردن معادله بهترین خطی که می تواند بصورت بهینه ای میان آن نقاط قرار گیرد می تواند از طریق یادگیری ماشین انجام شود. این موضوع با بهینه کردن پارامترهای معادله (برای مثال در معادله ax+by دو عدد a و b پارامتر هستند) اقدام به پیدا کردن بهترین معادله می کند. یک نمونه غیر مستقیم دیگر الگوریتم زمانبندی MLFQ می باشد که در طول زمان بهترین زمانبدی را بر اساس تجربه ارائه می دهد.
  • Natural  Language  Processing: پردازش زبان طبیعی یا NLP تعامل زبان انسان و ماشین است. در واقع بر روی درک و تحلیل داده های مربوط به زبان طبیعی تمرکز دارد. برای مثال وقتی از سیری (Siri) در آیفون خود استفاده می کنید، درون آن الگوریتم های پردازش زبان طبیعی وجود دارند که باعث می شود ربات صحبت شما را متوجه شود و دستور شما را اجرا کند.
  • Recurrent Neural Network: برای این عبارت ترجمه ی دلچسبی ندیدم اما  می توان به آن شبکه های عطبی راجعه یا RNN گفت. گاهی برای بدست آوردن نتیجه ی مطلوب نیاز به بررسی دنباله ای از داده ها داریم. برای مثال یک برای پردازش یک جمله، پردازش مستقل هر کلمه آن موثر نخواهد بود و باید به دنباله کلماتی که باعث ساخت جمله شده اند توجه کنیم. این نوع شبکه های عصبی بر این مساله تمرکز دارند. موارد استفاده آن ها در ساخت و ویرایش موسیقی، پردازش زبان طبیعی، تحلیل دنباله ای رخدادهای شبکه و… می باشد.
  • Supervised Learning: یادگیری نظارتی یا یادگیری تحت نظارت قسمتی از یادگیری ماشین است که سعی در یادگیری یک تابع که ورودی را به خروجی نگاشت می کند، دارد. برای درک بهتر می توان مثالی که در کلاس بندی مطرح کردیم را تکرار کنیم.
  • Unsupervised Learning: یادگیری بدون نظارت قسمتی از یادگیری ماشین است که سعی در پیدا کردن الگوها بدون داشتن برچسب دارد. برای درک بهتر می توان مثالی که در خوشه بندی مطرح کردیم را تکرار کنیم.
  • Training Phase: فاز آموزش در یادگیری، به فازی از یادگیری اطلاق می شود که ماشین با داشتن تعدادی داده (داده های آموزشی یا Training Data) اقدام به یادگیری می کند. این فاز هم در یادگیری نظارتی هم یادگیری غیر نظارتی اتفاق می افتد. در یادگیری نظارتی، در این فاز با داشتن تعدادی داده و برچسب آن ها، یک تابع یاد گرفته می شود و در یادگیری غیرنظارتی با داشتن تعدادی داده، الگوی موجود در آن ها یاد گرفته می شود و هر کدام در گروه خاصی که همه شبیه به هم هستند قرار می گیرند.
  • Test Phase: فاز تست در یادگیری، به فازی از یادگیری اطلاق می شود که داده های دیده نشده (در فاز آموزش) وارد الگوریتم شده و انتظار بر پیش بینی برچسب یا پیدا کردن الگوهای موجود در آن ها و گروه بندی آن ها است.
  • Backward Chaining: زنجیر به عقب یک روش استنتاج است که از هدف به سمت عقب حرکت می کنیم. برای مثال با در دست داشتن یک خروجی سعی می کنیم ورودی ای که متناظر با آن است را پیدا کنیم. از این روش در اثبات خودکار نظریه ها، موتورهای استنتاج و… استفاده می شود.
  • Bias: بایاس در روند یادگیری به طور ساده فرضی است که یادگیری را آسان می کند. در مورد مجموعه داده، مجموعه داده ای را بایاس شده می گویند که بطور تصادفی ایجاد نشده باشد. یعنی وزن یا الگوی خاصی در داده ها تعداد بیشتری نسبت به وزن یا الگوهای دیگر دارد. برای مثال یک تاس را فرض کنید که طوری طراحی شده که عدد ۶ در آن راحت تر ظاهر شود.
  • Big Data: داده بزرگ به مجموعه داده یا جریان  داده ای می گویند که ماشین ها و الگوریتم های پردازش داده سنتی قادر به پردازش آن ها به صورت بهینه (یا کلی) نیستند. عموما تعداد و ابعاد یا سرعت تولید داده بر قرار گرفتن آن ها در دسته ی داده بزرگ نقش اساسی دارند. برای مثال داده های کاربران یک شبکه اجتماعی می تواند یک داده بزرگ را تشکیل دهد.
  • Dataset: دیتاست یا مجموعه داده به داده هایی در یک موضوع خاص معمولا با توزیع یکنواخت (حالت ایده آل) می گویند.
  • Entity Annotation: این مورد هم معادل فارسی مناسبی ندارد اما می توان آن را بطور خلاصه حاشیه نویسی عنوان کرد. این عمل ایجاد اطلاعات اضافه عموما به زبان انسان و غیرساختار یافته برای یک موجودیت می باشد که البته قابل خواندن و پردازش توسط ماشین باشد. ماشین از این حاشیه نویسی ها برای یک عمل پیش بینی استفاده می کند.
  • Entity Extraction: این مورد هم مثل بالا دارای معادل فارسی جالبی نیست و بهتر است بصورت انگلیسی استفاده شود. این عمل، استخراج موارد از یک ساختار بزرگتر (برای مثال استخراج کلمات مهم از یک متن بلند)، برای استفاده در کلاس بندی، خوشه بندی و سایر عملیات ماشینی است. این مورد را با نام هایی چون Entity Identification، Entity Chunking و Named Entity Recognition (NER) نیز بیان می‌ کنند. این عمل بصورت دستی یا توسط ماشین انجام می شود. تصویر زیر مثالی از این مورد می باشد:
named entity recognition
Named Entity Recognition
  • Forward Chaining: زنجیره رو به جلو یک روش برای حل مساله است که از مساله (داده ها) به سمت راه حل های ممکن (هدف)، با استفاده از فرضیات مساله حرکت می کند. برای مثال در استدلال استنتاجی می توان از آن استفاده کرد.
  • Parameter: پارامتر المانی ضروری برای یادگیری است. برای مثال در تایع y=ax+b به a و b پارامتر می گوییم. درواقع در روند یادگیری سعی می شود مقدار بهینه این پارامترها در آن مساله خاص پیدا شوند که بعدا بتوان با استفاده از آن ها (تابع یادگرفته شده) عمل پیش بینی را انجام داد.
  • Hyperparameter: فرا پارامتر یا هایپرپارامتر مقداری است که رویه ی یادگیری را کنترل می کند. برای مثال تاثیر یک رفتار در یک عبارت را مشخص می کنند. هایپر پارامترها عموما بصورت دستی بر اساس تجربه مقداری دهی می شوند.
  • Label: قسمت خروجی (عموما با y نمایش داده می شود) در یک مجموعه داده را برچسب می گویند. برای مثال “گران” یا “ارزان” در مثال اتومبیل های اوایل مقاله برچسب هستند.
  • Machine Translation: عمل ترجمه یک متن به وسیله الگوریتم بدون دخالت انسان را ترجمه ماشینی می گویند.
  • Model: مدل به محصولی که پس از اجرای الگوریتم روی داده های آموزشی بدست می آیند می گویند. برای مثال در خوشه بندی، یک مدل می تواند تعداد کلاسترها، اندازه آن ها و… باشد. یا به عنوان مثالی دیگر مدل می تواند یک شبکه عصبی حاصل از آموزش، که پارامترهای (و بایاس) آن مشخص شده است باشد.
  • Neural Network: شبکه عصبی یا شبکه عصبی مصنوعی (Artificial Neural Network) یک مدار یا شبکه از نورون ها (مصنوعی) است. این شبکه های مصنوعی به منظور تفکر شبیه انسان طراحی می شوند و وظیفه حل یک مساله را به عهده دارند. شبکه های عصبی سه لایه ی اساسی به نام لایه ورودی (Input Layer)، لایه مخفی (Hidden Layer) و لایه خروجی (Output Layer) تشکیل می شوند. شبکه عصبی ای که تعداد زیادی لایه مخفی دارد، شبکه عصبی عمیق یا Deep Neural Network خوانده می شود.
  • Overfitting: یک اصطلاح مهم در یادگیری ماشین است که بیان می کند الگوریتم یا تابع یاد گرفته شده در مورد داده های آموزشی بسیار خوب عمل می کند اما در مورد داده های تست و داده های جدید کارایی خوبی ندارد.
  • Underfitting: اصطلاح دیگری است که بیان می کند مدل مورد نظر یا الگوریتم قادر به محاسبه صحیح رابطه بین ورودی و خروجی نیست و دارای خطای بالای می باشد. این مورد باعث می شود مدل چه در آموزش چه در تست ضعیف عمل کند. در شکل زیر سه حالت Overfit، Underfit و حالت مناسب را می بینیم:
overfitting
Overfitting / Underfitting
  • Pattern Recognition: شناسایی الگو یا الگوشناسی یک بخش بسیار مهم از هوش مصنوعی است که بر روی پیدا کردن الگوها و قواعد در داده ها تمرکز دارد. مثال های آن تشخیص الگو در زنجیره DNA، پیدا کردن الگوهای معنادار در یک متن و… می باشد.
  • Reinforcement Learning: یادگیری تقویتی یک بخش بخش در یادگیری ماشین است که بررسی می کند چگونه یک عامل در یک محیط براساس دریافت پاداش بهترین عمل را انجام دهد. برای مثال در دوچرخه سواری، یادگیری بصورت رویه ای انجام می شود و می توان پاداش را کمترین آسیب به بدن در نظر گرفت. بر اسن اساس عامل سعی می کند طوری کار را انجام دهد که بیشترین پاداش (کمترین آسیب به بدن) را دریافت کند.
  • Generative Adversarial Network: شبکه های مولد تخاصمی یا گن ها (GAN) مدل‌ های مولد بر پایه‌‌ی یادگیری عمیق هستند. به بیان دقیق‌تر یک معماری برای آموزش مدل‌های مولد هستند که عموما برای آموزش آن‌ها از یادگیری عمیق استفاده می‌شود. در مورد این شبکه ها با مثال و بطور خاص در این مقاله صحبت شده است.
  • Sentiment Analysis: تحلیل احساسات به دسته بندی و شناسایی عقاید و احساسات در قالب یک کلمه یا جمله می پردازد. برای مثال با استفاده از تحلیل نظرات یک وب سایت و داده کاوی و پردازش زبان طبیعی می توان نظرات بیان شده توسط کاربران را دسته بندی کرد. برای واضح تر شدن موضوع فرض کنید قصد داریم طراحی یک وب سایت را به سه دسته بد و خوب تقسیم کنیم. یک نظر وجود دارد که بصورت “وب سایت شما عالی است” بیان شده است. با استفاده از تحلیل این جمله می توان یک امتیاز مثبت (به سمت خوب بودن) برای وب سایت در نظر گرفت. همین موضوع در مورد امتیاز دهی ستاره ای برای همین مقاله که مشاهده می کنید نیز وجود دارد (ممنون از امتیاز دهی شما).
  • Transfer Learning: یادگیری انتقالی بر روی ذخیره دانش در یک روال یادگیری یا حل مساله و استفاده از دانش بدست آمده در حل مساله ی دیگر (مربوط یا مشابه به مساله ی اصلی) تمرکز دارد. برای مثال یک Classifier که برای تشخیص غذا در یک تصویر آموزش دیده شده است را می توان در نظر گرفت که از دانش بدست آمده آن استفاده می شود و در مورد تشخیص نوشیدنی در یک تصویر از آن استفاده می شود.
  • Turing Test: تست تورینگ مهارت یک ماشین یا الگوریتم را در تقلید رفتار انسانی بررسی می کند. برای مثال اگر یک ربات چت ساخته شود که بتواند طوری با انسان چت کند که آن شخص قادر به تشخیص ربات یا انسان بودن آن نباشد، آن ربات تست تورینگ را با موفقیت پشت سر گذاشته است.
  • Validation Data: داده های اعتبارسنجی قسمتی از داده ها است که شبیه داده های آموزشی دارای داده و برچسب مربوطه است و برای تست Overfitting یک الگوریتم یا مدل به کار می رود.
  • Variance: واریانس مقداری است که نشان می دهد مدل یا الگوریتم در استفاده از داده های جدید دچار تغییر در پیش بینی می شود. مشخص است که اگر واریانس در یک مدل بالا باشد آن مدل دارای Overfitting‌ است چون نسبت به داده های جدید دچار تغییر در پیش بینی زیادی می شود.

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

 

ارسال یک پاسخ