ترکیب دسته بندی کننده ها Instructor: Saeed Shiry & Ethem Chp. 15 & Haykin Chp. 7
مقدمه اصل ”نهار مجانی وجود ندارد“(No Free Lunch Theorem) بیان میدارد که: هیچ الگوریتمی وجود ندارد که برای تمامی مسائل و در تمامی زمانها بهترین ( دقیق ترین) یادگیر را بوجود آورد. ایده: اگر تعدادی یادگیر پایه داشته باشیم میتوان با ترکیب نتایج آنها به دقت بالاتری رسید. این یادگیرها ممکن است در موارد زیر با هم متفاوت باشند: الگوریتم: که باعث میشود فرضیات مختلفی در مورد داده استفاده شود. پارامترها: مثل تعداد گره های مختلف لایه پنهان شبکه های عصبی و یا K متفاوت در KNN نحوه نمایش: استفاده از تعداد متفاوت ویژگی برای هر یادگیر، استفاده از مجموعه داده متفاوت مجموعه آموزشی: داده های آموزشی یادگیرها اندکی با هم تفاوت داشته باشند.
ترکیب دسته بندی کننده ها روشهای مختلفی برای ترکیب نتایج دسته بندی کننده ها وجود دارد: متداولترین روشها میانگین گیری و یا استفاده از رای اکثریت هستند انگیزه اصلی این کار در اینجاست که: ما هنگام طراحی یک سیستم یادگیر انتخاب های فراوانی داریم: نحوه نمایش، پارامترهای یادگیر، داده های آموزشی و غیره. این تنوع باعث میشود که نوعی از واریانس در عملکرد سیستم وجود داشته باشد. در نتیجه اگر سیستم های مختلفی داشته و از نتایج آنها استفاده شود این امکان وجود دارد که توزیع خطا حول هدف متمرکز شده و با افزایش نمونه گیری از این توزیع به نتیجه بهتری برسیم d1 d2 d3 d4 d5 Final output input
ترکیب دسته بندی کننده ها اگر از نتیجه چند دسته بندی کننده بصورت زیر استفاده شود: به شرط مستقل بودن توابع با استفاده از روابط توزیع دو جمله ای داریم: در مقاله زیر روابط مربوطه مطرح شده اند: Tumer & Ghosh 1996 “Error Correlation and Error Reduction in Ensemble Classifiers” (makes some assumptions, like equal variances)
خصوصیت دسته بندی کننده های پایه برای اینکه بتوان نتیجه مناسبی از ترکیب دسته بندی کننده ها گرفت، این دسته بندی کننده ها باید شرایط زیر را داشته باشند: هر یک به تنهائی در حد قابل قبولی دقیق باشند. البته نیازی به بسیار دقیق بودن آنها نیست. هر کدام مکمل دیگری عمل کنند. به این معنا که همگی نباید مشابه هم بوده و نتیجه یکسانی تولید کنند.
انواع ترکیب دسته بندی کننده ها Static structures پاسخ چندین خبره بدون در نظر گرفتن سیگنال ورودی با هم ترکیب میشوند. ensemble averaging خروجی خبره های مختلف بصورت خطی با هم ترکیب شده و خروجی جمعی را بوجود می آورد boosting یک یادگیر ضعیف طوری تغییر داده میشود تا به دقت بالائی برسد. Dynamic structures در این روش سیگنال ورودی در انتخاب مکانیسم ترکیب خبره ها تاثیر میگذارد. mixture of experts خروجی خبره ها توسط یک شبکه Gating network بصورت غیر خطی با هم ترکیب میشوند. hierarchical mixture of experts خروجی خبره ها توسط چندین شبکه Gating network که بصورت سلسله مراتبی قرار داده شده اند بصورت غیر خطی با هم ترکیب میشوند.
Ensemble Averaging
Ensemble Averaging >Voting Regression Classification
انواع رای گیری Regression wj=1/L plurality voting Classification wj=1/L plurality voting وقتی که چندین کلاس مختلف وجود داشته باشند کلاسی که بیشترین رای را بیاورد برنده خواهد شد. بعبارت دیگر همه کلاسها بطور مساوی مقدار رگراسیون را تحت تاثیر قرار میدهند. majority voting وقتی که فقط دو کلاس داشته باشیم کلاسی که رای اکثریت را بیاورد برنده میشود. wj proportional to error rate of classifier این ضرایب با استفاده از یک مجموعه داده validation یاد گرفته میشوند.
تاثیر ترکیب در خطا نشان داده میشود که خطای حاصل از ترکیب خبره ها از خطای میانگین کمتر خواهد بود: (Krogh & Vedelsby 1995)
Average over models with low bias and high variance Bayesian perspective (if outputs are posterior probabilities): If dj are iid, with errorj < 1/2 Bias does not change, variance decreases by L Average over models with low bias and high variance
نتیجه گیری در موردEnsemble Averaging بایاس سیستم حاصل مشابه بایاس هر یک از خبره ها خواهد بود. واریانس سیستم حاصل کمتر از واریانس هر یک از خبره ها خواهد بود. خطای میانگین سیستم حاصل کمتر از خطای میانگین هر یک از خبره ها خواهد بود.
مثال در این مثال خروجی 10 شبکه با هم ترکیب شده اند. میانگین Ensemble توانسته به خطای مورد انتظاری که کمتر از خطای میانگین شبکه های منفرد است (eD) برسد. 80.3% versus 79.4% (average) 1% diff. Avg. 79.4
روش Bagging این روش نیز مبتنی بر رای گیری است با این تفاوت که یادگیرهای پایه با داده های آموزشی متفاوتی آموزش داده میشوند تا اندکی با هم تفاوت داشته باشند. در نتیجه در حالی که این یادگیرها بدلیل آموزش از مجموعه اصلی مشابه هم خواهند بود بدلیل انتخاب تصادفی نمونه های آموزشی اندکی با هم اختلاف نیز خواهند داشت. Bagging (Bootstrap Aggregating) - Breiman, 1996 take a training set D, of size N for each network / tree / k-nn / etc… - build a new training set by sampling N examples, randomly with replacement, from D - train your machine with the new dataset end for output is average/vote from all machines trained
مثال Error rates on UCI datasets (10-fold cross validation) Source: Opitz & Maclin, 1999 روش Bagging برای الگوریتمهای یادگیر ناپایدار یعنی الگوریتمهائی که با تغییر داده دچار تغییر در نتیجه میشوند عملکرد خوبی خواهد داشت. ( شبکه عصبی و درخت تصمیم نمونه ای از این الگوریتمها هستند. در حالیکه KNN پایدار است.)
Bagging Input data :x Training data
Boosting ایده اصلی: اگر یادگیرهای پایه مشابه هم باشند ترکیب آنها نتیجه متفاوت محسوسی نخواهد داشت. بهتر است که یادگیرها تصمیم گیری متفاوتی داشته و مکمل یکدیگر باشند. در Bagging تفاوت بین یادگیرها از روی شانس و ناپایداری یادگیرهاست. در Boosting سعی میشود تا تعدادی یادگیر پایه ضعیف که مکمل هم باشند تولید شده و آنها را با اشتباه یادگیر قبلی آموزش داد. منظور از یادگیر ضعیف این است که یادگیر فقط کافی است که یک کمی از حالت تصادفی بهتر عمل کند. (e < ½) Boosting – Schapire & Freund 1990 در مقابل به یادگیری که با احتمال بالائی به دقت دلخواه برسد یادگیر قوی گفته میشود. منظور از Boosting این است که یک یادگیر ضعیف را به یک یادگیر قوی تبدیل کنیم.
Boosting به هر یک از دسته بندی کننده های مورد استفاده یک خبره (expert) گفته میشود. هر خبره با مجموعه داده ای با توزیع متفاوت آموزش داده میشود. برای پیاده سازی Boosting سه روش مختلف وجود دارد: Filtering در این روش فرض میشود مجموعه داده خیلی بزرگ است و مثالهائی که از آن انتخاب میشوند، یا حذف شده و یا به مجموعه داده برگردانده میشوند. Subsampling این روش با مجموعه داده های با اندازه ثابت بکار برده میشود. داده ها با استفاده از یک توزیع احتمال مشخص مجدا نمونه برداری میشوند. Reweighting این روش نیز با مجموعه داده های با اندازه ثابت بکار برده میشود. ولی داده ها توسط یک یادگیر ضعیف ارزش گذاری شده و به آنها وزن داده میشود.
Boosting by filtering الگوریتم Boosting take a training set D, of size N do M times train a network on D find all examples in D that the network gets wrong emphasize those patterns, de-emphasize the others, in a new dataset D2 set D=D2 loop output is average/vote from all machines trained الگوریتم
نمونه ای از الگوریتم Boosting by filtering Training: Divide X into 3 sets: X1, X2 and X3 Use X1 to train c1: (T1) Feed X2 into c1 Take all instances from X2 that are misclassified by c1 Take equal number of correctly classified instances (by c1) from X2 This forms the training set of c2 (T2) Feed X3 into c1 and c2 Add instances where they disagree to T3 Testing: Feed instance to c1 and c2 If they agree, take the decision If they dont agree, use c3’s decision (=majority decision) برای هر الگوریتم پیاده سازی های مختلفی وجود دارد که نمونه ای از آن در اینجا آورده شده است.
مثال
کارائی یادگیرنده های BOOSTING
ویژگی های Boosting by filtering هر خبره بر روی قسمتی از مسئله که یادگیری آن سخت است تمرکز مینماید. داده آموزشی هر یادگیر از توزیع متفاوتی بدست می آید. نیاز به مجموعه داده آموزشی زیادی دارد برای رفع این مشکل از Adaboost استفاده میشود.
Boosting Input data :x Training data
AdaBoost (ADAptive BOOSTing) در این روش احتمال انتخاب یک نمونه xt برای قرار گرفتن در مجموعه داده های آموزشی دسته بندی کننده j+1 بر مبنای احتمال خطای دسته بندی کننده cj تعیین میشود: اگر نمونه xt بدرستی دسته بندی شده باشد، احتمال انتخاب شدن آن برای دسته بندی کننده بعدی افزایش داده میشود. اگر نمونه xt بدرستی دسته بندی نشود، احتمال انتخاب شدن آن برای دسته بندی کننده بعدی کاهش داده میشود. تمامی یادگیرها ضعیف و ساده بوده و باید خطائی کمتر از ½ داشته باشند در غیر اینصورت آموزش متوقف میشود زیرا ادامه آن باعث خواهد شد تا یادگیری برای دسته بندی کننده بعدی مشکلتر شود.
AdaBoost Algorithm احتمال اولیه انتخاب نمونه های آموزشی ( وزن آنها) یکنواخت در نظر گرفته میشود. در واقع وزن هر مثال نشان دهنده اهمیت آن مثال خواهد بود. اگر نمونه آموزشی i بدرستی توسط دسته بندی کننده ضعیف فعلی ارزیابی شود توزیع احتمال بعدی آن با ضرب کردن وزن مثال i در عددی مثل b (0,1] تعیین میشود ( کاهش داده میشود). در غیر اینصورت وزن آن ثابت باقی می ماند. فرضیه نهائی از طریق رای گیری وزن دار تعداد T فرضیه ضعیف بدست می آید.
یک نمونه از پیاده سازی الگوریتم AdaBoost Generate a sequence of base-learners each focusing on previous one’s errors (Freund and Schapire, 1996)
مثال Error rates on UCI datasets (10-fold cross validation) Source: Opitz & Maclin, 1999
یک نمونه دیگراز پیاده سازی الگوریتم AdaBoost Constructing : Given and : where = normalized constant, Final hypothesis:
Toy Example – taken from Antonio Torralba @MIT Each data point has a class label: +1 ( ) -1 ( ) yt = and a weight: wt =1 Weak learners from the family of lines h => p(error) = 0.5 it is at chance
Toy example Each data point has a class label: +1 ( ) yt = -1 ( ) +1 ( ) -1 ( ) yt = and a weight: wt =1 This one seems to be the best This is a ‘weak classifier’: It performs slightly better than chance.
Toy example Each data point has a class label: +1 ( ) yt = -1 ( ) +1 ( ) -1 ( ) yt = We update the weights: wt wt exp{-yt Ht} We set a new problem for which the previous weak classifier performs at chance again
Toy example Each data point has a class label: +1 ( ) yt = -1 ( ) +1 ( ) -1 ( ) yt = We update the weights: wt wt exp{-yt Ht} We set a new problem for which the previous weak classifier performs at chance again
Toy example Each data point has a class label: +1 ( ) yt = -1 ( ) +1 ( ) -1 ( ) yt = We update the weights: wt wt exp{-yt Ht} We set a new problem for which the previous weak classifier performs at chance again
Toy example Each data point has a class label: +1 ( ) yt = -1 ( ) +1 ( ) -1 ( ) yt = We update the weights: wt wt exp{-yt Ht} We set a new problem for which the previous weak classifier performs at chance again
Toy example f1 f2 f4 f3 The strong (non- linear) classifier is built as the combination of all the weak (linear) classifiers.
مزایای Adaboost بروز رسانی وزنها بر روی مثالهای سخت تمرکز میکند که در تکرار قبلی بدرستی دسته بندی نشده بودند. ساده است و براحتی قابل برنامه ریزی است. تنها پارامتر آن تعداد دسته بندی کننده هاست و تنطیم خاصی نیاز ندارد. میتواند هر نوع دسته بندی کننده ای را ترکیب نماید.
Training Error Let , then training error So if then training error Error bound和每一次的錯誤率有關,假設某一個分類器的error很小,可以彌補其他分類不好的分類器。 T越大,越多分類器,理論上training error 可以趨近於零。
روشهای دینامیک Mixtures of Experts در این روش وزنهای مورد استفاده برای رای گیری بر اساس ورودیها تغییر میکنند و ثابت نیستند. در حالت کلی هر یک از خبره ها یا سیستم gating میتوانند غیر خطی باشند. بدین ترتیب یادگیرهای پایه در بخش های مختلفی از ورودی خبره خواهند شد.
روشهای دینامیک Mixtures of Experts Combine Final output input شبکه Gating همزمان با یادگیری هر یک از خبره ها یاد میگیرد که چه وزنی به هر خبره اختصاص داده شود تا خطا کم شود. اینکار باعث تجزیه فضای ورودی بین خبره ها میشود. شبکه Gating معمولا از روش Softmax استفاده میکند تا مجموع وزنها یک شود.
Face Detection Non-face Adaboost Detection result Training set
Classifiers Design Haar-like features for : Two-rectangle (A,B) Three-rectangle (C) Four-rectangle (D) 24 24
Classifiers Design Why use Haar-like features? Resolution of detector : 24*24 total 160,000 (quite large)
Classifiers Design Use “Integral image”. Feature computation:
Classifier Design Choose the best features Adaptive reweighting Non-face Training set Haar-like features 自動挑選適合的feature.使我們可以得到更efficient 的feature。
Face Detection Computation cost: Ex: image size: 320x240. sub-window size:24x24. frame rate: 15 frame/sec. each feature need (320-24+1)x(240-24+1)x15=966,735 per sec (if ignore scaling) huge computation cost !!
Face Detection Use cascade classifiers. Example: 200 feature classifier 10 20-featureclassifiers.
Face Detection Advantage of cascade classifiers: Maintain accuracy. Speed up.
Experiments