یکی از مسایلی که لازم است حتما در یادگیری عمیق لحاظ شود این است که در حین آموزش لازم است داده ها را shuffle کرد. علت این موضوع این است که داده ها وابستگی نداشته باشند و به اصطلاح i.i.d باشند. خوبی این موضوع این است که تابع هزینه ای که در هر iteration با minibatch کنونی تقریب می زنیم به خاطر داده های تصادفی، به شکل های اشتباه در نمی آید و جهت گیری هایی که سبب وابستگی داده ها است را پیدا نمی کند. اما یک دلیل دیگر نیز وجود دارد که با توجه به این دلیل، shuffle کردن داده ها حتما لازم است صورت گیرد. حتما شکل تابع هزینه را دیده اید که حاصل جمع خطا ها روی تک تک داده ها است؛ برای مثال log loss به این شکل است که شما جمع یکسری ترمِ لگاریتمی را دارید. خود این تابع هزینه با فرض i.i.d بودن داده ها بدست می آید. برای توضیح دادن ساده این موضوع به این شکل کار می کنیم که اگر بخواهیم احتمال رخ داد یک مجموعه دادگان را بررسی کنیم باید احتمال (P(x1, x2, ..., xn را پیدا کنیم ولی چون فرض می کنیم داده ها مستقل هستند با i.i.d پس حاصل احتمال ذکر شده به صورت ضرب تک تک احتمال داده ها قابل پیدا کردن است. اصطلاحا توزیع joint را به marginalها تبدیل کردیم. با یک لگاریتم گیری هم ضرب ها به جمع تبدیل می شوند.
نوشته شده بوسیله:
کامران پناهی
کارشناسی ارشد هوش مصنوعی
علاقه مند به یادگیری عمیق