یادگیری با کرنل چندگانه

از ویکی‌پدیا، دانشنامهٔ آزاد

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

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

با توجه به خصوصیات گفته شده از کرنل‌های چندگانه برای تشخیص رویدادها در ویدیوها، اشیا در تصاویر و … استفاده می‌شود.

الگوریتم‌ها[ویرایش]

الگوریتم‌های یادگیری با کرنل‌های چندگانه برای یادگیری‌های supervised, semi-supervised و unsupervised توسعه داده شده‌اند. هرچند بیشتر از این روش برای یادگیری‌های supervised استفاده می‌شود که بیشتر از روش ترکیب خطی کرنل‌های ساده‌تر برای آن استفاده می‌شود. ایده اصلی الگوریتم‌های یادگیری با کرنل‌های چندگانه اضافه کردن یک پارامتر جدید به مسئلهٔ بهینه‌سازی که برای یادگیری داشتیم است. به عنوان مثال برای مسئله یادگیری supervised یک تابع کرنل چندگانه به صورت تعریف می‌کنیم که در آن بردار ضرایب توابع کرنل‌های پایه است. حال با توجه به خاصیت جمع پذیری توابع کرنل، تابع به‌دست آمده نیز همچنان یک تابع کرنل معتبر است. اینک مسئله بهینه‌سازی‌مان به صورت زیر می‌شود:

در مسئله بالا E همان تابع خطا است و R نیز یک عملگر منظم سازی است. تابع E معمولاً همان مجموع مجذور خطاها است. R نیز معمولاً نرم یا ترکیبی از نرم‌ها است. در نهایت مسئله بالا را با استفاده از روش‌های استانداردی که برای بهینه‌سازی داریم می‌توان حل کرد.

یادگیری Supervised[ویرایش]

برای یادگیری supervised، بسیاری از الگوریتم‌های دیگر وجود دارند که از روش‌های مختلفی برای یادگیری فرم تابع کرنل استفاده می‌کنند. طبقه‌بندی زیر توسط Gonen و Alpaydın در سال ۲۰۱۱ پیشنهاد شده‌است.[۱]

رویکرد قوانین ثابت[ویرایش]

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

این رویکرد تابع کرنل دوگانه در پیش‌بینی برهمکنش‌های پروتئین-پروتئین مورد استفاده قرار گرفته‌است.[۲]

رویکردهای Bayesian[ویرایش]

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

مقدار ابتدایی را می‌توان با توزیع دیریکله و مقدار ابتدایی را می‌توان با یک توزیع گاوسی با میانگین صفر و یک واریانس با توزیع inverse gamma مدل کرد. سپس این مدل با استفاده از رویکرد Multinomial probit با روش نمونه برداری گیبس بهینه می‌شود.[۳] این روش‌ها با موفقیت در کاربردهایی مانند تشخیص چین‌خوردگی پروتئین و مشکلات همولوژی پروتئین مورد استفاده قرار گرفته‌اند.[۴][۵]

رویکردهای تقویتی[ویرایش]

در این رویکرد، توابع کرنل جدید را به‌طور مکرر اضافه می‌کنند تا زمانی که شاخص‌های توقف که خود یک تابع برای نشان دادن کارایی تابع کرنل است، به‌دست بیاید. نمونه ای از این رویکرد مدل MARK است که توسط Bennett و همکارانش توسعه یافته‌است. (2002)[۶]

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

کتابخانه‌ها[ویرایش]

کتابخانه‌های موجود MKL شامل

  • SPG-GMKL: یک کتابخانه C++ MKL SVM مقیاس پذیر که می‌تواند میلیون‌ها کرنل را مدیریت کند.[۷]
  • GMKL: کدهای یادگیری چند هسته ای تعمیم یافته در متلب انجام می‌دهد و منظم سازی برای یادگیری تحت نظارت[۸]
  • (یکی دیگر) GMKL: یک کد متلب MKL متفاوت که همچنین می‌تواند تنظیم شبکه الاستیک را انجام دهد[۹]
  • SMO-MKL: کد منبع C++ برای یک الگوریتم MKL بهینه‌سازی حداقل متوالی. می‌کند -n منظم سازی فرم.[۱۰]
  • SimpleMKL: یک کد MATLAB بر اساس الگوریتم SimpleMKL برای MKL SVM.[۱۱]
  • MKLPy: یک چارچوب پایتون برای MKL و ماشین‌های هسته که با الگوریتم‌های مختلف مطابقت دارد، به عنوان مثال EasyMKL[۱۲] و دیگران.

منابع[ویرایش]

  1. Mehmet Gönen, Ethem Alpaydın. Multiple Kernel Learning Algorithms Jour. Mach. Learn. Res. 12(Jul):2211−2268, 2011
  2. Ben-Hur, A. and Noble W.S. [pmid 15961482 Kernel methods for predicting protein-protein interactions.] Bioinformatics. 2005 Jun;21 Suppl 1:i38-46.
  3. Mark Girolami and Simon Rogers. Hierarchic Bayesian models for kernel learning. In Proceedings of the 22nd International Conference on Machine Learning, 2005
  4. Theodoros Damoulas and Mark A. Girolami. Combining feature spaces for classification. Pattern Recognition, 42(11):2671–2683, 2009
  5. Theodoros Damoulas and Mark A. Girolami. Probabilistic multi-class multi-kernel learning: On protein fold recognition and remote homology detection. Bioinformatics, 24(10):1264–1270, 2008
  6. Kristin P. Bennett, Michinari Momma, and Mark J. Embrechts. MARK: A boosting algorithm for heterogeneous kernel models. In Proceedings of the 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2002
  7. Ashesh Jain, S. V. N. Vishwanathan and Manik Varma. SPG-GMKL: Generalized multiple kernel learning with a million kernels. In Proceedings of the ACM SIGKDD Conference on Knowledge Discovery and Data Mining, Beijing, China, August 2012
  8. M. Varma and B. R. Babu. More generality in efficient multiple kernel learning. In Proceedings of the International Conference on Machine Learning, Montreal, Canada, June 2009
  9. Yang, H. , Xu, Z. , Ye, J. , King, I. , & Lyu, M. R. (2011). Efficient Sparse Generalized Multiple Kernel Learning. IEEE Transactions on Neural Networks, 22(3), 433-446
  10. S. V. N. Vishwanathan, Z. Sun, N. Theera-Ampornpunt and M. Varma. Multiple kernel learning and the SMO algorithm. In Advances in Neural Information Processing Systems, Vancouver, B. C. , Canada, December 2010.
  11. Alain Rakotomamonjy, Francis Bach, Stephane Canu, Yves Grandvalet. SimpleMKL. Journal of Machine Learning Research, Microtome Publishing, 2008, 9, pp.2491-2521.
  12. Fabio Aiolli, Michele Donini. EasyMKL: a scalable multiple kernel learning algorithm. Neurocomputing, 169, pp.215-224.