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

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

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

## الگوریتم‌ها
الگوریتم‌های یادگیری با کرنل‌های چندگانه برای یادگیری‌های supervised, semi-supervised و unsupervised توسعه داده شده‌اند. هرچند بیشتر از این روش برای یادگیری‌های supervised استفاده می‌شود که بیشتر از روش ترکیب خطی کرنل‌های ساده‌تر برای آن استفاده می‌شود. ایده اصلی الگوریتم‌های یادگیری با کرنل‌های چندگانه اضافه کردن یک پارامتر جدید به مسئلهٔ بهینه‌سازی که برای یادگیری داشتیم است. به عنوان مثال برای مسئله یادگیری supervised یک تابع کرنل چندگانه به صورت K'=\sum_{i=1}^n\beta_iK_i تعریف می‌کنیم که در آن  \beta بردار ضرایب توابع کرنل‌های پایه است. حال با توجه به خاصیت جمع پذیری توابع کرنل، تابع به‌دست آمده نیز همچنان یک تابع کرنل معتبر است. اینک مسئله بهینه‌سازی‌مان به صورت زیر می‌شود:

: \min_{\beta,c}\Epsilon(Y, K'c)+R(K,c)

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

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

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

: k((x_{1i}, x_{1j}),(x_{2i},x_{2j}))=k(x_{1i},x_{2i})k(x_{1j},x_{2j})+k(x_{1i},x_{2j})k(x_{1j},x_{2i})

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

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

: f(x)=\sum^n_{i=0}\alpha_i\sum^p_{m=1}\eta_mK_m(x_i^m,x^m)

مقدار ابتدایی \eta را می‌توان با توزیع دیریکله و مقدار ابتدایی \alpha را می‌توان با یک توزیع گاوسی با میانگین صفر و یک واریانس با توزیع inverse gamma مدل کرد. سپس این مدل با استفاده از رویکرد Multinomial probit با روش نمونه برداری گیبس بهینه می‌شود. این روش‌ها با موفقیت در کاربردهایی مانند تشخیص چین‌خوردگی پروتئین و مشکلات همولوژی پروتئین مورد استفاده قرار گرفته‌اند.

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

: f(x)=\sum_{i=1}^N\sum_{m=1}^P\alpha_i^mK_m(x_i^m,x^m)+b

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

## کتابخانه‌ها
کتابخانه‌های موجود MKL شامل
* SPG-GMKL: یک کتابخانه C++ MKL SVM مقیاس پذیر که می‌تواند میلیون‌ها کرنل را مدیریت کند.
* GMKL: کدهای یادگیری چند هسته ای تعمیم یافته در متلب انجام می‌دهد \ell_1 و \ell_2 منظم سازی برای یادگیری تحت نظارت
* (یکی دیگر) GMKL: یک کد متلب MKL متفاوت که همچنین می‌تواند تنظیم شبکه الاستیک را انجام دهد
* SMO-MKL: کد منبع C++ برای یک الگوریتم MKL بهینه‌سازی حداقل متوالی. می‌کند p -n منظم سازی فرم.
* SimpleMKL: یک کد MATLAB بر اساس الگوریتم SimpleMKL برای MKL SVM.
* MKLPy: یک چارچوب پایتون برای MKL و ماشین‌های هسته که با الگوریتم‌های مختلف مطابقت دارد، به عنوان مثال EasyMKL و دیگران.

## منابع

رده:الگوریتم‌های یادگیری ماشین
رده:داده‌کاوی