توضیحی از نحوه کار شبکه‌های عصبی برای مبتدی‌ها

منتشرشده در towardsdatascienceلینک مقاله اصلی: A Beginner-Friendly Explanation of How Neural Networks Workمقدمهچند هفته پیش، وقتی شروع به یادگیری در مورد شبکه‌های عصبی کردم، متوجه شدم که اطلاعات مقدماتی با کیفیتی برای چنین موضوع پیچیده‌ای وجود ندارد. من اغلب خوانده‌ام که شبکه‌های عصبی الگوریتم‌هایی هستند که از مغز تقلید می‌کنند یا ساختار مغز مانندی دارند، که واقعا هیچ کمکی به من نمی‌کنند. بنابراین، هدف این مقاله آموزش اصول شبکه عصبی به شیوه‌ای است که برای هر کسی، به ویژه آن‌هایی که تازه شروع به یادگیری ماشین کرده‌اند، قابل فهم باشد.هوش مصنوعی، یادگیری ماشین و شبکه‌های عصبیقبل از درک این که شبکه‌های عصبی چه هستند، باید چند گام به عقب برداریم و اول متوجه شویم که هوش مصنوعی و یادگیری ماشین چه چیزهایی هستند.هوش مصنوعی و یادگیری ماشینباز هم، ناامید کننده است چون وقتی شما معنی هوش مصنوعی را در گوگل سرچ می‌کنید، تعاریفی مانند «شبیه‌سازی هوش انسانی توسط ماشین‌ها» به دست می‌آورید، که اگرچه ممکن است درست باشد، اما می‌تواند برای یادگیرندگان جدید کاملا گمراه‌کننده باشد.در ساده‌ترین حالت، هوش مصنوعی (AI) به ایده اعطای توانایی تصمیم‌گیری بر اساس قوانین از پیش تعیین‌شده یا مدل‌های شناسایی الگو به ماشین یا نرم‌افزار، اشاره دارد. ایده مدل‌های شناسایی الگو منجر به مدل‌های یادگیری ماشین می‌شود که الگوریتم‌هایی هستند که مدل‌هایی را براساس داده‌های نمونه ایجاد می‌کنند تا پیش‌بینی‌های خود را بر روی داده‌های جدید انجام دهند. توجه داشته باشید که یادگیری ماشین زیر مجموعه‌ای از هوش مصنوعی است.تعدادی از مدل‌های یادگیری ماشین مانند رگرسیون خطی، ماشین‌های بردار پشتیبان، جنگل‌های تصادفی و البته شبکه‌های عصبی وجود دارند. این امر ما را به سوال اصلی‌مان بر می‌گرداند، شبکه‌های عصبی چه هستند؟شبکه‌های عصبییک شبکه عصبی در اصل شبکه‌ای از معادلات ریاضی است. یک یا چند متغیر ورودی نیاز دارد و با عبور از یک شبکه از معادلات، منجر به یک یا چند متغیر خروجی می‌شود. همچنین می‌توان گفت که یک شبکه عصبی بردار ورودی‌ها را می‌گیرد و یک بردار از خروجی‌ها را بر می‌گرداند، اما من در این مقاله وارد ماتریس‌ها نخواهم شد.مکانیک یک شبکه عصبی پایهباز هم، نمی‌خواهم بیش از حد وارد مکانیک شوم، اما بهتر است به شما نشان دهم ساختار یک شبکه عصبی پایه چطور به نظر می‌رسد.در یک شبکه عصبی، یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی وجود دارد. لایه ورودی شامل یک یا چند متغیر ویژگی (یا متغیرهای ورودی یا متغیرهای مستقل) است که به صورت x1، x2، …، xn نشان داده می‌شوند. لایه پنهان شامل یک یا چند گره مخفی یا واحدهای مخفی است. یک‌گره به سادگی یکی از دایره‌های شکل بالا است. به طور مشابه، متغیر خروجی شامل یک یا چند واحد خروجی است.یک لایه خاص می‌تواند گره‌های زیادی مانند تصویر بالا داشته باشد.همچنین، یک شبکه عصبی مشخص نیز می‌تواند لایه‌های زیادی داشته باشد. به طور کلی، گره‌های بیشتر و لایه‌های بیشتر به شبکه عصبی اجازه می‌دهند که محاسبات بسیار پیچیده‌تری را انجام دهد.در بالا یک نمونه از یک شبکه عصبی بالقوه آورده شده‌است. این مدل سه متغیر ورودی دارد: اندازه زمین، تعداد اتاق‌های خواب و مقدار میانگین درآمد خانواده. اگر این سه بخش از اطلاعات را به این شبکه عصبی تزریق کنیم، خروجی آن، قیمت خانه خواهد بود. خب دقیقا چطور این کار را انجام می‌دهد؟همانطور که در ابتدای مقاله گفتم، یک شبکه عصبی چیزی بیشتر از یک شبکه معادلات نیست. هر گره در یک شبکه عصبی از دو تابع، یک تابع خطی و یک تابع فعال‌سازی تشکیل شده‌است. این جایی است که همه چیز می‌تواند کمی گیج‌کننده باشد، اما در حال حاضر، تابع خطی را به عنوان یک خط از بهترین تناسب در نظر بگیرید. همچنین، تابع فعال‌سازی را مانند یک کلید نور در نظر بگیرید، که منجر به عددی مثل ۱ یا ۰ می‌شود.آنچه اتفاق می‌افتد این است که ویژگی‌های ورودی (x) به تابع خطی هر گره وارد می‌شوند، که منجر به یک مقدار می‌شود، z. سپس مقدار z وارد تابع فعال‌سازی می‌شود، که تعیین می‌کند که آیا سوئیچ نور روشن می‌شود یا نه (بین ۰ و ۱).بنابراین، هر گره در نهایت تعیین می‌کند که کدام گره‌ها در لایه بعدی فعال می‌شوند تا زمانی که به خروجی برسد. از نظر ادراکی، این جوهره شبکه عصبی است.اگر می‌خواهید در مورد انواع مختلف توابع فعال‌سازی، اینکه چگونه یک شبکه عصبی پارامترهای توابع خطی را تعیین می‌کند و اینکه چگونه مانند مدل «یادگیری ماشین» که خود یاد می‌گیرد رفتار می‌کند، یاد بگیرید، دوره‌های کاملی به ویژه درمورد شبکه‌های عصبی وجود دارند که شما می‌توانید به صورت آنلاین آن‌ها را پیدا کنید!انواع شبکه‌های عصبی:شبکه‌های عصبی به قدری پیشرفت کرده‌اند که در حال حاضر انواع مختلفی از شبکه‌های عصبی وجود دارند اما در زیر سه نوع اصلی شبکه‌های عصبی آورده شده‌اند که احتمالا اغلب در مورد آن‌ها خواهید شنید.شبکه‌های عصبی مصنوعی (ANN)شبکه‌های عصبی مصنوعی، یا ANN ها، مانند شبکه‌های عصبی در تصاویر بالا هستند، که از مجموعه‌ای از گره‌های متصل تشکیل شده‌اند که یک ورودی یا مجموعه‌ای از ورودی‌ها را گرفته و یک خروجی را برمی‌گرداند. این اساسی‌ترین نوع شبکه عصبی است که اگر دوره آموزشی را بگذرانید،‌ احتمالا برای اولین بار در مورد آن یاد خواهید گرفت. ANNها از هر چیزی که ما در مورد آن صحبت می‌کنیم و همچنین توابع انتشار، نرخ یادگیری، تابع هزینه و پس انتشار تشکیل شده‌اند.شبکه‌های عصبی پیچشی (CNN)شبکه عصبی پیچشی یا convoloutional نوعی شبکه عصبی است که از یک عملیات ریاضی به نام کانولوشن استفاده می‌کند. ویکی‌پدیا کانولوشن را به عنوان یک عملیات ریاضی بر روی دو تابع تعریف می‌کند که تابع سومی را ایجاد می‌کنند که بیان می‌کند چگونه شکل یکی توسط دیگری اصلاح می‌شود. بنابراین، CNNها از کانولوشن به جای ضرب عمومی ماتریس حداقل در یکی از لایه‌های خود استفاده می‌کنند.شبکه‌های عصبی بازگشتی (RNN)شبکه‌های عصبی بازگشتی یا Recurrent نوعی از ANN ها هستند که در آن اتصالات بین گره‌ها یک دایگراف را در امتداد یک توالی زمانی تشکیل می‌دهند، که به آن‌ها اجازه می‌دهد تا از حافظه داخلی خود برای پردازش توالی‌های با طول متغیر ورودی استفاده کنند. به دلیل این ویژگی، RNN ها در کنترل داده‌های توالی، مانند تشخیص متن یا تشخیص صدا استثنایی هستند.کاربردهای شبکه عصبیشبکه‌های عصبی الگوریتم های قدرتمندی هستند که منجر به برخی کاربردهای انقلابی شده‌اند که قبلا امکان پذیر نبودند. موارد زیر بخشی از این کاربردها هستند اما باید بدانید که کاربردهای آن به این موارد محدود نمی‌شود:تشخیص تصویر و ویدئو: به دلیل قابلیت‌های تشخیص تصویر، ما اکنون چیزهایی مانند تشخیص چهره برای امنیت و دید Bixby داریم.سیستم‌های پیشنهاد دهنده: آیا تا به حال به این فکر کرده‌اید که نت‌فلیکس چطور همیشه می‌تواند نمایش‌ها و فیلم‌هایی را که واقعا دوست دارید را پیشنهاد کند؟ آن‌ها به احتمال زیاد از شبکه‌های عصبی برای ارائه این تجربه استفاده می‌کنند.تشخیص صدا: در صورتی که شما متوجه نشده‌اید، «OK Google» و «Siri» در درک سوالات ما و آنچه می‌گوییم، به طرز فوق‌العاده‌ای بهتر شده‌اند. این موفقیت را می توان به شبکه‌های عصبی نسبت داد.رانندگی خودکار: در نهایت، پیشرفت ما به سمت تکمیل رانندگی خودکار عمدتا به خاطر پیشرفت در هوش مصنوعی و شبکه‌های عصبی است.خلاصهبه طور خلاصه، در اینجا نکات اصلی آورده شده‌است:شبکه‌های عصبی نوعی از مدل یادگیری ماشین یا زیرمجموعه‌ای از یادگیری ماشین هستند و یادگیری ماشین زیرمجموعه‌ای از هوش مصنوعی است.یک شبکه عصبی یک شبکه از معادلات است که ورودی (یا مجموعه‌ای از ورودی‌ها) را می‌گیرد و خروجی (یا مجموعه‌ای از خروجی‌ها) را باز می‌گرداند.شبکه‌های عصبی از اجزای مختلفی مانند لایه ورودی، لایه‌های پنهان، لایه خروجی و گره‌ها تشکیل شده‌اند.هر گره از یک تابع خطی و یک تابع فعال‌سازی تشکیل شده‌است که در نهایت تعیین می‌کند که کدام گره‌ها در لایه بعدی فعال می‌شوند.انواع مختلفی از شبکه‌های عصبی وجود دارند، مانند ANN ها، CNNها و RNN هااین متن با استفاده از ربات ترجمه مقاله علمی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.