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

هوش مصنوعی-شبکه‌های عصبی-شبکه‌های عصبی غیر خطی -ابراهیم خلیلی هوش مصنوعی-شبکه‌های عصبی-شبکه‌های عصبی غیر خطی -ابراهیم خلیلی

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


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

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

پس انتشار خطا در شبکه های عصبی

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

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

قبلا هم خدمتتون توضیح دادیم که هوش مصنوعیArtificial Intelligence  اصطلاحی هست برای اون دسته از ماشین هایی که می تونن داده ها رو تفسیر کنند، از اونها یاد بگیرن و الگوسازی کنند و در نهایت با استفاده از این الگوسازی ها کارهایی که انسان قادر به انجامش هست رو انجام بدند. اصطلاح یادگیری ماشینی و یا Machine learning  شاخه از علم هوش مصنوعی رو در بر میگیره که در اون بیشتر به آموزش ماشین برای یادگیری به صورت تنها و بدون نظارت و تداخل بیش از حد انسان انجام بگیره. اما هسته همه این عملکرد های چیه؟ این روند یادگیری چطور صورت میگیره؟ بله درست حدس زدید. شبکه های عصبی! در مقالات هفته های قبل توضیح دادیم که این شبکه ها به نوعی هسته مرکزی و مغز هوش مصنوعی و یادگیری ماشینی هست و به وسیله این شبکه ها میشه به ماشین آموزش داد. ما در مقالات جلسات قبلمون ابتدا با ساختار این شبکه ها آشنا شدیم، گفتیم که از سه لایه تشکیل شدند. بعد از توابع فعال ساز در این شبکه ها صحبت کردیم. ساختارهای مختلف شبکه های عصبی از لحاظ خطی و غیر خطی مورد بررسیمون قرار گرفت در مقاله هفته قبل تونستیم با استفاده از ترکیب ساختارهای خطی، بتونیم یک شبکه عصبی دسته بندی غیر خطی رو تنظیم و طراحی کنیم. 

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

برای مثال در شکل بالا میبیند که تصویر یک اتوموبیل توسط دوربین ها کنترل ترافیک ضبط شده! این تصویر به تعداد زیادی پیکسل تقسیم بندی شده و هر پیکسل به عنوان ورودی به شبکه عصبی وارد میشه . در تصویر بالا، ورودی های  X1 , X2و X3 به عنوان نماینده ای از این پیکسل ها نشون داده شدن . پس نورون های سبز ما همون لایه ورودی ما هستن. سپس ورودی هامون از طریق ضرایب مختلف، وارد لایه های پنهان میشن . این داده ها در بخش لایه های پنهان با همدیگه ضرب میشن و به همشون یه مقداری اضافه و کم میشه. سپس از طریق توابع فعال ساز، دسته بندی بین نورون ها صورت میگیره و اون خروجی مدنظر به سمت لایه خروجی میره. در این مثال، خروجی مد نظر ما پلاک خودرو مورد نظر هستش که به وسیله الگوهای از پیش تعیین شده در درون لایه های پنهان مورد تجزیه و تحلیل قرار میگیره و تفکیک میشه. اما گاهی این تفکیک نمیتونه درست و کامل صورت بگیره . چون همونطور که گفتیم، ضرایب به صورت اتفاقی توسط ماشین به نورون‌ها داده میشه و امکان داره این ضرایب، نتیجه و خروجی مد نظر و قابل تشخیصی رو به ما نده. پس در این صورت چه اتفاقی رخ میده؟ برای جواب این مسئله، با بخش دیگه ای از شبکه های عصبی با نام Back Propagation و یا پس انتشار خطا در شبکه های عصبی آشنا میشیم.

یادگیری پس انتشار خطا و یا Back Propagation

در مقالات چند هفته گذشته، با مدلی از شبکه های عصبی با نام شبکه های عصبی پیشخور آشنا شدیم و گفتیم که ویژگی این نوع شبکه ها اینه که حرکت داده همواره از ورودی به سمت خروجی هستش. اما یادگیری ماشین با این مدل کامل صورت نمیگیره و نیاز به یک سری جریان های بازگشتی هم هست . همونطور که قبلا اشاره کردیم؛ نورون های ورودی ما همواره بسته به نوع کاری که میخوایم انجام بدیم، از روش های گوناگونی ضریب میگیرن و بایاس میشن . اما یکی از پرکاربردترین روش ها، ضریب دهی به صورت کامل رندوم و اتفاقی هست. به طوری که یک سری ضرایب حول یک عدد ثابت با توزیع متناسب به نورون ها داده میشه. اما همواره این داده های اتفاقی ما رو به اون نتیجه دلخواه نمیرسونه و خروجی ما رو با یک خطا یا Error مواجه میکنه. این ارور در خروجی، باعث میشه که یک جریان بازگشتی در شبکه های عصبی رخ بده . این جریان بازگشتی، باعث میشه که ضرایب و وزن هایی که قبلا داده شده، تغییر کنه و ضرایب جدیدترین به نورون ها داده بشه تا مقدار خطا به کمترین حالت خود برسه . به این روند، پس انتشار خطا و یا Back Propagation گفته میشه.

 زمانی که یک پس انتشار خطا در شبکه اتفاق افتاد، دوباره داده ها با ضرایب جدید به سمت خروجی به صورت Feed Forward  حرکت میکنن، اما امکان داره دوباره با خطا مواجه بشن و دوباره  با Back Propagation مواجه بشن . این روند انقدر ادامه پیدا میکنه تا ماشین به ضرایب مورد نظرش برسه و در نهایت به راهی برسه که بتونه ایده عال ترین خروجی رو تحویل ما بده! این روند باعث آموزش به اصطلاح train شبکه ما میشه و به نوعی یادگیری ماشین با کمترین دخالت و نظارت از سمت انسان رخ میده ! به هر بار انجام فرایند forward propagation و back propagation یک Epcoh گفته میشه . این Epcoh ها باعث یادگیری ماشین میشن و نقش مهمی رو در ساختار شبکه های عصبی دارن. 

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

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

منابع 

https://www.simplilearn.com/tutorials/deep-learning-tutorial/neural-network?source=sl_frs_nav_playlist_video_clicked

https://virgool.io/@Deepoch/back-propagation-ige7v5ihjubq

 

کلیدواژه ها 


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

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

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

 

Menu