ساخت یک شبکه عصبی ساده – قسمت اول : آموزش خرگوشی!

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

مقاله مرتبط :

 

بسیاری از مؤلفه های شبکه عصبی، به نوعی نشأت گرفته و ساخته شده براساس جنبه بیولوژیکی( زیست شناختی ) می باشد، بنابراین توضیحات را از سطح بسیار بالا شروع می کنیم :

مغز پیچیده است، اما به طور کلی می تواند به تعداد اندکی بخش و عملیات پایه ای تقسیم شود:

یک فعالیت فیزیکی مغزی می تواند درونی باشد ( مانند درک کردن یا یک ایده ):

بیایید نگاهی به یک نمونه ساده و پایه ای از بخش های مغز داشته باشیم:

مغز به طور اعجاب آوری شامل اتصال های درهم تنیده زیادی می باشد

عصب واحد پایه ای انجام محاسبات در مغز می باشد، هر عصب سیگنال های شیمیایی را از عصب های دیگر دریافت و یکپارچه سازی می کند و براساس تعداد عامل ها، یا کاری انجام نمی دهد یا سیگنال الکتریکی یا پتانسیل جریان( Action Potential ) تولید می کند که به نوبه خود از طریق سیناپس ها ( محل اتصال دو عصب ) پیغامی را برای سایر عصب های متصل ارسال می کند:

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

البته که این موضوع نشان از هر دو بحث تولید و ساده سازی می باشد، اما با دانستن آن می توانیم یک شبکه عصبی زیستی کوچک ( حداقلی ) را مانند شکل زیر توصیف کنیم:

و آن را در قالبی رسمی و به همراه گراف معرفی کنیم:

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

گراف بالا، صرفاً لحظه ای از کل زمان فعال بودن شبکه را نشان می دهد، ترسیمی دقیق تر از آن را می توان در قالب بخش های زیر تقسیم کرد:

قبل از آنکه شبکه عصبی مدنظرمان را بسازیم، لازم است که چگونگی تأثیر وزن بر عصب ها و چگونگی یادگیری عصب ها را درک کنیم، بیایید با یک خرگوش آغاز کنیم و یک آزمایش کلاسیک از شبیه سازی شرایط داشته باشیم.

وقتی در مقابل حجمه ای از هوای بی ضرر قرار می گیرد، خرگوش نیز مشابه انسان ها معمولاً پلک می زند:

می توانیم این رفتار را در قالب گرافی ساده به صورت زیر مدل کنیم:

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

بیایید عامل دیگری را بررسی کنیم، یک تُن صدای بی ضرر:

می توانیم حس نداشتن خرگوش نسبت به آن تُن صدا را در قالب زیر مدل کنیم:

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

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

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

یادگیری هنگامی که رفتاری پیچیده مدنظر است، می تواند در بحث زمانی و براساس افزایش وزن ارتباط های بین عصب های درون یک شبکه عصبی به نوعی ساده سازی شود.

به منظور آموزش دادن خرگوشمان، مجبوریم که پروسه مطرح شده را تکرار کنیم:

آزمایش های خرگوشی؟

گراف مدنظر برای سه آزمایش اول و حالت اولیه می تواند به صورت زیر باشد:

باید به این موضوع توجه کرد که وزن های مربوط به تُن صدا بعد از هر آزمایش افزایش می یابد(رنگ قرمز)، در این حالت این میزان دلخواه و قراردادی است و ما آن را ۰٫۳۰ در نظر گرفته ایم، اما می تواند هر مقداری باشد، حتی مقداری منفی. تا آزمایش سوم رفتار مشابهی را از خرگوش شاهد هستیم، اما پس از آزمایش چهارم، اتفاقی جدید و جالب رخ می دهد…رفتاری جدید.

حجمه هوایی را حذف کرده ایم اما خرگوش همچنان پس از شنیدن تُن صدا پلک می زند! توصیف این رفتار جدید می تواند در گراف نهایی ما یافت شود:

حال خرگوشمان را برای شناسایی تُن صدا و پلک زدن، آموزش داده ایم.

آزمایش های واقعی از این نوع و به منظور مشاهده واکنش، می تواند تا حدود ۶۰ آزمایش در طول چند هفته یا بیشتر طول بکشد.

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

بیشتر بخوانید :

منبع Becoming Human Neuralnetworks and Deeplearning Science Direct

همچنین ببینید

فناوری تشخیص چهره و کاربردهای آن، تاریخچه تکنولوژی تشخیص چهره

فناوری تشخیص چهره و کاربردهای آن + تاریخچه

فناوری تشخیص چهره یک فناوری بیومتریک است که با استفاده از تجزیه و تحلیل الگوهایی …

6 نظر

  1. سید حسین حسینی

    سلام ، خسته نباشید.
    تقریبا بیش از ۵۰ مقاله وب رو مطالعه کردم!
    هیچ کدوم گویا تر از این نبود!
    براتون آرزوی موفقیت دارم!

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

  3. سلام ببخشید در زمینه گراف کاوی خواستم از مقالات شما استفاده کنم. امکانش هست راهنمایی کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *