شبکه های عصبی که با نامهای شبکه های عصبی مصنوعی (ANN) نیز شناخته میشوند، زیرمجموعهای از یادگیری ماشینیادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)تعریف یادگیری ماشین : ماشین لرنینگ (Machine Learning یا به اختصار ML) باعث میشود که خود ماشینها با آنالیز داده ها امکان یادگیری و پیشرفت داشته باشند، این مقاله فوق العاده یادگیری ماشین را بصورت کامل بررسی کرده است هستند. نام و ساختار آنها از مغز انسان الهام گرفته شده است و از روشی که نورونهای بیولوژیکی به یکدیگر سیگنال می دهند تقلید می کند. شبکه عصبی مجموعهای از الگوریتمها است که تلاش میکنند تا روابط زیربنایی را در مجموعهای از دادهها از طریق فرآیندی که نحوه عملکرد مغز انسان را تقلید میکند، تشخیص دهد.
مفاهیم شبکه های عصبی
یک شبکه عصبی مشابه شبکه عصبی مغز انسان عمل می کند. یک نورون در یک شبکه عصبی یک تابع ریاضی است که اطلاعات را بر اساس یک معماری خاص جمع آوری و طبقه بندی می کند. این شبکه شباهت زیادی به روش های آماری مانند برازش منحنی و تحلیل رگرسیون دارد.
یک شبکه عصبی حاوی لایههایی از گرههای به هم پیوسته است. هر گره به عنوان پرسپترون شناخته می شود و شبیه یک رگرسیون خطی چندگانه است. پرسپترون سیگنال تولید شده توسط یک رگرسیون خطی چندگانه را به یک تابع فعال سازی که ممکن است غیر خطی باشد میدهد.
شبکه های عصبی مصنوعی از لایههایی از گرهها تشکیل شدهاند که شامل یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی است. هر گره یا نورون مصنوعی به دیگری متصل می شود و دارای وزن و آستانه مرتبط است. اگر خروجی هر گره فردی بالاتر از مقدار آستانه مشخص شده باشد، آن گره فعال می شود و دادهها را به لایه بعدی شبکه ارسال میکند. در غیر این صورت، هیچ دادهای به لایه بعدی شبکه منتقل نمیشود.
تاریخچه شبکه های عصبی
در سال 1943، وارن مک کالوچ (Warren McCulloch) و والتر پیتس (Walter Pitts) از دانشگاه ایلینویز و دانشگاه شیکاگو "حساب منطقی ایدههای ماندگار در فعالیتهای عصبی" را منتشر کردند. فرانک روزنبلات (Frank Rosenblatt) از آزمایشگاه هوانوردی کرنل (Cornell) با توسعه پرسپترون در سال 1958 معرفی شد. جان هاپفیلد (Jon Hopfield)، شبکه هاپفیلد که مقالهای در مورد شبکه های عصبی بازگشتی بود را در سال 1982 ارائه کرد.
مزایای شبکه های عصبی
شبکه های عصبی میتوانند به طور مداوم کار کنند و کارآمدتر از انسان یا مدلهای تحلیلی سادهتر هستند. شبکههای عصبی همچنین میتوانند برای یادگیری از خروجیهای قبلی برنامه ریزی شوند تا نتایج آینده را بر اساس شباهت به ورودی های قبلی تعیین کنند.
شبکه های عصبی که از خدمات آنلاین بهره میبرند، در مقایسه با سیستمهایی که به سخت افزارسخت افزار چیست - بررسی اجزای اصلی سخت افزار کامپیوتردر این صفحه بررسی شده که سخت افزار چیست و سخت افزار کامپیوتر به زبان ساده معرفی شده است، همچنین به بررسی اجزای اصلی سخت افزار کامپیوتر پرداخته شده است محلی متکی هستند، از مزایای کاهش خطر نیز برخوردار هستند. علاوه بر این، شبکههای عصبی اغلب می توانند چندین کار را به طور همزمان انجام دهند.
معایب شبکه های عصبی
اگرچه شبکه های عصبی ممکن است به پلتفرمهای آنلاین متکی باشند، اما هنوز یک جزء سختافزاری برای ایجاد شبکه عصبی مورد نیاز است. این یک خطر فیزیکی برای شبکه ایجاد می کند که بر سیستمهای پیچیده، الزامات راه اندازی و نگهداری فیزیکی بالقوه متکی است.
اگرچه پیچیدگی شبکههای عصبی یک نقطه قوت است، اما ممکن است ماهها طول بکشد تا یک الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد خاص برای یک کار خاص ایجاد شود. علاوه بر این، تشخیص هرگونه خطا یا نقص در فرآیند ممکن است دشوار باشد، به خصوص اگر نتایج تخمینی باشند.
انواع شبکه های عصبی
شبکه عصبی پرسپترون
پرسپترون ساده ترین نوع یک شبکه عصبی مصنوعی است. ساختار تشکیل دهنده این شبکه عصبی تنها یک لایه ورودی به همراه تنها یک خروجی است، از همین رو به آن شبکه عصبی تک لایه نیز گفته میشود. در این شبکه تعداد زیادی ورودی وجود دارد که جمع وزندار آن ها پس از محاسبه با استفاده از یک تابع فعالساز خروجی را پیشبینی میکند.
شبکه عصبی پرسپترون چند لایه
در یک پرسپترون چند لایه (MLP)، پرسپترونها در لایههای به هم پیوسته جای گرفتهاند. لایه ورودی الگوهای ورودی را جمع آوری می کند. لایه خروجی دارای طبقه بندی یا سیگنالهای خروجی است که الگوهای ورودی ممکن است به آنها نگاشت شوند.
شبکه های عصبی پیشخور
شبکه های عصبی پیشخور (Feed Forward) یکی از ساده ترین انواع شبکه های عصبی هستند. این شبکهها اطلاعات را در یک جهت از طریق گرههای ورودی منتقل میکند. پردازش این اطلاعات در همین جهت ادامه مییابد تا زمانی که به حالت خروجی برسد. شبکه های عصبی پیشخور ممکن است لایههای پنهانی برای عملکرد داشته باشند، و این نوع اغلب برای فناوریهای تشخیص چهره استفاده میشود.
شبکه های عصبی بازگشتی
یک نوع پیچیدهتر از شبکههای عصبی، شبکه های عصبی بازگشتی هستند که خروجی یک گره را میگیرند و اطلاعات را به شبکه منتقل میکنند. این کار منجر به "یادگیری" نظری و بهبود شبکه میشود. هر گره فرآیندهای گذشته را ذخیره می کند و این فرآیندهای گذشته در آینده در طول پردازش مورد استفاده مجدد قرار میگیرند. این نوع شبکه عصبی اغلب در برنامه های کاربردی تبدیل متن به گفتار استفاده می شود.
شبکه های عصبی کانولوشنال
شبکه های عصبی کانولوشن، که ConvNets یا CNN نیز نامیده میشوند، دارای چندین لایه هستند که در آنها دادهها به دستههایی طبقهبندی میشوند. این شبکه ها دارای یک لایه ورودی، یک لایه خروجی و تعداد زیادی لایه پنهان در بین آنها هستند. لایهها نقشههای ویژگی ایجاد میکنند که مناطقی از یک تصویر را ثبت میکنند که بیشتر تجزیه میشوند تا زمانی که خروجیهای ارزشمندی تولید کنند. این شبکهها به ویژه برای برنامههای تشخیص تصویر مفید هستند.
شبکه عصبی تابع شعاعی پایه
شبکه های تابع شعاعی پایه (RBF) معماری اساساً متفاوتی نسبت به اکثر معماری های شبکه عصبی دارند. بیشتر معماری شبکههای عصبی از لایههای زیادی تشکیل شده است و غیرخطی بودن را با اعمال مکرر توابع فعال سازی غیرخطی معرفی میکند. از طرف دیگر شبکه RBF فقط از یک لایه ورودی، یک لایه پنهان و یک لایه خروجی تشکیل شده است.
لایه ورودی یک لایه محاسباتی نیست، فقط دادههای ورودی را دریافت می کند و آن را به لایه پنهان شبکه RBF میدهد. محاسباتی که در داخل لایه پنهان اتفاق می افتد با اکثر شبکه های عصبی بسیار متفاوت است و قدرت شبکه RBF از اینجا می آید. لایه خروجی وظایف پیش بینی مانند طبقه بندی یا رگرسیون را انجام می دهد.
شبکه های عصبی و یادگیری عمیق
یادگیری عمیق چیست؟
یادگیری عمیقیادگیری عمیق چیست؟ معرفی کامل یادگیری عمیق به زبان سادهاین مقاله به سوالات رو به رو پاسخ داده : یادگیری عمیق چیست و چگونه کار میکند؟ آیا یادگیری عمیق همان شبکه عصبی است؟ تفاوت یادگیری عمیق با یادگیری ماشین چیست؟ و شبکه های عصبی معمولاً به جای یکدیگر در مکالمه استفاده می شوند که می تواند گیج کننده باشد. در نتیجه، شایان ذکر است که "عمیق" در یادگیری عمیق فقط به عمق لایهها در یک شبکه عصبی اشاره دارد. یک شبکه عصبی که از بیش از سه لایه تشکیل شده است - که شامل ورودیها و خروجیها میشود - میتواند یک الگوریتم یادگیری عمیق در نظر گرفته شود. یک شبکه عصبی که فقط دو یا سه لایه دارد، فقط یک شبکه عصبی اولیه است.
آموزش شبکه های عصبی
ویدیوهای آموزشی
در اینجا لیست بهترین دوره های آموزشی برای شبکه های عصبی و یادگیری عمیق است. دورههایی را انتخاب شده است که هم برای مبتدیان و هم برای توسعه دهندگان با تجربه مناسب است.
- Deep Learning Specialization by Andrew Ng and Team
- Deep Learning A-Z™: Hands-On Artificial Neural Networks
- Introduction to Deep Learning
- Practical Deep Learning for Coders by fast.ai
- Building Advanced Deep Learning and NLP Projects
کتاب های آموزشی
افراد زیادی قبلاً آمده اند و اکتشافات، بهترین شیوهها و تکنیکهای ترجیحی خود را ثبت کردهاند. شما میتوانید در مورد نحوه طراحی و پیکربندی شبکه های عصبی از برخی از بهترین کتابها در این زمینه چیزهای زیادی بیاموزید. در این قسمت، سه کتابی را که توصیه میشود هنگام توسعه شبکه های عصبی برای مجموعه دادههای خود بخوانید و در کنار خود داشته باشید، مشاهده خواهید کرد.
- شبکه های عصبی برای تشخیص الگو (Neural Networks for Pattern Recognition)
- Neural Smithing: Supervised Learning in Feedforward Artificial Neural Networks
- یادگیری عمیق (Deep Learning by Lan Goodfellow, Yoshua Bengio, and Aaron Courville)
کاربرد های شبکه های عصبی
شبکه های عصبی با برنامههای کاربردی برای عملیات مالی، برنامه ریزی سازمانی، تجارت، تجزیه و تحلیل تجاری و نگهداری محصول به طور گستردهای مورد استفاده قرار میگیرند. یکی از مهم ترین کاربرد های شبکه های عصبی، داده کاویداده کاوی چیست؟ بررسی 0 تا 100 دیتا ماینینگ (data mining)این مقاله عالی بررسی کرده که داده کاوی یا دیتا ماینینگ (data mining) چیست و چه کاربردی دارد، سپس انواع روش های داده کاوی و مزایای دیتا ماینینگ را بررسی کرده است. در ادامه برخی از کاربردهای آنها را در چند حوزه ذکر میکنیم:
پزشکی
- مدلسازی فرآیندهای پزشکی
- تشخیص بیماریها
- پیشبینی نتایج درمان
نظامی
- هدفگیری و تعقیب در سلاحها
- سیستمهای دفاعی و پدافند هوشمند
- سیستمهای دفاعی در جنگ الکترونیک
اقتصاد
- پیشبینی قیمت سهام و شاخص بورس
- تحلیل و ارزیابی ریسک در بازارهای مالی
- تخصیص سرمایه و اعتبار
جمع بندی
با وجود اینکه مغز یکی از اجزای بسیار پیچیده و قدرتمند در ساختار بدن موجودات میباشد، ساختمان اساسی سازنده آن نسبتا ساده و قابل درک میباشد. شبکه های عصبی مصنوعی رونوشتی از همین ساختار میباشند. در این مقاله با ساختار شبکه عصبی طبیعی و مصنوعی آشنا شدیم. همچنین انواع مختلف شبکه های عصبی را فرا گرفتیم و با مزایا و معایب و کاربرد های شبکه های عصبی آشنا شدیم. شبکه های عصبی امروزه قدرت آن را دارند که بسیاری از سخت ترین مسائل روزمره ما را با صرف هزینه و زمان بسیار کمتری حل کنند.
شبکه عصبی چیست؟
یک شبکه عصبی، شبکهای از تعداد زیادی واحد پردازنده بسیار ساده است که هر کدام احتمالاً دارای حافظه محلی هستند. واحدها توسط کانالهای ارتباطی یک طرفه، که دادههای عددی را حمل میکنند، به هم متصل میشوند. واحدها فقط بر اساس دادههای محلی خود و ورودیهایی که از طریق اتصالات دریافت می کنند کار میکنند.
در شبکه های عصبی از چند لایه مخفی باید استفاده کنیم؟
هیچ راهی برای تعیین توپولوژی شبکه خوب فقط از روی تعداد ورودیها و خروجیها وجود ندارد. این به تعداد نمونههای آموزشی و پیچیدگی طبقهبندی که میخواهید یاد بگیرید بسیار بستگی دارد. مشکلاتی در یک ورودی و یک خروجی وجود دارد که به میلیونها واحد پنهان نیاز دارد و مشکلاتی با یک میلیون ورودی و یک میلیون خروجی که فقط به یک واحد پنهان نیاز دارد یا اصلاً نیازی ندارد.
چند روش یادگیری برای شبکه های عصبی وجود دارد؟
در حال حاضر روشهای یادگیری بسیاری برای شبکه های عصبی وجود دارد. هیچ کس دقیقاً نمی داند چند روش است. موارد جدید هر هفته اختراع می شوند. طبقه بندی اصلی این روشها، تمایز یادگیری با نظارت از بدون نظارت است.
فرایند پس انتشار (Backpropagation) چگونه کار می کندد؟
پس انتشار فرآیندی است که توسط آن یک شبکه عصبی وزن خود را تنظیم میکند تا خطا بین پیش بینیهای خود و مقادیر واقعی هدف را به حداقل برساند. این خطا از لایه خروجی به سمت عقب در شبکه منتشر می شود و وزنها با استفاده از یک الگوریتم بهینه سازی مانند نزول گرادیان به روز میشوند. این فرآیند چندین بار تکرار می شود تا زمانی که خطا به سطح رضایت بخشی کاهش یابد.
بیشبرازش (Overfitting) در شبکه عصبی چیست؟
بیشبرازش زمانی اتفاق میافتد که یک شبکه عصبی روی دادههای آموزشی عملکرد خوبی داشته باشد، اما در دادههای جدید و دیده نشده ضعیف عمل کند. این بدان معنی است که شبکه یاد گرفته است که دادههای آموزشی را خیلی نزدیک کند و به خوبی به دادههای جدید تعمیم داده نشده است. بیشبرازش می تواند به دلیل داشتن پارامترهای زیاد در شبکه، آموزش برای دورههای بسیار زیاد یا نداشتن داده های آموزشی کافی باشد.