ال پی بوست یا تقویت برنامه‌ریزی خطی (به انگلیسی: LPBoost) یک روش یادگیری ماشین و از دسته الگوریتم‌های یادگیری نظارتی تقویتی (بوستینگ) برای مسئله طبقه‌بندی است. این الگوریتم خصوصاً در مسائل انتخاب ویژگی و طبقه‌بندی مشترک، کاربرد دارد. در الگوریتم ال پی بوست، سعی می‌شود که در مرحله آموزش، حاشیه بین نمونه‌های طبقه‌های مختلف، بیشینه شود. به‌طور مثال، تابع طبقه‌بندی f را به صورت زیر در نظر بگیرید:


f
:
χ
→
{
−
1
,
1
}
,

{\displaystyle f:\chi \rightarrow \{-1,1\},}

{\displaystyle f:\chi \rightarrow \{-1,1\},}این تابع، نمونه‌هایی را از فضای {\displaystyle \chi } به دو طبقه با برچسب‌های {\displaystyle -1} و {\displaystyle 1} طبقه‌بندی می‌کند. در الگوریتم ال پی بوست، تابع طبقه‌بندی f طوری یادگرفته می‌شود حاشیه بین داده‌های با برچسب {\displaystyle -1} و داده‌های با برچسب {\displaystyle 1} بیشینه شود.

کلیت الگوریتم
-------------

مشابه تمامی طبقه‌بندهای تقویتی، تابع طبقه‌بندی نهایی به شکل زیر است:


f
(
x
)
=

∑

j
=
1

J

α

j

h

j

(
x
)
,

{\displaystyle f(x)=\sum \_{j=1}^{J}\alpha \_{j}h\_{j}(x),}

{\displaystyle f(x)=\sum _{j=1}^{J}\alpha _{j}h_{j}(x),}که {\displaystyle \alpha \_{j}} وزن‌های غیر صفر برای طبقه‌بندهای ضعیف {\displaystyle h\_{j}:\chi \rightarrow \{-1,1\}} هستند. هر طبقه‌بند ضعیف {\displaystyle h\_{j}} ممکن است یک مقدار بهتر از انتخاب تصادفی عمل کند، اما ترکیب خطی حاصل از تعداد زیادی طبقه‌بند ضعیف می‌تواند عملکرد خیلی خوبی داشته باشد.

ال پی بوست با شروع از یک مجموعه طبقه‌بندهای ضعیف، تابع {\displaystyle f} را می‌سازد. در هر مرحله، یک طبقه‌بند ضعیف انتخاب شده و به مجموعه طبقه‌بندها اضافه می‌شود. سپس همه وزن‌های {\displaystyle \alpha } برای مجموعه کنونی طبقه‌بندهای ضعیف به‌روزرسانی و تنظیم می‌شوند. این مرحله آن قدر تکرار می‌شود تا در نهایت هیچ طبقه‌بند ضعیف دیگری برای اضافه شدن باقی نمانده باشد.

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

برنامه‌ریز خطی
--------------

مجموعه نامتناهی طبقه‌بندهای محتمل ضعیف را به صورت {\displaystyle {\mathcal {H}}=\{h(.;\omega )|\omega \in \Omega \}} در نظر می‌گیریم و آن را به عنوان مجموعه فرضیه‌ها نامگذاری می‌کنیم. یک راه نوشتن مسئله ال پی بوست، به صورت یک مسئله برنامه‌ریزی خطی با تعداد نامتناهی متغیر است.

برنامه‌ریز خطی پرایمال ال پی بوست، که بردار وزن ناصفر {\displaystyle \alpha }، بردار ناصفر متغیرهای ضعیف {\displaystyle \xi }، و حاشیه {\displaystyle \rho } را بهینه می‌کند، به صورت زیر تعریف می‌شود:



min

α
,
ξ
,
ρ

−
ρ
+
D

∑

n
=
1

l

ξ

n

{\displaystyle \min \_{\alpha ,\xi ,\rho }-\rho +D\sum \_{n=1}^{l}\xi \_{n}}

{\displaystyle \min _{\alpha ,\xi ,\rho }-\rho +D\sum _{n=1}^{l}\xi _{n}}

s
b
.
t
.

∑

ω
∈
Ω

y

n

α

ω

h
(

x

n

;
ω
)
+

ξ

n

≥
ρ
,
n
=
1
,
.
.
.
,
l
,

{\displaystyle sb.t.\sum \_{\omega \in \Omega }y\_{n}\alpha \_{\omega }h(x\_{n};\omega )+\xi \_{n}\geq \rho ,n=1,...l,}

{\displaystyle sb.t.\sum _{\omega \in \Omega }y_{n}\alpha _{\omega }h(x_{n};\omega )+\xi _{n}\geq \rho ,n=1,...l,}

