Gen؛ زبانی جدید برای برنامه‌نویسی هوش مصنوعی

  • ي, ۱۳۹۸/۰۴/۰۹ - ۰۷:۵۶

نکته‌ی خوبی که درباره هوش مصنوعی وجود دارد آن است که رشته‌های مختلفی را دور هم جمع کرده است؛ رشته‌هایی مانند آمار، بینایی کامپیوتری، یادگیری عمیق و مواردی از این قبیل.

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

پلتفرم‌ها یا به‌طور خاص زبان‌های برنامه‌نویسی که برای حوزه‌ی وسیعی مانند هوش مصنوعی استفاده می‌شوند باید علاوه‌بر چابکی، از انعطاف‌پذیری زیادی هم برخوردار باشند. ولی برای ساختن چنین پلتفرم‌هایی، باید از موانعی هم گذر کرد؛ یکی اینکه باید عملکرد خوب برای مدل‌های احتمالاتی ناهمگن متشکل از شبیه‌سازهای جعبه‌ی سیاه، شبکه‌های عصبی عمیق و توابع بازگشتی (recursion) را در نظر گرفت و دیگری آنکه باید مفاهیم تجرید و انتزاعی‌سازی مناسب برای تسهیل اجرای الگوریتم‌های استنتاجی را با کمترین محدودیت در اختیار کاربران قرار بدهد. سیستم‌های موجود فاقد انعطاف‌پذیری و کارایی لازم برای کاربردهای عملی با مدل‌های پرچالش در رشته‌هایی مانند بینایی کامپیوتری و رباتیک هستند.
گروهی از پژوهشگران MIT مشغول کار روی پروژه‌ای هستند که آشنایی مبتدی‌ها با هوش مصنوعی را راحت‌تر و در عین حال، زمینه‌ی پیشرفت بیشتر را نیز برای کارشناسان مهیا می‌کند. این پژوهشگران در مقاله‌ای که به‌تازگی در کنفرانس طراحی و پیاده‌سازی زبان برنامه‌نویسی (Programming Language Design and Implementation conference) ارائه شد، سیستم جدیدی به نام «Gen» برای برنامه‌نویسی احتمالاتی معرفی کردند. کاربران مدل‌ها و الگوریتم‌ها را باتوجه‌به زمینه‌های متعددی که تکنیک‌های هوش مصنوعی در آن‌ها به کار گرفته می‌شود، تهیه می‌کنند: مثل بینایی کامپیوتری، رباتیک و آمار. برای انجام این کار نیازی به کلنجار رفتن با معادلات یا دستی نوشتن کدهایی با کارایی بالا نیست. برنامه‌نویسان با استفاده از Gen می‌توانند مدل‌های پیچیده و الگوریتم‌های استنتاجی بنویسند. نوشتن این مدل‌ها و الگوریتم‌ها که برای کارهای مربوط‌به پیش‌بینی استفاده می‌شوند، در گذشته کاری نشدنی بود.

به‌عنوان مثال، پژوهشگران در همین مقاله ثابت کردند که یک برنامه‌ی کوچک Gen این قابلیت را دارد که حالت‌های بدن را به‌صورت سه‌بعدی به دست بیاورد. این کار یکی از کاری پیچیده‌ی استنتاجی در زمینه‌ی بینایی کامپیوتر است که در سیستم‌های خودکار، تعاملات بین انسان و ماشین و واقعیت افزوده کاربرد دارد. این برنامه در واقعیت شامل بخش‌هایی است که کارهای رندر گرافیکی، یادگیری عمیق (Deep Lerning) و انواع مختلف شبیه‌سازی‌های احتمالاتی را انجام می‌دهد. ترکیب این روش‌های متنوع منجر به دقت و سرعت بیشتر در انجام این کارها نسبت به سیستم‌های توسعه‌یافته توسط پژوهشگران دیگر می‌شود.
پژوهشگران معتقد هستند که هر کسی، از افراد تازه‌کار گرفته تا کارشناسان مجرب، به‌راحتی می‌توانند از این سیستم استفاده کند. این راحتی به خاطر سهولت و حتی در برخی از موارد، خودکار بودن آن است. مارکو کوزومانو-تاونر (Marco Cusumano-Towner)، رهبر این گروه و دانشجوی دکترا در دانشکده‌ی مهندسی برق و علوم کامپیوتر دانشگاه MIT، می‌گوید:

یکی از انگیزه‌های طراحی چنین سیستمی آن است که استفاده‌ی افرادی که دانش کمتری درباره‌ی علوم کامپیوتر یا ریاضیات دارند را از هوش مصنوعی راحت‌تر کنیم. همچنین، می‌خواستیم بهره‌وری را افزایش بدهیم؛ یعنی تولید نمونه‌ی اولیه‌ی سیستم‌های هوش مصنوعی و تکرار آن را برای کارشناسان سرعت ببخشیم.

همچنین، آن‌ها موفق شدند که توانمندی Gen در ساده‌سازی تجزیه‌وتحلیل داده‌ها را ثابت کنند و برای این کار از یک برنامه‌ی Gen دیگر استفاده کردند که به‌طور مدل‌های آماری پیشرفته‌ای تولید می‌کرد که معمولا کارشناسان از آن‌ها برای تجزیه‌وتحلیل، تفسیر و پیش‌بینی الگوهای زیربنایی در داده‌ها استفاده می‌کردند.

