در این مقاله مفهوم و ماهیت یادگیری عمیق را مورد بررسی قرار میدهیم. در ادامه مطلب با انواع محتلف روشهای Deep Learning و یا یادگیری عمیق آشنا میشویم.
Deep Learning کلاسی از تکنیکهای یادگیری ماشین است که از لایههای زیادی از پردازش اطلاعات غیر خطی برای استخراج و تبدیل ویژگی تحت نظارت یا بدون نظارت، برای آنالیز الگو و طبقهبندی استفاده میکند. آن شامل لایههای سلسله مراتبی زیادی برای پردازش اطلاعات به شیوهای غیر خطی است که در آن برخی مفاهیم سطح پایینتر به تعریف مفاهیم سطح بالاتر کمک میکنند.
یادگیری عمیق به دنبال هوش مصنوعی پا به عرصه حضور گذاشته است. این یادگیری به یاری هوش مصنوعی آمده است تا به شکلی طبیعی تر به نیاز ها و خواست های بشر واکنش نشان دهد.
شبکههای عصبی مصنوعی سطحی قادر به کنترل مقدار قابلتوجهی از دادههای پیچیده نیستند، که در بسیاری از کاربردهای معمول مانند گفتار طبیعی، تصاویر، بازیابی اطلاعات و دیگر کاربردهای پردازش اطلاعات انسان مانند، آشکار هستند. یادگیری عمیق برای چنین کاربردهایی مناسب است. با یادگیری عمیق، تشخیص، طبقهبندی و طبقهبندی الگوها در دادهها برای یک ماشین با تلاشهای نسبتا کمتر امکان پذیر است. یادگیری عمیق پردازش چند لایهای شبیه انسان را در مقایسه با معماری کمعمق ارائه میدهد. ایده اصلی یادگیری عمیق استفاده از پردازش سلسله مراتبی با استفاده از لایههای زیادی از معماری است. لایههای معماری به صورت سلسله مراتبی مرتب میشوند.
بعد از چند مقدمه آموزش، ورودی هر لایه به لایه مجاور آن میرود. یادگیری عمیق از یک رویکرد توزیعی برای مدیریت دادههای بزرگ پیروی میکند. این روش فرض میکند که دادهها با در نظر گرفتن عوامل متعدد، زمان متفاوت و سطوح مختلف تولید میشوند. یادگیری عمیق ترتیب و پردازش دادهها در لایههای مختلف را با توجه به زمان وقوع، مقیاس یا طبیعت آن تسهیل میکند. یادگیری عمیق اغلب با شبکههای عصبی مصنوعی مرتبط است. در قسمت زیر سه دسته از یادگیری عمیق مورد بررسی قرار میگیرد.
- Generative
- Discriminative
- Hybrid deep learning architectures
معماران از مقولههای کلی بر پیش آموزش یک لایه به روشی بدون نظارت تمرکز دارند. این رویکرد مشکل آموزش معماریهای سطح پایینتر را که بر لایههای قبلی تکیه دارند، از بین میبرد. هر لایه میتواند از پیش آموزشدیده و بعدا برای تنظیم عمومی و یادگیری بیشتر در مدل گنجانده شود. انجام این کار مشکل آموزش معماری شبکه عصبی با لایههای چندگانه را حل میکند و یادگیری عمیق را ممکن میسازد.
معماری شبکه عصبی ممکن است توانایی پردازش متمایز کننده از طریق انباشته کردن خروجی هر لایه با دادههای اصلی یا با ترکیبات اطلاعاتی مختلف و در نتیجه شکلدهی معماری یادگیری عمیق داشته باشد. مدل توصیفی اغلب خروجیهای شبکه عصبی را به عنوان یک توزیع شرطی روی تمام توالیهای برچسب ممکن برای توالی ورودی دادهشده در نظر میگیرد، که بیشتر از طریق یک تابع هدف بهینهسازی خواهد شد. معماری ترکیبی ویژگیهای معماری مولد و متمایز کننده را ترکیب میکند. به طور معمول، فرد میتواند یادگیری عمیق را به صورت زیر انجام دهد.
یک شبکه متشکل از یک لایه ورودی و یک لایه پنهان با گرههای ضروری بسازید. لایه مخفی دیگری را به بالای شبکه که قبلا یاد گرفته اضافه کنید تا یک شبکه جدید ایجاد شود. شبکه را بازیابی کنید. افزودن لایههای بیشتر را تکرار کنید و بعد از هر افزودن، شبکه را مجددا آموزش دهید. افزودن لایههای بیشتر را تکرار کنید و بعد از هر افزودن، شبکه را مجددا ارزیابی کنید.
آنچه در این نوشته خواهیم داشت
انواع مختلف مدلهای یادگیری عمیق
Autoencoders
یک اتوکد یک شبکه عصبی مصنوعی است که قادر به یادگیری الگوهای مختلف کدگذاری است. شکل ساده رمزگذار درست مانند پرسپترون چند لایه است که شامل یک لایه ورودی یا یک لایه پنهان یا یک لایه خروجی است. تفاوت قابلتوجه بین شبکه عصبی پرسپترون چند لایه معمولی و کدگذار خودکار در تعداد نودها در لایه خروجی است. در حالت رمزگذار، لایه خروجی شامل همان مقدار گره در لایه ورودی است. به جای پیشبینی مقادیر هدف طبق بردار خروجی، رمزگذار خودکار باید ورودیهای خود را پیشبینی کند. طرح کلی مکانیزم یادگیری به شرح زیر است.
- محاسبه توابع فعالسازی ارائهشده در تمام لایههای پنهان و لایههای خروجی
- پیدا کردن انحراف بین مقادیر محاسبهشده با ورودیها با استفاده از تابع خطای مناسب
- انتشار خطا برای به روز رسانی وزنها
- تکرار خروجی تا رسیدن به نتیجه رضایت بخش
اگر تعداد گرهها در لایههای پنهان کمتر از تعداد گرههای ورودی / خروجی باشد، آنگاه فعالیت آخرین لایه پنهان به عنوان نمایش فشرده ورودیها در نظر گرفته میشود. وقتی گرههای لایه پنهان بیشتر از لایه ورودی باشند، یک رمزگذار میتواند به طور بالقوه عملکرد شناسایی را یاد بگیرد و دراکثر موارد بیفایده شود.
Deep Belief Net
یک شبکه باور عمیق راه حلی برای مشکل کنترل توابع هدف غیر محدب و حداقل های محلی در هنگام استفاده از پرسپترون چند لایه معمولی است. این نوع جایگزین یادگیری عمیق شامل لایههای چندگانه متغیرهای پنهان با اتصال بین لایهها است. شبکه باور عمیق را می توان به عنوان ماشینهای بولتزمن محدود شده (RBM) در نظر گرفت که در آن هر لایه پنهان زیر شبکه به عنوان لایه ورودی قابلمشاهده برای لایه مجاور شبکه عمل میکند. آن پایینترین لایه قابلمشاهده را به یک مجموعه آموزشی برای لایه مجاور شبکه تبدیل میکند. به این ترتیب، هر لایه شبکه به صورت مستقل و حریصانه آموزش داده میشود. متغیرهای پنهان به عنوان متغیرهای مشاهدهشده برای آموزش هر لایه از ساختار عمیق استفاده میشوند. الگوریتم آموزشی برای چنین شبکه باور عمیقی به شرح زیر ارائه شدهاست:
یک بردار ورودی را در نظر بگیرید یک ماشین بولتزمن محدود شده را با استفاده از بردار ورودی آموزش دهید و ماتریس وزن را به دست آورید. دو لایه پایینتر شبکه را با استفاده از این ماتریس وزنی بردار ورودی جدید را با استفاده از شبکه (RBM)از طریق نمونهبرداری یا فعالسازی متوسط واحدهای مخفی تولید کنید. این روند را تکرار کنید تا به دو لایه بالایی شبکه برسید. تنظیم دقیق شبکه باور عمیق بسیار شبیه به شبکه پرسپترون چند لایه است.
شبکههای عصبی کانولوشنال
شبکه عصبی کانولوشنی (CNN) نوع دیگری از شبکه پرسپترون چند لایه است. این نوعی از شبکه عصبی است که در آن نورونهای فردی به روشی مرتب میشوند که به تمام نواحی همپوشانی شده در ناحیه بینایی پاسخ میدهند. سی ان ان عمیق با مدلسازی پشت سر هم قطعات کوچک اطلاعات و ترکیب آنها عمیقتر در شبکه کار میکند. لایههای نهایی یک تصویر ورودی را با تمام قالبها، و پیشبینی نهایی مانند مجموع وزنی همه آنها است. بنابراین، CNN های عمیق میتوانند تغییرات پیچیده و رفتار را مدل کنند و پیشبینیهای بسیار دقیقی ارایه دهند.
چنین شبکهای مکانیسم بصری موجودات زنده را دنبال میکند. سلولهای قشر بینایی به نواحی کوچک میدان بینایی که میدان دریافتی نامیده میشوند، حساس هستند. نواحی فرعی طوری چیده شدهاند که کل ناحیه بصری را پوشش دهند، و سلولها به عنوان فیلترهای محلی بر روی فضای ورودی عمل میکنند. الگوریتمها برای آموزش پارامترهای هر هسته کانولوشن استفاده میشود. علاوه بر این، هر هسته با پارامترهای مشابه در کل تصویر تکرار میشود. عملگرهای کانولوشنی وجود دارند که ویژگیهای منحصر به فرد ورودی را استخراج میکنند. علاوه بر لایه کانولوشنال، شبکه شامل یک لایه واحد خطی تصحیح شده، لایههای ادغام برای محاسبه حداکثر یا مقدار متوسط یک ویژگی در یک ناحیه از تصویر، و یک لایه از دست دادن شامل توابع زیان خاص کاربرد است. تشخیص تصویر و آنالیز تصویری و پردازش زبان طبیعی کاربردهای اصلی چنین شبکه عصبی هستند.
حوزه دید کامپیوتری در چند سال گذشته شاهد پیشرفتهای متعددی بودهاست. یکی از مهمترین پیشرفتها در این زمینه، CNNs است. اکنون، بخش عمیق CNNها هسته پیچیدهترین کاربردهای بینایی کامپیوتری فانتزی مانند ماشینهای خود گردان، تشخیص ژست، برچسب زدن خودکار دوستان در تصاویر فیس بوک، ویژگیهای امنیتی صورت، و تشخیص اتوماتیک شماره پلاک را تشکیل میدهد.
Recurrent Neural Networks
مدل کانولوشنی روی یک تعداد ثابت ورودی کار میکند، و یک بردار ثابت به عنوان خروجی با تعداد مراحل از پیش تعریفشده تولید میکند. شبکههای بازگشتی به ما این امکان را میدهند تا روی توالیهای بردارها در ورودی و خروجی عمل کنیم. در مورد شبکه عصبی بازگشتی، اتصال بین واحدها یک چرخه مستقیم را شکل میدهد. برخلاف شبکه عصبی سنتی، ورودی و خروجی شبکه عصبی بازگشتی مستقل نیستند بلکه مرتبط هستند. علاوه بر این، شبکه عصبی بازگشتی پارامترهای استاندارد را در هر لایه به اشتراک میگذارد. فرد میتواند شبکه بازگشتی را به روشی آموزش دهد که شبیه شبکه عصبی سنتی با استفاده از روش پس انتشار باشد.
در اینجا محاسبه گرادیان نه به گام جریان بلکه به گامهای قبلی نیز بستگی دارد. نوع دیگری به نام شبکه عصبی بازگشتی دوسویه نیز برای بسیاری از کاربردها مورد استفاده قرار میگیرد. شبکه عصبی دو جهته نه تنها خروجی قبلی بلکه خروجی آتی مورد انتظار را نیز در نظر میگیرد. در شبکههای عصبی بازگشتی دو طرفه و مستقیم، یادگیری عمیق را می توان با معرفی لایههای پنهان چندگانه به دست آورد. چنین شبکههای عمیقی ظرفیت یادگیری بالاتری را با تعداد زیادی داده یادگیری فراهم میکنند. گفتار، پردازش تصویر و پردازش زبان طبیعی برخی از حوزههای انتخابی هستند که در آنها شبکههای عصبی بازگشتی میتوانند مورد استفاده قرار گیرند.
یادگیری تقویتی در شبکههای عصبی
یادگیری تقویتی نوعی ترکیب برنامهنویسی پویا و یادگیری تحت نظارت است. مولفههای معمول این رویکرد عبارتند از محیط، عامل، اقدامات، سیاست، و توابع هزینه. عامل به عنوان کنترلکننده سیستم عمل میکند؛ سیاست تعیین میکند که چه اقداماتی باید صورت گیرد و تابع پاداش هدف کلی مساله یادگیری تقویتی را مشخص میکند. یک نماینده که حداکثر پاداش ممکن را دریافت میکند، میتواند به عنوان بهترین عمل برای یک دولت مشخص در نظر گرفته شود.
در اینجا، یک نماینده به یک نهاد انتزاعی، یا یک شی و یا یک موضوع اشاره میکند (اتومبیلهای خود مختار، روباتها، انسانها، حمایت مشتری وغیره)، که اقدامات را انجام میدهد. حالت یک عامل به موقعیت و حالت بودن آن در محیط انتزاعی اشاره دارد؛ برای مثال، یک موقعیت خاص در دنیای واقعیت مجازی، یک ساختمان، یک صفحه شطرنج، یا موقعیت و سرعت در یک مسیر مسابقه. یادگیری تقویتی عمیق، وعده یک روش یادگیری بسیار کلی را دارد که میتواند رفتار مفید را با بازخورد بسیار کمی یاد بگیرد.
مهم ترین مزایای یادگیری عمیق
- یادگیری خودکار ویژگی ها
- یادگیری چند لایه ویژگی ها
- دقت بالا در نتایج
- قدرت تعمیم بالا و شناسایی داده های جدید
- پشتیبانی گسترده سخت افزاری و نرم افزاری
- پتانسیل ایجاد قابلیت ها و کاربردهای بیشتر در آینده
جمعبندی
در این مقاله علاوه بر آشنایی با مفهوم یادگیری عمیق و تکنیکهای مختلف آن مبنی بر شبکههای عصبی و مزایای یادگیری عمیق در حوزه deep learning نیز آشنا شدید. امیدوارم از این مطلب کاربردی استفاده کرده باشید و تا حدودی سوالات شما را در این زمینه پاسخ داده باشیم.
منبع: سایت roboticsbiz