بذار از یه مشکل خیلی مهم شروع کنم: بالاخره کلی ماشین و دستگاه پیشرفته توی کارخونهها هست که دائماً باید درست کار کنن و اگه خراب شن، هم امنیت کارخونه میره زیر سؤال و هم تولید کلی ضرر میبینه. اینجاست که «تشخیص هوشمند خرابی» اهمیت پیدا میکنه! (تشخیص هوشمند خرابی یا همون Intelligent Fault Diagnosis یعنی با کمک ابزارهای پیشرفته مثل هوش مصنوعی و یادگیری ماشین، بفهمیم یه دستگاه یا ماشین ممکنه چه زمانی خراب بشه تا زودتر جلوش رو بگیریم.)
حالا مشکل کجاست؟ مدلهای یادگیری عمیق معمولی که تو این زمینه استفاده میشن، کلی داده و برچسب (همون لیبل که نشون میده این نمونه خرابه یا سالمه) لازم دارن. اما اولاً دادههاش معمولاً تو سیستمها و شرکتهای مختلف پخش شدن (بهشون میگن «کلاینت»)، دوم این که برچسب زدن دادهها هم هزینهبر و زمانبره، یعنی نمیتونیم به راحتی همه دادهها رو لیبل کنیم.
از بدشانسی دیگه اینه که دادههایی که هر کلاینت داره ممکنه خیلی با بقیه فرق کنه (به این میگن اختلاف تو توزیع داده یا Data Distribution Shift، یعنی مثلاً سنسورهای شرکت A با شرکت B فرق داره).
حالا یه راهحل خفن به اسم «یادگیری فدرال» (Federated Learning) اومده که ایدهش اینه: لازم نیست همهی دادهها رو جمع کنیم یه جا، هر کلاینت بدون این که اطلاعاتش رو لو بده مدل خودش رو آموزش میده و فقط پارامترها یا وزنهای مدل رو برای بهروزرسانی میفرسته سرور مرکزی. نتیجه؟ هم امنیت دادهها حفظ میشه، هم یادگیری مدل انجام میشه. (یادگیری فدرال یعنی آموزش مدل هوش مصنوعی بین چند جایی که دادههاشون جداست، بدون انتقال دادههای خام.)
ولی این روش هم بدون ایراد نیست؛ چون هم اختلاف تو دادهها هست، هم لیبلها کمه، ممکنه مدل به هم بریزه یا دچار مشکل بشه.
این مقاله یه روش تازه و کاردرست معرفی کرده که اسمش هست: «یادگیری فدرال نیمهنظارتی با استفاده از یادگیری دوگانه کانتراستیو و لیبلهای نرم» یا به انگلیسی SSFL-DCSL. حالا بزار سادهتر برات توضیح بدم:
- یادگیری نیمهنظارتی (Semi-supervised Learning): یعنی وقتی فقط یه بخشی از دادهها لیبل دارن و بقیه بدون برچسب هستن، سعی میکنیم همهشون رو برای آموزش مدل استفاده کنیم.
- کانتراستیو لرنینگ (Contrastive Learning): یه تکنیک در یادگیری عمیق که مدل رو طوری آموزش میده که بتونه بفهمه کدوم نمونهها بهم شبیهن و کدومها متفاوت. این طوری مدل بهتر میتونه ویژگیهای داده رو بگیره.
- لیبلهای نرم (Soft Labels): برچسبهایی که به جای مشخص کردن با قطعیت یک کلاس، یه احتمالی میدن که مثلاً این نمونه ۸۰٪ خرابه، ۲۰٪ سالمه.
حالا SSFL-DCSL چی کار میکنه؟
-
برای این که مشکل کم بودن لیبل (برچسب) رو حل کنه و به دادههای بدون برچسب هم اهمیت بده، یه روش هوشمندانه پیشنهاد داده تا بتونیم یادگیری «نمایش» (Representation Learning یعنی پیدا کردن ویژگیهای مهم دادهها) رو حتی با دادههای بدون لیبل خوب انجام بدیم.
-
هر کلاینت مدل خودش رو روی دادههاش آموزش میده، اما یه سری «نمونه مرجع» (میگن Prototype، یعنی یه خلاصهشده از ویژگیهای مهم دادهها) رو هم بین کلاینتها به اشتراک میذاره. اینجوری دانش بین همه کلاینتها پخش میشه و مدل محلی زیاد از بقیه جدا نمیشه.
-
برای این که مدل از دادههای بدون برچسب درست استفاده کنه، از یه ترفند استفاده کردن: وزندهی نمونهها با استفاده از «توزیع لاپلاس» (Laplace Distribution یعنی یه نوع توزیع آماری شبیه به نرمال اما با دمهای سنگینتر، کمک میکنه نمونههایی که مدل مطمئن نیست رو کمتر وزن بده تا اشتباهات مدل کم شه).
-
دو نوع loss (تابع خطا، یعنی معیاری که به مدل میگه چقدر بد یا خوب داره پیشبینی میکنه) استفاده میشه: یکی «کانتراستیو لوکال» (Local Contrastive Loss) که تمرکز رو دادههای خود کلاینت داره، یکی «کانتراستیو گلوبال» (Global Contrastive Loss) که همه کلاینتها رو درگیر میکنه، تا مدلها از هم زیاد متفاوت نشن.
-
نمونههای مرجعی که هر کلاینت درست کرده، با هم روی سرور جمع میشن و با «میانگینگیری وزندار» (Weighted Averaging) و آپدیت با «مومنتوم» (Momentum، یه تکنیک محبوب برای آپدیت نرم و تدریجی وزنها) بین کلاینتها پخش میشن. این یعنی یادگیری جمعی بهتر اتفاق میافته.
آزمایشهاشون رو هم روی دو تا دیتاست عمومی و یه دیتاست مربوط به موتورهای واقعی توی کارخانه انجام دادن. نکته جذاب اینجاست: حتی تو سختترین حالت که فقط ۱۰ درصد دادهها لیبل داشتن، این روش تونست بین ۱.۱۵٪ تا ۷.۸۵٪ نسبت به بهترین روشهای قبلی دقت بیشتری بیاره! یعنی واقعا تونسته مسئله کمبود داده برچسبخورده و اختلاف داده بین کلاینتها رو تا حد زیادی حل کنه.
در کل اگر دنبال یه راهحل باحال و کارآمد برای تشخیص خرابی دستگاههای صنعتی هستید، اونم وقتی داده کمی لیبل دارید و حریم خصوصی دادهها براتون مهمه، SSFL-DCSL واقعاً حرف نداره و با ترفندهای خلاقانه خودش میتونه مدل یادگیری عمیق رو حسابی قوی کنه!
منبع: +