در قطار بودم، و در ذهنم تلاش میکردم دو دنیا و اتفاقهایی که در آنها روی میدهد را بر هم منطبق کنم. آنچه که در دنیای نرمافزار میگذره با آنچه که در دنیای اطرافمان میگذره. در همین فکرها و احوالات اپیزود ذهنهای دیگر پادکست بیپلاس رو شنیدم. موضوع برایم جذاب بود و در ذهنم دنبال تطابق موضوعات میگشتم. پس با چند نفری که اهل تکنولوژی بودن همصحبت شدم و موفق شدیم کنار هم، موضوع رو کاملتر از قبل ببینیم.
نویسنده مهمان: علی گواری
چرا بازوی اختاپوس به هوش مصنوعی ارتباط دارد؟
نرمافزارها بسته به چندین پارامتر مختلف میتونن معماریهای مختلفی داشته باشن. سیستمعامل، پلتفرم، نوع کاربری و خیلی پارامترهای دیگر. معمولا نمیشنویم که فلان معماری خوبه یا بده، بلکه میشنویم آیا این معماری مناسب این نرمافزار هست یا نه. مثلا من فکر نمیکنم لازم باشه من با دستم چیزی رو مزه کنم و اگر شور بود پالسی به صورتم بفرستم تا حالت شوری به خودش بگیره. همینطور نرم افزاری که قراره تمام طول عمرش یک کار ساده و ثابت رو انجام بده احتمالا نیازی نیست که معماری پیچیدهای داشته باشه. ولی اگر روزی بر اساس نیازی جدید (مثلا تغییر پلتفرم) قرار بشه کاربری اون نرم افزار پیشرفت کنه، شاید معماری قبل جوابگوی تغییرات نباشه و قبل از هر چیزی، نیاز به یک سری تغییرات بنیادی باشه.
در این یادداشت نگاهی میاندازیم به مدل عملکرد مغز انسان، بازوی اختاپوس و هوش مصنوعی. اینکه چه شباهت و تفاوتی بین مغز ما و بازوی اختاپوس هست و بررسی و مطالعهی این مسیر چطوری ما رو به هوش مصنوعی میرسونه.
مغز انسان
پاس کاری اطلاعات در بدن انسان احتمالا شبیه اینه که ما با یک مغز و تعداد خیلی زیادی سنسور طرف هستیم. سنسورها در ساده ترین فرمشون پالس یا طیفی از پالس ها رو میفرستن بالا. اونجا اطلاعات پردازش میشن و مثلا با الگوریتمهای خیلی پیچیدهای دیتا به سنسورهای اندام بدن ارسال میشن. چیزی شبیه به این الگو در معماری نرم افزار و سخت افزار دیده میشه. به نحوی که یک لایه اصلی (Core) وظیفه انجام پردازش اطلاعات رو داره و تعدادی ماژول با طیفی از dummy/intelligent بودن عمل و عکس العملشون بر اساس اطلاعاتی هست که به/از اون لایه ارسال یا دریافت میکنن.
بازوی اختاپوس
حالا چیزی که ما اخیرا یاد گرفتیم اینه که شرایط برای اختاپوسها کمی متفاوته. هر بازوی اختاپوس ماژول تصمیم گیرنده خودش رو داره و سیستم کنترل مرکزی به عنوان یک هاب برای پاس کاری دیتا عمل می کنه. اگر بازوی اختاپوس از بدنش جدا بشه سه تا اتفاق می افته. اول این که بازوی جدا شده همچنان به محرک خارجی عکس العمل نشون میده و دوم این که بازوهای کناری، از تغییرات اخیر مطلع هستن. از کجا؟ از سیستم کنترل مرکزی و سوم این که این اتفاق خطرناکی برای اختاپوس نیست و بازوی جدید به تدریج ساخته میشه. این چیدمان هم مثل قبلی در دنیای تکنولوژی دیده میشه. به نحوی که هر ماژول مغز تصمیم گیرنده خودش رو داره و برای تبادل دیتا بین ماژولها یک هسته اصلی در نظر گرفته شده که اونم از آخرین وضعیت هر ماژول با خبره و در صورت تغییر ( کنده شدن یک بازو، نرسیدن انرژی، پر شدن حافظه و…) ماژول های درگیر قضیه رو با خبر میکنه.
هوش مصنوعی
برای پیاده سازی AI مغز انسان الگوی پیشنهادی خوبیه. در واقع شباهتهایی بین مغز انسان و CPU وجود داره. برای مثال هر دو اطلاعات رو از حافظه استخراج میکنن، اون رو پردازش میکنن و تصمیمگیری میکنن و نهایتا اطلاعات پردازش شده رو تو حافظه ذخیره میکنن. اما الگوی مغز انسان دو تا ایراد داره. اول این که بیشتر زمان CPU خرج مدیریت زنجیره کوپروسسورها میشه. دوم این که پروسسورها تا تسک جدیدی بهشون داده نشه idle میمونن.
در ICAART 2017 آزمایشی با عنوان اختاپوس، مدلی برای هوش مصنوعی ارائه شد. در این آزمایش با نگاه پروسسینگ سیستمی به ساختار بازوهای اختاپوس، الگویی جدید برای AI ارائه شده. این امیدواری هست که اون دو تا ایراد ساختاری بر اساس مغز انسان رو برطرف کنه.
بر پایه بازوهای اختاپوس این الگو ۵ قانون اساسی داره:
– هر پروسسور باید از حضور و تواناییهای پروسسورهای کناری با خبر باشه.
– هر پروسسور باید به عنوان Master عمل کنه (تو الگوی مغز انسان، کوپروسسورها Slave هستن)
– با تموم شدن یک تسک پروسسورها باید خودشون تسک بعدی رو پیدا کنن
– سیستم باید بتونه رشد کنه. به عبارتی اضافه کردن پروسسور به سیستم باید آسون باشه (اختاپوس بازوی از دست داده رو دوباره میسازه)
– در صورت خروج یک پروسسور، باقی پروسسورها باید تسکهای باقیمانده رو انجام بدن.
در این مطالعه به آگاهی سیستم هم پرداخته شده و نهایتا این دو الگو با هم مقایسه شدن. نتیجه مقایسه این دو الگو رو میتونید توی مقالهی اختاپوس به عنوان الگویی برای هوش مصنوعی ببینید.
حرف آخر
وقتی از یک واحد هوشمند صحبت میکنیم خوبه بدونیم که دقیقا داریم از چی حرف میزنیم. در واقع واحد هوشمند، مجموعهای از ماژولهای محاسبهگره. این ماژولهای محاسبهگر طی یک سلسله مراتب یا معماری کنار هم قرار گرفتن و هوش لازم برای عمل و عکس العمل مناسب تحت یک پلتفرمی رو ایجاد کردن. مثل چی؟ مثل انسان روی زمین، اختاپوس در آب، تسلا در جاده، توئیتر روی گوشی و… هر کدوم از اینها میشن یک واحد هوشمند.
قبلا هم گفتیم که هر کدام از این واحدهای هوشمند، بسته به پارامترهایی، چینش متفاوتی از پروسسورها رو خواهند داشت. سوال اینجاست که اگر پلتفرم ثابت باشد (انسان به مریخ نرود، اختاپوس پرواز نکند، تسلا قایق نشود و چیپست توئیتر در مغز نصب نشود) هدف از پیشرفت و ارائه نسخه جدید چیه؟ نوزاد امروز با نوزاد قرن پیش چه تفاوتی داره؟ نوزاد قرن بعد باید توانایی زندگی در گرمای شدید رو داشته باشه یا باید بتونه تو آب زندگی کنه یا باید بتونه هوای سیاره های دیگه رو تنفس کنه؟ موضوع Global warming تلاشیه برای جلوگیری از تغییر پلتفرم؟ نمی دونم!
با سلام،
قبل از هر چیز سپاسگزارم از محتوا و مطالب جالبی که ارائه می کنید. لطفا وقتی که به زبان فارسی مطلبی رو می نویسید سعی کنید تا جای ممکن از کلمات فارسی استفاده کنید، قبول دارم که برای خیلی از کلمات معادل فارسی مناسب وجود نداره ولی استفاده از ” تسک ” دیگه هیچ توجیه ای نداره.
من خودم همیشه سعی میکنم وقتی فارسی صحبت میکنم یا می نویسم همه زبان ها رو با هم قاطی نکنم.