سنجش شباهت تحت نظارت

به جای مقایسه داده های ویژگی ترکیب شده دستی، می توانید داده های ویژگی را به نمایش هایی به نام embeddings کاهش دهید و سپس جاسازی ها را مقایسه کنید. جاسازی ها با آموزش یک شبکه عصبی عمیق نظارت شده ( DNN ) بر روی خود داده های ویژگی ایجاد می شوند. تعبیه‌ها داده‌های ویژگی را به یک بردار در یک فضای جاسازی نگاشت می‌کنند. به طور معمول، فضای جاسازی ابعاد کمتری نسبت به داده های ویژگی دارد، به گونه ای که برخی از ساختارهای پنهان مجموعه داده ویژگی را به تصویر می کشد. بردارهای جاسازی برای نمونه‌های مشابه، مانند ویدیوهای YouTube که توسط همان کاربران تماشا می‌شوند، در فضای جاسازی به هم نزدیک می‌شوند. خواهیم دید که چگونه معیار شباهت از این "نزدیک" برای کمی کردن شباهت برای جفت مثال استفاده می کند.

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

مقایسه اقدامات دستی و نظارت شده

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

مورد نیاز کتابچه راهنمای تحت نظارت
حذف اطلاعات اضافی در ویژگی های مرتبط. نه، شما باید به طور جداگانه ارتباط بین ویژگی ها را بررسی کنید. بله، DNN اطلاعات اضافی را حذف می کند.
بینشی در مورد شباهت های محاسبه شده ارائه دهید. آره نه، تعبیه‌ها را نمی‌توان رمزگشایی کرد.
مناسب برای مجموعه داده های کوچک با ویژگی های کم. بله، طراحی یک اندازه گیری دستی با چند ویژگی آسان است. خیر، مجموعه داده های کوچک داده های آموزشی کافی برای یک DNN ارائه نمی دهند.
مناسب برای مجموعه داده های بزرگ با ویژگی های زیاد. خیر، حذف دستی اطلاعات اضافی از چندین ویژگی و سپس ترکیب آنها بسیار دشوار است. بله، DNN به طور خودکار اطلاعات اضافی را حذف می کند و ویژگی ها را ترکیب می کند.

فرآیند سنجش شباهت تحت نظارت

شکل زیر نحوه ایجاد یک اندازه گیری شباهت نظارت شده را نشان می دهد:

داده های ویژگی ورودی DNN: Autoencoder یا Predictor را انتخاب کنید. تعبیه ها را استخراج کنید. اندازه گیری را انتخاب کنید: حاصل ضرب نقطه، کسینوس یا فاصله اقلیدسی.
شکل 1: مراحل ایجاد یک معیار شباهت نظارت شده.

شما قبلاً قدم اول را یاد گرفته اید. این صفحه مرحله بعدی را مورد بحث قرار می دهد و صفحات بعدی در مورد مراحل باقی مانده صحبت می کند.

DNN را بر اساس برچسب های آموزشی انتخاب کنید

با آموزش یک DNN که از داده های ویژگی یکسانی به عنوان ورودی و برچسب استفاده می کند، داده های ویژگی خود را به جاسازی کاهش دهید. برای مثال، در مورد داده‌های خانه، DNN از ویژگی‌هایی مانند قیمت، اندازه و کد پستی برای پیش‌بینی این ویژگی‌ها استفاده می‌کند. به منظور استفاده از داده‌های ویژگی برای پیش‌بینی همان داده‌های ویژگی، DNN مجبور است داده‌های ویژگی ورودی را به جاسازی‌ها کاهش دهد. شما از این جاسازی ها برای محاسبه شباهت استفاده می کنید.

DNN که جاسازی داده های ورودی را با پیش بینی خود داده های ورودی یاد می گیرد، رمزگذار خودکار نامیده می شود. از آنجایی که لایه‌های مخفی رمزگذار خودکار کوچک‌تر از لایه‌های ورودی و خروجی هستند، رمزگذار خودکار مجبور است یک نمایش فشرده از داده‌های ویژگی ورودی را بیاموزد. هنگامی که DNN آموزش داده شد، برای محاسبه شباهت، جاسازی ها را از آخرین لایه پنهان استخراج می کنید.

مقایسه بین رمزگذار خودکار و DNN پیش‌بینی‌کننده. ورودی های شروع و لایه های پنهان یکسان هستند اما خروجی توسط ویژگی کلیدی در مدل پیش بینی فیلتر می شود.
شکل 2: مقایسه بین رمزگذار خودکار و پیش بینی کننده.

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

  • ویژگی‌های عددی را به ویژگی‌های طبقه‌بندی به عنوان برچسب ترجیح دهید زیرا محاسبه و تفسیر برای ویژگی‌های عددی از دست دادن آسان‌تر است.

  • از ویژگی‌های دسته‌بندی با \(\lesssim\) 100 به عنوان برچسب استفاده نکنید. اگر این کار را انجام دهید، DNN مجبور نخواهد شد که داده‌های ورودی شما را به جاسازی‌ها کاهش دهد، زیرا یک DNN می‌تواند به راحتی برچسب‌های دسته‌بندی کم‌کاردینالیته را پیش‌بینی کند.

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

بسته به انتخاب شما از برچسب ها، DNN حاصله یا یک DNN رمزگذار خودکار یا یک DNN پیش بینی کننده است.

عملکرد از دست دادن برای DNN

برای آموزش DNN، باید با دنبال کردن مراحل زیر یک تابع ضرر ایجاد کنید:

  1. تلفات را برای هر خروجی DNN محاسبه کنید. برای خروجی هایی که عبارتند از:
    • عددی، از میانگین مربعات خطا (MSE) استفاده کنید.
    • دسته بندی یک ظرفیتی، از از دست دادن گزارش استفاده کنید. توجه داشته باشید که نیازی به پیاده سازی اتلاف گزارش نخواهید داشت زیرا می توانید از یک تابع کتابخانه برای محاسبه آن استفاده کنید.
    • دسته بندی چند ظرفیتی، از افت آنتروپی متقاطع softmax استفاده کنید. توجه داشته باشید که نیازی به پیاده سازی افت آنتروپی متقاطع softmax نخواهید داشت زیرا می توانید از یک تابع کتابخانه برای محاسبه آن استفاده کنید.
  2. مجموع ضرر را با جمع کردن ضرر برای هر خروجی محاسبه کنید.

هنگام جمع‌بندی ضررها، اطمینان حاصل کنید که هر یک از ویژگی‌ها به طور متناسب در ضرر نقش دارند. به عنوان مثال، اگر داده های رنگی را به مقادیر RGB تبدیل کنید، سه خروجی خواهید داشت. اما جمع کردن افت برای سه خروجی به این معنی است که از دست دادن رنگ سه برابر بیشتر از سایر ویژگی ها وزن دارد. در عوض، هر خروجی را در 1/3 ضرب کنید.

استفاده از DNN در یک سیستم آنلاین

یک سیستم یادگیری ماشین آنلاین دارای جریان پیوسته ای از داده های ورودی جدید است. شما باید DNN خود را بر روی داده های جدید آموزش دهید. با این حال، اگر DNN خود را از ابتدا مجدداً آموزش دهید، جاسازی‌های شما متفاوت خواهد بود زیرا DNN‌ها با وزن‌های تصادفی مقداردهی اولیه می‌شوند. در عوض، همیشه DNN را با وزن‌های موجود گرم شروع کنید و سپس DNN را با داده‌های جدید به‌روزرسانی کنید.