شبکه های باور بیزی Instructor : Saeed Shiry & Mitchell Ch. 6 مقدمه     در عمل پیاده سازی Bayes Optimal Classifier بسیار پرهزینه است . همانگونه که دیدیم.

Download Report

Transcript شبکه های باور بیزی Instructor : Saeed Shiry & Mitchell Ch. 6 مقدمه     در عمل پیاده سازی Bayes Optimal Classifier بسیار پرهزینه است . همانگونه که دیدیم.

‫شبکه های باور بیزی‬
Instructor : Saeed Shiry
&
Mitchell Ch. 6
‫مقدمه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در عمل پیاده سازی ‪ Bayes Optimal Classifier‬بسیار پرهزینه‬
‫است‪.‬‬
‫همانگونه که دیدیم دسته بندی کننده ‪Naive Bayes Classifier‬‬
‫بر این اصل استوار بود که مقادیر ویژگی ها مستقل شرطی باشند ‪.‬اما‬
‫این یک شرط بسیار محدود کننده است که غالبا برآورده نمیشود‪.‬‬
‫شبکه های باور بیزی یا ‪Bayesian Belief Networks‬که‬
‫‪Bayes Nets‬هم نامیده میشود روشی است برای توصیف توزیع‬
‫احتمال توام مجموعه ای از متغیرها‪.‬‬
‫‪BBN‬استقالل شرطی زیر مجموعه ای ازمتغیرها راقابل توصیف کرده‬
‫و امکان ترکیب دانش قبلی درباره وابستگی متغیرها را با داده های‬
‫آموزشی فراهم میاورد‪.‬‬
‫مقدمه‬
‫دسته بندی کننده ساده بیزی‬
Concept C
X1
X2
…
‫شبکه باور بیزی‬
xn
P(x1,x2,…xn,c) = P(c) P(x1|c) P(x2|c) … P(xn|c)
Concept C
X1
X2
x4
X3
P(x1,x2,…xn,c) = P(c) P(x1|c) P(x2|c) P(x3|x1,x2,c)P(x4,c)
‫مقدمه‬
‫‪‬‬
‫‪‬‬
‫اگر ‪ a1,a2,...an‬مجموعه ای از ویژگیها و یا متغیرها‬
‫باشند ‪BN‬میتواند احتمال هر ترکیبی از آنان را بیان کند‪.‬‬
‫اگرچه در هنگام استفاده از ‪ BN‬هم ناگزیر به استفاده از‬
‫شروط استقالل خواهیم بود اما ‪ BN‬راه حل میانه تری است‬
‫که محدودیت کمتری دارد‪.‬‬
–Node = variables
–Arc = dependency
–Direction on arc representing causality
Storm
‫مثال‬
Bus Tour Group
Lightning
Campfire
Thunder
Forest Fire
P (Campfire=True | Storm=True, BusTourGroup=True ) = ?
Variable A with parents B1, …., Bn has a conditional probability table P (A |
B1, …., Bn)
BN ‫کاربرد‬
cause
C1
C2
symptom
P(cause|symptom)=? ‫تشخیص‬
P(symptom|cause)=?‫پیش بینی‬
max P(class | data) ‫دسته بندی‬
class
(‫تصمیم گیری ) در صورت وجود تابع ارزش‬
:‫مثال‬
Speech recognition, Stock market,
Text
Classification, Computer troubleshooting, medical
diagnostic systems,
real-time weapons scheduling, Intel processor fault
diagnosis (Intel)
generator monitoring expert system (General Electric)
troubleshooting (Microsoft)