این برنامه براساس کار قبلی همین پژوهشگران طراحی شده بود که کاربران به‌وسیله‌ی آن می‌توانستند با نوشتن چند خط برنامه، داده‌های خود را به روندهای مالی، مسافرت‌های هوایی، الگوهای رای‌گیری و شیوع بیماری‌ها و سایر روندهای دیگر تبدیل کنند. این سیستم تفاوت‌هایی با سیستم‌های پیشین هم دارد. دست‌یافتن به یک پیش‌بینی دقیق با استفاده از سیستم‌های پیشین نیازمند برنامه‌نویسی به‌صورت دستی بود.
ویکاش کی مانسینگا (Vikash K. Mansinghka)، یکی از پژوهشگران دانشکده‌ی مغز و علوم شناختی دانشگاه MIT که در پروژه‌ی محاسبات احتمالاتی مشارکت داشته است، می‌گوید:

Gen اولین سیستمی است که از انعطاف‌پذیری، کارآمدی و خودرانی کافی برای دربرگرفتن نمونه‌های مختلف در حوزه‌ی علوم داده‌ها و بینایی کامپیوتری برخوردار است و عملکردی پیشرفته دارد.

سایر کسانی که کوزومانو-تاونر و مانسینگا را در نوشتن این مقاله یاری کرده‌اند، فراس ساد (Feras Saad) و الکساندر کی لیو (Alexander K. Lew)، دو عضو دیگر پروژه‌ی محاسبات احتمالاتی و دانش‌آموخته‌ی CSAIL هستند.

بهترین نمونه در کل جهان
گوگل در سال ۲۰۱۵ TensorFlow را منتشر کرد؛ TensorFlow یک کتابخانه‌ی متن‌باز برای رابط‌های برنامه‌نویسی کاربردی (API) است که به مبتدیان و متخصصان کمک می‌کند تا به‌طور خودکار و بدون اینکه خیلی خود را درگیر ریاضیات کنند، سیستم‌های یادگیری ماشین بسازند. این پلتفرم که در حال حاضر در سطح وسیعی در این حوزه کاربرد دارد، به برقراری دموکراسی در برخی از جنبه‌های هوش مصنوعی کمک کرده است. اما، با وجود کارایی و خودکار عمل کردن آن، توجه کمی به مدل‌های یادگیری عمیقی دارد که در مقایسه با کاربردهای دیگر هوش مصنوعی به‌طور کلی هم گران‌تر هستند و هم محدودتر. اما امروزه روش‌های زیادی در هوش مصنوعی وجود دارد؛ مانند مدل‌های آماری و احتمالاتی و موتورهای شبیه‌سازی. برخی از سیستم‌های برنامه‌نویسی احتمالاتی دیگر نیز از انعطاف‌پذیری کافی برای پوشش انواع مختلف روش‌های هوش مصنوعی برخوردار هستند؛ اما در زمان اجرا کارایی لازم را ندارند.
پژوهشگران تلاش کردند تا بهترین‌های جهان را با هم ترکیب کنند و از عملکرد خودکار، انعطاف‌پذیری و سرعت، یک مفهوم واحد خلق کنند. مانسیگا می‌گوید:

اگر این کار را بکنیم، شاید بتوانیم دموکراسی را در این مجموعه‌ی وسیع الگوریتم‌های استنتاجی و مدل‌سازی برقرار کنیم؛ درست مانند آنچه که TensorFlow برای یادگیری عمیق انجام داد.
ژوبین قهرمانی (Zoubin Ghahramani)، دانشمند ارشد و معاون بخش هوش مصنوعی در لابراتوار Uber و استاد دانشگاه کمبریج (که البته هیچ نقشی در این پروژه نداشته است)، می‌گوید:

برنامه‌نویسی احتمالاتی یکی از امیدوارکننده‌ترین زمینه‌ها در حوزه‌ی هوش مصنوعی از زمان پیدایش یادیگری عمیق است. Gen نشان‌دهنده‌ی پیشرفت شگرف دانشمندان در این رشته است و به پیاده‌سازی مقیاس‌پذیر و کاربردی سیستم‌های هوش مصنوعی مبتنی بر استدلال احتمالاتی کمک خواهد کرد.

پیتر نورویگ (Peter Norvig)، مدیر بخش پژوهشی گوگل که او نیز در این برنامه مشارکت نداشته است، این پروژه را می‌ستاید. او می‌گوید:

Gen به کسانی که در پی حل مسئله‌ای هستند اجازه می‌دهد تا از برنامه‌نویسی احتمالاتی استفاده کنند و به این ترتیب، رویکردی اصولی‌تر برای پرداختن به مشکل در اختیار داشته باشند؛ رویکردی که در اثر انتخاب‌های طراحان سیستم برنامه‌نویسی احتمالاتی دچار محدودیت نشود.

زبان‌های برنامه‌نویسی همه‌منظوره به این دلیل تاکنون موفق بوده‌اند که کار را برای برنامه‌نویس آسان می‌کنند و در عین حال، این امکان را برای او فراهم می‌کنند که تا برای حل مؤثر یک مشکل جدید، یک راه‌حل جدید بسازد. Gen همین کار را برای برنامه‌نویسی احتمالاتی انجام می‌دهد.

کد منبع Gen در دسترس همه قرار گرفته است و در کنفرانس‌های آتی مربوط‌به توسعه‌دهندگان متن‌باز، از جمله Strange Loop و JuliaCon ارائه خواهد شد. بخشی از تأمین مالی این پروژه توسط DARPA انجام شده است.

منبع : وب سایت زومیت