• پیشرفت در سیستم های پیشرفته هوش مصنوعی نیازمند داده های حاشیه نویسی در مقادیر زیاد است.
  • ضروری است که همراه با الگوریتم ها، راهی برای استفاده از داده های موجود در نهادهای مختلف بدون به خطر انداختن جنبه های امنیتی وجود داشته باشد.
  • یادگیری مشارکتی می تواند پاسخی به مسائل مربوط به امنیت داده و به اشتراک گذاری داده ها باشد، جایی که می توانیم آموخته ها را بدون اشتراک داده به اشتراک بگذاریم.
  • یادگیری افزایشی نهادی می تواند یادگیری ماشینی مشارکتی را تسهیل کند و در عین حال باعث انعطاف پذیری شود.
  • ساختن یک سیستم هوش مصنوعی پیشرفته با ابزارها و تکنیک های فعلی با استفاده از یادگیری مشارکتی و در عین حال رسیدگی به نگرانی های امنیت داده ها و ایمنی امکان پذیر است.

مقدمه: اهمیت یادگیری مشارکتی و اشتراک داده ها

در سال های اخیر پیشرفت های چشمگیری در زمینه هوش مصنوعی صورت گرفته است. در دسترس بودن توان محاسباتی و واحدهای پردازش گرافیکی این امکان را برای دستیابی به توده‌های اطلاعاتی فراهم کرده است.

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

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

این وضعیت، چالش برانگیز است زیرا ساخت یک سیستم هوش مصنوعی مستلزم پرداختن به جنبه های زیر می باشد:

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

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

کلمه کلیدی در اینجا اشتراک گذاری مدل است و نه اشتراک گذاری داده. تمرکز این تمرین بر روی استفاده از منابع به بهینه‌ترین روش برای ساختن یک سیستم مدل یادگیری عمیق با سرعت کافی است. این امر همچنین مستلزم آن است که مسائل امنیتی پیرامون داده ها مورد توجه قرار گیرد.

در یک سناریوی یادگیری مشارکتی، همکاری می‌تواند به روش‌های زیر اتفاق بیفتد:

  1. چندین بازیگر/موسسه ،یک مدل را بر اساس داده های خصوصی موجود آموزش می دهند و پارامترهای آموزش دیده را به یک سرور مرکزی منتقل می کنند. ما این را به عنوان یادگیری فدرال (مشارکتی)می شناسیم.
  2. چندین بازیگر / مؤسسه -به صورت تدریجی مدل را آموزش می دهند و مدل را به بازیگر بعدی منتقل می کنند. این می تواند به طور مکرر اتفاق بیفتد. این یادگیری افزایشی نهادی است.

یادگیری افزایشی نهادی چیست؟

این  نوع یادگیری راهی برای همکاری در آموزش مدل است. یک مدل یادگیری ماشینی (یا یادگیری عمیق) را در چندین دستگاه/سرور به نام گره ها  (Nodes) آموزش دهید. در زیر ویژگی های کلیدی ذکر شده است:

  1. گره ها نسخه خود را از نمونه داده های محلی دارند.
  2. به جای اینکه داده ها به یک سرور بروند، الگوریتم در دسترس گره است.
  3. به حریم خصوصی داده ها و مسائل امنیتی می پردازد
  4. شرکت کنندگان می توانند مدل های خود را برای اکوسیستم های مختلف منتشر کنند.
  5. برای چندین حوزه از جمله دفاع، مخابرات، اینترنت اشیا، داروسازی و پزشکی کاربرد دارد.

یادگیری افزایشی نهادی یکی از راه‌های امیدوارکننده برای رسیدگی به نگرانی‌های اشتراک‌گذاری داده است. با استفاده از این رویکرد، سازمان‌ها می‌توانند مدل را در یک محیط امن آموزش دهند و بدون نیاز به اشتراک‌گذاری داده‌های ارزشمند، مدل را به اشتراک بگذارند.

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

جریان یادگیری افزایشی نهادی
جریان یادگیری افزایشی نهادی

پس از درک یادگیری نهادی افزایشی، اجازه دهید در عمل به این امر دست یابیم. یک پروژه (موجود در Github) می تواند به این هدف کمک کند. داده های مورد استفاده یک مجموعه داده عمومی است که اطلاعاتی در مورد اشعه ایکس قفسه سینه ارائه می دهد. ما این مشکل را با استفاده از تکنیک های تشخیص اشیاء یادگیری عمیق به نام بخش بندی حل می کنیم. معماری انتخاب شده در اینجا UNET با resnet34 به عنوان ستون فقرات می باشد.

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

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

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

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

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

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

