در یادگیری ماشینی، **هسته چندجمله‌ای** یک تابع هسته است که معمولاً با ماشین‌های بردار پشتیبان (SVM) و سایر مدل‌های مبتنی بر هسته استفاده می‌شود.

نگاشت \varphi. در سمت چپ مجموعه‌ای از نمونه‌ها در فضای ورودی، در سمت راست همان نمونه‌ها در فضای ویژگی که هسته چندجمله‌ای {\displaystyle K(x,y)} (برای برخی از مقادیر پارامترها c و d) محصول درونی است. ابرصفحه‌ای که در فضای ویژگی توسط یک ماشین بردار پشتیبان یادگرفته می‌شود، یک بیضی در فضای ورودی است.
این هسته شباهت بردارها (ورودی‌های آموزش) را در فضای ویژگی جدید که یک چندجمله‌ای ساخته‌شده از ورودی هاست نشان می‌دهد. با این کار ما امکان یادگیری مدل‌های غیرخطی را به‌دست می‌آوریم.

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

تعریف
-----

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

{\displaystyle K(x,y)=(x^{\mathsf {T}}y+c)^{d}}

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

*c* ≥ ۰ یک پارامتر آزاد است که تأثیر عبارات درجه بالاتر یا پایین‌تر را مشخص می‌کند. وقتی *c* = ۰ باشد، هسته همگن نامیده می‌شود. (یک هستهٔ تعمیم‌یافته‌تر این است که *x*T*y* را بر یک پارامتر اسکالر مانند *a* که توسط کاربر مشخص می‌شود تقسیم کنیم.)

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

{\displaystyle K(x,y)=\langle \varphi (x),\varphi (y)\rangle }

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

{\displaystyle 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}}

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

{\displaystyle \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 }

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

{\displaystyle {\begin{alignedat}{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{alignedat}}}

{\displaystyle \varphi (\mathbf {x} )=\left(a\_{1},\dots ,a\_{l},\dots ,a\_{l\_{d}}\right)}

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

{\displaystyle 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) در طبقه‌بندی به کمک ماشین بردار پشتیبانی از هسته چندجمله‌ای محبوب‌تر است، ولی هستهٔ چندجمله‌ای در پردازش زبان طبیعی بسیار محبوب‌تر است.

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

مشکل
----

یکی از مشکلات هسته چندجمله‌ای این است که ممکن است پایداری عددی نداشته باشید به این معنا که وقتی *x*T*y* + *c* < 1 باشد آنگاه *K*(*x*, *y*) = (*x*T*y* + *c*)*d* با افزایش *d* به صفر میل می‌کند در حالی که وقتی که داشته باشیم *x*T*y* + *c* > 1 آنگاه *K*(*x*, *y*) به بی‌نهایت تمایل دارد.

منابع
-----

1. 1 2  Yoav Goldberg and Michael Elhadad (2008). splitSVM: Fast, Space-Efficient, non-Heuristic, Polynomial Kernel Computation for NLP Applications. Proc. ACL-08: HLT.
2. ↑  "Archived copy" (PDF). Archived from the original (PDF) on 2013-04-15. Retrieved 2012-11-12.`{{cite web}}`: نگهداری یادکرد:عنوان آرشیو به جای عنوان (link)
3. ↑  Shashua, Amnon (2009). "Introduction to Machine Learning: Class Notes 67577". arXiv:0904.3664v1 [cs.LG].
4. 1 2  Lin, Chih-Jen (2012). *Machine learning software: design and practical use* (PDF). Machine Learning Summer School. Kyoto.
5. ↑  Chang, Yin-Wen; Hsieh, Cho-Jui; Chang, Kai-Wei; Ringgaard, Michael; Lin, Chih-Jen (2010). "Training and testing low-degree polynomial data mappings via linear SVM". *Journal of Machine Learning Research*. **11**: 1471–1490.
6. ↑  "Numerical stability". *Wikipedia* (به انگلیسی). 2022-08-30.