چگونه شبکه‌های عصبی مصنوعی دنیا را تغییر خواهند داد؟

چهارشنبه ۲۳ تیر ۱۳۹۵ - ۲۲:۰۰
مطالعه 9 دقیقه
یادگیریِ ماشین، به نقطه‌ی تمرکز بزرگترین شرکت‌های فناوری تبدیل شده‌ است و شبکه‌های عصبی مصنوعی به دنبال شبیه‌سازی مغز انسان هستند. در این مقاله به معرفی این فناوری خواهیم پرداخت. با زومیت همراه باشید.
تبلیغات

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

امروزه هرچند، کامپیوترها به بسیاری از این توانایی‌ها (و حتی بیش از آن) مجهز شده‌اند. آیا پیش‌بینی‌ها درباره‌ی مرز توانایی‌های کامپیوتر بدبینانه بوده‌اند؟ می‌توان گفت که نه. برای دستیابی به چنین توانایی‌هایی، دانشمندان وادار شده‌اند که یک «گونه‌ی» کاملا نو از کامپیوترها را تعریف کنند. نوعی از رایانه‌ها که بر پایه‌ی ساختار مغز فعالیت می‌کنند. این شبکه‌های عصبی مصنوعی (ANNs) تنها به صورت نرم‌افزاری و به شکل یک شبیه‌سازی روی کامپیوترها قابل اجرا هستند؛ هرچند اتفاقی که در درون این شبیه‌سازی‌ها می‌افتد بسیار متفاوت با تعاریف اساسی کامپیوترهای کلاسیک است.

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

Artificial neural networks
کپی لینک

شبکه‌ی عصبی مصنوعی چیست؟

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

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

یک شبکه‌ی عصبی «مصنوعی» قرار است به همین شکل عمل کند؛ هرچند به وسیله‌ی نرم‌افزار، شبیه‌سازی خواهد شد. به این معنی که ما از یک کامپیوتر دیجیتال استفاده خواهیم کرد تا یک شبیه‌سازی از تعداد زیادی برنامه‌ی کوچک و متصل به هم ایجاد کنیم که هر یک در نقش نورون‌های مغز عمل خواهند کرد. دیتا به ANN وارد می‌شود و توسط اولین نورون عملیات‌های مشخصی روی آن انجام می‌شود. این عملیات‌ها با توجه به برنامه‌نویسی نورون اول تعیین خواهند شد. کدنویسیِ هر نورون مشخص می‌کند که هر در مقابل انواع مختلف دیتا چه عکس‌العملی‌ نشان دهد. دیتای اولیه سپس به نورون بعدی خواهد رسید؛ که احتمالا برنامه‌نویسی متفاوتی دارد. هر دیتا از تعدادی از لایه‌هایی از این جنس عبور می‌کند تا پس از عبور از تمام نورون‌ها، به اطلاعات نهایی تبدیل شود.

پروسه‌ی کلی تبدیل اطلاعات ورودی به اطلاعات خروجی در شبکه‌های عصبی مصنوعی، نتیجه‌ی مستقیمی از برنامه‌ریزی هر نورون است که در راه دیتاها قرار می‌گیرد. در کنار این، شرایط اولیه‌ی هر دیتا نیز نقش تعیین‌کننده‌ای در نتیجه نهایی خواهد داشت. در مغز «شرایط اولیه» سیگنال‌های عصبی متفاوتی هستند که از ستون فقرات یا سایر نقاط بدن به مغز منتقل می‌شوند. در شبکه‌های مصنوعی (ANNs) این اطلاعات اولیه هر چیزی هستند که ما به رایانه وارد می‌کنیم. از نتایجِ الگوریتم‌های جستجو گرفته تا شماره‌های تصادفی و کلماتی که توسط محقق‌ها نگارش شده‌اند.

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

Artificial neural networks
کپی لینک

ANNها چگونه کار می‌کنند؟

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

با این وجود هنوز یک مزیت مهم در کار کردن با تعداد زیادی عملگر ساده و کوچک در مقابل یک عملگر بزرگ و پیچیده وجود دارد: عملگرهای کوچک می‌توانند خود را تصحیح کنند. پیش از این نسخه‌هایی از نرم‌افزارهای روزمره به شکلی ساخته شده‌اند که می‌توانند خود را ویرایش کنند؛ اما این شبکه‌های عصبی مصنوعی هستند که مفهوم «یادگیریِ ماشین» را به ارتفاع جدیدی هدایت کرده‌اند.