∑

ω
∈
Ω

α

ω

=
1
,

{\displaystyle \sum \_{\omega \in \Omega }\alpha \_{\omega }=1,}

{\displaystyle \sum _{\omega \in \Omega }\alpha _{\omega }=1,}

ξ

n

≥
0
,
n
=
1
,
.
.
.
,
l

{\displaystyle \xi \_{n}\geq 0,n=1,...l}

{\displaystyle \xi _{n}\geq 0,n=1,...l}

ξ

n

≥
0
,
ω
∈
Ω

{\displaystyle \xi \_{n}\geq 0,\omega \in \Omega }

{\displaystyle \xi _{n}\geq 0,\omega \in \Omega }

α

ω

≥
0
,
ω
∈
Ω

{\displaystyle \alpha \_{\omega }\geq 0,\omega \in \Omega }

{\displaystyle \alpha _{\omega }\geq 0,\omega \in \Omega }

ρ
∈
ℜ
.

{\displaystyle \rho \in \Re .}

{\displaystyle \rho \in \Re .}به تأثیر متغیرهای ضعیف {\displaystyle \xi \geq 0} توجه کنید: نرم ۱ این مقادیر در تابع هزینه به همراه ثابت {\displaystyle D} به عنوان عبارت پنالتی آورده شده‌است، که اگر به اندازه کافی کوچک باشد همواره به یک برنامه‌ریز خطی قابل دستیابی منجر می‌شود.

در اینجا ما فضای پارامتر {\displaystyle \Omega } را به کار گرفتیم، طوری که برای انتخاب {\displaystyle \omega \in \Omega }، طبقه‌بند ضعیف {\displaystyle h(.;\omega ):\chi \rightarrow \{-1,1\}} به صورت یکتا تعریف می‌شود.

هنگامی که برنامه‌ریز خطی بالا در مقالات اولیه روش‌های بوستینگ نوشته شده بود، به دلیل وجود تعداد زیادی متغیر {\displaystyle \alpha }، به عنوان یک الگوریتم غیرقابل کنترل شناخته می‌شد. بعدها فهمیده شد برنامه‌ریزهای خطی می‌توانند به صورت مؤثر و با استفاده از تکنیک کلاسیک تولید ستون حل شود.

### تولید ستون برای ال پی بوست

در یک برنامه‌ریز خطی، یک ستون با یک متغیر پرایمال متناظر است. تولید ستون یک روش برای حل برنامه‌ریزهای خطی بزرگ است. این روش معمولاً در مسائل با متغیرهای محدود به کار می‌رود. با تولید متغیرهای پرایمال مرحله به مرحله و وابسته به نیاز، نهایتاً مسئله نامحدود اولیه با همه متغیرها دوباره ساخته می‌شود. با انتخاب هوشمندانه ستون‌های مورد نیاز، مسئله می‌تواند طوری حل شود که با وجود تولید بخش کوچکی از ستون‌ها، تضمین شود که حل به‌دست آمده از آن، برای مسئله کامل اولیه بهینه است.

#### مسئله دوگان ال پی بوست

ستون‌های مسئله برنامه‌ریز خطی پرایمال، با سطرهای مسئله دوگان خطی آن متناظر هستند. معادل دوگان مسئله برنامه‌ریز خطی ال پی بوست به صورت زیر است:



max

λ
,
γ

γ

{\displaystyle \max \_{\lambda ,\gamma }\gamma }

{\displaystyle \max _{\lambda ,\gamma }\gamma }

s
b
.
t
.

∑

n
=
1

l

y

n

h
(

x

n

;
ω
)
+
γ
≤
0
,
ω
∈
Ω

{\displaystyle sb.t.\sum \_{n=1}^{l}y\_{n}h(x\_{n};\omega )+\gamma \leq 0,\omega \in \Omega }

{\displaystyle sb.t.\sum _{n=1}^{l}y_{n}h(x_{n};\omega )+\gamma \leq 0,\omega \in \Omega }

0
≤

λ

n

≤
D
,
n
=
1
,
.
.
.
,
l
,

{\displaystyle 0\leq \lambda \_{n}\leq D,n=1,...l,}

{\displaystyle 0\leq \lambda _{n}\leq D,n=1,...l,}

∑

n
=
1

l

λ

n

=
1
,

{\displaystyle \sum \_{n=1}^{l}\lambda \_{n}=1,}

{\displaystyle \sum _{n=1}^{l}\lambda _{n}=1,}

γ
∈
ℜ

{\displaystyle \gamma \in \Re }

