زبان برنامه نویسی پایتون (Python) یکی از زبانهای همهمنظوره است که از آن میتوان در توسعه پروژههای مختلفی استفاده کرد. این زبان برنامه نویسی به دلیل داشتن ابزارها و کتابخانههای جامع، در حوزه هوش مصنوعی (Artificial Intelligence) یا همان AI نیز توجه بسیاری از برنامه نویسان فعال در این حیطه را به خود جلب کرده است و به عنوان یکی از پرکاربردترین زبانهای برنامه نویسی رشته هوش مصنوعی محسوب میشود. در مطلب حاضر، به ویژگیهای مهم پایتون در هوش مصنوعی اشاره و کتابخانههای مهم پایتون و منابع یادگیری رایج آنها در این حیطه (هوش مصنوعی) معرفی میشوند. همچنین، در این مطلب، به نحوه پیادهسازی تعدادی از مدلهای هوش مصنوعی با پایتون پرداخته خواهد شد تا افراد علاقهمند به این شاخه از برنامه نویسی، با روال حل مسئله و ساخت مدلها آشنایی کلی پیدا کنند.

مروری اجمالی بر هوش مصنوعی
هوش مصنوعی به عنوان یکی از گرایشهای حوزه و رشته علوم کامپیوتر محسوب میشود که هدف محققان این حیطه، طراحی و ساخت سیستمهای مصنوعی هوشمندی است که شیوه رفتار، عملکرد و تفکر انسان را تقلید کنند و بدون نیاز به دخالت انسان، وظایف و مسئولیتهایی را انجام دهند.
برای حل مسائل ساده، میتوان سیستمهای هوشمندی را با استفاده از یک سری دستورات شرطی طراحی کرد که با در نظر گرفتن تعدادی از محدودیتها، عملکردی خاص را انجام میدهند. برای حل مسائل پیچیدهتر، نیاز است که برای آموزش ماشین از روشهای دیگری استفاده شود تا ماشین بتواند خودش درباره مسئله تصمیم بگیرد و رفتار آن محدود به چندین دستور شرطی ساده نباشد.
«یادگیری ماشین» (Machine Learning) و «یادگیری عمیق» (Deep Learning) دو زیر شاخه اصلی و مهم هوش مصنوعی محسوب میشوند که از مدلها و الگوریتمهای مطرح شده در این دو حوزه میتوان برای آموزش ماشین مصنوعی استفاده کرد. در ادامه، به توضیح مختصری پیرامون این دو زیرشاخه پرداخته میشود.
رویکردهای یادگیری ماشین را که برای یادگیری نیاز به دادههای آموزشی دارند، میتوان به دو روش کلی «یادگیری نظارت شده» (Supervised Learning) و «یادگیری بدون نظارت» (Unsupervised Learning) تقسیم کرد. در رویکرد یادگیری نظارت شده، دادههای آموزشی شامل اطلاعاتی (مقادیر هدف | Target Values) هستند که مدل نهایی باید آن اطلاعات را پیشبینی کند. مسائل نظارت شده را میتوان به دو دسته «رگرسیون» (Regression) و «دستهبندی» (Classification) تقسیم کرد.
روال آموزش مدل یادگیری ماشین
در مسائل رگرسیون، مدل با دریافت ورودی به پیشبینی مقداری در خروجی اقدام میکند. مسائلی نظیر پیشبینی قیمت مسکن را میتوان از مسائل رگرسیون به حساب آورد که در آنها مدل با دریافت یک سری ویژگی مانند متراژ خانه، منطقه، تعداد اتاق و امکانات خانه، قیمتی را برای آن خانه پیشبینی میکند.
مثالی از روش دستهبندی
در مسائل دستهبندی، چندین دسته برای دادهها تعریف میشود که اطلاعات این دستهها در زمان آموزش، در اختیار مدل قرار میگیرند و در زمان تست، مدل باید به پیشبینی نوع دسته داده جدید بپردازد. مسائلی از قبیل «تحلیل احساسات» (Sentiment Analysis) متن، تشخیص نویسنده، تشخیص ایمیلهای اسپم و غیر اسپم به عنوان موضوعات دستهبندی محسوب میشوند.
در رویکرد بدون نظارت، دادههای آموزشی هیچ گونه اطلاعات اضافی ندارند و الگوریتم یادگیری ماشین بر اساس مقایسه دادههای آموزشی، به «خوشهبندی» (Clustering) آنها میپردازد و دادههای مشابه را در خوشههای جداگانه قرار میدهد.
مثالی از روش خوشهبندی
به منظور پیادهسازی روشهای یادگیری ماشین هوش مصنوعی با پایتون میتوان از کتابخانه Scikit-Learn استفاده کرد. این کتابخانه، شامل ابزارهای مختلفی برای آمادهسازی دادههای آموزشی، آموزش مدل و سنجش نهایی عملکرد مدل است.
کتابخانه Theano در زبان برنامه نویسی پایتون
از کتابخانه Theano برای پیادهسازی مدلهای هوش مصنوعی با پایتون، مخصوصاً مدلهای یادگیری ماشین، استفاده میشود. با استفاده از این کتابخانه میتوان عملیات مختلفی نظیر محاسبات ماتریسی، محاسبات مختلف ریاضی و بهینهسازی را انجام داد. از ابزارهای این کتابخانه میتوان به همراه دستورات کتابخانه Numpy استفاده کرد. دستورات مرتبط با این کتابخانه را میتوان بر روی GPU با سرعت بسیار بالا اجرا گرفت.
کتابخانه Keras در پایتون
کتابخانه «کراس» (Keras) به عنوان کتابخانه منبع باز محسوب میشود که از آن میتوان برای توسعه پروژههای مبتنی بر هوش مصنوعی با پایتون استفاده کرد. کار با این کتابخانه ساده است و به افراد برنامه نویس تازهکار پیشنهاد میشود برای شروع کار خود از این کتابخانه استفاده کنند.
از این کتابخانه میتوان برای پیادهسازی پروژههای مختلف در حوزههای علم داده، پردازش زبان طبیعی و یادگیری ماشین و یادگیری عمیق استفاده کرد. این کتابخانه ابزارهای مورد نیاز برای ساخت مدل، تحلیل دادهها، مصورسازی گراف و بارگذاری مستقیم دادهها را شامل میشود.
استفاده از کتابخانه Scikit-Learn برای پیاده سازی هوش مصنوعی با پایتون
کتابخانه Scikit-Learn یکی دیگر از کتابخانههای پرکاربرد برای هوش مصنوعی با پایتون است که از آن برای پیادهسازی مدلهای هوش مصنوعی با پایتون استفاده میشود. برنامه نویسانی که قصد دارند پروژههایی را با زبان پایتون در زمینههای پردازش زبان طبیعی، پردازش تصویر و برنامههای مبتنی بر یادگیری ماشین توسعه دهند، با این کتابخانه سر و کار خواهند داشت.
کتابخانه Scikit-Learn شامل مدلهای یادگیری ماشین نظارت شده و بدون نظارت است و با استفاده از ابزارهای پیش پردازش این کتابخانه، دادههای مورد نیاز مدلها را آماده کرد.
کتابخانه PyTorch در زبان پایتون
یکی دیگر از کتابخانههای محبوب پایتون، کتابخانه «پایتورچ» (PyTorch) است که برنامه نویسان از آن برای طراحی مدلهای هوش مصنوعی با پایتون استفاده میکنند. پایتورچ کتابخانهای منبع باز است که در سال ۲۰۱۶ توسط تیم پژوهشگران هوش مصنوعی شرکت فیسبوک ارائه شد. از این کتابخانه برای طراحی مدلهای مختلف در حوزه پردازش زبان طبیعی، علم داده و «بینایی ماشین» (Computer Vision) استفاده میشود.
کتابخانه Scrapy
برنامهنویسانی که در حوزه علم داده فعالیت دارند، با کتابخانه Scrapy آشنا هستند. این کتابخانه پایتون، یکی از کتابخانههای منبع باز است که از آن برای استخراج دادهها از صفحات وب استفاده میشود. بدین ترتیب، افرادی که قصد دارند «خزشگری» (Crawler) برای وب طراحی کنند که دادههای ساختاریافتهای از صفحات وب گردآوری و از آنها در توسعه برنامههای خود استفاده کنند، میتوانند از این کتابخانه بهره ببرند.
کتابخانه NLTK در پایتون
کتابخانه NLTK به عنوان یکی از بهترین کتابخانههای پایتون برای توسعه پروژههای پردازش زبان طبیعی تلقی میشود.این کتابخانه دارای ابزارهای مختلفی برای «برچسبزنی» (Tagging) متن، «تجزیه کردن» (Parsing) جمله، تحلیل معنایی متن و مواردی از این قبیل است. از این کتابخانه برای آمادهسازی دادهها برای مدلهای یادگیری عمیق و یادگیری ماشین استفاده میشود.