کاربردهای شبکه‌های عصبی، یادگیری ماشین و هوش مصنوعی

کیه که اخبار روز رو مرور کنه و چیزی از هوش مصنوعی نبینه یا نشنفه؟ الان خیلی ها میگن من  :))) نه جدی! غولهای تکنولوژی که سهله، سرویس‌هایی مثل ToDoList (نوه غول) هم از هوش مصنوعی برای اینکه تخمین بزنن فلان تسک رو چقدره می‌تونیم تموم کنیم استفاده میکنن. از این بارزتر اصلن، موبایلهای اسمارت.

چند وقت پیش خوندم که Deep Mind گوگل و دانشگاه آکسفورد با استفاده از هوش مصنوعی یه ربات ساختن که می‌تونه لب‌خوانی کنه و تو این مورد از انسانها سرتره.  گوگل و یاهو از شبکه‌های عصبی برای اپلیکیشن ترجمه‌شون استفاده می‌کنن. و مثال دیگه اینکه گوگل از یادگیری ماشین برای پیشنهاد آهنگ تو play list استفاده می‌کنه و مثالای دیگه. خوندن خبرهای اینجوری باعث شد که بخوام در موردش تو وب‌سایتم یه پست بنویسم 🙂

شبکه عصبی مصنوعی یا همون شبکه عصبی – Artificial neural network

شبکه عصبی مصنوعی یا همون شبکه عصبی، یه مدل از یادگیری هست که از رفتار سیناپس‌های مغز تقلید می‌کنه. حالا سیناپس چیه ؟ مغز انسان چندین میلیارد نورون داره که توانایی ارتباط با هم رو دارن، ولی سیناپس ها (Synapse) هستن که بین نورون‌ها (Neuron) ارتباط رو برقرار می‌کنن. نورون هم همون سلولهای عصبی مغز هستن.

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

عکس زیر رو ببینین. داده‌های ورودی یا از خارج شبکه یا از یه نورون به نورون دیگه داده میشن. نورونها رو داده‌ها یه سری پردازش انجام ميدن و ميدنش به نورونی که باید. و این کارو تا زمانی انجام می‌دن که به نتیجه برسن و خروجی رو بدن.

کاربردهای شبکه‌های عصبی، یادگیری ماشین و هوش مصنوعی
منبع عکس : http://futurehumanevolution.com/artificial-intelligence-future-human-evolution/artificial-neural-networks

مثال دیگه سرویس های ترجمه گوگل هستند که برای ترجمه بهتر از شبکه عصبی استفاده می‌کنن و هر بار که از طریق یه عامل خارجی (منظورم انسان هست اینجا) بهش ترجمه صحیح یا درست داده میشه، یاد میگیرن و سری بعد ازش استفاده می‌کنن. یکی از کارایی‌های دیگه شبکه عصبی تو تشخیص عکس هست . این لینک رو ببینین: https://aiexperiments.withgoogle.com/quick-draw

یادگیری ماشین – Machine learning

یه مفهوم خیلی گسترده هست و شامل هرچیزی میشه که باعث شه ماشین خودش یاد بگیره تا کارشو بهتر انجام بده. چی نوشتم :))) کلن این میشه که هر عملیاتی که درش باعث میشه ماشین یا همون دستگاه کاری رو تکرار کنه و از طریق همین تکرار و تجربه بیشتر یاد بگیره و کاراییش بره بالا، میشه یادگیری ماشین. شبکه عصبی هم زیرمجموعه‌اش هست.

یه نمونه‌ دیگه‌ای از یادگیری ماشین، یادگیری تقویتی (Reinforcement learning) هستش. تو مدل یادگیری تقویتی بر اساس خروجی و امتیازی که حاصل شده ماشین یاد میگیره. برا مثال کامپیوتر سر بازی شطرنج با انسان از این مدل یادگیری استفاده ميکنه. فرضن کامپیوتر تو یه بازی میبره، یاد میگیره که بر اساس کدوم حرکتها برده.  اینجوری طی میلیونها بازی یاد میگیره چه حرکتهایی منجر به بردش میشن و ازشون استفاده می‌کنه.