{\displaystyle \gamma \in \Re }
برای برنامه‌ریزهای خطی، مقدار بهینه مسئله پرایمال و دوگان آن با یکدیگر برابرند. برای مسائل پرایمال و دوگان بالا، مقدار بهینه برابر است با حاشیه نرم منفی. اگر مقادیر منفی نمونه‌های آموزش را به غیر از متغیرهای ضعیف مثبت که حاوی پنالتی‌ها برای نمونه‌های ناقض حاشیه هستند، را در نظر بگیریم، اندازه حاشیه‌ای که این مقادیر را از مقادیر مثبت نمونه‌های آموزش جدا می‌کند به عنوان حاشیه نرم (soft margin) شناخته می‌شود؛ بنابراین، حاشیه نرم ممکن است مثبت باشد گرچه همه نمونه‌ها توسط تابع طبقه‌بندی به صورت خطی جداپذیر نیستند. حالتی که همه نمونه‌ها توسط تابع طبقه‌بندی بتوانند جدا شوند، به عنوان حاشیه سخت (hard margin) شناخته می‌شود.

#### معیار همگرایی

یک زیرمجموعه از شرایط ارضا شده در مسئله دوگان را در نظر بگیرید. برای هر زیرمجموعه محدود، می‌توانیم برنامه‌ریز خطی را حل کنیم و بنابراین همه شرایط را برآورده کنیم. اگر بتوانیم ثابت کنیم که از بین همه شرایطی که ما به مسئله دوگان اضافه نکردیم، هیچ شرطی نقض نشده‌است، می‌توانیم ثابت کنیم که حل کردن مسئله محدودشده ما معادل است با حل کردن مسئله اولیه. اگر {\displaystyle \gamma ^{\*}} مقدار بهینه تابع هدف برای هر نمونه محدود باشد، می‌توانیم در فضای مسئله اولیه، یک مسئله جست و جو برای بیشترین شرط نقض شده در فضای مسئله اولیه، تعریف کنیم. به عبارتی دیگر می‌خواهیم {\displaystyle \omega ^{\*}\in \Omega } را طوری پیدا کنیم که شرط زیر برقرار باشد:



ω

∗

=
a
r
g
m
a

x

ω
∈
Ω

∑

n
=
1

l

y

n

h
(

x

n

;
ω
)

λ

n

{\displaystyle \omega ^{\*}=argmax\_{\omega \in \Omega }\sum \_{n=1}^{l}y\_{n}h(x\_{n};\omega )\lambda \_{n}}

{\displaystyle \omega ^{*}=argmax_{\omega \in \Omega }\sum _{n=1}^{l}y_{n}h(x_{n};\omega )\lambda _{n}}بنابراین، ما در فضای {\displaystyle {\mathcal {H}}} دنبال یک تابع تصمیم {\displaystyle h(.;\omega ^{\*})} می‌گردیم که سمت چپ شرط دوگان را بیشینه کند. اگر شرط نتواند توسط هیچ تابع تصمیمی نقض شود، هیچ‌یک از شرط‌های متناظر آن نمی‌توانند در مسئله اولیه فعال باشند و مسئله محدود معادل است.

### ثابت پنالتی {\displaystyle D}

مقدار ثابت مثبت {\displaystyle D} می‌تواند توسط روش‌های انتخاب مدل پیدا شود. با این وجود، اگر این ثابت را به صورت {\displaystyle D={\frac {1}{lv}}} در نظر بگیریم، که {\displaystyle l} تعداد نمونه‌های یادگیری، و {\displaystyle 0<v<1} است، پارامتر جدید {\displaystyle v} خواص زیر را خواهد داشت:

* {\displaystyle v} یک کران بالا برای کسر خطاهای یادگیری است. به عبارتی دیگر، اگر {\displaystyle k} نمایانگر تعداد نمونه‌های یادگیری با طبقه‌بندی اشتباه باشد، آنگاه شرط {\displaystyle {\frac {k}{l}}\leq v} برقرار است.
* {\displaystyle v} یک کران پایین روی کسر نمونه‌های یادگیری خارج از حاشیه است.

الگوریتم
--------

* ورودی:
	+ مجموعه یادگیری {\displaystyle X={x\_{1},...x\_{l}},x\_{i}\in \chi }
	+ برچسب‌های یادگیری {\displaystyle Y={y\_{1},...y\_{l}},y\_{i}\in \{-1,1\}}
	+ آستانه همگرایی {\displaystyle \theta \geq 0}
* خروجی:

جستارهای وابسته
---------------

* بوستینگ
* آدابوست

منابع
-----

1. ↑  Demiriz, Ayhan; Bennett, Kristin P.; Shawe-Taylor, John (2002-01-01). "Linear Programming Boosting via Column Generation". *Machine Learning* (به انگلیسی). **46** (1): 225–254. doi:10.1023/A:1012470815092. ISSN 1573-0565.