سینا ناصری
سینا ناصری
خواندن ۵ دقیقه·۴ سال پیش

مقدمه ای بر یادگیری عمیق

یادگیری عمیق همینقدر پیچیده است!
یادگیری عمیق همینقدر پیچیده است!

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

تاریخچه این مفهوم به سال 1943 باز می گردد، زمانی که Warren McCulloch و Walter Pits یک مدل رایانه ای را بر اساس عملکرد شبکه های عصبی مغز انسان توسعه دادند. آن ها به منظور تقلید تفکر از ترکیب ریاضیات و الگوریتم ها که آن را منطق آستانه ای می نامیدند استفاده کردند. بعد از آن یادگیری عمیق به صورت آرام و پیوسته تکامل یافت. در این حین یک تکنیک پیشگامانه به نام پس انتشار (Back Propagation) توسعه یافت و بعد ها با استفاده از قاعده زنجیره ای معروف اصلاح شد.

یادگیری عمیق هنوز کاملا به شکوفایی نرسیده ولی هم اینک با سرعت زیادی در حال تکامل است و هر ماه شاهد موارد جدیدی در این زمینه هستیم.

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

یادگیری عمیق در مقایسه با یادگیری ماشین و هوش مصنوعی
یادگیری عمیق در مقایسه با یادگیری ماشین و هوش مصنوعی

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

"علم و مهندسی ساخت کامپیوتر ها به گونه ای حرکت می کند که تا همین اواخر، فکر کردیم که به هوش انسانی نیاز دارد. "

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

یادگیری عمیق نام گسترده و ساده تر شده شبکه عصبی مصنوعی است. مفهوم "عمیق" در یادگیری عمیق به معنای عمق نورون های مورد استفاده در یک شبکه است. در دهه 1990 محققان و دانشمندان به دلایل مختلف قادر به آزمایش کامل شبکه های عصبی عمیق نبودند. برخی از دلایل در ذیل ذکر شده اند:

1- عدم دسترسی به داده های بزرگ

2- قدرت و منابع کم محاسباتی

3- کار های تحقیقاتی کمتر در مقایسه با انبوه کار های موجود امروز

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

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

پرسپترون چیست؟ با استناد به deepai، پرسپترون الگوریتمی است که برای یادگیری نظارت شده بر طبقه بندی کننده های دودویی استفاده می شود، درواقع یک شبکه عصبی تک لایه است که تعدادی اطلاعات عددی را با خود حمل می کند.

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

کارکرد MLP

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

لایه ورودی: اولین لایه شبکه است که ورودی را برای رسیدن به خروجی حمل می کند.

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

لایه خروجی: در لایه خروجی شبکه عصبی تصمیم نهایی را می گیرد و نتیجه نهایی را نمایش می دهد.

لایه ها در شبکه عصبی
لایه ها در شبکه عصبی

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

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

شبکه متصل متراکم
شبکه متصل متراکم

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

برای مثال محاسبه برای گره h این گونه است:

h = i2.w4 + i3.w5

این یک معادله خطی ساده است که محاسبه گره ها را نشان می دهد.

پس انتشار خطا (Backpropagation)

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

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

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

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

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

منابع

https://www.analyticsinsight.net/the-history-evolution-and-growth-of-deep-learning/#:~:text=The%20history%20of%20deep%20learning,to%20mimic%20the%20thought%20process

متن اصلی

https://medium.com/analytics-vidhya/introduction-to-deep-learning-37d40a4215f6

یادگیری عمیقdeep learningmlpBack Propagation
شاید از این پست‌ها خوشتان بیاید