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

شنبه ۸ تیر ۱۳۹۸ - ۲۱:۰۰
مطالعه 8 دقیقه
کاربران می‌توانند برنامه‌‌ای نسبتا کوتاه شامل توصیف کاری که باید انجام شود را وارد Gen کنند و سیستم به‌طور خودکار نتیجه را تولید می‌کند.
تبلیغات

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

پلتفرم‌ها یا به‌طور خاص زبان‌های برنامه‌نویسی که برای حوزه‌ی وسیعی مانند هوش مصنوعی استفاده می‌شوند باید علاوه‌بر چابکی، از انعطاف‌پذیری زیادی هم برخوردار باشند. ولی برای ساختن چنین پلتفرم‌هایی، باید از موانعی هم گذر کرد؛ یکی اینکه باید عملکرد خوب برای مدل‌های احتمالاتی ناهمگن متشکل از شبیه‌سازهای جعبه‌ی سیاه، شبکه‌های عصبی عمیق و توابع بازگشتی (recursion) را در نظر گرفت و دیگری آنکه باید مفاهیم تجرید و انتزاعی‌سازی مناسب برای تسهیل اجرای الگوریتم‌های استنتاجی را با کمترین محدودیت در اختیار کاربران قرار بدهد. سیستم‌های موجود فاقد انعطاف‌پذیری و کارایی لازم برای کاربردهای عملی با مدل‌های پرچالش در رشته‌هایی مانند بینایی کامپیوتری و رباتیک هستند.

زبان برنامه نویسی هوش مصنوعی / AI programming language

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

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

programming

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

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

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

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

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

زبان برنامه نویسی هوش مصنوعی / AI programming language

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

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

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

بهترین نمونه در کل جهان

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

زبان برنامه نویسی هوش مصنوعی / AI programming language

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

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

در هوش مصنوعی احتمالاتی، الگوریتم‌های استنتاجی اقدام به انجام عملیات روی داد‌ه‌ها می‌کنند و با تغییر مداوم احتمالات براساس داده‌های جدید، پیش‌بینی می‌کنند. این کار درنهایت منجر به تولید مدلی می‌شود که چگونگی پیش‌بینی درباره‌ی داده‌های جدید را توضیح می‌دهد. پژوهشگران باتوجه‌به مفاهیم مورداستفاده در سیستم قبلی برنامه‌نویسی احتمالاتی خود (Church)، چند زبان برنامه‌نویسی مدل‌سازی سفارشی را با هم ادغام کردند و زبان جولیا (Julia) را ایجاد کردند. زبان برنامه‌نویسی چندمنظوره‌ی جولیا نیز حاصل کار پژوهشگران دانشگاه MIT است.

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

کاربردهای Gen در دنیای واقعی

دانشمندان هم‌اکنون به‌دنبال یافتن موارد استفاده‌ی Gen در پژوهش‌های خود در زمینه‌ی هوش مصنوعی هستند. به‌عنوان مثال، اینتل با همکاری MIT می‌خواهد از Gen برای برآورد حالت‌های سه‌بعدی تصاویر حاصل از دوربین‌های دارای حسگر عمق (depth-sense) خود استفاده کند؛ این دوربین‌ها در سیستم‌های واقعیت افزوده و رباتیک کاربرد دارند. لابراتوار لینکلن MIT نیز مشغول کار روی کاربردهای Gen در رباتیک هوایی برای انجام کارهای بشردوستانه و کمک‌رسانی در زمان وقوع حوادث و فجایع مختلف است.

زبان برنامه نویسی هوش مصنوعی / AI programming language

Gen به‌تدریج در حال ورود به پروژه‌های بلندپروازانه‌ی هوش مصنوعی است که تحت برنامه‌ی «Quest for Intelligence» دانشگاه MIT اجرا می‌شوند. به‌عنوان مثال، Gen موضوع محوری در یکی از پروژه‌هایی است که در لابراتوار هوش مصنوعی MIT-IBM Watson در دست اجرا است. همچنین، آژانس پروژه‌های پژوهشی پیشرفته‌ی دفاعی وابسته به وزارت دفاع ایالات متحده در حال کار روی پروژه‌ی قدرت تشخیص عمومی ماشین (Machine Common Sensation) است که هدف آن، مدل‌سازی قدرت تشخیص عمومی انسان‌ها در نوزادان ۱۸ ماهه است. مانسینگا نیز نقش مهمی در این پروژه ایفا می‌کند.

او می‌گوید:

با استفاده از Gen برای اولین‌بار یک پژوهشگر می‌تواند به‌راحتی روش‌های مختلف هوش مصنوعی را با هم ادغام کند. دیدن آنچه که مردم کشف می‌کنند هم جالب خواهد بود.

Gen با استفاده از روش‌های متنوع مانند یادگیری عمیق و ترفندهای احتمالاتی زیرساخت‌های سطح بالایی برای کارهای استنتاجی فراهم می‌کند

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

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

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

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

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

تبلیغات
داغ‌ترین مطالب روز

نظرات

تبلیغات