نمونه پروژه:

برای ساختن سیستمی که بتواند ذات الریه را در اشعه ایکس قفسه سینه تشخیص دهد. مجموعه داده  مورد استفاده در اینجا BIMCV COVID-19+ است که اطلاعاتی در مورد وضعیت عکسبرداری با اشعه ایکس و همچنین مکان این وضعیت ارائه می دهد.

این سیستم توسط یک رابط پشتیبانی می‌شود، زیرا داشتن معیارهایی برای پشتیبانی از داده‌ها یک چیز است، اما داشتن راهی برای نگاه کردن به نتایج و دریافت درک درستی از آن یک امر کاملاً متفاوت است. یک مدل یادگیری عمیق را می توان با داشتن یک رابط کاربری، ” مشاهده ” یا “احساس” کرد. این پروژه با ارائه اسکریپتی که می تواند پیش بینی کند به این موضوع می پردازد.

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

تشخیص شی

مشکل فوق زیر چتر Computer Vision قرار می گیرد، جایی که می توان آن را به عنوان تشخیص اشیا طبقه بندی کرد. تشخیص اشیاء به دلیل کاربرد آن در حوزه های مختلف به یک زمینه مورد توجه تبدیل شده است. برخی از روش‌ها/ الگوریتم‌های رایج مورد استفاده برای تشخیص اشیا عبارتند از R – CNN، Faster R – CNN، Single Shot Detector و YOLO.

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

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

 معماری/کتابخانه های مورد استفاده

U-Net – U-Net یک شبکه عصبی کانولوشنی است که برای بخش‌بندی تصاویر زیست‌پزشکی ایجاد شده. یک معماری U شکل شامل یک طرح رمزگذار-رمزگشای خاص است:

 رمزگذار ابعاد فضایی را در هر لایه کاهش می‌دهد و کانال‌ها را افزایش می‌دهد. دیکودر ابعاد فضایی را افزایش می دهد در حالی که کانال ها را کاهش می دهد. U-Net در تقسیم بندی تصاویر زیست پزشکی بسیار محبوب است.

Resnet – Resnets34 یا Residual Neural Networks شبکه‌های عصبی کانولوشنی هستند که از اتصالات پرش برای یادگیری باقیمانده استفاده می‌کنند. مشخص شده است که Deep Residual Learning در یادگیری شبکه های معماری عمیق بهتر عمل کرده است.

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

scikit-imageیا skimage مجموعه ای از الگوریتم ها برای پردازش تصویر و بینایی کامپیوتری است. مدلی مبتنی بر معماری U-Net که خروجی های پیکسلی ارائه می دهد. Skimage به تبدیل اطلاعات پیکسل به جعبه های مرزی کمک می کند.

روش:

این پروژه  دارای دو ماژول اصلی Train.py و inference.py می باشد.

جمع‌آوری داده‌ها – ما مدل تقسیم‌بندی را روی مجموعه داده‌های BIMCV COVID-19+ آموزش می‌دهیم. داده‌ها در قالب DICOM و فایل‌های جدا شده با کاما، که حاوی اطلاعات جعبه محدود کننده و برچسب است، در دسترس هستند.

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

آموزش مدل – یک اسکریپت عمومی در دسترس است که از چارچوب fastai ساخته شده روی PyTorch استفاده می کند. این مدل پارامترهای مختلفی مانند نرخ یادگیری، تعداد دوره‌ها، مدل استفاده، راهنمای آموزش، حالت (کامل یا جزئی) را ارائه می‌دهد. پارامتر “استفاده از مدل” از بخش یادگیری افزایشی پشتیبانی می کند. هنگام فراخوانی اسکریپت آموزشی، می توان یک مرجع (مسیر) مدل ارائه کرد که اسکریپت آموزشی قبل از شروع آموزش بارگذاری می شود. بنابراین یادگیری از تکرارهای آموزشی قبلی حفظ می شود (به یادگیری فاجعه بار می پردازد). به‌طور پیش‌فرض، مدلی ارائه می‌کنیم که می‌توان از آن استفاده کرد. این مدل از رویکرد یادگیری انتقال با استفاده از مدل resnet34 از پیش آموزش دیده استفاده می کند.به این ترتیب، بهترین شیوه‌های هوش مصنوعی مورد توجه قرار می‌گیرد. هنگامی که توسعه دهنده یک مدل را آموزش و مدل را در دسترس سایر طرف ها قرار می دهد، آنها می توانند از مدل برای پیش بینی یا آموزش استفاده کنند.