برای توصیف شبکه‌های عصبی مصنوعی می‌توان از عبارت «غیرقابل پیشبینی»‌ استفاده کرد. به این دلیل که هریک از دیتاها احتمال آماری خاصی برای وارد شدن به یک نورون مشخص دارند. به عنوان مثال ۴۰ درصد احتمال دارد که خروجی از نوع «الف» به «این» نورون برسد؛ و ۶۰ درصد احتمال دارد که به نورونی «دیگر» انتقال یابد. می‌شود تصور کرد که این عدم اطمینان، همزمان با بزرگتر و پیچیده‌تر شدن شبکه‌ی عصبی، بسیار گسترش خواهد یافت؛ و به جایی می‌رسد که وارد کردن چندباره‌ی یک دیتای ابتدایی یکسان ممکن است به خروجی‌های متفاوتی منجر شود؛ یا از آن مهم‌تر، این دیتا از راه‌های مختلفی به یک خروجی یکسان ختم شود.

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

هرچه شبکه‌ی پیچیده‌تری در دست داشته باشیم؛ می‌توانیم به دنبال نتایج پیچیده‌تر برویم. نتایجی مانند تشخیص درست گونه‌ی حیوانات در نتایج جستجوی گوگل. در پردازش و دسته‌بندی تصاویر قدم‌ها بسیار ریزبینانه برداشته می‌شوند. این روش به گونه‌ای غربالگری مشابه نظریه‌ی فرگشت بر پایه‌ی متغییرهای تصادفی و غیرتصادفی وابسته خواهد بود؛ که پروسه‌ی تشخیصی را فراهم کند که ANNها توانایی دسترسی مستقیم به آن را ندارند.

شبکه‌هایی که تا پیش از این غیرقابل پیشبینی بوده‌اند، پس از اینکه به وسیله‌ی الگریتم‌های یادگیری، خود را برای دستیابی به هدف‌های مورد نظر بازسازی کنند؛ به شبکه‌های قابل پیشبینی تبدیل خواهند شد. به این کار «تمرین‌دادنِ» ANNها می‌گوییم. می‌توان یک شبکه‌ی عصبی با معرفی مثال‌هایی از تابع مطلوب تمرین داد. شبکه با توجه به نتایج به دست آمده از هر تمرین خود را تصحیح خواهد کرد. در حالت کلی، هرچه بیشتر یک شبکه‌ی عصبی را تمرین دهید؛ نتایج بهتری دریافت خواهید کرد.

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

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

در قرن پیش رو تمرکز انسان از حل مشکلات جدید؛ به نوشتن برنامه‌ای برای حل این مشکلات متمایل خواهد شد.

Artificial neural networks
کپی لینک

ANN چه توانایی‌هایی دارد؟

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

مهم‌ترین دلیل برای توجه به شبکه‌های عصبی مصنوعی (و مهم‌تر از آن سرمایه‌گذاری بر روی آن‌ها) تواناییشان در حل مسئله است. گوگل از ANNها برای یافتن پیشنهادهای بهتر در «watch next» ویدیوهای یوتوب استفاده می‌کند. دانشمندان در ماشین برخورد دهنده ذراتِ «Large Hadron Collider» از شبکه‌های عصبی برای غربال نتایج برخوردها و جداسازی تاثیر یک ذره از برخوردهای بزرگ‌تر، استفاده می‌کنند. شرکت‌های پست از آن‌ها برای کوتاه‌کردن مسیر ارسال در مواقع پراکندگی مقصدها بهره می‌برد. شرکت‌های کارت‌ اعتباری برای تشخیص انتقال‌های جعلی از شبکه‌های عصبی استفاده می‌کنند. این شبکه‌ها امروزه حتی برای تیم‌های کوچک و اشخاص حقیقی نیز قابل دسترسی هستند. آمازون، متامایند و بسیاری شرکت‌های دیگر سرویس‌های یادگیری ماشین را به شکلی از پیش آماده‌ و با قیمت‌های بسیار پایین در اختیار خریداران می‌گذارند.

با تمام این‌ها، بهترین روزهای شبکه‌های عصبی تازه آغاز شده است. گوگا در حال تمرین دادن الگریتمِ آنالیز تصویر خود با تصاویر بسیار زیادی از حیوانات  است؛ و حالا با دقت بسیار خوبی می‌توانند سگ‌ها و گربه‌های خانگی را در تصاویر معمول طبقه‌بندی کنند. شبیه‌سازی صدا و ترجمه تا اندازه‌ای پیشرفت کرده است که به زودی می‌توانیم در آن واحد گفتگوهای دو فرد که به زبان‌های مختلف صحبت می‌کنند را ترجمه و شبیه‌سازی کنیم. و البته سه نمونه‌ی بسیار معروف از استفاده‌ی شرکت‌های بزرگ از یادگیری ماشین در محصولات خود: «کورتانا»،‌ «Siri» و «Google Now» را نباید از یاد ببریم.

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

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

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

مقاله رو دوست داشتی؟
نظرت چیه؟
داغ‌ترین مطالب روز
تبلیغات

نظرات