ترکیب دسته بندی کننده ها Instructor: Saeed Shiry & & Ethem Chp. 15 Haykin Chp.
Download
Report
Transcript ترکیب دسته بندی کننده ها Instructor: Saeed Shiry & & Ethem Chp. 15 Haykin Chp.
ترکیب دسته بندی کننده ها
Instructor: Saeed Shiry
&
&
Ethem Chp. 15
Haykin Chp. 7
مقدمه
اصل ”نهار مجانی وجود ندارد“ ) (No Free Lunch Theoremبیان میدارد که:
ایده:
هیچ الگوریتمی وجود ندارد که برای تمامی مسائل و در تمامی زمانها بهترین ( دقیق ترین)
یادگیر را بوجود آورد.
اگر تعدادی یادگیر پایه داشته باشیم میتوان با ترکیب نتایج آنها به دقت باالتری رسید.
این یادگیرها ممکن است در موارد زیر با هم متفاوت باشند:
الگوریتم :که باعث میشود فرضیات مختلفی در مورد داده استفاده شود.
پارامترها :مثل تعداد گره های مختلف الیه پنهان شبکه های عصبی و یا Kمتفاوت در
KNN
نحوه نمایش :استفاده از تعداد متفاوت ویژگی برای هر یادگیر ،استفاده از مجموعه داده
متفاوت
مجموعه آموزشی :داده های آموزشی یادگیرها اندکی با هم تفاوت داشته باشند.
ترکیب دسته بندی کننده ها
روشهای مختلفی برای ترکیب نتایج
دسته بندی کننده ها وجود دارد:
d1
متداولترین روشها میانگین گیری و یا
استفاده از رای اکثریت هستند
d2
انگیزه اصلی این کار در اینجاست که:
ما هنگام طراحی یک سیستم یادگیر
انتخاب های فراوانی داریم :نحوه نمایش،
پارامترهای یادگیر ،داده های آموزشی و
غیره.
این تنوع باعث میشود که نوعی از
واریانس در عملکرد سیستم وجود داشته
باشد .در نتیجه اگر سیستم های مختلفی
داشته و از نتایج آنها استفاده شود این
امکان وجود دارد که توزیع خطا حول
هدف متمرکز شده و با افزایش نمونه
گیری از این توزیع به نتیجه بهتری
برسیم
Final
output
d3
d4
d5
input
ترکیب دسته بندی کننده ها
اگر از نتیجه چند دسته بندی
:کننده بصورت زیر استفاده شود
f com vote( fi , f j , f k , fl , f m )
به شرط مستقل بودن توابع با
استفاده از روابط توزیع دو جمله
:ای داریم
N
P(error) p (1 p)
k
N
k
k
N
1
2
N k
:در مقاله زیر روابط مربوطه مطرح شده اند
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
L
y w jd j
j 1
w j 0 and
Classification
L
yi w j d ji
j 1
L
w
j 1
j
1
انواع رای گیری
Regression
•wj=1/L
•plurality voting
وقتی که چندین کالس مختلف وجود داشته باشند کالسی که
بیشترین رای را بیاورد برنده خواهد شد .بعبارت دیگر همه
کالسها بطور مساوی مقدار رگراسیون را تحت تاثیر قرار
میدهند.
•majority voting
وقتی که فقط دو کالس داشته باشیم کالسی که رای اکثریت را
بیاورد برنده میشود.
•wj proportional to error rate of classifier
این ضرایب با استفاده از یک مجموعه داده validationیاد
گرفته میشوند.
L
y w jd j
j 1
1
L
j
w
j 1
w j 0 and
Classification
L
yi w j d ji
j 1
تاثیر ترکیب در خطا
نشان داده میشود که خطای حاصل از ترکیب خبره ها از
خطای میانگین کمتر خواهد بود:
f com ) 2
i
( f
i
1
M
( fi t )2
i
1
M
( f com t ) 2
)(Krogh & Vedelsby 1995
iM
i
f
i 1
1
M
f com
Bayesian perspective (if outputs are posterior probabilities):
PCi | x
PC
i
| x, M j P M j
all modelsM j
Bias 2 :
If dj are iid, with errorj < 1/2
( ED (d ) f ) 2
Variance : ED [( ED (d ) d ) 2 ]
1 1
E y E d j L E d j E d j
j L L
1 1
1
1
Vary Var d j 2 Var d j 2 L Vard j Vard j
L
j L L
j
L
Bias does not change, variance decreases by L
Average over models with low bias and high
variance
نتیجه گیری در مورد Ensemble
Averaging
اگر چندین خبره با بایاس و واریانس یکسان ،از طریق روش
ensemble-averagingبا هم ترکیب شوند:
بایاس سیستم حاصل مشابه بایاس هر یک از خبره ها خواهد بود.
واریانس سیستم حاصل کمتر از واریانس هر یک از خبره ها خواهد
بود.
خطای میانگین سیستم حاصل کمتر از خطای میانگین هر یک
از خبره ها خواهد بود.
مثال
Avg.
79.4
در این مثال خروجی 10
شبکه با هم ترکیب شده اند.
میانگین Ensemble
توانسته به خطای مورد
انتظاری که کمتر از خطای
میانگین شبکه های منفرد
است ) (eDبرسد.
80.3% versus 79.4%
)(average
1% diff.
روش 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
مثال
Single net Simple ensemble Bagging
3.4
3.5
3.4
38.6
35.2
33.1
23.9
23
22.8
breast cancer
glass
diabetes
)Error rates on UCI datasets (10-fold cross validation
Source: Opitz & Maclin, 1999
روش Baggingبرای الگوریتمهای یادگیر ناپایدار یعنی
الگوریتمهائی که با تغییر داده دچار تغییر در نتیجه میشوند
عملکرد خوبی خواهد داشت ( .شبکه عصبی و درخت تصمیم نمونه
ای از این الگوریتمها هستند .در حالیکه KNNپایدار است).
Bagging
T
1
Input data :x H x sign[ hi x ]
i 1 T
1
T
Training data
1
T
1
T
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
T
Input data :x
1
Training data
H x sign[ i hi x ]
i 1
2
T
)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)
مثال
Single net Simple ensemble Bagging AdaBoost
breast cancer
3.4
3.5
3.4
4
glass
38.6
35.2
33.1
31.1
diabetes
23.9
23
22.8
23.3
Error rates on UCI datasets (10-fold cross validation)
Source: Opitz & Maclin, 1999
یک نمونه دیگراز پیاده سازی الگوریتم
AdaBoost
Constructing Dt : t 1,..., T
D1 1/ m
Given Dt and ht : i 1,..., m
Dt i
e t if yi ht xi
Dt 1 i
t
Zt
e if yi ht xi
Dt i
exp t yi ht xi
Zt
1 1 et
where Zt = normalized constant, t ln
0
Final hypothesis:
H
final x sign t ht x
t
2
et
Toy Example – taken from Antonio Torralba
@MIT
Each data point has
a class label:
yt =
+1 ( )
-1 ( )
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:
yt =
+1 ( )
-1 ( )
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:
yt =
+1 ( )
-1 ( )
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:
yt =
+1 ( )
-1 ( )
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:
yt =
+1 ( )
-1 ( )
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:
yt =
+1 ( )
-1 ( )
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 e t 1/ 2 t , then
training error H final 2 e t 1 e t
t
1 4 t
2
et
2
exp 2 t
t
So if t : t 0
2 2T
then training error H final e
روشهای دینامیک
Mixtures of Experts
در این روش وزنهای مورد
استفاده برای رای گیری بر
اساس ورودیها تغییر میکنند و
ثابت نیستند.
L
y w jd j
j 1
در حالت کلی هر یک از
خبره ها یا سیستم gating
میتوانند غیر خطی باشند.
بدین ترتیب یادگیرهای پایه در
بخش های مختلفی از ورودی
خبره خواهند شد.
روشهای دینامیک
Mixtures of Experts
f1
•
شبکه Gatingهمزمان با یادگیری
هر یک از خبره ها یاد میگیرد که
چه وزنی به هر خبره اختصاص
داده شود تا خطا کم شود.
1
( g i ( x ) f i ( x) t ) 2
2 i
f2
Final output
Combine
f3
f4
f5
E ( x)
•
اینکار باعث تجزیه فضای ورودی
بین خبره ها میشود.
•
شبکه Gatingمعموال از روش
Softmaxاستفاده میکند تا مجموع
وزنها یک شود.
) exp( i
) exp( j
j 1
g i ( x)
input
Face Detection
Adaboost
Non-face
Detection result
Training set
Classifiers Design
htHaar-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”.
iix, y
i x' , y '
x ' x , y ' y
Feature computation:
D ii4 ii1 ii2 ii3
ii 4 2 ii 3
Classifier Design
Choose the best features
Adaptive reweighting
Non-face
Haar-like features
Training set
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