‫کاربرد ‪BN‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫خواستگاه ‪ BN‬به ترکیب احتمال با سیستم های خبره بر‬
‫میگردد و این زمینه یکی از کاربردهای مهم آنرا تشکیل میدهد‪.‬‬
‫‪BN‬را میتوان دربسیاری از کاربردهائی که سیستم های‬
‫‪knowledge based‬متداول مورد استفاده هستند بکار برد‪.‬‬
‫‪BN‬در مقایسه با شبکه های عصبی دارای مزایای زیر است‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫میتوان از اطالعات افراد خبره در ساخت ‪ BN‬استفاده کرد‪.‬‬
‫فهم و توسعه ساختار ‪ BN‬ساده تر است‪.‬‬
‫‪BN‬میتواند با داده های ناقص کار کند‪.‬‬
‫استقالل شرطی‬
‫‪‬‬
‫‪‬‬
‫تعریف استقالل شرطی‬
‫اگر ‪ X,Y,Z‬سه متغیر تصادفی با مقادیر گسسته باشند میگوئیم‬
‫که ‪ X‬با دانستن ‪ Z‬بطور شرطی از ‪ Y‬مستقل است اگر با‬
‫دانستن ‪ Z‬توزیع احتمال ‪ X‬مستقل از مقدار ‪ Y‬باشد‪.‬‬
‫) ‪(xi , y j , zk ) P( X  xi Y  y j , Z  zk )  P( X  xi | Z  zk‬‬
‫‪‬‬
‫تعریف مشابهی را میتوان برای مجموعه ای از متغیرها بکار‬
‫برد‪:‬‬
‫) ‪P( X 1... X L | Y1...Ym , Z1...Z n )  P( X 1... X L | Z1...Z n‬‬
‫نمایش ‪BN‬‬
‫یک ‪ BN‬مدلی گرافیکی برای نشان دادن توزیع احتمال توام مجموعه ای از متغیرها است ‪.‬‬
‫دانش بدست آمده برای یک مسئله بصورت اطالعات کمی و کیفی در این گراف مدل میشود‪.‬‬
‫اینکار با مشخص کردن مجموعه ای از فرضیات استقالل خطی توسط کمانهای گراف‪،‬‬
‫همراه با ذکرمقادیر احتمال شرطی گره ها انجام میشود‪.‬‬
‫هر متغیری از فضای توام بصورت یک گره در ‪ BN‬نمایش داده شده و برای هر متغیر دو‬
‫نوع اطالعات ارائه میگردد‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫کمانهای شبکه برای نشان دادن رابطه‬
‫استقالل شرطی بکار میرود‪:‬یک‬
‫متغیربا دانستن والدین آن از گره های‬
‫غیر فرزند آن مستقل است‪.‬‬
‫جدولی نیز ارائه میگردد که توزیع‬
‫احتمال هرگره برای والدین بالفصل آنرا‬
‫مشخص میکند ‪.‬‬
‫)‪P(S‬‬
‫‪Smoking‬‬
‫)‪P(C|S‬‬
‫)‪P(B|S‬‬
‫‪Bronchitis‬‬
‫‪lung Cancer‬‬
‫)‪P(X|C,S‬‬
‫)‪P(D|C,B‬‬
‫‪Dyspnoea‬‬
‫‪X-ray‬‬
BN ‫نمایش‬
P(S)
P(B)
Storm
Bus Tour Group
‫با‬Campfire
‫دانستن والدینش‬
‫مستقل از‬
‫است‬lightining
P(L|S)
CPD:
Lightning
Campfire
P(C|S,B)
Thunder
P(T|L,S)
Forest Fire
P(F|C,S,L)
‫ و‬Lightning ‫ متغیرهای‬BusTourGroup ‫ و‬Storm ‫با دانستن‬
.‫ ارائه نمیدهند‬Campfire ‫اطالعات اضافی دیگری برای‬Thunder
S
0
0
1
1
B C=0 C=1
0 0.2 0.8
1 0.8 0.2
0 0.1 0.9
1 0.4 0.6
‫توزیع احتمال توام‬
‫ برای محاسبه توزیع احتمال توام مجموعه ای از‬BN ‫در‬
:‫متغیرها از رابطه زیر استفاده میشود‬

n
P( X 1 , X 2 ,..., X n )   P( X i | Parents( X i ))
i 1
.‫ گره های قبلی بالفصل آن میباشند‬،‫که والدین یک گره‬
‫مثال‬
P(Campfire, Storm, BusGroupTour, Lightning, Thunder, ForestFire)?
P(Storm)P(BusTourGroup)P(Campfire|Storm,BusTourGroup)
P(Lightning|Storm)P(Thunder|Lightning)
P(ForestFire|Lightning,Storm,Campfire).


‫مثال‬
‫احتمال شرطی‬
S,B
S,~B
~S,B
~S,~B
C
0.4
0.1
0.8
0.2
~C
0.6
0.9
0.2
0.8
P(Campfire=true|Storm=true,BusTourGroup=true) = 0.4

‫مثال‬
‫‪‬‬
‫عیب یابی پرینتر‬
‫نحوه ساخت ‪BN‬‬
‫‪‬‬
‫‪‬‬
‫بصورت دستی ‪ ،‬توسط یک خبره‬
‫بصورت اتوماتیک‪ ،‬توسط روشهای یادگیری ماشین‬
BN ‫استنتاج توسط‬
Age
Income
How likely are elderly rich
people to buy DallasNews?
P( paper = DallasNews |
Age>60, Income > 60k)
Living
Location
House
Owner
Newspaper
Preference
…
Voting
Pattern
‫استنتاج‬
‫ارتباط بین ‪ BN‬و دسته بندی‪:‬‬
‫‪ ‬میتوان از ‪ BN‬استفاده نموده و مقدار یک متغیر را در‬
‫صورت مشاهده مقادیر سایر متغیرها استنتاج نمود‪.‬البته‬
‫معموال امکان بدست آوردن یک مقدار وجود نداشته و بجای‬
‫آن یک توزیع احتمال محاسبه میشود‪.‬‬
‫‪ ‬اگر مقادیر همه متغیرها از پیش معلوم باشد انجام چنین‬
‫استنتاجی ساده است ولی معموال فقط مقداربخشی از متغیرها‬
‫مشاهده میشود ‪.‬مثال ممکن است بخواهیم با مشاهده‬
‫‪Thunder , BusTourGroup‬در مورد ‪Forestfire‬‬
‫نتیجه گیری کنیم‪.‬‬
‫حالت کلی‬
‫اگر یکی از متغیرها مقدارهدف بوده و بخواهیم‬
‫آنرا با داشتن مقدار سایر متغیرها محاسبه کنیم‬
‫‪Concept C‬‬
‫‪xn‬‬
‫…‬
‫‪X2‬‬
‫‪X1‬‬
‫)‪P(x1,x2,…xn,c) = P(c) P(x1|c) P(x2|c) … P(xn|c‬‬
‫‪Concept C‬‬
‫‪x4‬‬
‫دسته بندی کننده بیزی ساده‬
‫‪X1‬‬
‫‪X2‬‬
‫شبکه باور بیزی‬
‫‪X3‬‬
‫)‪P(x1,x2,…xn,c) = P(c) P(x1|c) P(x2|c) P(x3|x1,x2,c)P(x4,c‬‬
‫استنتاج‬
:‫روشهای مختلف‬
‫روشهای دقیق‬
Monte Carlo ‫روشهای تقریبی‬
Dynamic programming
Variable elimination





‫مثال‬
A
B
C
CPD:
A
0
0
1
1
B C=0 C=1
0 0.5 0.5
1 0.5 0.5
0 0.6 04
1 0.8 0.2
‫ میتوان‬A , B ‫با دانستن احتمال‬
‫ را محاسبه‬C ‫احتمال درستی‬
.‫نمود‬
A: p(A) = 0.1p(~A) = 0.9
B: p(B) = 0.4p(~B) = 0.6
The initialized Probability of C:
p(C) =p(CAB) + p(C~AB) + p(CA~B) + p(C~A~B)
=p(C | AB) * p(AB) + p(C | ~AB) * p(~AB) +p(C | A~B) * p(A~B) +
p(C | ~A~B) * p(~A~B)
=p(C | AB) * p(A) * p(B) + p(C | ~AB) * p(~A) * p(B) +
p(C | A~B) * p(A) * p(~B) +p(C | ~A~B) * p(~A) * p(~B) =0.518
‫مثال‬
‫‪CPD:‬‬
‫در صورتیکه بدانیم ‪ C‬درست‬
‫است میتوان با استفاده از تئوری‬
‫بیز و احتمال اولیه ‪ C‬احتمال‬
‫اینکه کدامیک از ‪ A‬یا ‪ B‬علت‬
‫وقوع آن بوده را محاسبه نمائیم‪.‬‬
‫‪B C=0 C=1‬‬
‫‪0 0.5 0.5‬‬
‫‪1 0.5 0.5‬‬
‫‪0 0.6 04‬‬
‫‪1 0.8 0.2‬‬
‫‪A‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪A‬‬
‫‪B‬‬
‫‪C‬‬
‫‪A: p(A) = 0.1 p(~A) = 0.9‬‬
‫‪B: p(B) = 0.4 p(~B) = 0.6‬‬
‫‪C: p(c)= 0.58‬‬
‫* ) )‪p(B | C) =( p( C | B) * p(B) ) / p(C)=( ( p(C | AB) * p(A) + p(C | ~AB) * p(~A‬‬
‫‪p(B) ) / p(C) =( (0.8 * 0.1 + 0.5 * 0.9) * 0.4 ) / 0.518=0.409‬‬
‫* ) )‪p(A | C) =( p( C | A) * p(A) ) / p(C)=( ( p(C | AB) * p(B) + p(C | A~B) * p(~B‬‬
‫‪p(A) ) / p(C)= ( (0.8 * 0.4 + 0.6 * 0.6) * 0.1 ) / 0.518=0.131‬‬
‫لذا در صورت صحیح بودن ‪ c‬میتوان چنین گفت که احتمال اینکه ‪ B‬عامل آن بوده باشد بیشتر است‪.‬‬
‫یادگیری یک ‪BN‬‬
‫چگونه میتوان یک ‪ BN‬را از روی داده های آموزشی یاد گرفت؟‬
‫‪ .1‬ممکن است ساختار شبکه از قبل معلوم باشد‪،‬‬
‫)‪P(S‬‬
‫‪S‬‬
‫و بخواهیم پارامترهای آن یعنی مقادیر احتمال‬
‫)‪P(B|S‬‬
‫‪B‬‬
‫شرطی متغیرها را یاد بگیریم‬
‫)‪P(D|C,B‬‬
‫‪ .2‬ممکن است ساختار شبکه از قبل معلوم باشد‪،‬‬
‫‪D‬‬
‫ولی فقط برخی از متغیرها قابل مشاهده باشند‪.‬‬
‫‪S‬‬
‫‪B‬‬
‫)‪P(C|S‬‬
‫‪C‬‬
‫)‪P(X|C,S‬‬
‫‪X‬‬
‫‪S‬‬
‫‪C‬‬
‫‪B‬‬
‫‪ .3‬ممکن است ساختار شبکه معلوم نبوده و‬
‫‪D‬‬
‫‪D‬‬
‫‪X‬‬
‫مجبور باشیم ساختار گراف و پارامترهای‬
‫)‪ˆ  arg max Score(G‬‬
‫‪G‬‬
‫آنر از داده های آموزشی استنتاج کنیم‬
‫‪G‬‬
‫‪C‬‬
‫‪X‬‬
‫یادگیری یک‪BN‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫در صورتی که ساختار شبکه معلوم بوده وتمامی متغیرها قابل مشاهده‬
‫باشند میتوان براحتی جدول احتمال شرطی را از روی داده های‬
‫آموزشی یاد گرفت) مشابه یادگیری بیزی ساده(‬
‫در صورتیکه ساختار شبکه از قبل معلوم بوده ولی فقط برخی از‬
‫مقادیر متغیرها قابل مشاهده باشند‪ ،‬یادگیری مشکلتر خواهد بود ‪.‬‬
‫اینکار شبیه یادگیری وزنهای الیه مخفی شبکه های عصبی است ‪.‬‬
‫در صورتیکه ساختار شبکه معلوم نباشد یادگیری مشکل بوده و از‬
‫روشهای جستجوئی نظیر ‪ K2‬برای جستجو در فضای ساختارهای‬
‫ممکن استفاده میشود‪.‬‬
BN ‫روشهای یادگیری‬
‫ بسته به اینکه ساختار شبکه از قبل‬BN ‫روشهای یادگیری‬
:‫معلوم باشد و همچنین قابلیت مشاهده داده بصورت زیر است‬
Structure
Observability
Method
Known
Full
Maximum Likelihood Estimation
Known
Partial
EM (or gradient ascent)
Unknown
Full
Search through model space
Unknown
Partial
EM + search through model space

‫روشهای یادگیری ساختار ‪BN‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪‬‬
‫روشها ی ‪ scoring-based‬که در آنها بهترین ‪BN‬‬
‫ساختاری است که بیشترین تطابق با داده را داشته باشد ‪.‬این‬
‫روشها بدنبال ماکزیمم کردن ‪ MDL‬بیزی و یا تابع آنتروپی‬
‫)‪Kullback-Leibler (KL‬هستند‪.‬‬
‫روشهای ‪constraint-based‬که در آن ساختار ‪ BN‬با‬
‫مشخص کردن رابطه استقالل شرطی بین گره ها بدست‬
‫میآید‪.‬‬
‫نشان داده اند که روش اول کارائی کمتری داشته و دسته‬
‫بندی کننده ضعیفی را بدست میدهد‪.‬‬
‫الگوریتم ‪ : EM‬یادگیری با داده های غیر‬
‫قابل مشاهده‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در برخی از کاربردها فقط برخی از ویژگیها قابل مشاهده‬
‫هستند‪ .‬راههای متفاوتی برای یادگیری در چنین مواقعی ارائه‬
‫شده است‪.‬‬
‫در شرایطی که شکل کلی توزیع احتمال متغیری معلوم باشد‪،‬‬
‫میتوان از الگوریتم )‪(Expectation-Maximization‬‬
‫‪EM‬برای یادگیری متغیری استفاده نمود که بطور کامل‬
‫مشاهده نشده است‪.‬‬
‫این الگوریتم برای آموزش ‪ BN‬بکار میرود ‪.‬عالوه بر آن در‬
‫الگوریتمهای دسته بندی بدون ناظر و یادگیری ‪ HMM‬نیز‬
‫کاربرد دارد‪.‬‬
‫تخمین میانگین ‪ k‬تابع گاوسی‬
‫مثال‬
‫‪‬‬
‫یک مجموعه آموزشی ‪ D‬را در نظر بگیرید که دارای نمونه هائی‬
‫باشد که مخلوطی از ‪ k‬توزیع نرمال مجزا باشد‪.‬‬
‫‪‬‬
‫برای تولید هر نمونه‪:‬‬
‫یکی از ‪ K‬توزیع احتمال گاوسی با احتمال یکنواختی انتخاب میشود‪.‬‬
‫داده بصورت تصادفی و با استفاده از توزیع فوق انتخاب میگردد‪.‬‬
‫‪.1‬‬
‫‪.2‬‬
‫الگوریتم ‪EM‬برای تخمین میانگین ‪ k‬تابع‬
‫گاوسی‬
‫‪ ‬ورودی‪:‬‬
‫نمونه های ‪ x‬که به صورت مخلوطی از ‪ k‬توزیع گاوسی درست‬
‫شده است‬
‫‪ ‬اطالعاتی که نداریم‪:‬‬
‫مقادیر ‪ k‬میانگین >‪<m1,... mk‬‬
‫اینکه کدام نمونه توسط کدام توزیع تولید شده است‬
‫‪ ‬پیدا کنید‪:‬‬
‫مقدار ‪ML‬تخمین هر یک از مقادیر میانگین >‪<m1,... mk‬‬
‫اطالعات ناقص‬
‫‪ ‬اگر نمایش هر نمونه را بصورت زیر نشان دهیم‪:‬‬
‫>‪Yi= <xi,zi1,zi2‬‬
‫که در آن‪ zij‬برابر با یک است اگر نمونه‪ xi‬توسط توزیع ‪J‬ام‬
‫درست شده باشد‪.‬‬
‫‪ xi‬نمونه مشاهده شده است‪.‬‬
‫اگر نمونه کامل را داشتیم چگونه میشد ‪ m1,... mk‬را محاسبه کرد‬
‫اگر ‪ m1,... mk‬را داشته باشیم چگونه میتوان مقادیر ‪ zij‬را حدس‬
‫زد‪.‬‬