کاربردهای شبکه‌های عصبی، یادگیری ماشین و هوش مصنوعی
منبع عکس : https://www.toptal.com/machine-learning/machine-learning-theory-an-introductory-primer

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

یه مثال دیگه این بازیه که اسمش آکیناتور هست.( http://en.akinator.com/ ) مثل بازیهای بیست سوالی هستش. اینطوری کار میکنه که شما یه شخصیتی رو در نظر میگیرین چه واقعی چه کارتونی و … . بعدش ازتون سوال پرسیده میشه و شما بهشون جواب می‌دین. و بر حسب جوابهاتون این آکیناتور اون شخصیت رو پیدا میکنه. ممکنه درست پیدا کرده باشه که اونوقت شما میگین آره همینه و این خودش رو تقویت میکنه و یا ممکنه اشتباه جواب داده باشه که شما میگین نه اشتباه هست و ازتون می‌خواد اسم شخصیتی که مد نظرتون بود رو بگید تا یاد بگیره و خودش رو تقویت کنه.

خب آکیناتور چطوری کار میکنه؟ دو تا جدول داریم یکی name و یکی description. یه کاغذ بردارین و چند تا شخصیت رو لیست کنین تو جدول name. و خصوصیات و ویژگیها رو لیست کنین تو جدول description. مثلا :  ورزشکار، زن، بازیگر، انیمه، ژاپن، مرد، خواننده، آسیا، اروپا، رنگین، جانور، پشمالو و سبیل‌دار، رییس جمهور، رقاص، دانشمند … . حالا ویژگی‌ها رو به شخصیت‌ها لینک کنین. خب حالا بازی شروع میشه. میگیم یه شخصیت در نظر گرفتیم و سوال اول نسبت به خصوصیت‌ها پرسیده میشه و جدول شخصیت‌ها کم کم فیلتر میشه تا جواب پیدا شه. اگرم اون شخصیت نبود به جدول شخصیتها اضافه میشه.  خب این روش ساده بود که فقط روشن کنه این گیم چطور کار می‌کنه.

هوش مصنوعی – Artificial intelligence

گفتیم که شبکه عصبی مصنوعی یه نوعی از یادگیری ماشین هست. خب یادگیری ماشین هم نوعی از هوش مصنوعیه. کاربردهای هوش مصنوعی خیلی گسترده است. از همین اپلیکیشن‌های رو موبایلها که با چهره احراز هویت می‌کنن یا از طریق صدا دستور رو اجرا می‌کنن بگیر تا بیا برس به ربات‌هایی که لب‌خوانی ميکنن و یا قادرن خیلی کارایی که انسانها می‌کنن رو انجام بدن.  اما خب خیلی فرق دارن. تو اپلیکیشن‌ها و موبایلها یه هوش مصنوعی خیلی ضعیفی استفاده می‌شه که باعث میشه بهشون بگیم موبایلهای هوشمند و ازشون انتظار نداریم مثل انسان رفتار کنن. مفهوم دیگه‌ای هم هست به اسم artificial general intelligence که به هوش مصنوعی‌ای اطلاق میشه که قادره هرکاری که انسان انجام می‌ده رو انجام بده، هر چند هنوز همچین چیزی وجود نداره. خواستم گستردگیه هوش مصنوعی رو نشون بدم.

کاربردهای شبکه‌های عصبی، یادگیری ماشین و هوش مصنوعی
منبع عکس : https://www.inbenta.com/en/technology/artificial-intelligence

خب خیلی سطحی نوشتم چون خودمم هنوز خیلی بیشتر از این نخوندم و اصلنم هدفم آموزش و این چیزا نیست. صرفن یه آشنایی مختصر تا هر کسی دلش خواست بره دنبالش.

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