ترفند کرنل و قضیه‌ی مرسر

یک کرنل را بدون ساختن نگاشت ویژگی حساب کنی و تشخیص بدهی یک تابع می‌تواند کرنل معتبر باشد یا نه.

13 دقیقه مطالعه · 5 سؤال تمرینی · یادگیری ماشین میانی و پیشرفته

ترفند کرنل

داده‌ای که در فضای اصلی جدایی‌پذیر خطی نیست، ممکن است بعد از یک نگاشت غیرخطی ϕ(x)\phi(x) به فضای بزرگ‌تر جدایی‌پذیر شود. ولی ساختن صریح ϕ(x)\phi(x) می‌تواند خیلی پرهزینه یا حتی ناممکن باشد.

چون دوگان SVM فقط به ضرب داخلی نیاز دارد، کافی است xi⊤xjx_i^\top x_j را با یک کرنل عوض کنیم:

k(x,z)=ϕ(x)⊤ϕ(z)k(x, z) = \phi(x)^\top \phi(z)

مثال در R2\mathbb R^2: با ϕ(x)=(x12, 2 x1x2, x22)\phi(x) = (x_1^2,\ \sqrt2\,x_1x_2,\ x_2^2) داریم

ϕ(x)⊤ϕ(z)=x12z12+2x1x2z1z2+x22z22=(x⊤z)2\phi(x)^\top\phi(z) = x_1^2z_1^2 + 2x_1x_2z_1z_2 + x_2^2z_2^2 = (x^\top z)^2

یعنی ضرب داخلی در فضای ویژگی را با یک ضرب داخلی ساده در فضای اصلی و یک توان دو حساب کردیم. طبقه‌بند هم به شکل f(x)=∑iαiyi k(xi,x)+bf(x) = \sum_i \alpha_i y_i\, k(x_i, x) + b درمی‌آید.

کرنل‌های رایج

  • خطی: k(x,z)=x⊤zk(x,z) = x^\top z
  • چندجمله‌ای: k(x,z)=(x⊤z+c)pk(x,z) = (x^\top z + c)^p با c≥0c \ge 0
  • گاوسی (RBF): k(x,z)=exp⁡ ⁣(−γ∥x−z∥2)k(x,z) = \exp\!\big(-\gamma\|x - z\|^2\big) با γ>0\gamma > 0

فضای ویژگی کرنل RBF بی‌نهایت‌بعدی است. با این حال محاسبه‌ی آن فقط به فاصله‌ی دو نقطه نیاز دارد.

پارامتر γ\gamma تعیین می‌کند اثر هر نقطه تا چه فاصله‌ای می‌رسد:

  • γ\gamma بزرگ: کرنل خیلی باریک است، هر نقطه فقط همسایگی کوچک خودش را می‌بیند و مرز تصمیم پرپیچ‌وخم می‌شود (خطر بیش‌برازش).
  • γ\gamma کوچک: کرنل پهن و مرز تصمیم صاف‌تر است (خطر کم‌برازش).

در عمل γ\gamma و CC (درس بعد) را با هم و با اعتبارسنجی متقابل تنظیم می‌کنیم.

چه تابعی کرنل معتبر است؟

هر تابع دومتغیره‌ای کرنل نیست. شرط لازم و کافی (برای وجود یک ϕ\phi در یک فضای هیلبرت) این است که kk متقارن و مثبت نیمه‌معین باشد: برای هر مجموعه‌ی متناهی از نقاط، ماتریس گرام Kij=k(xi,xj)K_{ij} = k(x_i, x_j) مثبت نیمه‌معین باشد. قضیه‌ی مرسر (برای کرنل پیوسته روی دامنه‌ی فشرده) نسخه‌ی پیوسته‌ی همین نتیجه است و می‌گوید چنین کرنلی بسط k(x,z)=∑mλmψm(x)ψm(z)k(x,z) = \sum_m \lambda_m \psi_m(x)\psi_m(z) با λm≥0\lambda_m \ge 0 دارد.

پیامد ساده: k(x,x)≥0k(x,x) \ge 0 و k(x,z)2≤k(x,x) k(z,z)k(x,z)^2 \le k(x,x)\,k(z,z) (نامساوی کوشی-شوارتز).

ساختن کرنل جدید از کرنل‌های معتبر k1,k2k_1, k_2:

  • k1+k2k_1 + k_2 و c k1c\,k_1 با c>0c > 0
  • k1⋅k2k_1 \cdot k_2
  • exp⁡(k1)\exp(k_1) و g(x) k1(x,z) g(z)g(x)\,k_1(x,z)\,g(z) برای هر تابع gg

ولی k1−k2k_1 - k_2 لزوماً کرنل معتبر نیست.

تمرین‌های این درس را حل کن (رایگان)