هسته چندجمله‌ای

در یادگیری ماشینی، **هسته چندجمله‌ای** یک تابع هسته است که معمولاً با ماشین‌های بردار پشتیبان (SVM) و سایر مدل‌های مبتنی بر هسته استفاده می‌شود.
بندانگشتی|نگاشت <math>\varphi</math>. در سمت چپ مجموعه‌ای از نمونه‌ها در فضای ورودی، در سمت راست همان نمونه‌ها در فضای ویژگی که هسته چندجمله‌ای <math>K(x,y)</math> (برای برخی از مقادیر پارامترها <math>c</math> و <math>d</math>) محصول درونی است. ابرصفحه‌ای که در فضای ویژگی توسط یک ماشین بردار پشتیبان یادگرفته می‌شود، یک بیضی در فضای ورودی است.
این هسته شباهت بردارها (ورودی‌های آموزش) را در فضای ویژگی جدید که یک چندجمله‌ای ساخته‌شده از ورودی هاست نشان می‌دهد. با این کار ما امکان یادگیری مدل‌های غیرخطی را به‌دست می‌آوریم.

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

## تعریف
برای چندجمله‌ای‌های درجه **'، هستهٔ چندجمله‌ای به صورت زیر تعریف می‌شود.

<math>K(x,y) = (x^\mathsf{T} y + c)^{d}</math>

که در آن **' و **' بردارهایی در ''فضای ورودی هستند''، یعنی نمونه‌هایی که در دادگان آموزش یا تست وجود دارند.

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

به عنوان یک هسته، **' نتیجهٔ یک ضرب داخلی در یک فضای ویژگی جدید است. برای رفتن به فضای جدید از نگاشت **' استفاده می‌شود:

K(x,y) = \langle \varphi(x), \varphi(y) \rangle

کارکرد **' را می‌توان در یک مثال بررسی کرد.  را در نظر بگیرید، بنابراین ما یک حالت خاص از هسته یعنی هستهٔ درجه دوم را داریم.

<math>K(x,y) = \left(\sum_{i=1}^n x_i y_i + c\right)^2 =
\sum_{i=1}^n \left(x_i^2\right) \left(y_i^2 \right) +
\sum_{i=2}^n \sum_{j=1}^{i-1} \left( \sqrt{2} x_i x_j \right) \left( \sqrt{2} y_i y_j \right)
+ \sum_{i=1}^n \left( \sqrt{2c} x_i \right) \left( \sqrt{2c} y_i \right) + c^2
</math>

بنابراین نگاشت **' به صورت زیر خواهد بود.


\varphi(x) = \langle x_n^2, \ldots, x_1^2, \sqrt{2} x_n x_{n-1}, \ldots, \sqrt{2} x_n x_1, \sqrt{2} x_{n-1} x_{n-2}, \ldots, \sqrt{2} x_{n-1} x_{1}, \ldots, \sqrt{2} x_{2} x_{1}, \sqrt{2c} x_n, \ldots, \sqrt{2c} x_1, c \rangle


حالت کلی \left(\mathbf{x}^{T}\mathbf{y} + c\right)^d ، زمانی که \mathbf{x}\in\mathbb{R}^{n} ، \mathbf{y}\in \mathbb{R}^{n} است برابر خواهد بود با:


\begin{alignat}{2}
\left(\mathbf{x}^{T}\mathbf{y} + c\right)^d & =
\sum_{j_1+j_2+\dots +j_{n+1}=d}
\frac{\sqrt{d!}}{\sqrt{j_1! \cdots j_n! j_{n+1}!}} x_1^{j_1}\cdots x_n^{j_n} \sqrt{c}^{j_{n+1}}
\frac{\sqrt{d!}}{\sqrt{j_1! \cdots j_n! j_{n+1}!}} y_1^{j_1}\cdots y_n^{j_n} \sqrt{c}^{j_{n+1}}\\
&=\varphi(\mathbf{x})^{T} \varphi(\mathbf{y})
\end{alignat}



\varphi(\mathbf{x})
=
\left(a_{1},\dots, a_{l},\dots,a_{l_d} \right )


که آخرین عبارت به صورت l_d=\tbinom {n+d}{d} است. و همچنین:


a_{l}=\frac{\sqrt{d!} }{\sqrt{j_1! \cdots j_n!j_{n+1}! }} x_1^{j_1}\cdots x_n^{j_n} \sqrt{c}^{j_{n+1}}\quad|\quad j_1+j_2+\dots+j_n +j_{n+1} = d


## کاربرد
اگرچه هسته تابع پایه شعاعی (RBF) در طبقه‌بندی به کمک ماشین بردار پشتیبانی از هسته چندجمله‌ای محبوب‌تر است، ولی هستهٔ چندجمله‌ای در پردازش زبان طبیعی بسیار محبوب‌تر است.

رایج‌ترین درجه  است، زیرا در مسائل پردازش زبان طبیعی درجات بزرگ‌تر تمایل به بیش‌برازش دارند.

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

## منابع

رده:دسته‌بندی آماری
رده:روش‌های هسته برای یادگیری ماشین
رده:ماشین‌های بردار پشتیبانی