هوش مصنوعی -شبکه‌های عصبی-عملکرد و ساختار شبکه-ابراهیم خلیلی

هوش مصنوعی -شبکه‌های عصبی-عملکرد و ساختار شبکه-ابراهیم خلیلی هوش مصنوعی -شبکه‌های عصبی-عملکرد و ساختار شبکه-ابراهیم خلیلی

هوش مصنوعی -شبکه‌های عصبی-عملکرد و ساختار شبکه-ابراهیم خلیلی

هوش مصنوعی -شبکه‌های عصبی-عملکرد و ساختار شبکه-ابراهیم خلیلی

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

شبکه های عصبی – عملکرد و ساختار شبکه

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

بزارید با یک مثال بریم سر اصل مطلب ! در شکل زیر، یک سری عکس با کیفیت پایین )28*28 پیکسل( از عدد شماره "3" می بینید. برای ذهن و مغز ما، تشخیص اینکه این اعداد 3 هستن، هیچ چالشی نداره و یک مسئله بدیهی به نظر میاد! اما تعجب می کنید اگه بدونید که برای یک ماشین، تشخیص این تصاویر به عنوان عدد سه ، یه چالش بزرگ محسوب میشه و باید کلی محاسبه انجام بده تا بتونه تشخیص درستی داشته باشه! اینجاست که میفهمیم چقدر انسان مغر و ذهن خفنی داره! 

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

خب برگردیم سراغ مثال اعدادمون؛  گفتیم که تصاویر عدد 3، کیفیت 28 در 28 پیکسل رو داشتند. خب فرض کنید ما این عکس رو به 784 که حاصلضرب 24 در 24 هست، قسمت تقسیم کنیم و به جای هر قسمت، یک نورون قرار میدیم. مثل شکل زیر :

نورون که یادتون بود چی بود؟! گفتیم که نورون یک عنصر پردازشی هست که محاسبات و پردازش های لازم رو انجام میده و نتیجه این پردازش های یک عدد بین 0 تا 1 هستش. پس میشه گفت نورون ها یک سری اعداد و ضریب هستند، اما نه اعداد اتفاقی. بلکه اعدادی که از تجزیه و تحلیل و محاسبه توسط ماشین به دست اومدند. در شکل بالا، 784 نورون وجود داره که ماشین بر حسب سفید بودن یا سیاه بودن اونها، اعدادی رو بین 0 تا یک بهشون اختصاص میده . نورون های تماما سیاه، مقدار صفر و نورون های تماما سفید، مقدار یک رو به خودشون تخصیص دادند. نورون هایی هم که رنگ خاکستری دارند، در بازه ای بین این اعداد قرار دارند .

این نورون ها، همون نورون های شبکه های عصبی رو تشکیل میدهند. فرض کنید 728 نورون  رو به صورت عمودی زیر هم رسم کنیم؛ این نورون ها، لایه اول در شبکه های عصبی رو تشکیل میدهند. این لایه در شکل زیر مشخص هست :

اگه به شکل بالا توجه کنید، میبینید که لایه اول ما همون 728 قسمت تصویرمون بودند که به نورون تبدیل شدند. دو لایه میانی دیگه رو مشاهده میکنید که در شبکه های عصبی، به (لایه های پنهان) معروف هستند. تعداد این لایه ها در شبکه های عصبی خیلی بیشتر از این دو لایه هست و اینجا صرفا جهت توضیح راحت تر، از دو لایه شامل 16 نورون استفاده شده . توضیح در مورد لایه های پنهان رو به بعد موکول میکنیم. 

لایه آخر، لایه خروجی ما بوده که اعداد 0 تا 9 رو تشکیل میده. نتیجه این تارها و شبکه های در هم تنیده، در نهایت اینه که ماشین، عدد تصویر رو تشخیص بده . برای درک بهتر این شبکه، این نورون ها رو شبیه یک سری لامپ کوچک در نظر بگیرد؛ هر زمان که مقدار نورون ها از یه عدد مبنایی بالاتر باشه، اون نورون روشن میشه و میتونه مقادیری رو به لایه بعدی انتقال بده. به این عدد مبنا، Activation   و یا مقدار فعال سازی گفته می شه. این عدد میتونه هر عددی بین 0 تا 1 باشه، و تعیین اون بستگی به طراح این شبکه ها داره. در مثالی که ما بررسی میکنیم، فرض کنید که که میزان فعال سازیمون مساوی 0.58 باشه . یعنی هر زمان، مقدار یک نورون بالاتر از 0.58 باشه، اون نورون روشن و فعال میشه و میتونه مقدارش رو به لایه بعدی انتقال بده. 

لایه های پنهان، هر کدوم برای خودشون ضرایب و معیارهایی دارند . این لایه ها، نسب به اعداد ورودی، از لایه اول،  بنا به معیارهایی که دارند، روشن میشن و یا خاموش میمونند. خب این معیارها چی هستند؟ بزارید همین معیارها رو هم به شکل ساده در قالب همین مثال ساده توضیح بدیم. به تصویر زیر نگاه کنید: 

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

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

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

منابع : 

https://www.youtube.com/watch?v=aircAruvnKk

https://www.upgrad.com/blog/neural-network-tutorial-step-by-step-guide-for-beginners/

 

مقاله یازدهم هوش مصنوعی  

دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را  دنبال کنید.

همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

Menu