در دنیای امروز، کم تر کسی را می توان یافت که با اصطلاح AI هوش مصنوعی یا Artificial Intelligence آشنایی نداشته باشد. همه ما درباره این شاخه از فناوری اطلاعات مطالب و مقالات خبری مختلفی خوانده ایم یا دست کم با دیدن فیلم های علمی تخیلی پیرامون این حوزه، با ابزارها و سیستم های هوش مصنوعی آشنا شده ایم. سیستم های هوشمند بر پایه یک سری روش ها و الگوریتم های هوش مصنوعی به یادگیری مسائل مختلف می پردازند و به صورت خودکار وظایفی را انجام می دهند. یکی از مفاهیم اصلی و حیاتی در هوش مصنوعی، الگوریتم های هوش مصنوعی هستند که نقش بسزایی در امکان سنجی و پیشبرد سیستم های هوش مصنوعی ایفا می کنند. الگوریتم های هوش مصنوعی به عنوان مجموعه ای از قوانین و روش های پیچیده، برای انجام عملیات مختلف و تصمیم گیری های پیچیده در حوزه های مختلف هوش مصنوعی به کار گرفته می شوند.
الگوریتم های هوش مصنوعی (بخش اول)
هوش مصنوعی Artificial Intelligence یا AI یک حوزه پیشرفته در علوم کامپیوتر است که به توسعه سیستم ها و برنامه هایی می پردازد که به طور ذاتی قابلیت انجام وظایف هوشمندانه انسانی را دارا هستند. در واقع، هدف اصلی انقلاب هوش مصنوعی این است که ماشین ها و برنامه ها را به گونه ای طراحی کند که بتوانند اطلاعات را فرا گیرند، از آنها استنتاج بگیرند، مسائل را حل کنند و عملکردی را انجام دهند که به نظر می رسد نیاز به هوشمندی داشته باشد. هوش مصنوعی به دو دسته اصلی ، هوش مصنوعی ضعیف یا Weak AI و هوش مصنوعی قوی یا Strong AI تقسیم میگردد. هوش مصنوعی ضعیف به معنای داشتن هوش در یک حوزه خاص محدود می شود، مثلاً سیستم های ترجمه ماشینی یا تشخیص چهره. اما هوش مصنوعی قوی به دنبال ایجاد ماشین هاست که توانایی انجام همه وظایف هوشمندانه انسانی را دارند. تکنولوژی های هوش مصنوعی شامل الگوریتم ها، شبکه های عصبی، یادگیری ماشین، پردازش زبان طبیعی، بینایی ماشین، و دیگر مفاهیم پیشرفته در علوم کامپیوتر می شوند. هوش مصنوعی از تأثیر گذاری فراوان در حوزه های مختلف اجتماعی و اقتصادی نظیر بهداشت، اتوماسیون، حمل و نقل، ارتباطات و غیره برخوردار است و پتانسیل زیادی برای تحولات بزرگ در آینده دارد.
الگوریتم های هوش مصنوعی مجموعه ای از مدل ها و روش های ریاضی هستند که با استفاده از آن ها سیستم های هوشمند می توانند وظایفی مانند یادگیری، پیش بینی، تصمیم گیری و شناسایی الگوها را انجام دهند. این الگوریتم ها می توانند از داده ها یاد بگیرند و با گذر زمان عملکرد خود را بهبود دهند. طبق گزارش Gartner، پیش بینی می شود که تا سال ۲۰۲۵، حدود ۸۰ درصد از فناوری های پیشرفته جهانی بر پایه الگوریتم های هوش مصنوعی خواهند بود. این رشد سریع به دلیل توانایی الگوریتم های AI در حل مسائل پیچیده و ارائه راه حل های دقیق و خودکار است. تکنیک های مختلفی در الگوریتم های هوش مصنوعی به کار می روند که از جمله آنها می توان به طبقه بندی، رگرسیون، خوشه بندی و شبکه های عصبی اشاره کرد. در طبقه بندی، الگوریتم ها، داده ها را در دسته ها یا کلاس های مختلف دسته بندی می کنند، در حالی که رگرسیون، پیش بینی یک مقدار پیوسته را از بین یک مجموعه اعداد انجام می دهد. در خوشه بندی، داده ها به گروه های مشابه تقسیم می شوند و شبکه های عصبی، به عنوان یک مدل محاسباتی الهام گرفته از ساختار مغز انسان، در بسیاری از وظایف هوش مصنوعی به کار می روند.
انواع الگوریتم های هوش مصنوعی
الگوریتم های هوش مصنوعی به چند دسته اصلی تقسیم می شوند:
1. الگوریتم های یادگیری ماشین
الگوریتم ها یکی از مهم ترین بخش های هوش مصنوعی هستند و شامل مدل هایی هستند که از داده ها یاد می گیرند. الگوریتم های یادگیری ماشین یا Machine Learning Algorithms مجموعه ای از تکنیک ها و روش های محاسباتی هستند که به ماشین ها یا سیستم های کامپیوتری این امکان را می دهند که از داده ها یاد بگیرند و بدون برنامه نویسی صریح برای انجام یک وظیفه خاص، وظایف را اجرا کنند. این الگوریتم ها به ماشین ها این امکان را می دهند که از تجربیات گذشته خود یاد بگیرند و بهبود پیش بینی ها و تصمیم گیری ها انجام دهند. بر اساس نحوه یادگیری الگوریتم های هوش مصنوعی و نوع داده های آموزشی آن ها، می توان چهار دسته کلی برای رویکردهای یادگیری الگوریتم های هوش مصنوعی در نظر گرفت :
2. یادگیری نظارت شده یا Supervised Learning :
در این روش الگوریتم ها با استفاده از داده های دارای برچسب، مدل های پیش بینی می سازند. در یادگیری نظارتی، مدل به کمک داده های ورودی و خروجی متناظر آموزش داده می شود. مدل با مراجعه به داده های زوج ورودی-خروجی، نقشه ای از رابطه بین ورودی و خروجی را یاد می گیرد. در این نوع یادگیری، هدف پیش بینی یا تصمیم گیری بر اساس ورودی جدید است. دو نوع مسئله را می توان با الگوریتم های هوش مصنوعی از نوع نظارت شده حل کرد، اول مسائل دسته بندی Classification : در این نوع مسائل به دنبال دسته بندی داده ها در دسته های از پیش مشخص شده هستیم. به عنوان مثال، می توان به مسئله تشخیص ایمیل های هرزنامه یا Spam اشاره کرد. در این نوع مسئله می توان ایمیل ها را بر اساس محتویاتشان، به دو دسته هرزنامه و غیر هرزنامه گروه بندی کرد. دوم مسائل رگرسیون Regression : مقدار خروجی این نوع از الگوریتم ها محدود به مقادیر خاصی نظیر مسئله دسته بندی نیست و الگوریتم های هوش مصنوعی رگرسیون می توانند مقادیر مختلفی را با توجه به ورودی تولید کنند. در این نوع مسائل معمولاً متغیرهایی از نوع وابسته و مستقل داریم و الگوریتم با توجه به مقادیر متغیرهای مستقل، باید مقدار متغیر وابسته را پیش بینی کند. مسئله ای نظیر تخمین قیمت مسکن را درنظر بگیرید.
در خصوص مزایا و معایب الگوریتم های هوش مصنوعی با نظارت میباست گفت:
مزیت های همگانی این دسته از الگوریتم ها را می توان در فهرست زیر خلاصه کرد:
• این نوع الگوریتم ها به داده های برچسب دار نیاز دارند و برچسب آن ها را به عنوان معیار اصلی برای سنجش عملکرد خود درنظر می گیرند. بدین ترتیب، روش های با نظارت در راستای رسیدن به هدف تشخیص صحیح برچسب داده ها عملکرد خود را بهبود می دهند.
• درک فرآیند یادگیری و عملکرد الگوریتم های هوش مصنوعی با نظارت ساده است. در الگوریتم های بدون نظارت، به سادگی نمی توان عملکرد درون مدل و نحوه یادگیری آن را درک کرد.
• پیش از آموزش مدل، دقیقاً تعداد کلاس های مسئله مشخص است.
• پس از اتمام آموزش الگوریتم های هوش مصنوعی با نظارت، نیازی به نگهداری داده های آموزشی درون حافظه نیست.
• الگوریتم های هوش مصنوعی با نظارت، عملکرد بسیار خوبی در مسائل دسته بندی دارند.
علاوه بر مزیت های مهمی که الگوریتم های هوش مصنوعی با نظارت دارند، می توان برای آن ها معایبی را نیز به صورت زیر برشمرد:
• الگوریتم های هوش مصنوعی با نظارت درباره داده های جدیدی که شباهتی با داده های آموزشی ندارند، اطلاعات درستی ارائه نمی کنند. به عنوان مثال، فرض کنید مدلی را برای دسته بندی داده ها پیاده سازی کردید که داده های آموزشی آن شامل تصاویر حیوانات سگ و گربه بود. در زمان استفاده از این دسته بندی، چنانچه تصویری از زرافه را به عنوان ورودی به مدل بدهیم، مدل برچسب درستی برای این تصویر ارائه نخواهد داد.
• برای آموزش الگوریتم های هوش مصنوعی با نظارت، لازم است که برای هر دسته، داده های آموزشی جامعی فراهم کنیم تا دقت مدل در زمان تست مورد قبول باشد.
• چنانچه حجم داده های آموزشی برای مدل های هوش مصنوعی با نظارت بسیار زیاد باشد، میزان بار محاسباتی برای آموزش مدل زیاد خواهد بود.
• چنانچه حجم داده های آموزشی این مدل ها بسیار کم باشد و نتوان داده های آموزشی مناسبی برای یادگیری آن ها آماده کنیم، عملکرد مدل ها نیز به مراتب ضعیف تر خواهد بود.
برخی از رایج ترین و پرکاربردی ترین الگوریتم های یادگیری ماشین که برای مسائل دسته بندی و رگرسیون استفاده می شوند، در ادامه فهرست شده اند:
• الگوریتم هوش مصنوعی درخت تصمیم : درخت تصمیم یا Decision Tree به عنوان یکی از پرکاربردترین الگوریتم های هوش مصنوعی محسوب می شود. نام این الگوریتم برگرفته از ساختار آن است که شباهت به درخت دارد. داده های آموزشی در ریشه درخت تصمیم قرار می گیرند و هر یک از گره ها یا Nodes درخت ویژگی هایی هستند که داده های آموزشی بر اساس آن ها سنجیده می شوند. به گره ای که زیرشاخه نداشته باشد، برگ یا Leaf گفته می شود. می توان از درخت تصمیم به منظور دسته بندی داده ها استفاده کرد. داده ها بر اساس ویژگی های تعریف شده در هر گره در دسته های متفاوت قرار می گیرند تا جایی که دیگر نتوان آن ها را در دسته های جداگانه قرار داد.
• الگوریتم هوش مصنوعی ماشین بردار پشتیبان : ماشین بردار پشتیبان یا Support Vector Machine به عنوان یکی دیگر از الگوریتم های یادگیری ماشین با رویکرد یادگیری نظارت شده تلقی می شود که در هر دو مسئله دسته بندی و رگرسیون کاربرد دارد اما از آن بیشتر در حل مسائل دسته بندی استفاده می شود. این مدل به دنبال پیدا کردن ابَر صفحه ای یا Hyperplane است که داده هایی با ویژگی مشابه را از داده های غیرمشابه تفکیک کند. موقعیت این ابر صفحه باید به گونه ای باشد که بیشترین فاصله را بین دسته ها ایجاد کند. در فضای دو بعدی که داده ها از دو بعد تشکیل شده اند، می توان ابر صفحه را به شکل خط نشان داد. برای تفکیک دسته ها نیز می توان از بیش از یک ابر صفحه استفاده کرد.
• الگوریتم بیز ساده : از دیگر الگوریتم های هوش مصنوعی پرکاربرد می توان به مدل نایو بیز یا بیز ساده یا Naive Bayes اشاره کرد. این مدل، یک الگوریتم احتمالاتی است که احتمال رخداد یک رویداد را بر اساس نظریه بیز محاسبه می کند. مهم ترین فرضیه ای که این مدل در مورد داده ها در نظر می گیرد، این است که ویژگی ها مستقل از یکدیگر هستند و با تغییر مقادیر ویژگی ها، تاثیری بر روی سایر مقادیر حاصل نمی شود. به عبارتی، از این فرضیه برای ساده کردن روال یادگیری الگوریتم استفاده می شود.
• الگوریتم لاجستیک رگرسیون : الگوریتم لاجستیک رگرسیون یا Logistic Regression به عنوان یکی از الگوریتم های هوش مصنوعی محسوب می شود که از آن می توان برای دسته بندی داده ها در دو کلاس استفاده کرد. در این مدل، از تابع غیر خطی برای تبدیل مقدار خروجی در بازه صفر تا یک استفاده می شود و منحنی تابع رگرسیون لجستیک مشابه حرف S است که پس از تغییر مقدار خروجی به بازه صفر تا یک، مقدار ۰٫۵ مرز بین دو کلاس را مشخص می کند. به منظور گرفتن نتیجه بهتر از این الگوریتم بهتر است ویژگی های غیرمرتبط را از داده های آموزشی مدل حذف کنید تا مدل، رابطه بین داده های ورودی و مقدار خروجی را بهتر یاد بگیرد.
• مدل رگرسیون خطی : رگرسیون خطی یا Linear Regression به عنوان یکی از الگوریتم های یادگیری ماشین با رویکرد یادگیری نظارت شده محسوب می شود که رابطه بین متغیر ورودی یا متغیر مستقل و مقدار خروجی یا متغیر وابسته را با تعیین یک خط در فضای مختصات مشخص می کند. از این الگوریتم برای مسائل رگرسیون نظیر پیش بینی قیمت مسکن استفاده می شود. این الگوریتم هوش مصنوعی به دنبال پیدا کردن بهترین خطی است که بتواند موقعیت قرارگیری داده ها را در فضای مختصات یاد بگیرد و بر اساس ویژگی های داده های آموزشی، درباره داده های جدید تصمیم گیری کند.
3. یادگیری بدون نظارت یا Unsupervised Learning :
در یادگیری بدون نظارت، مدل بدون داشتن خروجی مورد نظر آموزش دیده و تلاش می کند که ساختارهای مخفی یا الگوهای مهم در داده ها را شناسایی کند. این الگوریتم ها به ماشین این امکان را می دهند که بدون راهنمای خارجی، اطلاعاتی را از داده ها استخراج کند. در مقایسه با الگوریتم های یادگیری با نظارت، داده های ورودی الگوریتم های یادگیری بدون نظارت، برچسب ندارند و این نوع الگوریتم ها بر اساس بررسی میزان شباهت داده ها به یکدیگر، آن ها را در خوشه های Clusters مجزا قرار می دهند به گونه ای که داده های درون یک خوشه، بیشترین شباهت را به یکدیگر دارند و نسبت به داده های سایر خوشه ها بسیار متفاوت باشند. الگوریتم های یادگیری بدون نظارت، نوعی از الگوریتم های یادگیری ماشین هستند که بدون داشتن برچسب های دسته بندی شده از داده ها استفاده می کنند.
الگوریتم های یادگیری بدون نظارت، دسته ای از الگوریتم های هوش مصنوعی دیگر هستند که داده های بدون برچسب را برای کشف الگوها، ساختارها و روابط بدون اطلاع قبلی از خروجی های مورد نظر تجزیه وتحلیل می کنند. برخلاف یادگیری تحت نظارت که در آن الگوریتم از داده های برچسب گذاری شده یاد می گیرد، یادگیری بدون نظارت بر یافتن ساختارها و الگوهای ذاتی درون خود داده تمرکز می کند. هدف اصلی یادگیری بدون نظارت، کشف داده ها، شناسایی شباهت ها یا تفاوت ها و گروه بندی نقاط داده مشابه با هم است. هدف این الگوریتم ها کشف بینش ها و ساختارهای پنهانی است که ممکن است به راحتی قابل مشاهده نباشند. یادگیری بدون نظارت به ویژه هنگام کار با مجموعه داده های بدون ساختار یا بزرگ که برچسب زدن دستی داده ها غیرعملی یا در دسترس نیست، مفید است.
الگوریتم های یادگیری بدون نظارت ابزار ارزشمندی برای کشف الگوها و ساختارها در داده های بدون برچسب هستند. آن ها می توانند بینش ارائه دهند، نقاط داده مشابه را گروه بندی کنند و ابعاد مجموعه داده های پیچیده را کاهش دهند. اگرچه تفسیر نتایج می تواند ذهنی باشد، یادگیری بدون نظارت کاربردهای متعددی در تقسیم بندی بازار، تشخیص ناهنجاری ها و سیستم های توصیه گر دارد. مهم ترین کاربردهای الگوریتم های هوش مصنوعی غیر نظارتی را می توان به مواردی تقسیم کرد. ابتدا تقسیم بندی بازار الگوریتم های یادگیری بدون نظارت را می توان برای تقسیم بندی مشتریان به گروه های مجزا بر اساس رفتار خرید یا ترجیحات آن ها مورد استفاده قرار داد و به کسب وکارها کمک کرد تا استراتژی های بازاریابی خود را تنظیم کنند.
تشخیص ناهنجاری این الگوریتم ها می توانند الگوهای عادی یا غیرعادی را در یک مجموعه داده شناسایی کنند که برای تشخیص تقلب، تشخیص نفوذ شبکه یا نظارت بر سیستم مفید است. همچنین مورد آخر سیستم های توصیه گر: الگوریتم های یادگیری بدون نظارت می توانند رفتار و ترجیحات کاربر را تجزیه وتحلیل کنند تا توصیه های شخصی برای محصولات، فیلم ها یا محتوا ارائه دهند.
در خصوص مزایا و معایب الگوریتم های هوش مصنوعی بدون نظارت میباست گفت:
برخی از مهم ترین مزیت های الگوریتم های هوش مصنوعی بدون نظارت را می توان در فهرست زیر ارائه کرد:
• الگوریتم های هوش مصنوعی بدون نظارت می توانند ویژگی هایی از داده ها را تشخیص بدهند که برای انسان به وضوح مشخص نباشند.
• از آنجایی که این نوع الگوریتم ها نیازی به داده های برچسب دار ندارند، زمان آماده سازی مدل و استفاده از آن به مراتب کاهش پیدا می کند.
• این نوع الگوریتم ها در مقایسه با الگوریتم های هوش مصنوعی با نظارت از محاسبات کمتری برخوردار هستند.
الگوریتم های هوش مصنوعی بدون نظارت دارای معایبی نیز هستند که در ادامه به آن ها اشاره می شود:
• از آنجایی که هیچ گونه برچسبی برای داده های آموزشی به عنوان معیار سنجش عملکرد مدل وجود ندارد، نمی توان با قطعیت گفت که خروجی الگوریتم های هوش مصنوعی بدون نظارت کاملاً صحیح هستند.
• درک عملکرد این نوع الگوریتم ها سخت تر از الگوریتم های هوش مصنوعی با نظارت است و در هنگام استفاده از آن ها، نیاز به فرد متخصصی داریم تا بتواند الگوها و روابط بین داده ها را تشخیص دهد تا خوشه بندی حاصل شده، قابل درک باشند.
• خروجی الگوریتم های بدون نظارت بستگی زیادی به مدل دارند و ممکن است با تغییر مدل یا پارامترهای آن، تفاوت فاحشی در خروجی ها حاصل شود.
ادامه مقاله را در بخش دوم مطالعه فرمایید.