انجام پیش بینی – هنگامی که یک مدل آموزش دیده در دسترس است، می توانیم از آن برای پیش بینی با کمک اسکریپت “py” استفاده کنیم. این یک فرآیند بسیار پیچیده است که در آن موارد زیر اتفاق می افتد:

  • مدل را در حافظه بارگذاری کنید.
  • تصویر را برای پیش بینی/استنتاج در حافظه بارگذاری کنید.
  • مدل ،تصویر را پردازش می کند و یک تصویر ماسک شده را برمی گرداند.
  • تغییر اندازه تصویر ماسک شده.
  • احتمالات و جعبه های محدود کننده مربوط به آنها از تصویر ماسک شده به دست می آید.
  • احتمالات و کادرهای محدود کننده مربوطه روی تصویر کشیده شده است.
  • ذخیره تصویر پیش‌بینی‌شده در فهرست خروجی.

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

خروجی:

در زیر نمونه ای از خروجی تولید شده روی یک تصویر را مشاهده می کنید. همراه با جعبه های محدود کننده، اطلاعات برچسب ها را نیز ارائه می دهد.

تصویری برای پیش بینی
تصویری برای پیش بینی

تصویر بالا نشان می دهد که وضعیت مرتبط با تصویر دارای یک نوع “معمولی” پنومونی همراه با محل آن است. مجموعه داده اطلاعات را از طریق چهار برچسب ارائه می کند: “عادی”، “معمولی”، “غیر معمول” و “نامعین”.

تعیین برچسب و مختصات جعبه مرزی مرتبط به یک مرحله میانی نیاز دارد. مدل آموزش دیده پیکسل به پیکسل اطلاعاتی را ارائه می دهد که با استفاده از skimage به جعبه های مرزی تبدیل می شود. در زیر نمونه ای از همین موارد آورده شده است. تصویر سمت چپ شامل کادرهای محدود کننده اصلی است و تصویر سمت راست حاوی اطلاعات به صورت پیکسل است.

مدل خروجی را در هر پیکسل ارائه می دهد، سپس با کمک کتابخانه skimage به جعبه های محدود کننده تبدیل می شود.
مدل خروجی را در هر پیکسل ارائه می دهد، سپس با کمک کتابخانه skimage به جعبه های محدود کننده تبدیل می شود.

اطلاعات اصلی: اسکریپت استنتاج، تصویری با برچسب‌ها و جعبه‌های مرزی چاپ می‌کند که اطلاعات حقیقی پایه در دسترس باشد.

تصویر با اطلاعات اصلی
تصویر با اطلاعات اصلی

قابلیت کاربرد:

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

  • مدل آنها را با داده های موجود در یک مدل پیش فرض آموزش دهید.
  • یک مدل ارائه شده توسط سایر کاربران را بارگذاری کنید و نتیجه گیری کنید.
  • یک مدل ارائه شده توسط سایر کاربران را بارگیری کنید و آن را با مجموعه داده آنها تنظیم کنید.

این به ویژه در حوزه پزشکی مفید است، جایی که مدل‌های تقسیم‌بندی مفید بوده و این رویکرد پتانسیل رسیدگی به مسائل مربوط به حریم خصوصی داده‌ها را دارد.

مزایای یادگیری تدریجی:

ما مزایای مختلفی را از یادگیری افزایشی نهادی مشاهده می کنیم، مانند:

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

اجرای این رویکرد در مقایسه با سیستم‌های یادگیری فدرال ساده است زیرا یک نیاز فنی پیچیده وجود دارد که در آن سرور مرکزی نقش یک داور را بازی می‌کند و اطمینان می‌دهد که مدل را با به‌روزرسانی‌های گره‌های شرکت‌کننده به‌روز نگه می‌دارد. این امرچالش های مهندسی پیچیده را معرفی می کند.

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

یادگیری افزایشی نهادی به ویژه در حوزه پزشکی می تواند بسیار موثر باشد. این چارچوب می تواند موارد استفاده را پشتیبانی کند که عبارتند از:

  • تشخیص تومور مغزی
  • تشخیص پنومونی در اشعه ایکس قفسه سینه
  • اسکن شکم