آشنایی با شبکه‌های عصبی و نحوه پیاده‌سازی آن‌ها

 

الگوبرداری شبکه عصبی از مغز

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

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

آشنایی با شبکه‌های عصبی و نحوه پیاده‌سازی آن‌ها

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

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

شبکه‌های عصبی از چه مولفه‌ها و لایه‌هایی ساخته شده‌اند؟

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

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

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

 

شبکه‌های عصبی چطور یاد می‌گیرند؟

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

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

آشنایی با شبکه‌های عصبی و نحوه پیاده‌سازی آن‌ها
عملکرد شبکه‌های عصبی چطور است؟

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

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

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

————————————————————

مطالب مرتبط: