یادگیری عمیق چگونه کار میکند ؟ راهنمای سریع مناسب برای همه

هوش مصنوعی (Artificial Intelligence) و یادگیری ماشین (Machine Learning) از داغ ترین موضوعات حال حاضر دنیای تکنولوژی هستند.اصطلاح AI یا Artificial Intelligence این روز ها همه جا شنیده میشود. ممکن است شما هم شنیده باشید که توسعه دهندگان و برنامه نویسان مختلف قصد یادگیری هوش مصنوعی را دارند. یا حتی شنیده باشید که آن ها میخواهند از هوش مصنوعی در سرویس های خود استفاده کنند. اما بیشتر افراد نمیدانند که هوش مصنوعی دقیقا چیست.برای اولین بار که این مقاله را بخوانید شما پایه و اساس هوش مصنوعی و یادگیری ماشین را خواهید فهمید. مهمتر از همه شما خواهید فهمید که یادگیری عمیق (از محبوب ترین انواع یادگیری ماشین) چگونه کار میکند.این مقاله برای همه افراد مناسب است. به همین جهت محاسبات پیچیده ریاضی در این مقاله به کار برده نخواهد شد.پیش زمینهاولین قدم برای درک نحوه کارکرد یادگیری عمیق ، فهمیدن تفاوت بین اصطلاحات مهم است.هوش مصنوعی در مقایسه با یادگیری ماشینهوش مصنوعی شبیه سازی هوش انسانی در کامپیوتر است.زمانی که تحقیقات در حوزه هوش مصنوعی آغاز شد، دانشمندان در پی تکثیر و شبیه سازی هوش انسانی برای کارهای مشخص مانند بازی کردن یک گیم بودند.آن ها تعداد زیادی از قوانین را برای کامپیوتر تعریف کردند تا کامپیوتر بر اساس آن قوانین محاسبات خود را انجام دهد. کامپیوتر لیست مشخصی از اقدامات ممکن را در اختیار داشت و تصمیمات مختلفی را بر اساس آن قوانین میگرفت.یادگیری ماشین به توانایی یادگرفتن الگو های موجود از مقدار زیادی داده ها گفته میشودیادگیری ماشین به کامپیوتر ها اجازه میدهد که خودشان یادبگیرند. این نوع از یادگیری به قدرت پردازش کامپیوتر های امروزی نیاز دارد که میتوانند مقدار زیادی داده را به سادگی پردازش کنند.یادگیری نظارت شده در مقایسه با یادگیری بدون نظارتیادگیری با ناظر یا نظارت شده نیازمند داده های برچسب گذاری شده میباشد که شامل داده های ورودی و خروجی مورد نظر به ازای هر داده است.زمانی که شما یک هوش مصنوعی را با استفاده از روش نظارت شده آموزش میدهید، در واقع شما باید مقدار زیادی داده به سیستم بدهید و خروجی مورد نظر را هم به ازای هر داده برای سیستم مشخص کنید.اگه خروجی تولید شده توسط هوش مصنوعی اشتباه باشد، سیستم هوش مصنوعی دوباره پردازش مورد نظر را انجام میدهد. این پردازش بارها روی داده های ورودی انجام خواهد شد تا زمانی که هوش مصنوعی دیگر خطا نکند و به درجه ی بالایی از دقت برسد.یک مثال از یادگیری نظارت شده ، پیش بینی آب و هوا توسط هوش مصنوعی است. هوش مصنوعی یاد میگیرد تا هوا را با استفاده از داده های از قبل تعیین شده و موجود پیش بینی کند. داده های ورودی شامل فشار، رطوبت و سرعت باد میشود و خروجی دما است.یادگیری بدون ناظر یا نظارت نشده یکی از روش های یادگیری ماشین است که با استفاده از داده های بدون برچسب انجام میشود. در حقیقت ما خروجی مورد انتظار هر ورودی را نداریم.وقتی شما یک هوش مصنوعی را به روش یادگیری بدون نظارت آموزش میدهید ، به هوش مصنوعی اجازه میدهید تا داده هارا به قسمت های منطقی دسته بندی کند.یک مثال از یادگیری بدون نظارت پیش بینی رفتار توسط هوش مصنوعی در یک وبسایت فروشگاهی است. در این مثال هوش مصنوعی با استفاده از داده های برچسب گذاری شده آموزش نمی بیند. در عوض هوش مصنوعی دسته بندی خودش را بر روی داده های ورودی اعمال خواهد کرد. که این به شما خواهد گفت که کدوم نوع از کاربران به خرید چه کالا هایی علاقمند هستند.هم اکنون، یادگیری عمیق چگونه کار میکند؟شما الان آماده هستید تا بدانید که یادگیری عمیق چیست و چگونه کار میکند.یادگیری عمیق یکی از روش های یادگیری ماشین است که به ما اجازه میدهد یک هوش مصنوعی را با استفاده از یک سری داده ورودی آموزش دهیم تا خروجی مورد نظر ما را پیش بینی کند. هردو روش یادگیری نظارت شده و یادگیری بدون نظارت میتوانند برای آموزش هوش مصنوعی استفاده شوند.ما با ساختن سرویس فرضی پیش بینی قیمت بلیط هواپیما ، خواهیم آموخت که یادگیری عمیق چگونه کار میکند. ما این سیستم هوش مصنوعی را به روش یادگیری نظارت شده آموزش خواهیم داد.ما میخواهیم تا سیستم پیش بینی قیمت بلیط هواپیما با استفاده از ورودی های زیر قیمت بلیط هارا پیش بینی کند (برای سادگی کار از بلیط های رفت و برگشت چشم پوشی میکنیم):فرودگاه مبدافرودگاه مقصدتاریخ سفرشرکت هواپیماییشبکه های عصبیبیایید نگاهی به داخل مغر هوش مصنوعی مان بیاندازیم.مانند مغز انسان ها و حیوانات ، هوش مصنوعی پیش بینی کننده ما هم از نورون تشکیل شده است. در تصویر زیر نورون ها با استفاده از دایره نمایش داده شده اند. این نورون ها به هم پیوسته هستند.نورون ها در سه نوع لایه مختلف گروه بندی میشوند:لایه ورودیلایه (های) مخفیلایه خروجیلایه ورودی داده های ورودی را دریافت میکند. در مثال ما 4 نورون در لایه ورودی داریم:فرودگاه مبدا ، فرودگاه مقصد ، تاریخ سفر و شرکت هواپیمایی. لایه ورودی ، داده های ورودی را به اولین لایه مخفی انتقال میدهد.لایه های مخفی محسبات ریاضی را روی داده های ما اعمال میکنند. یکی از چالش های ساختن شبکه های عصبی مشخص کردن تعداد لایه ها و تعداد نورون ها در هر لایه می باشد.واژه "Deep" در ِDeep Learning (یادگیری عمیق) به داشتن بیش از یک لایه مخفی اشاره دارد.لایه خروجی ، داده های نهایی را بازگشت میدهد. در مثال ما لایه خروجی هزینه پیش بینی شده ی بلیط را به ما بازمیگرداند.اما این شبکه عصبی چگونه عمل پیش بینی هزینه را انجام میدهد؟اینجا جایی است که جادوی یادگیری عمیق شروع میشود.هر ارتباطی بین نورون ها به یک وزن مرتبط است. این وزن اهمیت ارزش ورودی را مشخص میکند. وزن های اولیه به صورت رندوم ایجاد میشوند.زمانی که هزینه یک بلیط هواپیما را پیش بینی میکنیم ، فاکتور تاریخ سفر یکی از مهمترین و سنگین ترین فاکتور ها است. ازین رو کانکشن های نورونی که مربوط به فاکتور زمان سفر هستند وزن بزرگتری خواهند داشت.هر نورون یک تابع Activation دارید. درک این توابع بدون استدلال ریاضی بسیار سخت است. یکی از اهداف استاندارد کردن خروجی هر نورون است.پس از اینکه داده های ورودی از تمام لایه های شبکه عصبی عبور کرد ، در نهایت داده های خروجی از لایه خروجی بازگشت داده میشود.می بینید که چیز سختی درباره شبکه های عصبی وجود ندارد.آموزش شبکه عصبیآموزش هوش مصنوعی از سخت ترین قسمت های یادگیری عمیق است. اما چرا؟شما به مجموعه داده های بزرگی نیاز دارید.شما به قدرت محاسباتی زیادی نیاز دارید.ما برای سیستم تخمین هزینه بلیط هواپیما نیاز داریم تا داده های موجود در این حوزه را پیدا و جمع آوری کنیم. و به دلیل زیاد بودن شرکت های هواپیمایی احتمالی و تاریخ سفر های احتمالی و ترکیب این فاکتور ها ، ما به لیست بزرگی از هزینه تیکت ها نیاز داریم.برای آموزش مدل هوش مصنوعی ، ما نیاز داریم تا داده های ورودی را وارد کرده و خروجی حاصل را با خروجی مورد انتظار مقایسه کنیم. تا زمانی که هوش مصنوعی آموزش ندیده است ، خروجی حاصل ممکن است اشتباه باشد.یکبار که ما کل مجموعه داده ها را وارد کردیم ، میتوانیم یک تابعی بسازیم که نشان دهد چقدر از خروجی های مدل هوش مصنوعی در مقایسه با خروجی های واقعی اشتباه بوده است. این تابع ، تابع هزینه (Cost Function) نامیده میشود.در حالت ایده آل ما میخواهیم تا تابع هزینه صفر باشد. این حالت زمانی رخ میدهد که تمامی خروجی های مدل هوش مصنوعی با خروجی های واقعی یکسان باشند.چگونه میتوانیم مقدار تابع هزینه را کاهش دهیم؟ما وزن های بین نورون ها را تغییر می دهیم. ما میتوانیم به صورت رندوم آن هارا تغییر بدهیم تا زمانی که تابع هزینه ها به صفر میل کند ، اما این راه خیلی کارآمدی نیست.در عوض ، ما از تکنیک Gradient Descent استفاده خواهیم کرد.روش Gradient Descent یک تکنیکی است که به ما اجازه میدهد تا مینیمم یک تابع را پیدا کنیم. در این مثال ، ما به دنبال مینیمم تابع هزینه خواهیم گشت.این تکنیک در افزایش های کوچک بعد هر پیمایش داده ها ، وزن هارا تغییر میدهد. با محاسبه ی مشتق (یا شیب) تابع هزینه در یک مجموعه مشخصی از وزن ها ، ما میتوانیم ببینیم که مینیمم تابع در کدوم جهت است.برای کاهش دادن تابع هزینه ، شما نیاز دارید تا چندین بار بر روی داده ها پیشمایش کنید. به همین دلیل است که به قدرت محسباتیه بالایی نیاز دارید.آپدیت کردن وزن ها توسط Gradient Descent به صورت خودکار انجام میشود. این جادوی یادگیری عمیق است.یک بار که ما سیستم هوش مصنوعی تعیین هزینه بلیط را آموزش دادیم ، ما میتوانیم از آن بارها برای پیش بینی کردن هزینه استفاده کنیم.کجا میتوانم بیشتر یاد بگیرم؟انواع دیگری از شبکه های عصبی وجود دارد:شبکه های عصبی Convolutional برای بینایی کامپیوتر و شبکه های عصبی Recurrent برای پردازش زبان طبیعی.درحال حاضر یکی از بهترین دوره های یادگیری عمیق ، دوره ی Deep Learning Specialization از Andrew Ng است.خلاصهیادگیری عمیق از شبکه های عصبی برای شبیه سازی هوش انسانی استفاده میکند.سه نوع لایه های نورونی در یک شبکه عصبی موجود است : لایه ورودی ، لایه (های) مخفی و لایه خروجی.روابط بین نورون ها به یک وزن مرتبط میشود که نشان دهنده اهمیت ارزش داده ورودی است.نورون ها یک تابع Activation را روی داده ها اعمال میکنند تا نتیجه خروجی از نورون را استاندارد سازی بکنند.برای آموزش یک شبکه عصبی شما به مقدار زیادی داده نیاز دارید.پس از هر پیشمایش بر روی مجموعه داده ها ، وزن بین نورون ها به وسیله Gradient Descent تغییر خواهد کرد تا مقدار تابع هزینه کاهش یابد.این مقاله ای که خواندید ترجمه ای از مقاله ی Want to know how Deep Learning works? Here is a quick guide for everyone.بود که در جهت افزایش منابع فارسی توسط بنده ترجمه شد.