جاسازی‌ها

تصور کنید درحال توسعه یک برنامه توصیه غذا هستید که در آن، کاربران غذاهای موردعلاقه خود را وارد می‌کنند و برنامه غذاهای مشابهی را پیشنهاد می‌دهد که ممکن است دوست داشته باشند. می‌خواهید مدل یادگیری ماشینی‌ای را توسعه دهید که شباهت غذاها را پیش‌بینی کند تا برنامه شما بتواند توصیه‌های با کیفیت بالا ارائه دهد («چون پنکیک دوست دارید، کرپ را به شما توصیه می‌کنیم»).

برای آموزش مدل خود، مجموعه داده‌ای متشکل‌از ۵٬۰۰۰ غذای پرطرفدار را گردآوری می‌کنید، ازجمله برشچ ، هات داگ، سالاد، پیتزا، و شاورما.

.شکل ۱ .مجموعه‌ای از تصاویر پنج نوع غذا .ساعت‌گرد از بالا: برشچ، هات‌داگ، سالاد، پیتزا، شاورما
شکل ۱. نمونه غذاهای موجود در مجموعه داده غذا.

ویژگی meal ایجاد می‌کنید که شامل نمایش کدبندی‌شده وان هات از هریک از غذاهای موجود در مجموعه داده است. کدبندی به فرایند انتخاب نمایش عددی اولیه داده‌ها برای آموزش مدل اشاره دارد.

.شکل ۲  بالا: دیداری‌سازی کدبندی وان هات برای برشچ
       بردار [0 ,... ,0 ,0 ,0 ,1] در بالای شش جعبه نمایش داده شده است که هریک از چپ به راست با یکی از اعداد بردار هم‌تراز هستند.‏ جعبه‌ها، از چپ به راست، شامل تصاویر زیر است: برشچ، هات‌داگ، سالاد، پیتزا، [خالی]، شاورما.‏ وسط: دیداری‌سازی کدبندی وان هات برای هات داگ.‏
       بردار [0 ,... ,0 ,0 ,1 ,0] در بالای شش جعبه نمایش داده شده است که هریک از چپ به راست با یکی از اعداد بردار هم‌تراز هستند.‏ جعبه‌ها همان تصاویر را از چپ به راست دارند که در دیداری‌سازی برشچ در بالا وجود دارد.‏ پایین: دیداری‌سازی کدبندی وان هات برای شاورما.‏ بردار [1 ,... ,0 ,0 ,0 ,0] در بالای شش جعبه نمایش داده شده است که هریک از چپ به راست با یکی از اعداد بردار هم‌تراز هستند.‏ جعبه‌ها همان تصاویر را از چپ به راست دارند که در دیداری‌سازی برشچ و هات داگ وجود دارد.‏
شکل ۲. کدبندی‌های وان هات برشچ، هات داگ، و شاورما. هر بردار کدبندی وان هات دارای طول ۵٬۰۰۰ است (یک ورودی برای هر گزینه منو در مجموعه داده). سه‌نقطه در نمودار نشان‌دهنده ۴٬۹۹۵ ورودی نمایش داده‌نشده است.

مشکلات مربوط به ارائه داده‌های پراکنده

با بررسی کردن این کدبندی‌های وان هات، چندین مشکل را در این نمایش داده‌ها مشاهده می‌کنید.

  • تعداد وزن‌ها. بردارهای ورودی بزرگ به‌معنای تعداد زیادی وزن برای شبکه عصبی است. با M ورودی در کدبندی وان هات و N گره در اولین لایه شبکه پس‌از ورودی، مدل باید MxN وزن را برای آن لایه آموزش دهد.
  • تعداد نقاط داده. هرچه مدل شما وزن‌های بیشتری داشته باشد، برای آموزش مؤثر به داده‌های بیشتری نیاز خواهید داشت.
  • میزان محاسبات. هرچه وزن‌ها بیشتر باشند، مقدار محاسبات لازم برای آموزش و استفاده از مدل افزایش می‌یابد. مدل به راحتی می‌تواند از توانایی‌های سخت‌افزاری فراتر برود.
  • مقدار حافظه. هرچه مدل شما وزن‌های بیشتری داشته باشد، شتاب‌دهنده‌هایی که آن را آموزش می‌دهند و اجرا می‌کنند به حافظه بیشتری نیاز خواهند داشت. گسترش این فرایند به‌صورت کارآمد بسیار دشوار است.
  • دشواری پشتیبانی از یادگیری ماشین درون‌دستگاهی (ODML). اگر می‌خواهید مدل یادگیری ماشینتان را روی دستگاه‌های محلی اجرا کنید (به‌جای پیاده‌سازی آن در سرور)، باید روی کوچک‌تر کردن مدل تمرکز کنید و تعداد وزن‌ها را کاهش دهید.

در این واحد، با نحوه ایجاد کردن جاسازی، نمایش کم‌بُعدتر داده‌های پراکنده که این مشکلات را برطرف می‌کند، آشنا می‌شوید.