هوش مصنوعی برای تحلیل کسب و کار: الگوریتم ، پلتفرم و سناریوهای کاربردی (فصل سوم – بخش دوم)
در خلاصه بخش اول فصل سوم به مفاهیم اصلی هوش مصنوعی مرتبط با تحلگیری کسب و کار همچون انباره داده، دریاچه داده، جریان داده و پایگاه های مدیریت داده پرداختیم. یکی دیگر از مباحث مهم هوش مصنوعی در پلتفرم های تحلیلگری کسب و کار، چارچوب های هوش مصنوعی می باشند.
چارچوب های هوش مصنوعی
در گذشته برای پیاده سازی مفاهیم و الگوریتم های هوش مصنوعی نیاز بود تا منطق و فرمول های ریاضیاتی از ابتدا و با جزئیات نوشته شوند که کار نسبتا سخت و پیچیده ای بود. اما در حال حاضر با توجه به با توجه به پیشرفت زیرساخت ها و نرم افزارهای متن باز این امکان برای متخصصان هوش مصنوعی وجود دارد که با فراخوانی چارچوب های قدرتمند هوش مصنوعی الگوریتم های مورد نیاز خود را از صفر بازنویسی کنند. به عبارتی دیگر این چارچوب ها با دریافت پارامترهای ریاضی مختلف و فیت شدن روی دیتاست های مختلف می توانند خروجی های مورد نظر برای تحلیلگران را فراهم کنند تا در وقت و انرژی صرفه جویی قابل توجهی داشته باشند. از میان تمامی چارچوب های هوش مصنوعی 5 چارچوب محبوبیت و کاربردهای زیادی دارند که در ادامه به بررسی آن ها می پردازیم:
TensorFlow.1
تنسور فلو ابتدا توسط گوگل برای استفاده داخلی توسعه داده شد و در سال ۲۰۱۵ تحت مجوز اپن سورس آپاچی 2 منتشر شد. گوگل همچنان از این کتابخانه برای خدمات مختلفی مانند تشخیص گفتار، جستجوی تصاویر و پاسخهای خودکار در جیمیل استفاده میکند. محبوبیت گوگل و مدلهای گراف جریان دادهای که تنسور برای ایجاد مدلها استفاده میکند، باعث جذب تعداد زیادی از مشارکتکنندگان به این کتابخانه شده است. این امر به دسترسی عمومی همراه با مستندات و آموزشهای دقیق منجر شده که ورود به دنیای شبکههای عصبی را آسان میکند. تنسور فلو یک ابزار پایتون برای بررسی شبکههای عصبی عمیق و محاسبات پیچیده ریاضی است و حتی از یادگیری تقویتی نیز پشتیبانی میکند. این کتابخانه از گرافهای جریان داده تشکیل شده که شامل گرهها (عملیات ریاضی) و لبهها (آرایههای عددی یا تنسورها) میشود. انعطافپذیری این چارچوب به دلیل امکان استفاده از آن برای تحقیقات و وظایف تکراری یادگیری ماشین است. کاربران میتوانند از API سطح پایین هسته های تنسورفلو استفاده کنند که کنترل کامل روی مدلها و دادهها فراهم میکند. همچنین مدلهای از پیش آموزش دیدهای هم وجود دارند که به کاربران اجازه میدهند از APIهای سطح بالا استفاده کنند.
همچنین این چارچوب به دلیل نیاز به مهارتهای کدنویسی گسترده و دانش دقیق از علم داده، ممکن است برای افراد تازهکار مناسب نباشد و بسیاری آن را کتابخانهای پیچیده میدانند. در نتیجه، استفاده از آن بیشتر در شرکتهای بزرگ با دسترسی به متخصصان یادگیری ماشین معمول است. به عنوان مثال، سوپرمارکت آنلاین Ocado در بریتانیا از تنسورفلو برای اولویتبندی ایمیلها و پیشبینی تقاضا استفاده کرده و شرکت بیمه جهانی Axa از آن برای پیشبینی ادعاهای بزرگ مشتریان بهره میبرد.
Theano. 2
Theano یک کتابخانه محاسبات علمی سطح پایین مبتنی بر پایتون است که برای وظایف یادگیری عمیق مرتبط با تعریف، بهینهسازی و ارزیابی عبارات ریاضی استفاده میشود. با اینکه این کتابخانه قدرت محاسباتی چشمگیری دارد، کاربران از رابط کاربری غیرقابل دسترسی و پیامهای خطای غیرمفید آن شکایت دارند. به همین دلیل، عمدتاً در ترکیب با کتابخانههای رابط کاربری سطح بالا مثل Keras،Lasagne, Blocks که برای نمونهسازی سریع و تست مدلها استفاده میشوند، به کار میرود. برای Theano مدلهای عمومی وجود دارد، اما هر چارچوب دیگری نیز که استفاده شود، بسیاری از آموزشها و مجموعهدادههای پیشآموزشدیده در دسترس است. به عنوان مثال، Keras مدلهای موجود و آموزشهای دقیقی را در مستندات خود ذخیره میکند.
همچنین با استفاده از Lasagne یا Keras به عنوان یک رابط کاربری سطح بالا، شما به انواع مختلفی از آموزشها و مجموعه دادههای پیشآموزشدیده دسترسی دارید. سادگی و بلوغ تئانو به تنهایی از نکات مهمی است که باید در این تصمیمگیری مد نظر قرار داد. این چارچوب به عنوان یک استاندارد صنعتی برای تحقیقات و توسعه یادگیری عمیق محسوب میشود و در ابتدا برای پیادهسازی الگوریتمهای یادگیری عمیق پیشرفته توسعه داده شد. با این حال، از آنجایی که افراد به ندرت به طور مستقیم از تئانو استفاده میکنند، کاربردهای زیادی از آن به عنوان پایهای برای کتابخانههای دیگر گسترش یافته است: تشخیص دیجیتال و تصویر، مکانیابی اشیاء، و حتی چتباتها.
Torch.3
این چارچوب اغلب به عنوان سادهترین ابزار یادگیری عمیق برای مبتدیان شناخته میشود. این ابزار از یک زبان اسکریپتنویسی ساده به نام Lua استفاده میکند و جامعهای فعال دارد که مجموعهای چشمگیر از آموزشها و بستهها را برای تقریباً هر هدف یادگیری عمیق ارائه میدهد. با وجود اینکه زبان پایه Lua کمتر رایج است، خود Torch به طور گستردهای استفاده میشود .شرکتهایی مانند فیسبوک، گوگل و توییتر از آن در پروژههای هوش مصنوعی خود استفاده میکنند. فهرستی از مجموعهدادههای محبوب برای استفاده در این چارچوب را میتوان در صفحه گیتهاب پیدا کرد. علاوه بر این، فیسبوک کد رسمی برای پیادهسازی شبکههای عصبی عمیق باقیمانده (ResNets) با مدلهای پیشآموزشدیده را همراه با دستورالعملهایی برای تنظیم دقیق مجموعهدادههای شما منتشر کرده است. صرف نظر از تفاوتها و شباهتها، انتخاب همیشه به زبان پایه بستگی دارد زیرا تعداد توسعهدهندگان با تجربه در Lua همیشه کمتر از پایتون خواهد بود. با این حال، Lua به طور قابلتوجهی خواناتر است و این موضوع در سینتکس ساده Torch منعکس میشود. مشارکتکنندگان فعال تورش به Lua وفادار هستند و این چارچوب را به انتخابی مناسب برای مبتدیان و افرادی که به دنبال گسترش مجموعه ابزار خود هستند، تبدیل میکنند. همچنین فیسبوک از این چارچوب برای ایجاد DeepText استفاده میکند، ابزاری که پستهای متنی منتشر شده به صورت لحظه به لحظه را دستهبندی کرده و محتوای هدفمندتر شخصیسازیشده ارائه میدهد. توییتر نیز توانست با استفاده از این چارچوب پستها را براساس الگوریتم زمانی (به جای ترتیب زمانی معکوس) پیشنهاد دهد.
Scikit-Learn.4
یک چارچوب طراحی شده برای الگوریتمهای یادگیری ماشینی تحت نظارت و بدون نظارت است. به عنوان یکی از اجزای اکوسیستم علمی پایتون، این چارچوب بر اساس کتابخانههای NumPy و SciPy ساخته شده است که هرکدام وظیفه انجام وظایف علمی داده در سطح پایین را برعهده دارند. در حالی که NumPy روی پایتون کار کرده و با محاسبات عددی سر و کار دارد، SciPy روالهای عددی خاصتری مانند بهینهسازی و درونیابی را پوشش میدهد. سایکیتلرن به طور خاص برای یادگیری ماشینی توسعه یافته است. این کتابخانه از قبل شامل برخی مجموعهدادههای استاندارد برای طبقهبندی و رگرسیون است. این ویژگی برای مبتدیان مفید است، هرچند که این مجموعهدادهها بسیار کوچک هستند و نمیتوانند شرایط دنیای واقعی را بازتاب دهند. با این حال، مجموعهداده دیابت برای اندازهگیری پیشرفت بیماری یا مجموعهداده زنبق برای تشخیص الگو برای یادگیری و نمایش رفتار الگوریتمهای یادگیری ماشینی در سایکیت مفید هستند. علاوه بر این، کتابخانه اطلاعاتی در مورد بارگذاری مجموعهدادهها از منابع خارجی فراهم میکند، شامل مولدهای نمونه برای وظایفی مانند طبقهبندی چندکلاسی و تجزیه، و توصیههایی برای استفاده از مجموعهدادههای معمولی را ارائه میدهد. با اینکه سایکیتلرن یک کتابخانه قوی است، بر قابلیت استفاده و مستندسازی تاکید دارد. با توجه به سادگی و تعداد مثالهای خوب توصیف شده، این ابزار برای افراد غیرمتخصص دسترسی آسانی برای پیادهسازی سریع الگوریتمهای یادگیری ماشینی فراهم میکند.
Jupyter Notebook.5
چارچوب آخری که قصد معرفی آن را داریم یک برنامه وب منبعباز است که به شما امکان میدهد اسنادی حاوی کد زنده، معادلات، تجسمها و متن ایجاد و به اشتراک بگذارید. این چارچوب که توسط تیم پروژه Jupyter پشتیبانی میشود یک پروژه جانبی از پروژه IPython است که قبلاً خود پروژه IPython Notebook را داشت.این چارچوب برای انواع مختلف پروژهها در روشهای مختلف مناسب است:
- تجسم دادهها: اکثر افراد اولین مواجهه خود با Jupyter Notebook را از طریق یک تجسم داده تجربه میکنند، یک دفترچه به اشتراکگذاشتهشده که شامل نمایش یک مجموعهداده به صورت نمودار است. Jupyter به شما امکان میدهد تا تجسمها را انجام دهید، آنها را به اشتراک بگذارید و تغییرات تعاملی را در کد و مجموعهداده مشترک اعمال کنید.
- به اشتراکگذاری کد: سرویسهای ابری مانند GitHub روشهایی برای به اشتراکگذاری کد ارائه میدهند، اما این روشها تا حد زیادی غیرتعاملی هستند. با Jupyter Notebook ، میتوانید کد را مشاهده کنید، آن را اجرا کنید و نتایج را مستقیماً در مرورگر وب خود ببینید.
- تعاملات کد زنده: کد Jupyter Notebook ثابت نیست؛ میتوان آن را ویرایش کرد و در زمان واقعی بهصورت تدریجی دوباره اجرا کرد، با بازخورد مستقیم در مرورگر. دفترچهها همچنین میتوانند کنترلهای کاربر (مانند اسلایدرها یا فیلدهای ورودی متن) را جاسازی کنند که میتوانند بهعنوان نقاط ورودی برای کد استفاده شوند.
- مستندسازی مثالهای کد – اگر قطعهای از کد دارید و میخواهید آن را خط به خط با بازخورد زنده توضیح دهید، میتوانید آن را در Jupyter Notebook جاسازی کنید.