Site icon آکادمی آمانج

شبکه های عصبی در یادگیری عمیق (راهنمای جامع)

آموزش شبکه های عصبی در یادگیری عمیق

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

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

 

شبکه عصبی چیست؟

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

شبکه عصبی مصنوعی در واقع دسته ای الگوریتم است که برای شناسایی و تشخیص الگوها به کار می رود.
این شبکه های عصبی مصنوعی (ANN ها)میتوانند در طرح های سرمایه گذاری برای افزایش بازده ، برای پیش بینی قیمت خانه ها براساس ویژگی های اصلی تعریف کننده قیمت خانه ها (موقعیت مکانی،متراژو…)و دسته بندی تصاویر و… استفاده شود.

 

شبکه عصبی عمیق(Dnn)

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

 

یادگیری عمیق (DL)

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

لایه‌های شبکه‌ی عصبی، از گره‌ها (nodes) تشکیل شده‌اند. یک گره، مانند نورون‌های مغز انسان، مکانی برای انجام محاسبات است. . مجموعه‌ای از نورون‌های فعال شده منجر به یادگیری می‌شوند.
الگوریتم یادگیری عمیق درست مانند مغز انسان با هر بار تکرار یک کار تجربه کسب میکند.
به عنوان مثال ، یک شرکت چینی Sensetime سیستمی از سیستم تشخیص چهره به صورت خودکار را برای شناسایی مجرمان ایجاد کرد که با استفاده از دوربین های زمان واقعی ، مجرم را در میان جمعیت پیدا می کند. امروزه ، این امر در پلیس و سایر نهادهای دولتی به روشی رایج تبدیل شده است.
شرکت آمریکایی Pony.ai نمونه دیگری از نحوه استفاده از DNN است. آنها سیستمی برای اتومبیل های هوش مصنوعی ایجاد کردند که می تواند بدون راننده کار کند. این به چیزی بیش از فقط یک الگوریتم ساده از اقدامات نیاز دارد ، اما یک سیستم یادگیری بسیار عمیق تر است ، که باید بتواند افراد ، علائم راه و سایر علائم مانند درختان و سایر اشیا important مهم را تشخیص دهد.شرکت معروف UbiTech ربات های AI را ایجاد می کند. یکی از ساخته های آنها ربات آلفا 2 است که می تواند در یک خانواده زندگی کند ، با اعضای خود صحبت کند ، اطلاعات را جستجو کند ، پیام بنویسد و دستورات صوتی را اجرا کند.

 

اجزای تشکیل دهنده ی شبکه عصبی

یک شبکه عصبی شامل موارد زیر است:

نورون

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

وزن

وزن پارامتری در یک شبکه عصبی است که داده های ورودی را در لایه های پنهان شبکه تغییر می دهد. شبکه عصبی مجموعه ای از گره ها یا نورون ها است. درون هر گره مجموعه ای از ورودی ها ، وزن و مقدار بایاس وجود دارد.اغلب اوقات یک شبکه عصبی در لایه های پنهان شبکه قرار دارد.
وزن و بایاس (معمولاً w و b نامیده می شوند) پارامترهای قابل یادگیری مدل یادگیری ماشین هستند. وقتی ورودی ها بین نورون ها منتقل می شوند ، وزن ها به همراه بایاس بر روی ورودی ها اعمال می شوند.

تابع

n ورودی به صورت X1 تا Xn به وزن‌های مربوطه از Wk1 تا Wkn داده شده‌اند. ابتدا وزن‌ها در ورودی‌های خودشان ضرب، و سپس با مقدار bias جمع می‌شوند. حاصل را u می‌نامیم.
u=∑w×x+b
سپس تابع فعال‌سازی برروی u اعمال می‌شود، یعنی (f(u، و در نهایت مقدار خروجی نهایی را به عنوان (Yk = f(u از نورون دریافت می‌کنیم.
بهترین تعریف یک شبکه‌ی عصبی را شخصی به نام لیپینگ یانگ ارائه می‌دهد. او شبکه‌ی عصبی را اینگونه تعریف کرده‌است:
شبکه‌های عصبی شامل تعدادی نورون مصنوعی اند که اطلاعات را بین یکدیگر تبادل می‌کنند، و هر کدام دارای وزن هایی می باشند که بر پایه تجربه‌ی شبکه به وجود می ایند. نورون‌ها نقطه‌ی فعال‌سازیی دارند که اگر مجموع وزن و داده‌های ارسال شده به آن‌ها از آن نقطه عبور کنند، آن‌ها فعال می‌شوند. نورون‌هایی که فعال شده اند باعث یادگیری می‌شوند.

 

مثال هایی از انواع شبکه های عصبی

شبکه های عصبی کانولوشن (CNN)

Convolutional Neural Network یا CNN نوع خاصی از شبکه عصبی می باشد که برای شناسایی و طبقه بندی تصویر استفاده می شود. آن‌ها جدا از ایجاد دید در اتومبیل های خودران و روبات ها ، در زمینه هایی مانند شناسایی اشیا، چهره ها و علائم راهنمایی و رانندگی بسیار مهارت دارند.
در یادگیری عمیق، یک شبکه عصبی کانولوشن دسته ای از شبکه های عصبی عمیق است که معمولاً برای تجزیه و تحلیل تصاویر بصری استفاده می شود.آنها دارای برنامه هایی در تشخیص تصویر و فیلم، طبقه بندی تصویر، تجزیه و تحلیل تصویر پزشکی، پردازش زبان طبیعی هستند.

CNN از گیرنده های چند لایه تشکیل شده است منظور از گیرنده های چند لایه شبکه های کاملاً متصل هستند، که هر نورون در یک لایه به همه سلول های عصبی در لایه بعدی متصل می شود اتصال کامل این شبکه ها موجب می شود که بیش از حد از داده ها استفاده کنند cnn ها از الگوی سلسله مراتبی در داده ها استفاده می کنند و با استفاده از الگوهای کوچکتر و ساده الگوهای پیچیده تری رابدست می اورند.

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

 

شبکه عصبی بازگشتی (RNN)

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

 

جمع بندی

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

مشاهده نسخه گرافیکی و کامل