از اولین پیدایش «هوش مصنوعی» (Artificial intelligence | AI) حدود نیم قرن گذشته است و امروزه این علم یکی از پرطرفدارترین زمینهها در حوزه علوم کامپیوتر به حساب میآید. هوش مصنوعی پایه و اساسی برای «یادگیری عمیق» (Deep learning) و «شبکههای عصبی» (Neural Network) به شمار میرود و به سرعت در حال پیشرفت است. ایجاد راه حل با استفاده از هوش مصنوعی هنوز چالشهای زیادی دارد و باید بررسی شوند. در مقاله «ساخت هوش مصنوعی» به روش و مراحل ساخت سیستمهای هوش مصنوعی پرداخته شده است. به علاوه، در این نوشتار از مجله تم آف به آموزش ساخت هوش مصنوعی با پایتون (تنسورفلو و کتابخانه کراس) به صورت پروژه محور و گامبهگام پرداخته شده است.
هوش مصنوعی چیست ؟
به طور کلی هوش مصنوعی، به توانایی ماشینها در تقلید از عملکردهای شناختی و خلاقانه انسان اشاره دارد که پیش از این به طور اختصاصی فقط برای انسان در نظر گرفته شده بودند. این نوع سیستمها میتوانند مسائل را حل کنند، دادهها را «آموزش» (Train) دهند و از تجربیات قبلی خود درس بگیرند و از آنها استفاده کنند. مفهوم هوش مصنوعی در سال ۱۳۳۵ شمسی (۱۹۵۶ میلادی) در کنار مجموعهای از فناوریها، علوم و برخی ویژگیهای سیستمهای کامپیوتری ایجاد شد. در علوم کامپیوتر، هوش مصنوعی علمی به حساب میآید که روی سیستمها و دستگاهها برای تعامل با محیط و عملکردی مفید به وجود آمده است.
این مفهوم باعث نوآوری در محصولات و سرویسهای امروزی شده است. بیشتر بخشهای ساخت هوش مصنوعی با «یادگیری ماشین» (Machine Learning | ML) در ارتباط هستند. امروزه، یادگیری ماشین یکی از روشهای اصلی برای حل مسائل در سیستمهای هوش مصنوعی به حساب میآید. یادگیری ماشین زیر مجموعهای از هوش مصنوعی است که به ساخت الگوریتمهای مبتنی بر یادگیری ارتباط دارد. در دنیای فناوری امروزی هوش مصنوعی به یکی از روشهای مهم توسعه نرم افزار تبدیل شده است و همچنین، پتانسیل رشد بالایی دارد. هر روز روشهای متفاوتی مبتنی بر هوش مصنوعی ارائه میشوند.
وب سایت آماری «Statista» پیشبینی کرده است، تا سال ۱۴۰۴ شمسی (۲۰۲۵ میلادی) بازار جهانی هوش مصنوعی به سودی ۱۲۶ میلیارد دلاری خواهد رسید، زیرا اکثر استارتآپها و شرکتها در حوزههای گوناگون از ساخت هوش مصنوعی و یادگیری ماشین برای بهینهسازی سیستمهای خود استفاده میکنند. در بخش بعدی از مقاله «ساخت هوش مصنوعی» به روش کار هوش مصنوعی پرداخته شده است.
ساخت هوش مصنوعی چگونه است؟
بهترین و کاربردیترین روشهای ساخت هوش مصنوعی در سیستمها و نرم افزارها بر اساس یادگیری ماشین و یادگیری عمیق هستند. همچنین شبکههای عصبی نیز در ساخت هوش مصنوعی عملکرد خوبی دارند، ایده اصلی این شبکهها از مغز انسان گرفته شده است. هوش مصنوعی میتواند به طور خودکار گرافهایی بسازد که تفسیرهایی از برنامهها و حافظه الگوریتمها را نشان دهد. یکی از ویژگیهای حائز اهمیت یادگیری عمیق در ساخت هوش مصنوعی ، استفاده آن از حجم زیادی از دادهها و همچنین بهکارگیری توان محاسباتی کامپیوترها است. هدف اصلی هوش مصنوعی ایجاد برنامهها، سیستمها و محصولات دیجیتالی به حساب میآید که میتوانند با آموزش دیدن یا آموزش دادن به وجود بیایند.
همچنین گاهی میتوان از مدلهای آمادهای در ساخت هوش مصنوعی برای کسب و کار خود استفاده کرد قبلاً آموزش داده شدهاند و فرایند یادگیری در آنها از قبل انجام شده است. برای مثال، «دانشمندان داده» (Data Scientist) مدلهای هوش مصنوعی را پیادهسازی میکنند و الگوریتمهای مختلفی را برای پردازش دادههای گوناگون «ساختاریافته» (Structured) و «بدون ساختار» (Unstructured) مورد استفاده قرار میدهند. همچنین مهندسان میتوانند الگوهای گوناگونی را روی «مجموعه دادهها» (Dataset) شناسایی کنند و آنها را با استفاده از «یادگیری تقویتی» (Reinforcement Learning) توسعه و آموزش بدهند.
برای سادهتر شدن شناسایی و بررسی مجموعه دادهها میتوان آنها را دستهبندی کرد و حتی میتوان این کار را با استفاده از سیستمهای هوش مصنوعی و کمترین دخالت انسان انجام داد. طبق تحقیقات و بررسیهای انجام شده در وب سایت «PYMNTS»، از اوایل سال ۱۴۰۰ شمسی (۲۰۲۱ میلادی) سیستمهای محاسباتی و فناوریهای هوش مصنوعی، به کاربردهای عملی بسیاری در ساخت هوش مصنوعی دست یافتهاند:
- «سیستمهای هوش مصنوعی» (AI System): این سیستمها از «عاملهای هوشمند» (Intelligent Agent)، برنامهها و سایر محصولات نرم افزاری برای شخصیسازی، خودآموزی و انطباق با اطلاعات جدید در «زمان واقعی» (Real Time) استفاده میکنند.
- یادگیری عمیق: این رویکرد، تکنولوژی به حساب میآید که مبتنی بر مجموعه الگوریتمهای هوش مصنوعی و استفاده از شبکههای عصبی به عنوان زیر ساخت معماری خود است.
- «داده کاوی» (Data mining): داده کاوی روش آماری است که رویهها و سایر ارتباطهای دادهها را در مجموعه دادههای بزرگ فراهم میکند.
- «استدلال مبتنی بر مورد» (Case-Based Reasoning): رویکردهای الگوریتمی هستند که از نتایج گذشته برای حل مسائل فعلی استفاده میکنند.
- «منطق فازی» (Fuzzy Logic): سیستمهایی هستند که میتوانند دادهها را به جای الگوهای «باینری یا دودویی» (Binary) مبتنی بر مقادیر «حد میانه» (Middle-Ground) مانند «سیاه و سفید» یا «درست و غلط» دستهبندی کنند.
مراحل ساخت هوش مصنوعی به چه صورت است؟
اولین مرحله برای ساخت هوش مصنوعی، بررسی دلیل اهمیت ساخت یک نرم افزار یا ابزار هوش مصنوعی است و اینکه برای ساخت آن به چه مواردی نیاز خواهد شد. بنابراین، ایده حل مسئله، بخشهای مهم از نظر کاربران و ارزش اولیه در مرحله اول ساخت هوش مصنوعی معمولاً مورد بررسی قرار میگیرند. اگر به این نکتهها به درستی توجه شود، میتوان همه روشهای مورد استفاده برای حل مسئله، مراحل توسعه آن و همه معیارهای هوش مصنوعی متناسب با مسئله را شناسایی کرد. همچنین، این مراحل برای فراهم کردن دقیق دادهها ضروری هستند. در ادامه به صورت جزئیتر به بررسی چند مورد برای ساخت هوش مصنوعی پرداخته شده است. بخش اول به معرفی مسئله هوش مصنوعی اختصاص دارد.
۱. تعریف و مشخص کردن مسئله در پروژه مورد نظر
اولین قدم برای ساخت هوش مصنوعی در هر زمینهای، شناسایی صحیح مسئله است. برای مثال، سوالاتی مانند «نتیجه نهایی مورد نظر چیست؟» و «مشکل اصلی مسئله چیست؟» باید پاسخ داده شوند. همچنین نیاز است روشهای بسیار و گوناگونی مورد بررسی قرار بگیرند که برای حل مسئله وجود دارند. در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی دادهها پرداخته شده است.
۲. جمع آوری داده های مناسب و پاک سازی آن ها
برای ساخت نرم افزار یا ابزار هوش مصنوعی به مجموعه داده یا همان دیتاست برای پیادهسازی نیاز است. اگر مشتری برای پروژه خود مجموعه داده آمادهای نداشته باشد، نیاز است که مهندسین پروژه زمانی را برای ایجاد، جستجو و گاهی برچسب زدن دادهها در نظر بگیرند. برچسب زدن دادهها زمان زیادی نیاز دارند و پروژه برای این کار به یک تیم برچسبزنی نیاز خواهد داشت. به طور کلی دو نوع داده در هوش مصنوعی وجود دارند که در ادامه مورد بررسی قرار میگیرند:
- دادههای ساختاریافته: دادههایی که دارای یک فرمت ثابت هستند، دادههای ساختاریافته نامیده میشوند.
- دادههای بدون ساختار: هر دادهای مانند تصاویر، صدا و سایر موارد که دارای فرمت ثابتی نباشد به عنوان داده بدون ساختار شناخته میشود.
مجموعه داده های رایگان و قابل دانلود برای علم داده و یادگیری ماشین
در ادامه این بخش از مقاله به بررسی انواع الگوریتمهای هوش مصنوعی پرداخته شده است.
۳. انتخاب و آموزش الگوریتم برای ساخت هوش مصنوعی
انتخاب الگوریتم مناسب مهمترین و اصلیترین بخش ساخت هوش مصنوعی به حساب میآید. بدون در نظر گرفتن جزئیات هر الگوریتم، مواردی برای انتخاب آن نسبت به نوع مسئله هوش مصنوعی وجود دارند. بر اساس نوع یادگیری، الگوریتم میتواند انواع گوناگونی داشته باشد که در ادامه مورد بررسی قرار گرفتهاند. پایه و اساس هر پروژه هوش مصنوعی، مدل آن به حساب میآید و در ادامه قبل از طراحی مدل بهتر است که به موارد زیر و همچنین مفاهیم یادگیری نظارت شده، نظارت نشده، نیمه نظارت شده و تقویتی توجه شود:
- الگوریتم مورد نظر پروژه و نوع یادگیری آن باید انتخاب شوند. انواع یادگیریها در هوش مصنوعی به چهار دسته زیر تقسیم میشوند:
- «یادگیری نظارت شده» (Supervised Learning): در این نوع یادگیری با استفاده از مجموعه داده مشخصی که به الگوریتم داده میشود، سیستم برای ارائه نتایج مورد نیاز آموزش میبیند. به عبارت دیگر، یادگیری نظارت شده نوعی از یادگیری به حساب میآید که دارای مجموعه دادههای برچسبدار است. الگوریتمهای یادگیری نظارتی بسیاری وجود دارند که برای مثال میتوان به «ماشین بردار پشتیبان» (Support Vector Machine | SVM)، «رگرسیون لجستیک» (Logistic Regression)، «جنگل تصادفی» (Random Forest)، «دسته بند بیز ساده» (naïve Bayes Classification) و سایر موارد اشاره کرد.
- «یادگیری نظارت نشده» (Unsupervised Learning): این نوع از الگوریتمها از دادههایی استفاده میکنند که برچسب ندارند. روش طبقهبندی دادهها در این الگوریتمها به صورت «خوشهبندی» (Clustering) است. این الگوریتمها با پیدا کردن شباهت بین اشیا، آنها را طبقهبندی میکنند.
- «یادگیری نیمه نظارتی» (Semi Supervised Learning): یادگیری نیمه نظارتی به نوعی از الگوریتمها گفته میشود که مجموعه داده آنها شامل مجموعه کوچکی از دادههای برچسبدار و مجموعه بزرگی از دادههای بدون برچسب میشود.
- «یادگیری تقویتی» (Reinforcement Learning): این نوع یادگیری روشی است که بر اساس ارزش یا دادن پاداش به اشیا، آنها را دستهبندی میکند. به طور کلی، یک عامل یادگیری تقویتی میتواند محیط خود را درک و تفسیر کند، اقداماتی انجام دهد و از طریق آزمون و خطا آموزش ببیند.
- باید از نوع دادهها اطمینان حاصل شود که سازماندهی شده، پاک و سازگار باشند.
- ترتیب زمانی مورد نیاز در پروژه برای انجام کارها باید مشخص شود، نیاز است که دادهها برچسبگذاری شوند و برخی موارد دیگر نیز برای ساخت هوش مصنوعی مورد بررسی قرار میگیرند.
- مقالههای پیشنهادی از مجله تم آف برای مطالعه:
- ماشین بردار پشتیبان — به همراه کدنویسی پایتون و R
- پیاده سازی رگرسیون لجستیک در پایتون — راهنمای گام به گام
- درخت تصمیم و جنگل تصادفی در R — راهنمای کاربردی
- دسته بند بیز ساده و داده های استاندارد شده — پیاده سازی در پایتون
- اصطلاحات کاربردی خوشهبندی — به زبان ساده
در بخش بعدی به شرح روش آموزش الگوریتمها برای ساخت هوش مصنوعی پرداخته شده است.
آموزش الگوریتم ها برای استفاده در پروژه چگونه است؟
آموزش الگوریتم انتخاب شده، گامی مهم در ساخت هوش مصنوعی به حساب میآید. حتی اگر معیار خاصی برای بررسی دقت مدل وجود نداشته باشد، باز هم باید الگوریتم طوری آموزش ببیند که دقت آن در حد مطلوبی قرار داشته باشد. آموزش و بازآموزی مدل رویکردی اساسی در ساخت یک سیستم هوش مصنوعی فعال به حساب میآید؛ زیرا طبیعی است که در صورت عدم دستیابی به دقت مورد نظر، دانشمندان داده ناچار به آموزش مجدد الگوریتم خواهند شد. بعد از آمادهسازی دادهها و انتخاب نوع الگوریتم، میتوان پلتفرم مورد نظر و زبان برنامه نویسی مناسب را انتخاب کرد. در ادامه به بررسی «پلتفرمهای» (Platform) هوش مصنوعی پرداخته شده است.
۴. پلتفرم مناسب برای ساخت هوش مصنوعی
پلتفرمهای هوش مصنوعی بسیاری وجود دارند که ابزارهای آمادهای برای ساخت هوش مصنوعی در اختیار توسعه دهندگان قرار میدهند. آنها الگوریتمهای تصمیمگیری هوشمند و دادهها را با یکدیگر ترکیب میکنند. استفاده از برخی از این پلتفرمها بسیار ساده است، با این حال پلتفرمهایی نیز وجود دارند که توسعه دهنده برای استفاده از آنها باید دانش عمیقی از کدنویسی داشته باشد. این پلتفرمها برای توسعه دهندگان محیطی جهت «پردازش دادهها» (Data Processing)، «آموزش مدل» (Model Training)، «پیشبینی ارزیابی» (Evaluation Prediction) و سایر موارد ایجاد میکنند.
در ادامه برخی از پلتفرمهایی ارائه شدهاند که برای توسعه نرم افزارها و ساخت هوش مصنوعی مورد استفاده قرار میگیرند:
- «پلتفرم گوگل» (Google’s Platform): این پلتفرم شامل «AI Hub» یعنی «منابعی برای توسعه سیستمهای هوش مصنوعی»، ابزارهایی با نام «بلوکهای ساختن هوش مصنوعی» (AI Building Block)، پلتفرم هوش مصنوعی و یک محیط علم داده مبتنی بر کدها برای ایجاد پروژهها از ایده تا پیادهسازی آنها ارائه میدهد.
- پلتفرم «مایکروسافت آزور» (Microsoft Azure): قابلیتهای هوش مصنوعی شامل برنامهها و عاملها، استخراج دانش و خدمات یادگیری ماشین میشوند. این پلتفرم در ایجاد، آموزش و استقرار مدلهای هوش مصنوعی به توسعه دهندگان کمک میکند. همچنین به وسیله این پلتفرم میتوان از «جستجوی ابری» (Cloud Search) با قابلیتهای هوش مصنوعی داخلی آن برای «شناسایی الگو در محتوا» (Identification In Content)، «تجزیه و تحلیل احساسات» (Sentiment Analysis) یا «استخراج عبارتهای کلیدی» (Key Phrases Extraction) استفاده کرد.
- پلتفرم «یادگیری ماشین آمازون» (Amazon Machine Learning): خدمات این پلتفرم به ساخت، آموزش و استقرار مدلهای یادگیری ماشین با هر پیچیدگی کمک میکنند. «سرویسهای وب آمازون» (Amazon Web Service | AWS) تجزیه و تحلیلهایی خارج از چارچوب اصلی برای شرکتها و سازمانها فراهم میکنند تا با روشهای سادهتری بتوانند به پیادهسازی پروژههای خود بپردازند. خدمات این پلتفرم متناسب با محصولات مورد استفاده قرار میگیرند و باعث ساده شدن رویهها در پروژه میشوند.
- پلتفرم «تنسورفلو» (TensorFlow): تنسورفلو یک پلتفرم یادگیری ماشین متنباز یکپارچه به حساب میآید. این پلتفرم دارای ابزارها، کتابخانهها و جامعهای از منابع کامل و انعطافپذیر است که به توسعه دهندگان امکان استفاده از پیشرفتهترین منابع یادگیری ماشین را میدهد و میتوانند با استفاده از آن پروژههای یادگیری ماشین و هوش مصنوعی خود را ایجاد و پیادهسازی کنند.
توسعه دهندگان میتوانند ابزارها و راه حلهایی را برای حل مسئله، نیازهای کسب و کار، تجربه کاری و درخواستهای مشتری بررسی کنند و بر اساس آنها پلتفرم مورد نظر خود را انتخاب کنند. در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی انتخاب زبان برنامه نویسی، کتابخانهها و فریمورکهای مناسب برای ساخت هوش مصنوعی پرداخته شده است.
۵. انتخاب زبان برنامه نویسی، کتابخانه ها و فریمورک های مناسب برای ساخت هوش مصنوعی
در این بخش برخی از زبانهای برنامه نویسی ارائه شدهاند که برای ساخت هوش مصنوعی و یادگیری ماشین در پروژهها مورد استفاده قرار میگیرند:
- «پایتون» (Python): این زبان برنامه نویسی به راحتی با انواع «ساختمان دادهها» (Data Structure) ادغام میشود. پایتون الگوریتمهای خاصی ارائه میدهد که در برنامه نویسی استاندارد وجود ندارند. همچنین، به توسعه دهندگان امکان گسترش دانش را با استفاده از انواع کتابخانهها و ابزارهایی از جمله «NumPy» ،«Pandas» ،«Scikit-Learn» ،«AIMA» و سایر موارد را میدهد.
- زبان برنامه نویسی R: این زبان به طور گستردهای در ساخت هوش مصنوعیهای جدید مورد استفاده قرار میگیرد. این زبان در حل «محاسبات آماری» (Statistical Computation)، «تجزیه و تحلیل عددی» (Numerical Analysis)، «استنباط بیزی» (Bayesian Inference)، شبکههای عصبی و به طور کلی یادگیری ماشین کاربرد دارد. زبان R در حوزههای مالی، زیستشناسی، جامعهشناسی و پزشکی یکی از زبانهای استاندارد اصلی به شمار میرود.
- «جاوا» (Java): جاوا یک «زبان برنامه نویسی شی گرا» (Object Oriented Language | OOP) به حساب میآید که رویکردهایی متفاوتی برای مدیریت «استثناها» (Exception)، دسترسی به ابزارهایی برای توسعه برنامههای «چند نخی» (Multi Threaded) و پشتیبانی از «آرایهها» (Array)، «لیستها» (List) و ساختمان دادههای گوناگون ارائه میدهد.
- زبان برنامه نویسی ++C: این زبان یکی از سریعترین زبانها در مرحله کامپایل است و این امکان را به توسعه دهندگان میدهد که برنامههایی با منطق بسیار پیچیده را بدون از دست رفتن کارایی آنها پیادهسازی کند.
- «متلب» (Matlab): زبان برنامه نویسی متلب نیز به عنوان یکی از زبانهای استفاده شده در هوش مصنوعی شناخته میشود و در حوزههای گوناگونی از جمله دسترسی و تجزیه و تحلیل دادهها و توسعه آنها مورد استفاده قرار میگیرد.
- «پرل» (Perl): این زبان برنامه نویسی دارای کتابخانههای هوش مصنوعی و یادگیری عمیق است و در حوزههایی مانند «پردازش زبان طبیعی» (Natural Language Processing | NLP) کاربرد دارد.
- مقالههای پیشنهادی:
- پردازش زبان طبیعی (NLP) با پایتون — راهنمای جامع
- آموزش پردازش زبان طبیعی پروژه محور — راهنمای کاربردی
توسعه دهندگان میتوانند فریمورکهای گوناگون، «رابط برنامه نویسی نرم افزار کاربردی» (Application Programming Interface | API) و زیرساختهایی برای آزمایش و تغییر الگوریتمها و ساخت هوش مصنوعی و یادگیری ماشین انتخاب کنند. به عنوان مثال، شرکت گوگل، «API.AI» را ایجاد کرده است که ابزار هوش مصنوعی قدرتمند به حساب میآید و با سیستم عاملهای اندروید و IOS سازگار است. همچنین این ابزار از فریمورک «Node.js» و «کوردوا» (Cordova) پشتیبانی میکند. یکی دیگر از محصولات مفید گوگل کتابخانه متن باز تنسورفلو به حساب میآید که در توسعه برنامههای یادگیری ماشین کاربرد دارد. در ادامه چند مثال دیگر از ابزارهای مفید برای ایجاد راه حلهای مناسب هوش مصنوعی ارائه شدهاند:
- فریمورکهایی از جمله «CNTK»، «کرس» (Keras)، «Caffe»، «پایتورچ» (PyTorch)، «Accord.NET»، «scikit-learn» و «Spark MLlib» ابزارهای مفیدی در ساخت هوش مصنوعی به شمار میروند.
- پلتفرمهای «یادگیری ماشین به عنوان خدمات» (ML-as-a-Service) به توسعه دهندگان کمک میکنند تا از رابطهای کاربری گرافیکی از جمله «محیطهای توسعه یکپارچه» (IDE) و «Jupyter Notebook» استفاده کنند.
- APIهایی که به عنوان نقاط پایانی «REST» در نظر گرفته میشوند و نتایج را با فرمت «JSON» بازمیگردانند مانند «Azure Topic Detection API» ابزارهای مفیدی در ساخت هوش مصنوعی به حساب میآیند.
معرفی فیلم های آموزش هوش مصنوعی تم آف
دورههای آموزشی تم آف بر اساس موضوع در این وب سایت به صورت مجموعههای آموزشی مختلفی دستهبندی شدهاند. یکی از این مجموعههای جامع، مربوط به دورههای آموزش هوش مصنوعی است. علاقهمندان میتوانند از این مجموعه آموزشی برای یادگیری بیشتر ساخت هوش مصنوعی در حوزههای مختلف با زبانهای برنامه نویسی گوناگون استفاده کنند. در زمان تدوین این مقاله، مجموعه دورههای هوش مصنوعی تم آف حاوی بیش از ۳۳۰ ساعت محتوای ویدیویی و حدود ۳۶ عنوان آموزشی مختلف است. در ادامه این بخش، برخی از دورههای این مجموعه به طور خلاصه معرفی شدهاند:
- فیلم آموزش هوش مصنوعی – مقدماتی (طول مدت: ۴ ساعت و ۳۴ دقیقه، مدرس: دکتر محمد صبری): این دوره آموزشی به نحوی ارائه شده است که هم برای دانشجویان مقطع کارشناسی و علاقهمندان به هوش مصنوعی مفید باشد و هم افرادی بتوانند از آن استفاده کنند که قصد شرکت در آزمون کارشناسی ارشد یا دکتری را دارند. برای مشاهده فیلم آموزش هوش مصنوعی – مقدماتی + کلیک کنید.
- فیلم آموزش یادگیری ماشین Machine Learning با پایتون Python (طول مدت: ۱۰ ساعت، مدرس: مهندس سعید مظلومی راد): در این تم آف سعی شده است در ابتدا بستههای شناخته شده پایتون معرفی و سپس کار با تابعهای آنها آموزش داده شوند. در انتها، مباحث یادگیری ماشین با مثالهای متعددی در زبان پایتون ارائه شدهاند. برای مشاهده آموزش یادگیری ماشین Machine Learning با پایتون Python + کلیک کنید.
- فیلم آموزش هوش مصنوعی توزیع شده (طول مدت: ۲۴ ساعت و ۸ دقیقه، مدرس: دکتر امیرحسین کیهانی پور): در این تم آف، به بیان مفاهیم پایه مربوط به عاملهای هوشمند، از جمله مباحث تئوری، روشهای اجرایی و پیادهسازی سامانههای تشکیل شده از تعدادی عامل هوشمند و خودکار، پرداخته میشود. همچنین نمونههایی از کاربردهای اخیر آنها در حوزههای گوناگون، بررسی شده است. برای مشاهده فیلم آموزش هوش مصنوعی توزیع شده + کلیک کنید.
- فیلم آموزش مبانی یادگیری عمیق (طول مدت: ۵ ساعت و ۲۶ دقیقه، مدرس: دکتر سعید محققی): در این دوره آموزشی، یکی از محبوبترین و پرکاربردترین علوم حوزه هوش مصنوعی، یعنی یادگیری عمیق، معرفی شده است. برای مشاهده فیلم آموزش مبانی یادگیری عمیق + کلیک کنید.
- فیلم آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون Python (طول مدت: ۳ ساعت و ۱۰ دقیقه، مدرس: مهندس محمدجواد زمانی قلعه): در این تم آف، معرفی، نصب و بارگذاری تصاویر به شکل کاملاً سریع و آسان انجام و سپس با اعمال عملیات اصلی متداول روی آنها، رویکردهای ریاضی و تبدیلهای هندسی برای تصاویر آموزش داده شدهاند. برای مشاهده فیلم آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون Python + کلیک کنید.
- آموزش شبکه های عصبی پیچشی CNN – مقدماتی (طول مدت: ۲ ساعت و ۱۲ دقیقه، مدرس: سایه کارگری): از آنجایی که شبکههای عصبی پیچشی نیاز اصلی علاقهمندان به پردازش تصویر و بینایی ماشین است، فراگیری مفاهیم این شبکهها اهمیت بالایی دارد و در این تم آف به آنها پرداخته میشود. برای مشاهده آموزش شبکههای عصبی پیچشی CNN – مقدماتی + کلیک کنید.
حال پس از معرفی مجموعه دورههای آموزش هوش مصنوعی تم آف و شرح مختصر برخی از دورههای این مجموعه، در بخش بعدی مقاله در ادامه مقاله «ساخت هوش مصنوعی» به این مسئله پرداخته شده است که چگونه میتوان با استفاده از هوش مصنوعی یک نرم افزار ساخت؟
چگونه می توان با استفاده از هوش مصنوعی یک نرم افزار ساخت؟
ایجاد راه حل برای ساخت سیستمهای هوش مصنوعی یا یادگیری ماشین، فرایندی تکرارشونده به حساب میآید. مراحل ساخت یک نرم افزار با استفاده از هوش مصنوعی را میتوان به صورت زیر نشان داد:
- جستجو، کشف و برنامههای تیم هوش مصنوعی
- داده کاوی
- مدلسازی
- «حداقل محصول پذیرفتنی» (Minimum Viable Product | MVP) و توسعه بهبود محصول
- ارائه و پشتیبانی از محصول
حال در بخش بعدی از مقاله «ساخت هوش مصنوعی» به بررسی برخی از موارد فوق پرداخته شده است.
برنامه ریزی تیم برای ساخت نرم افزار هوش مصنوعی چگونه است؟
برای ایجاد محصولی قابل رقابت و با کیفیت، بهتر است که توسعه دهندگانی با تجربه استخدام شوند. این توسعه دهندگان نیاز است تخصصهایی در زمینههای زیر داشته باشند:
- مدیر پروژه و تحلیلگر کسب و کار برای تخصص مدیریت و جستجو
- دانشمندان داده، تیم نشانهگذاری مجموعه داده و مهندسین یادگیری ماشین برای تجزیه و تحلیل دادهها
- معمار راه حل، توسعه دهندههای «فرانتاند» (Frontend) و «بکاند» (Backend)، «بینایی ماشین» (Computer Vision | CV)، پردازش زبان طبیعی، «عملیات یادگیری ماشین» (Machine Learning Operations | MLOps) و مهندسین «عملیات توسعه نرم افزار یا دواپس» (DEVelopment OPerationS | DevOps) برای توسعه
- مهندسین «تضمین کیفیت» (Quality Assurance | QA) برای تست
در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی داده کاوی و مدلسازی پرداخته شده است.
- مقاله پیشنهادی از مجله تم آف برای مطالعه: برنامه نویس فرانت اند ، بک اند و فول استک دولوپر — وظایف، مهارت ها و درآمد
داده کاوی و مدل سازی در ساخت نرم افزار هوش مصنوعی چیست؟
باید به این نکته توجه داشت که الگویتمها هر چقدر هم که پیشرفته باشند، نیاز به جمعآوری و آمادهسازی دادههای مناسب دارند. در اکثر موارد مهندسین پروژه، «فرایند استاندارد صنعت متقابل برای داده کاوی» (Cross-Industry Standard Process for Data Mining | CRISP-DM) را انجام میدهند که شامل مراحل زیر میشود:
- درک کسب و کار
- درک دادهها
- آمادهسازی دادهها
- مدلسازی
- ارزیابی و سنجش
- توسعه
در برخی از نرم افزارها، مهندسین این مراحل را در چرخهای چندین بار در کنار استقرار نرم افزار تکرار میکنند. هیچ چیزی به جز توصیف پروژه در فاز کشف وجود ندارد، کسب و کار و درک دادهها به توسعه دهندگان کمک میکند تا مشکلات را بشناسند و راه حلی برای آنها بیابند. پس از این مرحله، نیاز است که آمادهسازی دادهها انجام شود. این مرحله به انتخاب و بارگذاری دادههای خام، انتخاب ابزار «حاشیهنویسی یا برچسبگذاری» (Annotation)، برجسته کردن و برچسب زدن بلوکهای دادهها با استفاده از ابزارها و در نهایت انتخاب و ذخیره فرمت فایلها بستگی دارد.
مجموعه داده جمعآوری شده به توسعه دهندگان این امکان را میدهد تا گزینههای راه حلهای ارائه شده توسط مشتری را بررسی کنند. برای مسائل این چنینی، معیاری که جهت مقایسه مدل انتخاب میشود بسیار مهم است. بنابراین، تعیین معیارهای موفقیت و انتخاب گزینهای که بیشترین تطابق را با اهداف مشتری دارد، برای پروژه مسئلهای ضروری به حساب میآید. مرحله بعدی، مدلسازی است. در این مرحله دادههایی که از قبل جمعآوری شدهاند، برای آموزش مدلهای یادگیری ماشین از طریق روشهای گوناگون مورد استفاده قرار میگیرند.
برای مثال، در نرم افزاری از روشهای یادگیری عمیق و یادگیری تقویتی استفاده شده است. لازم است پس از آموزش مدل در این نرم افزار، فرایند تست، ارزیابی و استقرار انجام شود. همچنین، در مرحله توسعه و پشتیبانی، میتوان کارایی نرم افزار را بهینهسازی کرد، عملکرد آن را بهبود و گسترش داد، محصول را به وسیله بروزرسانی با سیستم عاملهای گوناگون منطبق کرد و سایر مواردی از این قبیل را انجام داد. در ادامه مقاله «ساخت هوش مصنوعی» پنج گام عملی تفسیرپذیری برای ایجاد یک پروژه هوش مصنوعی مورد بررسی قرار میگیرند. در بخش بعدی از مقاله «ساخت هوش مصنوعی» به شرح طراحی یک پروژه ساده برای ساخت هوش مصنوعی پرداخته شده است.
طراحی یک پروژه ساده برای ساخت هوش مصنوعی
در این بخش یک پروژه هوش مصنوعی با استفاده از فریم ورک تنسورفلو و کتابخانه کراس تعریف شده است. در این پروژه هدف تشخیص اعداد دست نوشته در نظر گرفته میشود. تنسورفلو یکی از ابزارهای بسیار محبوب یادگیری ماشین به حساب میآید و با استفاده از آن میتوان این پروژه را در ۱۵ دقیقه پیادهسازی کرد. در این پروژه همه کدها در گوگل کولب نوشته و پیادهسازی میشوند.
گوگل کولب ابزار گوگلی است که برنامهها، فریم ورکها، کتابخانهها و همه موارد مورد نیاز برای یک پروژه هوش مصنوعی را از قبل و به صورت نصب شده، دارد. برای استفاده از آن باید وارد وب سایت گوگل کولب شد و بدون نیاز به نصب چیزی، کدنویسی را با ساخت یک new notebook
آغاز کرد. در بخش بعدی ابتدا به ایمپورت کردن فریم ورک و کتابخانههای مورد نیاز پرداخته شده است.
ایمپورت کردن کتابخانه های ضروری در پروژه ساخت هوش مصنوعی
اولین کاری که برای انجام یک پروژه هوش مصنوعی نیاز است، ایمپورت یا همان وارد کردن کتابخانههای ضروری پروژه به حساب میآید. یکی از موارد اصلی که باید در ابتدای برنامه ایمپورت شود تنسورفلو است، برای خلاصه و راحتتر شدن کدنویسی، تنسورفلو با کلمه tf
ایمپورت میشود. زمانی که با این روش تنسورفلو وارد شود دیگر نیازی نیست در برنامه از کلمه tensorflow
استفاده شود و تنها tf
کافی است.
این یک روش معمول و پیشفرض برای ایمپورت کردن فریم ورک تنسورفلو به حساب میآید. در این پروژه کتابخانه matplotlib
نیز ایمپورت میشود. این کتابخانه برای وظیفههای مرتبط با «تجسم یا مصورسازی دادهها» (Data Visualization) مورد استفاده قرار میگیرد. در ادامه کدهای مربوط به این بخش مشاهده میشوند.
# import the necessary libraries
import tensorflow as tf
import matplotlib.pyplot as plt
بخش بعدی از مقاله «ساخت هوض مصنوعی» به بررسی بارگذاری و تقسیمبندی دادهها اختصاص داده میشود.
بارگذاری و تقسیم داده ها در پروژه ساخت هوش مصنوعی
در این مرحله باید دادهها دریافت و در برنامه وارد شوند، سپس به بخشهای «آموزش» (Train)، «تست» و گاهی «اعتبارسنجی» (Validation) تقسیم شوند. در این پروژه فقط از دو بخش آموزش و تست استفاده میشود. مجموعه داده آموزش، بخشی است که با استفاده از آن شبکه عصبی آموزش داده شده است. بعد از اتمام آموزش شبکه با استفاده از این مجموعه دادهها، برای بررسی میزان کارایی و بهرهوری پروژه، شبکه روی دادههای تست، آزمایش میشود.
در بیشتر موارد دادههای آموزش، تست و اعتبارسنجی روشهای دستهبندی نباید باید همپوشانی داشته باشند تا میزان کارایی پروژه روی دادههایی بررسی شود که پیش از این شبکه با آنها سر و کار نداشته است. در دو مجموعه داده آموزش و تست این پروژه، باید دو مورد از هر دادهای وجود داشته باشد. یکی تصویر اصلی از اعداد نوشته شده به صورت دستی و دیگری برچسب متناظر با آن است. در ادامه کدهای مرتبط با این بخش نمایش داده شدهاند.
# load the data and split the data to training set and test set
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
گام بعدی برای پروژه تشخیص اعداد این است که مقدار پیکسلهای تصویرها از محدوده ۰ تا ۲۵۵ به محدوده ۰ تا ۱ کاهش پیدا کنند. شبکههای عصبی با عددهای نزدیک به صفر عملکرد بهتری دارند و یکی از این رایجترین محدودههای تبدیل، ۰ تا ۱ است. کدهای زیر نشان دهنده این تبدیل محدوده تصویرها هستند.
# scale down the value of the image pixels from 0-255 to 0-1
train_images = train_images / 255.0 test_images = test_images / 255.0
در بخش بعدی از شرح یک پروژه ساده به تجسم دادهها پرداخته شده است.
تجسم داده ها در پروژه ساخت هوش مصنوعی
قبل از اینکه به بررسی و ایجاد شبکه عصبی برای ساخت هوش مصنوعی پرداخته شود، بهتر است که بررسی شود دادههای مورد استفاده در پروژه به چه شکل هستند. بنابراین با استفاده از کدهای زیر اولین تصویر از مجموعه داده آموزش ترسیم میشود.
# visualize the data print(train_images.shape) print(test_images.shape) print(train_labels) plt.imshow(train_images[0], cmap='gray') plt.show()
پیادهسازی کدهای فوق، خروجی شبیه به عبارتهای زیر را نشان میدهد.
(60000, 28, 28) (10000, 28, 28) [5 0 4 ... 5 6 8]
چیزی که خروجی فوق نشان میدهد این است که مجموعه داده آموزش این پروژه ۶۰۰۰۰ تصویر خاکستری یا همان «Grayscale» دارد. اندازه این تصاویر $$ 28 times 28 $$ پیکسل است. اگر مجموعه داده پروژه دارای تصویرهای رنگی بود، شکل این تصاویر به صورت $$ 28 times 28 times 3 $$ نمایش داده میشد. عدد ۳ که در این عبارت وجود دارد، نشان دهنده سه کانال به رنگهای قرمز، سبز و آبی است که با استفاده از آنها رنگ تصویرها مشخص میشود. در بخش بعدی از ساخت پروژه هوش مصنوعی به چگونگی تعریف مدل یادگیری ماشین پرداخته شده است.
مدل یادگیری ماشین چگونه تعریف می شود؟
ایجاد یک مدل یادگیری ماشین شامل دو مرحله میشود، مرحله اول تعریف مدل مورد نظر است و سپس در مرحله دوم باید مدل کامپایل شود. ابتدا، در ادامه این بخش، کدهای تعریف مدل ارائه شدهاند.
# define the model my_model = tf.keras.models.Sequential() my_model.add(tf.keras.layers.Flatten(input_shape=(28, 28))) my_model.add(tf.keras.layers.Dense(128, activation='relu')) my_model.add(tf.keras.layers.Dense(10, activation='softmax'))
حال در این بخش به بررسی کدهای مدل فوق پرداخته میشود. به طور کلی، سه روش برای طراحی یک مدل هوش مصنوعی وجود دارد که در این بخش به یکی از آنها پرداخته شده است. کدهای فوق با استفاده از «مدلهای توالی» (Sequential Model) نوشته شدهاند. زمانی که از مدلهای توالی استفاده میشود به این معنی است که مدل شبکه عصبی با قرار گرفتن لایههای شبکه به صورت متوالی ایجاد شده است. در این مدل، لایه اول «Flatten» (مسطح) در نظر گرفته میشود و تصاویر مربعی $$ 28 times 28 $$ پیکسلی را به تصویرهای مسطحی با اندازه $$ 1 times 784 $$ تبدیل میکند.
این مرحله به این دلیل تعریف شد که لایه بعدی آن «Dense» (متراکم) یا همان «Fully Connected» (اتصال کامل) است و این لایه نمیتواند با تصویرهای مربعی کار کند و باید ورودی آن به یک خط پیکسل تبدیل شود. گاهی لایههای شبکه عصبی دیگری در طراحی مدل شبکهها وجود دارند که با تصویرهای مربعی به راحتی کار میکنند.
در لایه بعدی، لایه Dense با ۱۲۸ نرون طراحی شده است. نام Dense از «نوع اتصال» (Connection Type) آن گرفته شده است؛ زیرا در این لایه هر نورون به نورون دیگری در لایه بعدی متصل میشود. این موضوع باعث ایجاد شبکهای بسیار متراکم شده است. این لایه، یکی از سادهترین نوع لایههای شبکه عصبی به حساب میآید. همچنین، دارای یک «تابع فعالیت» (Activation Function) به نام «Relu» است که سرنامی برای «Rectified Linear Unit» (واحد خطی یکسوسازی شده) به حساب میآید. این تابع یکی از معروفترین و پرکاربردترین تابعهای فعالیت در شبکههای عصبی به شمار میرود و باعث افزایش کارایی، اثربخشی و بهرهوری شبکه میشود.
- مقاله پیشنهادی: اصطلاحات یادگیری عمیق — راهنمای کاربردی
در نهایت لایه آخر این شبکه عصبی طراحی و ایجاد خواهد شد. زمانی که لایه آخر یک مدل ایجاد میشود، این مسئله بسیار مهم و حیاتی است که تعداد نورونها با تعداد دستههای (کلاس) طبقهبندی مدل مطابقت داشته باشد. در غیر این صورت خطا در شبکه ایجاد خواهد شد. در این پروژه از ۱۰ نورون استفاده میشود؛ زیرا مدل دارای دستههایی برای عددهای ۰ تا ۹ است.
همچنین این لایه دارای تابع فعالیت «Softmax» (بیشینه هموار) است. هدف تابع Softmax وارد کردن ورودیهای لایه به یک محدوده احتمالی برای تفسیر آنها است. در نتیجه، برای مثال، اگر تصویر عدد ۸ به مدل نشان داده شود و مدل ۹۱ درصد از ۸ بودن آن عدد مطمئن باشد، به راحتی ۰.۹۱ از نورونهایی دریافت میشود که نشان دهنده عدد ۸ هستند. در بخش بعدی از مقاله «ساخت هوش مصنوعی» روش کامپایل مدل شبکه عصبی توصیف شده، شرح داده میشود.
چگونگی کامپایل مدل شبکه عصبی
در این مرحله کامپایل مدل انجام شده است. برای کامپایل این مدل، یکی از معروفترین «بهینهسازها» (Optimizer) و «تابعهای زیان یا ضرر» (Loss Function) استفاده میشود. در حال حاضر، دلیل اصلی محبوبیت این دو مورد، کارایی و اثربخشی محاسباتی آنها به حساب میآید. به عنوان بهینهساز از «Adam Optimizer» استفاده میشود که به صورت adam
نوشته شده است.
همچنین در این مدل تابع ضرر نیز تعریف میشود، زیرا هدف این پروژه یک «طبقهبندی چند کلاسه» (Multiclass Classification) است و برای این منظور از تابع «Sparse Categorical Crossentropy» استفاده میشود. این تابع هنگام طبقهبندی بیش از دو کلاس سودمند است. سپس برای بررسی و ارزیابی «دقت» مدل از metrics
استفاده میشود. کدهای نشان دهنده این بخش در ادامه ارائه شدهاند.
# compile the model my_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
در بخش بعدی از شرح ساخت هوش مصنوعی در یک پروژه به بررسی روش آموزش مدل شبکه عصبی پرداخته شده است.
آموزش مدل شبکه عصبی چگونه انجام می شود؟
در این مرحله به روش آموزش مدل شبکه عصبی ساخته شده، پرداخته میشود. تا قبل از این بخش، مدل به مجموعه دادههای پروژه دسترسی نداشته است. در این مرحله مدل شبکه عصبی با تصاویر عددهای نوشته شده به صورت دستی و برچسبهای متناظر آنها آموزش داده میشود. مجموعه داده آموزش شامل ۶۰۰۰۰ تصویر است که سه بار در مدل برای آموزش استفاده خواهند شد.
برای ایجاد این عدد ۳، از epochs
یا همان «دوره» استفاده شده است و مقدار عدد ۳ به آن اختصاص داده میشود. اگر مدل با دورههای بیشتری آموزش ببیند، دقت مدل تا یک نقطه خاص به صورت صعودی افزایش پیدا میکند. بنابراین ابتدا آموزش مدل با دورههای کمتری آغاز میشود و میتوان بعداً برای بالا بردن دقت مدل تعداد دورهها را افزایش داد. جهت آموزش مدل با مجموعه داده و تعداد دورههای مورد نظر از کدهای زیر استفاده میشود.
# train the model my_model.fit(train_images, train_labels, epochs=3)
پس از پیادهسازی کدهای فوق، خروجی به صورت زیر نمایش داده میشود:
Epoch 1/3 1875/1875 [==============================] — 4s 2ms/step — loss: 0.4357 — accuracy: 0.8756 Epoch 2/3 1875/1875 [==============================] — 3s 2ms/step — loss: 0.1278 — accuracy: 0.9621 Epoch 3/3 1875/1875 [==============================] — 3s 2ms/step — loss: 0.0823 — accuracy: 0.9761
خروجی فوق به این معنی است که در پایان اولین «تکرار» (Iteration)، مدل شبکه عصبی طراحی شده به دقت ۸۷.۵۶ درصد در تعیین برچسب مناسب برای یک تصویر داده شده، رسیده است. در پایان آخرین دوره، دقت مدل به ۹۷.۶۱ درصد افزایش مییابد و با توجه به اینکه شبکه غیر عمیق کوچکی طراحی شده بود و در آن فقط ۳ دوره آموزش انجام شد، این دقت بسیار عالی است. اما باید به این نکته نیز توجه داشت که این دقت پیشبینی برای دادههایی است که شبکه قبلاً آنها را دیده بود. بنابراین در بخش بعدی به بررسی دقت مدل در دادههای تست پرداخته شده است که شبکه قبلاً آنها را ندیده است.
بررسی مدل شبکه عصبی برای دقت داده های تست
برای دریافت کارایی واقعیتری از مدل طراحی شده، باید دقت با دادههایی بررسی شود که مدل قبلاً آنها را ندیده است. برای رسیدن به این هدف، از مجموعه داده تست استفاده میشود. برای تست مدل، با نوشتن my_model.evaluate()
و دادن تصویرهای مجموعه داده تست همراه با برچسبهای متناظرشان به مدل، میتوان دقت تست مدل را در یک خط جداگانه چاپ کرد. در ادامه کدهای تست مدل ارائه شدهاند:
# check the model for accuracy on the test data val_loss, val_acc = my_model.evaluate(test_images, test_labels) print("Test accuracy: ", val_acc)
با پیادهسازی کدهای فوق، خروجی زیر چاپ میشود:
313/313 [==============================] — 0s 994us/step — loss: 0.0817 — accuracy: 0.9742 Test accuracy: 0.9742000102996826
خروجی فوق نشان میدهد که دقت طبقهبندی مدل تشخیص عددهای نوشته شده به صورت دستی ۹۷.۴۲ درصد میشود. این دقت بسیار نزدیک به دقت آموزش با ۹۷.۶۱ درصد است و این همان چیزی به نظر میرسد که هدف اصلی مسئله قصد رسیدن به آن را داشت. به همین دلیل است که مجموعه دادههای آموزش باید معرف مجموعه دادههای تست باشند.
اگر دقت مدل در مجموعه داده تست حدود ۷۵ یا ۸۵ درصد بود، احتمالاً «بیشبرازش» (Overfitting) در آن رخ داده است. برای برطرف کردن این مسئله میتوان تغییراتی در لایههای مدل انجام و آن را با تعداد دورههای کمتری مجدداً آموزش داد. Overfitting زمانی اتفاق میافتد که مدل به جای یادگیری، نمونههای مجموعه داده آموزش را حفظ کند و فقط برای دادههای آموزش دقت بالایی نشان دهد. در بخش بعدی از مقاله «ساخت هوش مصنوعی» به شرح روش ذخیره مدل پرداخته شده است.
- مقاله پیشنهادی: بیش برازش (Overfitting)، کم برازش (Underfitting) و برازش مناسب — مفهوم و شناسایی
ذخیره مدل شبکه عصبی
حال پس از طراحی مدلی که دقت مطلوبی دارد و کار مفیدی را انجام میدهد، میتوان مدل را ذخیره کرد تا در بخشهای دیگر نیز آن را مورد استفاده قرار داد. اگر مدل ذخیره نشود، هر زمانی که نیاز است از آن استفاده شود، باید مجدداً ایجاد و آموزش داده شود و این موضوع زمان زیادی را از توسعه دهنده خواهد گرفت. برای ذخیره مدل، my_model.save()
نوشته و یک پوشه برای ذخیره فایل مدل به آن داده میشود. کدهای زیر روش ذخیره مدل را در پوشه my_mnist_model
نشان میدهند.
# save the model for later use my_model.save('my_mnist_model')
در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی روش بازیابی مدل شبکه عصبی پرداخته شده است.
بازیابی مدل شبکه عصبی
این بخش به برگرداندن مدل ذخیره شده از پوشه آن به کدهای برنامه میپردازد تا اطمینان حاصل شود مدل به درستی ذخیره شده است. برای بارگذاری مدل باید پوشهای که مدل در آن قرار دارد را یافت و آدرس آن را به متد load_model()
داد. اگر در یک نوتبوک، کدنویسی انجام گیرد، فقط باید آدرس پوشهای که فایل مدل در آن ذخیره شده بود، از سلول قبلی کپی و در سلول جدیدی جایگذاری شود. با استفاده از کدهای زیر، مدل بازیابی میشود.
# load the model from file system my_new_model = tf.keras.models.load_model('my_mnist_model')
در بخش بعدی از مقاله «ساخت هوش مصنوعی» مدل جدید از نظر دقت بررسی میشود.
بررسی مدل شبکه عصبی جدید از نظر دقت
برای اطمینان کامل از ذخیره صحیح مدل شبکه عصبی، یک بار دیگر با مجموعه دادههای تست پیادهسازی آن انجام میشود. مشاهده شده است که همان دقت قبلی برای این مدل ذخیره شده، نشان داده خواهد شد. در ادامه کدهای این تست مجدد نمایش داده شدهاند.
# check the new model for accuracy on the test data new_val_loss, new_val_acc = my_new_model.evaluate(test_images, test_labels) print("New Test accuracy: ", new_val_acc)
با اجرای کدهای فوق باید به نتیجه چاپ شده زیر رسید.
313/313 [==============================] — 0s 1ms/step — loss: 0.0817 — accuracy: 0.9742 New Test accuracy: 0.9742000102996826
همانطور که در خروجی کدهای فوق مشاهده میشود، هم مدل اصلی و هم مدل جدیدی که از پوشه بازیابی شد، دقیقاً نتیجههای یکسانی را نشان میدهند و این همان چیزی است که هنگام ذخیره مدل انتظار میرفت.
چه مسائلی در کسب و کار با استفاده از ساخت هوش مصنوعی حل می شوند؟
هر شرکتی نیازمند دلیلهای مالی برای توسعه ساخت هوش مصنوعی و سرمایهگذاری روی آن است. یکی از مزیتهای مهم استفاده از ساخت هوش مصنوعی این موضوع به حساب میآید که محصولات هوش مصنوعی میتوانند بسیاری از مسائل سخت و حل نشده را در مراحل گوناگون تولید، تحویل و استفاده از یک محصول برطرف کنند. در ادامه این بخش به برخی مثالهایی از استفاده هوش مصنوعی در حوزههای گوناگون پرداخته میشود. ابتدا بخش بعدی به بررسی هوش مصنوعی در حوزه مالی اختصاص داده شده است.
ساخت هوش مصنوعی در فناوری های مالی
یکی از مسائل چالشبرانگیز امروزی به خصوص در بخش «تکنولوژیهای مالی» یا همان «فین تک» (Financial Technology | FinTech) کلاهبرداری با پرداختها، اطلاعات کارتهای بانکی و اطلاعات خصوصی حساس افراد است. سیستمهای مبتنی بر هوش مصنوعی میتوانند این کلاهبرداریها را تشخیص دهند و از رخ دادن آنها به طور کاملاً مؤثری جلوگیری کنند.
به دلیل عملکرد مناسب هوش مصنوعی در سازمانهای مالی، در سال ۱۳۹۹ شمسی (۲۰۲۰ میلادی) تعداد سازمانهایی که از هوش مصنوعی برای جلوگیری از کلاهبرداریهای مالی استفاده کردند، حدود ۷۰ درصد نسبت به سال قبل از آن افزایش یافته است. کاهش تعداد جرمهای مالی و ایجاد روشها و پیشنیازهایی برای جلوگیری از آنها به عنوان یکی از مهمترین مزایای ساخت هوش مصنوعی در حوزههای مالی به حساب میآیند. در بخش بعدی به بررسی هوش مصنوعی در حوزه امنیت سایبری پرداخته شده است.
ساخت هوش مصنوعی در امنیت سایبری
به عنوان یکی دیگر از زمینههایی که هوش مصنوعی در آن تحول ایجاد کرده است، میتوان به بهبود عملکرد «امنیت سایبری» (Cybersecurity) اشاره کرد. امروزه حملات سایبری پیچیدهتر شدهاند و افزایش امنیت اطلاعات برای شرکتها و جامعه مسئلهای حیاتی به شمار میرود. ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی هوش مصنوعی در تصویر و ویدیو اختصاص داده میشود.
ساخت هوش مصنوعی در تصویر و ویدیو
در دنیای دیجیتال امروزی، اکثر سیستمها با انواع تصویرها و ویدیوهای گرافیکی در ارتباط هستند و روز به روز اهمیت استفاده از آنها افزایش پیدا میکند. با استفاده از روشهای هوش مصنوعی میتوان انواع تغییرات را از جمله «تقویت» (Enhancement)، «فشردهسازی» (Compression)، «دستهبندی» (Classification)، «تشخیص اشیا» (Object Detection) و بسیاری موارد دیگر را روی تصاویر و ویدیوها انجام داد. در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به بررسی آن، در کارها و عملکردهای روزمره پرداخته شده است.
- مقالههای پیشنهادی از مجله تم آف برای مطالعه:
- دسته بندی داده ها با شبکه عصبی مصنوعی | راهنمای کاربردی
- دسته بندی دودویی (Binary Classification) — راهنمای کاربردی
- دسته بندی داده ها با پایتون — راهنمای کاربردی
- تشخیص اشیا در تصاویر با پایتون — به زبان ساده
- تشخیص اشیا در پایتون — راهنمای کاربردی
ساخت هوش مصنوعی در کارهای رومزه
یکی دیگر از مزایای کاربردی استفاده و ساخت هوش مصنوعی و سیستمهای یادگیری ماشین، کاهش کار دستی و سنتی است. پردازش اسناد، بررسی صحت پر کردن یک فرم و سایر عملکردهای عادی و روزمره به طور چشمگیری باعث کاهش سرعت پردازش کار و افزایش هزینه میشوند که ساخت هوش مصنوعی میتواند این مشکلات را برطرف کند و مزایای زیر را به همراه داشته باشد:
- ساخت هوش مصنوعی باعث کاهش پردازشهای دستی بازبینی، استثناها در برنامه نویسی، تأیید صحت و انطباق با استانداردهای مورد نظر و سایر موارد میشود.
- بهینهسازی تعداد کارکنان شرکتها و حذف کارهای روزمزه اضافی آنها از مزایای هوش مصنوعی در کارهای روزمره به حساب میآیند.
- کاهش خطاهای انسانی یکی دیگر از مزایای هوش مصنوعی در کارهای روزمره است.
- بهبود جریان کار در شرکت و رضایت مشتریها از عملکرد هوشمند کارها نیز با استفاده از هوش مصنوعی امکانپذیر است.
سیستمهای مبتنی بر تکنولوژیهای جدید مانند یادگیری عمیق میتوانند کیفیت «تصمیمگیری» (Decision-Making) کسب و کارها را بهبود دهند. ساخت هوش مصنوعی با افزایش پردازش حجم وسیعی از دادهها در چند ثانیه و افزایش مداوم دقت پیشبینی، به کاهش ریسک و ایجاد روشهای تأثیرگذار در زمینههای گوناگون میانجامد. همچنین هوش مصنوعی به حل مسائل خاص و سخت کمک میکند.
برای مثال، هوش مصنوعی در فیلتر کردن «هرزنامههای» (Spam) ایمیل، «تشخیص یا بازشناسی گفتار» (Speech Recognition) و ترجمه آن به متن، «چت باتهای» (Chatbot) هوشمند، دستیارهای مجازی هوشمند مانند «Nina» و «Siri» کاربرد دارد.
- مقالههای پیشنهادی:
- بازشناسی گفتار (Speech Recognition) با پایتون — از صفر تا صد
- بازشناسی گفتار در جاوا اسکریپت | به زبان خیلی ساده
- ساخت یک چت بات (Chatbot) پایتون با NLTK — از صفر تا صد
- ایجاد و یکپارچه سازی چت بات اندرویدی با Dialogflow – راهنمای مقدماتی
پنج گام عملی تفسیرپذیری برای ساخت هوش مصنوعی
سازمانها و افراد میتوانند با استفاده از پنج مرحله زیر پیادهسازی پروژه هوش مصنوعی خود را ممکن سازند:
- درک هدف و کارایی مورد نیاز یک مدل هوش مصنوعی
- ارزیابی سطح دشواری مدل در ساخت هوش مصنوعی
- درک تأثیر افراد و الزامات قانونی در ساخت هوش مصنوعی
- نیاز ویژه به تفسیر شدن در ساخت هوش مصنوعی
- توسعه رویکرد و پیادهسازی مدل هوش مصنوعی
در ادامه این بخش از مقاله «ساخت هوش مصنوعی» به طور کامل به بررسی هر کدام از این مراحل پرداخته شده است.
1. درک هدف و کارایی مورد نیاز یک مدل هوش مصنوعی
مدیر پروژه باید مسئولیت تعریف هدف، محدوده و سنجش را بر عهده بگیرد و بررسی کند که بهترین راه حل برای مسئله مورد نظر چیست. بهتر است که آنها به بررسی سوالهای زیر بپردازند:
- آیا یادگیری ماشین این مسئله را بهتر از موارد دیگر حل میکند؟
- آیا استفاده از ساخت هوش مصنوعی برای مسئله تعریف شده از نظر هزینه آن به صرفه است؟
- چه عملکردهایی برای این مسئله مورد نیاز است؟
- آیا دادههای مناسبی در دسترس هستند؟
این سوالها میتوانند به سازمان کمک کنند تا انواع گزینههای مورد نظر بررسی شوند. هنگامی که تصمیم استفاده از روشهای هوش مصنوعی گرفته شد، باید یک بررسی مناسب از کل پروژه انجام شود و سطح معیارهایی مانند «دقت» (Accuracy) مورد بررسی قرار بگیرد و بقیه اعضای پروژه اعلام شود.
برای مثال، در فرایند برچسب زدن برخی از ایمیلها به عنوان هرزنامه، زمانی که نرم افزار مورد نظر دارای سیستم هوش مصنوعی نباشد، حدوداً ۵۰ درصد دقت وجود دارد، زیرا این مسئله تنها دو حق انتخاب خواهد داشت. بنابراین استفاده از هوش مصنوعی در این مثال، دقت را افزایش خواهد داد.
مسئلهای که صاحبان پروژه باید به آن دقت داشته باشند این است که آیا بهبود عملکرد یک پروژه با استفاده از هوش مصنوعی به اندازه کافی توجیهی برای هزینههای آن به حساب میآید؟ همچنین ریسکها و مشکلات احتمالی پروژه باید مورد بررسی قرار بگیرند. این موضوع باید در نظر گرفته شود که مدلهای هوش مصنوعی کامل نیستند و انتظار رسیدن به دقتت ۱۰۰ درصدی در پروژه، به ویژه در پروژههای پیچیده در اکثر مواقع قابل برآورده شدن نیست. با این حال، تصمیمگیریهای مهم، شرکتها را ملزم میکند تا اهداف عملکردی مورد انتظار بالاتری را ایجاد کنند. هم سطح مورد انتظار کارایی و هم پیچیدگی دادههای مورد استفاده در پردازشهای تصمیمگیری مدل هوش مصنوعی باید سازمان را در ارزیابی و انتخاب مدلهای یادگیری ماشین ممکن راهنمایی کنند. در بخش بعدی مقاله به ارزیابی سطح دشواری در ساخت هوش مصنوعی پرداخته میشود.
2. ارزیابی سطح دشواری مدل در ساخت هوش مصنوعی
همه وظایف پروژههای هوش مصنوعی نیاز به تفسیرپذیری ندارند. برای مثال برای مرتبسازی ایمیلها در پوشه هرزنامه نیازی به درک هوش مصنوعی وجود ندارد. همچنین گاهی اشتباهات و اصلاح آنها در پروژه ساده و قابل حل هستند، به همین دلیل نیازی نیست که حتماً همه آنها ارزیابی و بررسی شوند.
بنابراین نسبت به سطح دشواری پروژه مدلها باید برای ساخت هوش مصنوعی مورد نظر بررسی شوند. برای تعیین سطح دقت مورد نیاز در یک پروژه، باید به عوامل زیر توجه شود:
- سطح اهمیت پروژه: نیاز است که در پروژهها سطح اهمیت آنها از نظر امنیت انسان، هزینه مالی، شهرت سازمان و ریسکپذیری مورد بررسی قرار بگیرند.
- سطح آسیبپذیری پروژه: آسیبپذیری به معنی احتمال وقوع این مسئله است که کاربران انسانی که با آن سیستم هوش مصنوعی کار میکنند اعتماد خود را نسبت به تصمیمگیریهای سیستم از دست بدهند و خودشان کار را پیش ببرند و در نتیجه آن سیستم به سیستمی بلااستفاده تبدیل شود.
بخش بعدی به بررسی درک تأثیر افراد و الزامات قانونی در ساخت هوش مصنوعی اختصاص داده شده است.
۳. درک تأثیر افراد و الزامات قانونی در ساخت هوش مصنوعی
برای ساخت پروژهای که کاملاً مورد قبول همه افراد و ذینفعان موجود در پروژه باشد و قوانین و مقرراتی در سازمان در نظر گرفته شوند، بهتر است که سوالات زیر قبل از شروع انجام پروژه پاسخ داده شوند:
- ذینفعان و سهامداران پروژه چه کسانی هستند و چه اطلاعاتی نیاز دارند؟
- نیاز است که پروژه در چه حدی برای ذینفعان آن توضیح داده شود؟
- چه توضیحهایی نیاز است که برای هر کدام از افراد ذینفع پروژه در گزارش تفسیرپذیری ارائه شود؟
- سطح رضایت سازمانها و ذینفعان برای شروع پروژه مورد نظر چقدر است؟
در بخش بعدی از مبحث پنج گام عملی برای ساخت هوش مصنوعی، به بررسی نیاز ویژه به تفسیر شدن و تفسیرپذیری در ساخت هوش مصنوعی پرداخته شده است.
۴. نیاز ویژه به تفسیر شدن در ساخت هوش مصنوعی
ممکن است هر کدام از افراد و ذینفعان پروژه سطح اطلاعات متفاوتی درباره ساخت هوش مصنوعی داشته باشند، به همین دلیل نیاز است که برای هر کدام به طور جداگانه و ویژه و با روشهای گوناگونی پروژه هوش مصنوعی مورد نظر توضیح و شرح داده شود. در برخی موارد ممکن است ذینفعان به سیستمهای هوش مصنوعی نیاز داشته باشند تا بتوانند تصمیمات خود را بر اساس آنها نهایی کنند، بنابراین نیاز است که نمونهای از سیستمهای مورد استفاده در پروژه مورد نظر در اختیار آنها قرار بگیرد. در بخش بعدی به بررسی توسعه رویکرد و پیادهسازی مدل هوش مصنوعی پرداخته شده است.
۵. توسعه رویکرد و پیادهسازی مدل هوش مصنوعی
با در نظر گرفتن مراحل اول تا چهارمی که توضیح داده شدند، این نتیجه به دست میآید که سازمانها و ذینفعال پروژه ترجیح میدهند پروژهای را شروع و پیادهسازی کنند که برای آنها کاملاً تفسیر و توضیح داده شده باشد. میتوان برای تفسیر ساده پروژه به ذینفعان از روشهای ساده ساخت هوش مصنوعی استفاده کرد. همچنین اگر روشی پیچیده استفاده شود، میتوان به جای توضیح و تفسیر تمام آن روش، بخشی از نتایج خوب به دست آمده از آن را در اختیار ذینفعان قرار داد. در ادامه مقاله «ساخت هوش مصنوعی» به بررسی چند پروژه ساده برای درک بهتر ساخت هوش مصنوعی در پروژههای گوناگون پرداخته شده است.
نمونه پروژه های ساخت هوش مصنوعی
در این بخش چند نمونه از پروژههای بسیار سودمند برای درک بهتر روش ساخت هوش مصنوعی ارائه شده است. طراحی و ساخت این پروژهها مهارت افراد را در استفاده از هوش مصنوعی افزایش میدهد. ابتدا بخش بعدی به شرح پروژه تشخیص دست خط اعداد انگلیسی اختصاص داده میشود.
تشخیص دست خط اعداد انگلیسی
هدف اصلی این پروژه ساخت سیستمی است که بتواند اعداد دستنویس را به کمک شبکههای عصبی مصنوعی تشخیص دهد. اعداد و کاراکترهایی که به صورت دستی و توسط انسان نوشته میشوند، دارای اندازهها، شکلها، منحنیها و سبکهای گوناگونی هستند و حتی دست خط دو فرد شبیه به یکدیگر نیست. بنابراین، تبدیل اعداد و کاراکترهای نوشته شده به صورت دستنویس به فرمت دیجیتالی از گذشته برای کامپیوترها چالش برانگیز بوده است. به همین دلیل دیجیتالی شدن به سرعت در همه بخشها در حال پیشرفت است و کامپیوترها نیازمند سیستمی هستند که بتوانند خط انسان را از روی کاغذ به راحتی تشخیص دهند و آن را به کاراکترها و اعداد دیجیتالی تبدیل کنند.
استفاده از شبکههای عصبی مصنوعی، ساخت سیستمی برای تشخیص دست خط انسان و تبدیل آن به فرمت دیجیتالی را ممکن میسازند. برای این سیستم از یک «شبکه عصبی پیچشی» (Convolution Neural Network | CNN) برای تشخیص اعداد روی کاغذ استفاده میشود. این شبکه برای حل چنین مسائلی دارای مجموعه دادهای به نام «HASYv2» با ۱۶۸۰۰۰ تصویر با ۳۶۹ نوع «دستهبندی» (Classification) متفاوت است.
این سیستم به غیر از خواندن دستخط از روی کاغذ، میتواند نمادهای ریاضی را نیز از روی کاغذ، صفحات لمسی و منابع دیگر بخواند. این نرم افزار دارای کاربردهای بسیاری از جمله احراز هویت چک بانکی و خواندن فرمهای پر شده توسط افراد است. در بخش بعدی از مقاله «ساخت هوش مصنوعی» به بررسی تشخیص خط عبوری در جادهها و خیابانها پرداخته میشود.
تشخیص خط عبوری در جاده و خیابان
هدف از این پروژه ایجاد سیستمی است که با خودروهای خودران و رباتهای دنبال کننده خط ارتباط برقرار کند تا به آنها در تشخیص خطوط عبوری یک جاده در زمان واقعی و به صورت بلادرنگ کمک کند. بدون شک خودروهای خودران فناوریهای نوآورانهای هستند که از الگوریتمها و روشهای یادگیری عمیق در ساخت آنها استفاده شده است. این سیستمها امکانات جدیدی را در صنعت خودروسازی فراهم کردهاند و نیاز به دخالت انسان در رانندگی را کاهش دادهاند.
با این حال، اگر سیستم خودران خودرویی آموزش مناسبی نداشته باشد، ممکن است باعث ایجاد خطرات و تصادف بشود. در حین آموزش و ساخت سیستمهای خودروهای خودران، یکی از روشها تشخیص خطهای عبوری جادهها و خیابانها است تا در خط دیگری قرار نگیرد و در امتداد آنها حرکت کند.
برای حل این مسئله، میتوان سیستمی را با استفاده از مفهوم بینایی ماشین در پایتون ساخت. این سیستم به خودروهای خودران کمک میکند که با استفاده از خط عبوری در مسیری صحیح حرکت کنند و میزان ریسک و خطرات را به میزان قابل توجهی کاهش میدهد. به منظور حل این مسئله میتوان از کتابخانه بهینه «OPenCV» استفاده کرد و به وسیله آن در زمان واقعی میتوان خطوط عبوری جادهها را تشخیص داد. این کتابخانه شامل رابطهای جاوا، پایتون و ++C است و از سیستم عاملهای ویندوز، «macOS»، «لینوکس»، اندروید و iOS پشتیبانی میکند. علاوه بر این، برچسبگذاری و نشانهگذاری تصاویر مجموعه داده جادهها در خطهای وسط و حتی دو طرف جاده ضروری است.
میتوان از شیوه بینایی ماشین در پایتون برای پیدا کردن خطهای عبوری جاده در سیستمهای خودران استفاده کرد. برای برچسبگذاری مجموعه دادهها، خطهای سفید عبوری در یک خط انتخاب میشوند و بقیه اشیا جادهها با آرایههای Numpy و ماسک پوشش داده خواهند شد. روشهای دیگری نیز برای حل این مسئله وجود دارند، برای مثال به وسیله روش آستانه رنگها برای شناسایی خطهای عبوری جاده نیز میتوان این مسئله را حل کرد. این مسئله به جز در خودروهای خودران، در رباتهای دنبال کننده خط، ساخت بازیها و سایر موارد نیز کاربرد دارد. بخش بعدی از مقاله «ساخت هوش مصنوعی» به مسئله ساخت چت باتها اختصاص داده میشود.
ساخت چت بات با استفاده از پردازش زبان طبیعی
هدف از این مسئله ساخت چت بات با استفاده از زبان برنامه نویسی پایتون برای تعبیه آن در وب سایتها و برنامهها است. در دنیای دیجیتال امروزی، مشتریها به خدمات با کیفیتی در هنگام استفاده از برنامهها و وب سایتها نیاز دارند. برای مثال اگر سوالی داشته باشند و با استفاده از برنامه به پاسخ آن نرسند، ممکن است آن برنامه جذابیت خود را برای فرد از دست بدهد. بنابراین، بهتر است که هنگام طراحی یک برنامه، بهترین کیفیت ارائه شود تا کاربران از آن راضی باشند و به استفاده از برنامه ادامه دهند.
چت بات برنامهای به حساب میآید که مکالمهای خودکار بین رباتهای هوش مصنوعی به وسیله متن یا گفتار و کاربران به وجود میآورد. Alexa یکی از انواع این نوع رباتها یا همان چت باتها به حساب میآید. این چت باتها به صورت ۲۴ ساعته و در ۷ روز هفته برای پاسخ به سوالهای کاربران، راهنمایی کردن آنها، شخصیسازی تجربه کاربری، افزایش فروش، بررسی دقیقتر روی رفتار مشتریها، ساخت و شکلدهی محصولات و خدمات در دسترس کاربران هستند. برای طراحی این پروژه میتوان از سادهترین نوع چت باتها استفاده کرد که در بیشتر وب سایتها وجود دارند و ساختار اصلی آنها را برای شروع به ساختن یک ساختمان مشابه میتوان شناسایی کرد.
- مقالههای پیشنهادی:
- ساخت یک چت بات (Chatbot) پایتون با NLTK — از صفر تا صد
- ساخت یک چت بات (Chatbot) با تلگرام و پایتون (بخش اول) — از صفر تا صد
بعد از طراحی اولین چت بات ساده میتوان به سراغ چت باتهای پیشرفتهتر رفت. در ساخت چت باتها از روشهای ساخت هوش مصنوعی پردازش زبان طبیعی یا همان NLP استفاده شده است تا الگوریتمها و کامپیوترها بتوانند تعاملهای انسانی را به وسیله زبانهای مختلف درک و دادهها را پردازش کنند. این سیستم، صداها و متنهای انسانی را تجزیه و تحلیل و سپس آنها را به زبانی قابل درک برای ماشین تبدیل میکند. همچنین برای طراحی یک چت بات هوشمند به انواع گوناگونی از ابزارها، بستهها و سیستمهای «تشخیص یا بازشناسی گفتار» (Speech Recognition) نیاز است. در ادامه برخی از کاربردهای مهم چت باتها ارائه شدهاند:
- چت باتها در بیشتر شرکتهایی که با کاربران در ارتباط هستند برای خدمات مشتریان بسیار مهم و حیاتی به حساب میآیند.
- از چت باتها در پشتیبانی فناوری اطلاعات یا همان «IT Helpdesk» استفاده میشود.
- در بخش فروش و بازاریابی از چت باتها استفاده شده است.
- در بخش «منبع انسانی» (Human Resource | HR) از چت بات استفاده میشود.
- در صنعتهای مرتبط با «تجارت الکترونیکی» (Electronic Commerce | eCommerce) از چت بات استفاده میشود.
- در «فناوریهای آموزشی» (Educational Technology | Edtech) از چت باتها استفاده شده است.
- در حوزههای «مالی» (Finance) نیز چت باتها مورد استفاده قرار میگیرند.
- چت بات در صنعت گردشگری نیز کاربرد دارد.
شرکتهای معرفی مانند آمازون که دارای سیستم Alexa است، «اسپاتیفای»، شرکت گردشگری بینالمللی «ماریوت» (Marriott)، «Pizza Hut»، «مسترکارت» (Mastercard) و بسیاری از شرکتهای دیگر از چت باتها در سیستمهای خود استفاده میکنند. در بخش بعدی از مقاله «ساخت هوش مصنوعی» به بررسی ساخت یک «سیستم توصیهگر» (Recommendation System) با استفاده از هوش مصنوعی پرداخته شده است.
ساخت سیستم های توصیه گر
در ساخت پروژه سیستمهای توصیهگر برای محصولات، ویدیوها، جریانهای موسیقی و سایر موارد از «شبکههای عصبی مصنوعی» (Artificial Neural Network | ANN)، داده کاوی، یادگیری ماشین و برنامه نویسی استفاده میشود. رقابت در همه حوزههای جدید از تجارت الکترونیکی گرفته تا سرگرمیهای اینترنتی بسیار بالا است و برای پیشرفت در این صنعت باید روشهای بسیاری را امتحان کرد. گاهی ممکن است نیاز باشد چیزی به مشتری پیشنهاد شود، بنابراین اقدامهای لازم برای راهنمایی آن به فروشگاه یا مقصد مورد نظرش و سوددهی شرکت با استفاده از این روش باید انجام شود.
استفاده از سیستمهای توصیهگر به صورت موًثری باعث ایجاد بازدیدکنندههای بیشتر از وب سایت یا برنامه مورد نظر خواهد شد. برای مثال در پلتفرمهای تجارت الکترونیکی مانند آمازون این موضوع را میتوان مشاهده کرد که آمازون پیشنهادهایی به کاربر میدهد که قبلاً در جایی از اینترنت درباره آن جستجو انجام داده است. همچنین زمانی که کاربر وارد فیسبوک یا اینستاگرام میشود نیز پیشنهادهایی در ارتباط با جستجوهایش با آن داده خواهد شد. این روش کار و هدف سیستمهای توصیهگر به حساب میآید.
- مقالههای پیشنهادی:
- انواع شبکه های عصبی مصنوعی — راهنمای جامع
- پیاده سازی سیستم های توصیهگر در پایتون — از صفر تا صد
- ساخت سیستم توصیهگر در پایتون — به زبان ساده
- ساخت سیستم توصیهگر (Recommender System) فیلم با پایتون — راهنمای جامع و ساده
برای ساخت این نوع از سیستمها به تاریخچه مرورگر، رفتار مشتری و «دادههای ضمنی» (Implicit Data) نیاز است. مهارتهای داده کاوی و یادگیری ماشین برای تولید محصول توصیه گر مرتبط با علاقه مشتری بسیار مفید هستند. میتوان برای ساخت سیستمهای توصیهگر از زبانهای برنامه نویسی R، جاوا، پایتون و همچنین مباحث هوش مصنوعی استفاده کرد. در ادامه به برخی از کاربردهای سیستمهای توصیهگر اشاره شده است:
- سیستمهای توصیهگر به صورت وسیعی در برنامههای فروشگاهی تجارت الکترونیکی مانند آمازون، eBay و سایر شرکتهای این چنینی مورد استفاده قرار میگیرد.
- سیستمهای توصیهگر در وب سایتها و اپلیکیشنهای «پخش ویدیو» (Video Streaming) مانند نتفلیکس و یوتوب کاربرد دارند.
- در وب سایتها و اپلیکیشنهای پخش موسیقی مانند اسپاتیفای و بسیاری موارد دیگر از سیستمهای توصیهگر استفاده شده است.
در ادامه به بررسی برخی از مزایای استفاده از سیستمهای توصیهگر پرداخته میشود:
- این سیستمها به افزایش تعداد کسانی کمک میکنند که به محصولات وب سایت یا اپلیکیشن دسترسی دارند.
- سیستمهای توصیهگر باعث افزایش تعداد مشتریهای سایت میشود.
- سیستمهای توصیهگر باعث دیده شدن سیستم مورد نظر در کانالها و بخشهای گوناگون اینترنت میشوند.
- همچنین میتوان گفت به صورت کلی سیستمهای توصیهگر باعث سودآوری خواهند شد.
در بخش بعدی از مقاله «ساخت هوش مصنوعی» به بررسی پروژههایی در زمینه تشخیص چهره پرداخته شده است.
ساخت برنامه تشخیص چهره با استفاده از پردازش تصویر
هدف از تعریف این پروژه ساخت برنامهای به حساب میآید که بتواند چهره افراد را تشخیص دهد. در این نوع از پروژهها از شبکههای عصبی مصنوعی، شبکههای عصبی پیچشی، یادگیری ماشین و یادگیری عمیق استفاده میشود. امروزه مسائلی که با سرقت هویت و افزایش خطرهای امنیت سایبری میتوانند تهدید جدی برای سیستمها و دادهها باشند، بسیار افزایش پیدا کردهاند. این مسائل ممکن است باعث از بین رفتن امنیت حریم خصوصی، «از دست رفتن دادهها» (Data Leak) و آسیب به شهرت افراد و کسب و کارها شوند. ویژگیهایی مانند اجزای صورت برای هر فرد متفاوت و منحصربهفرد هستند، بنابراین سازمانها و افراد میتوانند از آنها برای افزایش امنیت و محافظت از سیستمها و دادهها استفاده کنند.
سیستمهای تشخیص چهره میتوانند در تأیید یک کاربر نقش داده باشند و اطمینان حاصل کنند که فقط کاربران مجاز و تأیید شده، به یک سیستم، شبکه یا دادهها دسترسی دارند. برای طراحی پروژههای تشخیص چهره، نیاز است که توسعه دهندگان آن به صورت پیشرفته و سطح بالا با الگوریتمهای یادگیری ماشین، توابع ریاضی و روشهای پردازش و تشخیص تصویرهای سه بعدی آشنا باشند. در ادامه برخی از کاربردهای سیستمهای تشخیص چهره ارائه شدهاند:
- این روش در گوشیهای تلفن همراه هوشمند و دستگاههای دیگر به عنوان قفل امنیتی صفحه گوشی مورد استفاده قرار میگیرد.
- از تشخیص چهره در سیستمهای سازمانها برای اطمینان از حریم خصوصی امنیت دادهها استفاده میشود.
- از این سیستم توسط ارائه دهندگان «مدیریت هویت و دسترسی» (Identity and Access Management | IAM) استفاده میشود.
- همچنین در بخش دفاعی یک سیستم میتوان برای افزایش امنیت از سیستم تشخیص چهره استفاده کرد.
جمعبندی
در دنیای دیجیتال امروزی، استفاده و ساخت هوش مصنوعی یکی از مسائل روز دنیا به حساب میآید. همانطور که در زندگی روزمره مشخص است، امروزه بیشتر سیستمها، سازمانها و حتی وسایل مورد استفاده بشر دارای هوش مصنوعی هستند و روز به روز استفاده از سیستمهای هوش مصنوعی در حال افزایش است. همچنین به واسطه این افزایش کاربرد، موقعیتهای شغلی این حوزه گستردهتر میشوند و افراد بسیاری به دنبال کسب اطلاعات در خصوص نحوه ساخت هوش مصنوعی هستند.
در این مقاله از مجله تم آف سعی شد به طور جامع به مبحث ساخت هوش مصنوعی پرداخته شود. همچنین در راستای بررسی جامع این حوزه، در این نوشتار به بیشتر سوالهای رایج پیرامون ساخت هوش مصنوعی پرداخته شده است. در بخشهای پایانی به معرفی برخی از پروژههایی در زمینههای پردازش زبان طبیعی، پردازش تصویر، سیستمهای توصیهگر و سایر موارد پرداخته شد که میتوان با استفاده از آنها به ساخت هوش مصنوعی در موقعیتهای گوناگون پرداخت. در نهایت یک پروژه ساده برای ساخت هوش مصنوعی نیز آموزش داده شد. برخی از دورههای آموزشی هوش مصنوعی تم آف نیز در این مقاله برای فراگیری بیشتر مهارت هوش مصنوعی و یادگیری ماشین به علاقهمندان و دانشجویان معرفی شدند.