یادگیری فدرال
یادگیری فدرال (همچنین به عنوان یادگیری مشارکتی نیز شناخته می‌شود) یک روش یادگیری ماشین است که یک الگوریتم را در چندین دستگاه لبه غیرمتمرکز یا سرورهای نگهدارنده نمونه داده‌های محلی، بدون مبادله آنها آموزش می‌دهد. این روش برخلاف تکنیک‌های سنتی یادگیری ماشین، متمرکز است که همه مجموعه داده‌های محلی در یک سرور بارگذاری می‌شوند، و همچنین رویکردهای غیرمتمرکز کلاسیک تر که اغلب فرض می‌کنند نمونه‌های داده محلی به‌طور یکسان توزیع می‌شوند.
یادگیری فدراسیون، چندین بازیگر را قادر می‌سازد تا مدل مشترک و قوی یادگیری ماشین را بدون به اشتراک گذاشتن داده‌ها بسازند، بنابراین اجازه می‌دهد تا به موارد مهم مانند حریم خصوصی داده‌ها، امنیت داده‌ها، حقوق دسترسی داده‌ها و دسترسی به داده‌های ناهمگن بپردازید. کاربردهای آن در تعدادی از صنایع از جمله دفاع، ارتباطات از راه دور، اینترنت اشیا و داروسازی پخش شده‌است.
هدف از یادگیری فدراسیون آموزش الگوریتم یادگیری ماشین، به عنوان مثال شبکه‌های عصبی عمیق، روی چندین مجموعه داده محلی است که در گره‌های محلی وجود دارد بدون اینکه صریحاً داده‌های داده رد و بدل شود. اصل کلی شامل آموزش مدل‌های محلی بر روی نمونه‌های داده‌های محلی و مبادله پارامترها (به عنوان مثال وزن و بایاس شبکه عصبی عمیق) بین این گره‌های محلی در برخی از فرکانس‌ها برای تولید یک مدل جهانی مشترک بین همه گره‌ها است.
تفاوت اصلی بین یادگیری فدراسیون و یادگیری توزیع شده در فرضیاتی است که در مورد خواص مجموعه‌های داده محلی وجود دارد، زیرا هدف اصلی از یادگیری توزیع شده موازی سازی قدرت محاسبه در جایی است که در ابتدا یادگیری فدراتیو هدف آموزش مجموعه داده‌های ناهمگن است. در حالی که هدف یادگیری توزیع شده آموزش یک مدل واحد بر روی چندین سرور است، یک فرض اصلی رایج این است که مجموعه داده‌های محلی به‌طور یکسان توزیع می‌شوند (یعنی i.i.d.) و تقریباً از همان اندازه برخوردار هستند. هیچ‌یک از این فرضیه‌ها برای یادگیری فدراسیون ساخته نشده‌است. در عوض، مجموعه داده‌ها به‌طور معمول ناهمگن هستند و اندازه آنها ممکن است چندین مرتبه از اندازه را دربر بگیرد. علاوه بر این، مشتریانی که درگیر آموزش فدراسیون هستند ممکن است غیرقابل اعتماد باشند زیرا در معرض خرابی‌های بیشتری قرار دارند یا از تحصیل خارج می‌شوند، زیرا در مقایسه با توزیع یادگیری که در آن گره‌ها به‌طور معمول مرکز داده‌ای هستند که دارای توانایی محاسباتی قدرتمندی هستند و با شبکه‌های سریع به یکدیگر متصل می‌شوند.
در تنظیم یادگیری متمرکز متمرکز، از یک سرور مرکزی برای تنظیم مراحل مختلف الگوریتم‌ها و هماهنگی همه گره‌های شرکت کننده در طول فرایند یادگیری استفاده می‌شود. سرور مسئول انتخاب گره‌ها در ابتدای فرایند آموزش و جمع‌آوری به روزرسانی‌های مدل دریافت شده‌است. از آنجا که همه گره‌های انتخاب شده باید به روزرسانی‌ها را برای یک موجود واحد ارسال کنند، ممکن است سرور به یک گلوگاه سیستم تبدیل شود.
در محیط یادگیری فدراسیون غیرمتمرکز، گره‌ها می‌توانند خود را برای به دست آوردن مدل جهانی هماهنگ کنند. این تنظیمات از خرابی‌های تک نقطه ای جلوگیری می‌کند زیرا به روزرسانی‌های مدل فقط بین گره‌های بهم پیوسته و بدون هماهنگی سرور مرکزی رد و بدل می‌شوند. با این وجود، توپولوژی خاص شبکه ممکن است بر عملکرد فرایند یادگیری تأثیر بگذارد. به یادگیری مبتنی بر بلاکچین و منابع موجود در آن مراجعه کنید.
برای اطمینان از عملکرد خوب یک مدل نهایی و مرکزی یادگیری ماشین، یادگیری فدراسیون متکی به فرایند تکراری است که در یک مجموعه اتمی از تعاملات مشتری و سرور تجزیه می‌شود و به عنوان دور آموزش فدراسیون شناخته می‌شود. هر دور از این فرایند شامل انتقال وضعیت مدل جهانی فعلی به گره‌های شرکت کننده، آموزش مدل‌های محلی در این گره‌های محلی برای تولید مجموعه ای از به روزرسانی‌های مدل بالقوه در هر گره و سپس جمع‌آوری و پردازش این به روزرسانی‌های محلی در یک به روز رسانی جهانی و استفاده از آن در مدل جهانی .
در روش زیر، از یک سرور مرکزی برای جمع‌آوری استفاده می‌شود، در حالی که گره‌های محلی بسته به سفارش‌های سرور مرکزی، آموزش محلی را انجام می‌دهند. با این حال، سایر استراتژی‌ها بدون استفاده از سرورهای مرکزی، در یک روش همتا به همتا، با استفاده از شایعات یا متدولوژی‌های اجماع، به همان نتایج منجر می‌شوند.
با فرض یک دور فدرالی تشکیل شده توسط یک تکرار از فرایند یادگیری، روش یادگیری را می‌توان به شرح زیر خلاصه کرد:
شروع اولیه: با توجه به ورودی‌های سرور، یک مدل یادگیری ماشین (به عنوان مثال، رگرسیون خطی، شبکه عصبی، تقویت کننده) انتخاب می‌شود تا روی گره‌های محلی آموزش داده شود و مقداردهی اولیه شود. سپس، گره‌ها فعال می‌شوند و منتظر می‌مانند تا سرور مرکزی وظایف محاسبه را انجام دهد.
انتخاب مشتری: برای شروع آموزش داده‌های محلی، بخشی از گره‌های محلی انتخاب می‌شود. گره‌های انتخاب شده مدل آماری فعلی را بدست می‌آورند در حالی که بقیه منتظر دور بعدی فدراسیون هستند.
پیکربندی: سرور مرکزی به گره‌های انتخاب شده دستور می‌دهد تا مدل را بر روی داده‌های محلی خود به روشی از پیش تعیین شده آموزش دهند (به عنوان مثال، برای برخی از به روزرسانی‌های مینی دسته ای از شیب نزولی).
گزارش دادن: هر گره انتخاب شده مدل محلی خود را برای تجمیع به سرور ارسال می‌کند. سرور مرکزی مدل‌های دریافت شده را جمع کرده و به روزرسانی‌های مدل را به گره‌ها ارسال می‌کند. همچنین از عهده خرابی‌های گره‌های قطع شده یا به روزرسانی‌های از دست رفته مدل است. دور فدراسیون بعدی بازگشت به مرحله انتخاب مشتری است.
خاتمه: به محض احراز معیار خاتمه از پیش تعریف شده (به عنوان مثال، حداکثر تعداد تکرار حاصل می‌شود یا دقت مدل از آستانه بیشتر است) سرور مرکزی به روزرسانی‌ها را جمع می‌کند و مدل جهانی را نهایی می‌کند.
روشی که قبل از آن در نظر گرفته شده، به روزرسانی‌های همزمان مدل را در نظر گرفته‌است. تحولات یادگیری فدراسیون اخیر، تکنیک‌های جدیدی را برای مقابله با عدم همزمان بودن در طی مراحل آموزش معرفی کرده‌است. در مقایسه با رویکردهای همزمان که مدلهای محلی پس از انجام محاسبات برای همه لایه‌های شبکه عصبی رد و بدل می‌شوند، موارد ناهمزمان به محض محاسبه یک لایه خاص، از خصوصیات شبکه‌های عصبی برای تبادل به روزرسانی‌های مدل استفاده می‌کنند. این تکنیک‌ها معمولاً به عنوان یادگیری تقسیم شده یاد می‌شوند و می‌توانند بدون توجه به تنظیمات یادگیری متمرکز یا غیرمتمرکز، هم در زمان آموزش و هم در زمان استنباط استفاده شوند.
در بیشتر موارد، فرض نمونه‌های مستقل و توزیع شده یکسان در بین گره‌های محلی، برای تنظیمات آموزش فدراسیون صدق نمی‌کند. تحت این تنظیمات، عملکرد فرایند آموزش ممکن است با توجه به عدم تعادل نمونه‌های داده‌های محلی و همچنین توزیع احتمال خاص نمونه‌های آموزش (به عنوان مثال، ویژگی‌ها و برچسب‌ها) ذخیره شده در گره‌های محلی، تفاوت قابل توجهی داشته باشد. برای بررسی بیشتر اثرات داده‌های غیر iid، شرح زیر مقوله‌های اصلی ارائه شده توسط Peter Kiarouz و دیگران را در نظر می‌گیرد. در سال ۲۰۱۹ شرح داده‌های غیر iid به تجزیه و تحلیل احتمال مشترک بین ویژگی‌ها و برچسب‌ها برای هر گره متکی است. این اجازه می‌دهد تا هر سهم را با توجه به توزیع خاص موجود در گره‌های محلی جدا کنید. دسته‌های اصلی برای داده‌های غیر iid را می‌توان به شرح زیر خلاصه کرد:
تغییر متغیر: گره‌های محلی ممکن است نمونه‌هایی را که در مقایسه با گره‌های دیگر توزیع آماری متفاوتی دارند ذخیره کنند. یک مثال در مجموعه داده‌های پردازش زبان طبیعی رخ می‌دهد که در آن افراد معمولاً رقم / حروف یکسانی را با عرض ضربه یا شیب متفاوت می‌نویسند.
تغییر احتمال قبلی: گره‌های محلی ممکن است برچسب‌هایی را ذخیره کنند که توزیع آماری متفاوتی نسبت به گره‌های دیگر دارند. اگر مجموعه‌های داده منطقه ای یا از نظر جمعیتی تقسیم شده باشند، این اتفاق می‌افتد. به عنوان مثال، مجموعه داده‌های حاوی تصاویر حیوانات از کشوری به کشور دیگر متفاوت است.
تغییر مفهوم (همان برچسب، ویژگی‌های مختلف): گره‌های محلی ممکن است برچسب‌های یکسانی داشته باشند اما برخی از آنها با ویژگی‌های مختلف در گره‌های محلی مختلف مطابقت دارند. به عنوان مثال، تصاویری که شی خاصی را به تصویر می‌کشند می‌توانند با توجه به شرایط آب و هوایی که در آن گرفته شده‌اند، متفاوت باشند.
تغییر مفهوم (همان ویژگی‌ها، برچسب‌های مختلف): گره‌های محلی ممکن است از ویژگی‌های یکسانی برخوردار باشند اما برخی از آنها با برچسب‌های مختلف در گره‌های محلی مختلف مطابقت دارند. به عنوان مثال، در پردازش زبان طبیعی، تجزیه و تحلیل احساسات ممکن است احساسات مختلفی ایجاد کند حتی اگر متن مشابه مشاهده شود. عدم تعادل: اندازه داده‌های موجود در گره‌های محلی ممکن است به‌طور قابل توجهی متفاوت باشد.
سایر توصیف کنندگان داده‌های غیر iid، تغییر پویای توپولوژی شبکه را به دلیل خرابی یا عدم صلاحیت گره‌های محلی در طی فرایند یادگیری فدراسیون یا تغییر داده‌ها، در نظر می‌گیرند، جایی که گره‌های شرکت کننده در مرحله آموزش برای یادگیری مدل جهانی ممکن است در هنگام استنباط به دلیل عدم توانایی کافی محاسباتی واجد شرایط باشند. این امر منجر به تفاوت بین آمار آموزش و آزمایش نمونه داده‌ها می‌شود.
در این بخش، مقاله ای که توسط H. Brendan McMahan و دیگران منتشر شده‌است. در سال ۲۰۱۷ دنبال می‌شود. برای توصیف استراتژی‌های فدراسیون، اجازه دهید برخی از علائم را معرفی کنیم:
K: تعداد کل کلاینت‌ها
k: فهرست کلاینت‌ها
n_{k}: تعداد نمونه داده موجود در حین آموزش برای کلاینت k
k_{t}: بردار وزن مدل در کلاینت k
E: تعداد epochهای محلی
آموزش یادگیری عمیق عمدتاً به انواع نزولی شیب تصادفی متکی است، جایی که شیب‌ها در زیرمجموعه ای تصادفی از کل مجموعه داده محاسبه می‌شوند و سپس برای ایجاد یک مرحله از نزول شیب استفاده می‌شوند.
نزول شیب تصادفی فدرال انتقال مستقیم این الگوریتم به تنظیمات فدراسیون است، اما با استفاده از کسر تصادفی C گره‌ها و استفاده از تمام داده‌های این گره. شیب‌ها به‌طور متوسط و متناسب با تعداد نمونه‌های آموزش در هر گره، توسط سرور ساخته می‌شوند و برای ایجاد یک مرحله نزولی شیب دار استفاده می‌شوند.
یک تعمیم FedSGD است که به گره‌های محلی اجازه می‌دهد بیش از یک به روزرسانی دسته ای روی داده‌های محلی انجام دهند و وزن‌های به روز شده را به جای شیب‌ها رد و بدل کنند. دلیل اصلی این تعمیم این است که در FedSGD، اگر همه گره‌های محلی از همان مقدار اولیه شروع شوند، میانگین شیب‌ها کاملاً معادل متوسط وزن‌های خودشان است. بعلاوه، میانگین وزنی تنظیم شده از همان مقدار اولیه، لزوماً به عملکرد مدل میانگین منتهی نمی‌شود.
مزیت اصلی استفاده از رویکردهای فدرال در یادگیری ماشین اطمینان از حریم خصوصی داده‌ها یا مخفی بودن داده‌ها است. در واقع، هیچ داده محلی به صورت خارجی بارگذاری نشده، بهم پیوسته یا مبادله نمی‌شود. از آنجا که کل پایگاه داده به بیت‌های محلی تقسیم شده‌است، این کار هک کردن آن را دشوارتر می‌کند.
با یادگیری فدرال، فقط پارامترهای یادگیری ماشین رد و بدل می‌شوند. علاوه بر این، می‌توان چنین پارامترهایی را قبل از اشتراک بین دوره‌های یادگیری برای افزایش حریم خصوصی رمزگذاری کرد و می‌توان از طرح‌های رمزگذاری همومورفیک برای ایجاد مستقیم محاسبات بر روی داده‌های رمزگذاری شده بدون رمزگشایی قبلی استفاده کرد. با وجود چنین اقدامات محافظتی، ممکن است این پارامترها با ایجاد چندین پرس و جو خاص در مجموعه داده‌های خاص، اطلاعات مربوط به نمونه‌های داده‌های اساسی را فاش کنند؛ بنابراین پرسش از توانایی گره‌ها یک نکته مهم است، که می‌تواند با استفاده از حریم خصوصی افتراقی یا تجمیع امن حل شود.
مدل تولید شده براساس الگوهای جهانی گره‌ها بینش ارائه می‌دهد. با این حال، اگر یک گره شرکت کننده بخواهد از الگوهای جهانی بیاموزد، اما نتایج را با وضعیت عجیب و غریب خود نیز مطابقت دهد، روش یادگیری فدرال را می‌توان برای تولید همزمان دو مدل در یک چارچوب یادگیری چند کاره تطبیق داد. علاوه بر این، ممکن است تکنیک‌های خوشه بندی برای گره‌های کل استفاده شود که پس از اتمام فرایند یادگیری، برخی شباهت‌ها را دارند. این امکان تعمیم مدلهای آموخته شده توسط گره‌ها را با توجه به داده‌های محلی آنها نیز فراهم می‌کند. در مورد شبکه‌های عصبی عمیق، می‌توان برخی از لایه‌ها را در گره‌های مختلف به اشتراک گذاشت و برخی از آنها را روی هر گره محلی نگه داشت. به‌طور معمول، اولین لایه‌هایی که شناسایی الگوهای عمومی را انجام می‌دهند، همه مجموعه‌های داده به اشتراک گذاشته شده و آموزش می‌بینند. آخرین لایه‌ها روی هر گره محلی باقی می‌مانند و فقط روی مجموعه داده‌های گره محلی آموزش داده می‌شوند.