هر آنچه که باید در مورد هوش مصنوعی و شبکه عصبی بدانید
هوش مصنوعی یکی از پیچیدهترین و ناآشناترین سر فصل های مطرح این روزها است. افرادی مثل ایلان ماسک (Elon Musk) مدتهاست از خطر نابودی انسان توسط روباتها صحبت به میان آوردهاند، این در حالی است که تعداد زیادی از متخصصین بر این باور هستند که هوش مصنوعی در مراحل اولیه است و هیچوقت به خطری برای انسانها تبدیل نخواهد شد.
اینکه کدام عقیده در رابطه با هوش مصنوعی محتملتر باشد موضوعی است که نمیتوان جواب قاطعی حداقل در حال حاضر برای آن پیدا کرد. برای آشنایی با این موضوع بهترین مکان برای شروع یادگیری عمیق (Deep Learning) است.
هوش مصنوعی نقطه عطف جامعه تکنولوژی جهان امروز است و این محبوبیت تماما مدیون پیشرفت روزافزون یادگیری عمیق است. پیشرفت مباحثی از جمله بینایی کامپیوتر (Computer Vision) و پردازش زبان ها دو کاربرد مهم هوش مصنوعی هستند که میتوان هر دوی اینها را مدیون شبکه عصبی دانست.
لازم به ذکر است که تکنیکهای یادگیری عمیق بر اساس الگوبرداری از شبکه عصبی مغز انسان و حیوانات دیگر به دست آمدهاند.
شبکه عصبی چیست؟
دانشمندان هوش مصنوعی بر این عقیدهاند که مغز یک موجود زنده اطلاعات را توسط یک شبکه عصبی بیولوژیکی پردازش میکند. مغز انسان به اندازه ۱۰۰ بیلیون پیوندگاه نرونی (synapses) دارد که به هنگام فعالیت الگوهای خاصی را تشکیل میدهند. زمانی که یک شخص به یک پدیده خاص فکر میکند، چیزی را به خاطر میآورد یا با یکی از حسهای پنجگانهاش تجربهای به دست میآورد یک الگوی خاص عصبی در ذهنش شکل میگیرد.
دوران کودکی خود را در نظر بگیرید، زمانی که حروف را به شما یاد دادند بارها مجبور بودید برای خواندن یک کلمه آن را به صورت شمرده و با صدای بلند برای خود تکرار کنید تا مغز جوان شما بتواند آن کلمه را بشنود و در نهایت بعد از تکرار فراوان ثبت کند. اما زمانی که به عنوان مثال کلمه گربه را بارها شنیدید دیگر نیازی به تکرار شمرده و با صدای بلند نداشتید. در این مرحله به قسمتی از مغز خود دسترسی داشتید که بیشتر به حافظه مربوط بوده تا حل مسئله، به این ترتیب مجموعه دیگری از پیوندگاه نرونی موجود در مغز شما فعال شدند که کلمه گربه را میشناختند.
در حوزه هوش مصنوعی و به طور دقیقتر در بخش یادگیری عمیق ، یک شبکه عصبی متشکل از لایههای متعدد تعریف میشود که مانند پیوندگاه نرونی مغز عمل میکند. محققان برای اینکه عکس یک گربه را برای کامپیوتر تعریف کنند تعداد زیادی از عکسهای گوناگون گربهها را به کامپیوتر میخورانند، در نهایت شبکه عصبی تمامی بخشهای مشابه را در میان این تصاویر درون خود نگاه میدارد تا در صورت مشاهده یک تصویر جدید بتواند آن را بفهمد.
دانشمندان از شبکه عصبی برای یادگیری ماشین (machine learning) استفاده میکنند؛ به این ترتیب کامپیوترها میتوانند بصورت مستقل و بدون کمک انسان کارها را انجام دهند.
به چند مثال ساده در رابطه با شبکه های عصبی توجه کنید:
- شبکه عصبی میتواند تصاویر تیره را بگیرد و آنها را روشن میکند.
- شبکه عصبی میتواند با استفاده از MRI مغز شما بفهمد که به چه فکر میکنید.
- این یکی Super Mario بازی میکند.
- در نهایت با شبکه عصبی آشنا شوید که خود را تکرار میکند.
همانطور که میبینید شبکه عصبی میتواند مسائل گوناگونی را حل کند. برای اینکه با کارکرد بهتر این شبکه ها آشنا شوید و بدانید که یادگیری کامپیوتر چگونه محقق میشود میخواهیم نگاه دقیقتری به سه نوع ساده از شبکه های عصبی بیاندازیم.
در حوزه هوش مصنوعی میتوان نمونههای گوناگونی از یادگیری ماشین و شبکه های عصبی را معرفی کرد. در این مقاله تمرکز ما بر سه شاخه GANs، CNNs و RNNs خواهد بود:
Generative Adversarial networks (GANs)
در سال ۲۰۱۴ یکی از کارمندان بخش هوش مصنوعی گوگل GAN را اختراع میکند؛ GAN یک شبکه عصبی متشکل از دو بخش متضاد است، یک تولید کننده و یک مهاجم، این دو بخش با یکدیگر در جنگ هستند تا اینکه تولید کننده بتواند پیروز میدان گردد. اگر میخواهید یک هوش مصنوعی بسازید تا بتواند از آثار هنری مثل کارهای پیکاسو تقلید کند میتوانید تعدادی از آثار این هنرمند را به یک GAN تزریق کنید.
یک بخش شبکه نقاشیهای جدید میسازد و قصدش گول زدن بخش مهاجم است، تولید کننده یک نقاشی جدید پیشنهاد میکند و کار بخش مهاجم تشخیص واقعی بودن این نقاشی است، این فرآیند تا زمانی که مهاجم نقاشی تولید کننده را از نقاشی پیکاسو تشخیص ندهد ادامه پیدا میکند، در واقع این روند تا زمانی ادامه پیدا میکند که هوش مصنوعی بتواند خود را گول بزند.
Convolutional Neural Networks (CNNs)
تئوری شبکه های عصبی کانولوشنال به سال ۱۹۴۰ بر میگردد اما با توجه به پیشرفت روزافزون سخت افزار و بهینه شدن الگوریتمهای مورد استفاده، تا به امروز هوش مصنوعی بهرهای از این تکنولوژی نبرده بود. برخلاف GANs که در آن با یک مهاجم روبهرو بودیم در CNNs لایههای گوناگونی وجود دارند که اطلاعات را به صورت طبقهبندی شده درون خود ذخیره میکنند. این نمونه از شبکه های عصبی برای تشخیص تصویر و پردازش زبان مورد استفاده قرار میگیرد.
به عنوان مثال اگر یک بیلیون ساعت ویدئو در دست دارید میتوانید آن را به یک CNN وارد کنید تا این الگوریتم با استفاده از آنالیز فریمها دریابد که در این ویدئو چه خبر است. هوش مصنوعی میتواند ماشین، درخت، علامتهای راهنمایی و … را با توجه به اطلاعات از پیش تعریف شده، از درون ویدئو تشخیص دهد.
یکی از مهمترین کاربردهای CNN کمکرسانی به پزشکان در تشخیص بیماریها است.
Recurrent Neural Networks (RNNs)
در نهایت نگاهی به RNN میاندازیم. این الگوریتم برای یک هوش مصنوعی کاربرد دارد که با استفاده از بافت تعریف شده، ورودی را بشناسد.
برای فهم بهتر RNN بیایید یک هوش مصنوعی را تصور کنیم که بر اساس ورودی انسان بتواند یک قطعه موسیقی را بسازد. اگر نت اول را برای آن بنوازید این الگوریتم نت بعد را پیشبینی خواهد کرد، با زدن نت ورودی جدید توسط شما این الگوریتم بیشتر و بیشتر در عمق موسیقی پیش میرود و در نهایت با استفاده از مقادیر ورودی مشخص یک قطعه کامل موسیقی را به شما تحویل میدهد، در واقع RNN به طور پیوسته خود را بر اساس ورودیها بهروز میکند. کلمه لاتین Recurrent به معنی تکرار نیز بر همین اساس در آغاز این الگوریتم هوش مصنوعی قرار گرفته است.