520 likes | 778 Views
یادگیری ماشین. نام درس : دکتر فریبرز محمودی گروه مهندسی کامپیوتر دانشگاه آزاد اسلامی قزوین & Mitchell Ch. 1 & Russell Ch. 18. مقدمه. تعریف فرهنگ لغات از یادگیری: یادگیری عبارت است از بدست آوردن دانش و یا فهم آن از طریق مطالعه، آموزش و یا تجربه .
E N D
یادگیریماشین نام درس: دکتر فریبرز محمودی گروه مهندسی کامپیوتر دانشگاه آزاد اسلامی قزوین & Mitchell Ch. 1 & Russell Ch. 18
مقدمه • تعریف فرهنگ لغات از یادگیری: • یادگیری عبارت است از بدست آوردن دانش و یا فهم آن از طریق مطالعه، آموزش و یا تجربه . • همچنین گفته شده است که یادگیری عبارت است از بهبود عملکرد از طریق تجربه. • تعریف یادگیری ماشین: • یادگیری ماشین عبارت است از اینکه چگونه میتوان برنامهای نوشت که از طریق تجربه یادگیری کرده و عملکرد خود را بهتر کند. یادگیری ممکن است باعث تغییر در ساختار برنامه و یا دادهها شود.
تعریف یادگیری ماشین • From Mitchell (1997: 2): A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. • From Witten and Frank (2000: 6): Things learn when they change their behavior in a way that makes them perform better in the future. In practice this means: We have sets of examples from which we want to extract regularities.
مقدمه • یادگیری ماشین زمینهتحقیقاتینسبتا جدیدی از هوش مصنوعی است که در حال حاضر دوران رشد و تکامل خود را میگذراند و زمینهای بسیار فعال در علوم کامپیوتر میباشد . • علوم مختلفی در ارتباط با یادگیری ماشین در ارتباط هستند از جمله: • هوش مصنوعی، روانشناسی، فلسفه، تئوری اطلاعات، آمار و احتمالات، تئوری کنترل و ...
اهداف درس هدف از این درس ارائه یک دید کلی نسبت به یادگیری ماشین است که مباحث زیر را در بر میگیرد: • جنبههای عملی شامل: الگوریتمهای یادگیری مختلف نظیر درختهای تصمیم، شبکههای عصبی و شبکههای باور بیزی. • مدلهای عمومی شامل: الگوریتم ژنتیک و یادگیری تقویتی. • مفاهیم تئوریک شامل: زمینههای مرتبط درعلم آمار، یادگیری بیزین بررسی میشوند. در این مباحث ارتباط تعداد مثالها با کارائی یادگیری بررسی میشوند، میزان خطای قابل انتظار محاسبه میشود، و بررسی میشود که کدام الگوریتم یادگیری برای چه مسائلی کارائی بیشتری دارد.
مراجع • کتاب درس: • Machine learning by Tom Mitchell, McGraw Hill, 1997. • سایر مراجع • Artificial Intelligence: A Modern Approach, By Stuart J. Russell and Peter Norvig, 2nd Edition. • Reinforcement learning: An introduction, By Richard S. Sutton & Andrew G Barto. • Introduction to machine learning by Nils J. Nilson.
سایت درس • http://fzmahmoudi.googlepages.com • تمرینات و سایر اطلاعات مربوط به درس ازطریق آدرس فوق در اختیار دانشجویان قرار خواهند گرفت. • Qiau.ml@gmail.com • تکالیف درسی باید به پست الکترونیک فوق ارسال شود.
سیلابس درس • مقدمه • مفهومیادگیری • یادگیری با درخت تصمیم • شبکههای عصبی مصنوعی • ارزیابی فرضیه • یادگیری بیزین وشبکههای باور بیزی • تئوری یادگیری محاسباتی • یادگیری مبتنی بر نمونه • الگوریتم ژنتیک • یادگیری تقویتی • ماشین بردار پشتیبان • Introduction • Learning Concept • Decision Tree Learning • Artificial Neural Networks • Evaluating Hypothesis • Bayesian Learning & Networks • ComputationalLearningTheory • Learning based Instance • Algorithms Genetic • ReinforcementLearning • SupportVector Machine (SVM)
چرا یادگیری؟ • استفاده از یادگیری در محیطهای ناشناخته ضروری است. • یعنی وقتی طراح نسبت به محیط کمبود دانش دارد. • ممکن است موقع طراحی یک سیستم تمامی ویژگیهای آن شناخته شده نباشد در حالیکه ماشین میتواند حین کار آنها را یاد بگیرد. • ممکن است در خیل عظیمی از داده اطلاعات مهمی نهفته باشد که بشر قادر به تشخیص آن نباشد ( داده کاوی) • یادگیریبهعنوان یک روش ساخت سیستم قابل استفاده است. • بعضی کارها را بدرستی نمیتوان توصیف نمود. در صورتیکه ممکن است آنها را بتوان به صورت مثالهای ( ورودی/خروجی) معین نمود. • یعنی عامل را با واقعیت مواجه میکند به جای آنکه سعی در حل مستقیم مساله نماید. • یادگیری مکانیزم تصمیمگیری عامل را به منظور بهبود عملکرد آن اصلاح مینماید. • ممکن است محیط در طول زمان تغییر کند. ماشین میتواند با یادگیری این تغییرات خود را با آنها وفق دهد.
چرا یادگیری؟ • در سالهای اخیر پیشرفتهای زیادی در الگوریتمها و تئوریهای مربوطه بوجود آمده و زمینههای تحقیقاتی جدید زیادی پدید آمدهاند. • دادههای آزمایشی زیادی بصورت Online بوجود آمدهاند. • کامپیوترها قدرت محاسباتی زیادی بدست آوردهاند • جنبههای عملی با کاربردهای صنعتی بوجود آمدهاند. (در زمینه پردازش گفتار برنامههای مبتنی بر یادگیری از همه روشهای دیگر پیشی گرفتهاند)
برخی از کاربردهای یادگیری ماشین • کنترل روباتها • داده کاوی • تشخیص گفتار • شناسائی متن • پردازش دادههای اینترنتی • Bioinformatics • بازیهای کامپیوتری
وظیفه یادگیری ماشین • دستهبندی یا Classification مثل تشخیص گفتار. • حل مسئله، طراحی و عمل مثل بازیها، راندن اتومبیل در بزرگراه.
مبنای ارزیابی الگوریتمهای یادگیری • دقت دستهبندی. • صحت راه حل و کیفیت آن. • سرعت عملکرد.
یادگیری انسان و ماشین • یادگیری انسان چگونه است؟ • انسان از طریق تعامل با محیط بیرونی یاد میگیرد. • یادگیری ماشین چگونه است؟ • از طریق نوشتن برنامه میتوان به ماشین گفت که چه باید بکند. • از طریق نمایش مثالهای متعدد میتوان ماشین را وادار به یادگیری نمود. • ماشین میتواند از طریق تجربه محیط واقعی یاد بگیرید.
تکنیکهای مختلف یادگیری • یادگیری استقرایی (Inductive) که یادگیری بر مبنای مثالهای متعدد انجام میشود. مثل درختهای تصمیم • یادگیری Connectionist که یادگیری بر مبنای مدل مغز بشر صورت میپذیرد. مثل شبکههای عصبی مصنوعی • یادگیری Bayesian که فرضیههای مختلفی در مورد داده ارائه میشود. • یادگیری Reinforcement که از سنسورها و تجربه در محیط استفاده میشود. • یادگیری Evolutionary مثل الگوریتم ژنتیک
ساختار عامل یادگیر • عنصر اجرایی (Performance Element): یک عامل غیریادگیر است که با توجه به ادراکات و دانش موجود سعی در حل مساله دارد. • نقاد(Critic): عنصری است که با توجه به استاندارد بیرونی بازخوردی از میزان موفقیت عامل باز میگرداند. • عنصر یادگیرنده (Learning Element): با توجه به بازخوردی که از نقاد اخذ میکند تغییرات لازم را در دانش عنصر اجرایی ایجاد مینماید تا عملکرد آنرا بهبود بخشد. • ایجادگر مساله (Problem Generator): این عنصر عملی را که منجر به یک تجربه جدید میشود به عنصر اجرایی پیشنهاد مینماید.
عنصر یادگیرنده (Learning element) • طراحی عنصر یادگیرنده تحت تاثیر عوامل زیر است: • کدامیک از اجزاء عنصر اجرایی قابلیت آموزش دارند. • چه بازخوردی برای آموزش این اجزا موجود است. • چه شیوه نمایش دانشی برای این اجزا بکار گرفته شده است. • انواع بازخورد: • یادگیری با ناظر(Supervised learning): داشتن جوابهای درست برای چند مثال. • یادگیری بدون ناظر(Unsupervised learning): عدم دسترسی به جوابهای درست.
دستهبندی یادگیری • یادگیری با ناظر: مجموعهای از مثالهای یادگیری موجود میباشد که در آن به ازای هر ورودی، مقدار خروجی و یا تابع مربوطه مشخص است. هدف سیستم یادگیر بدست آوردن فرضیهای است که تابع و یا رابطه بین ورودی و خروجی را حدس بزند. • یادگیری بدون ناظر: مجموعهای از مثالهای یادگیری موجود میباشد که در آن فقط مقدار ورودیها مشخص است و اطلاعاتی در مورد خروجی صحیح دردست نیست. یادگیری بدون ناظر برای دستهبندی ورودیها و یا پیشبینی مقدار بعدی بر اساس موقعیت فعلی عمل میکند.
مثالی از یادگیری با ناظر • یک پایگاه داده شامل قیمت 50 خانه و مساحت خانهها وجود دارد چگونه میتوان نرخ خانهها را بر اساس تابعی از اندازه آنها یاد گرفت؟
مثالی از یادگیری با ناظر • مساحت خانه Input feature: x(i) = • قیمت خانه Output feature: y(i) = < x(i), y(i) >مثال یادگیری {x(i), y(i) , i=1:m} مجموعه یادگیری عمل یادگیری: با داشتن یک مجموعه یادگیری میخواهیم تابعی بصورت h: xy یاد بگیریم که h(x) بتواند مقدار y را بخوبی حدس بزند. این تابع فرضیه و یا hypothesis نامیده میشود.
رگرسیون و دستهبندی • رگرسیون (Regression): وقتی که تابع هدف بصورت پیوسته باشد مسئله یادگیری یک مسئله رگرسیون (برازاندن منحنىCurve fitting) خواهد بود. مثل یادگیری رابطه قیمت و مساحت خانهها. • دستهبندی(Classification) : وقتی کهyفقط بتواند تعداد محدودی مقدار گسسته بگیرد مسئله یادگیری یک مسئله دستهبندی خواهد بود. مثل: آیا مکان موردنظر یک آپارتمان است یا یک خانه؟
یادگیری استقرایی Inductive learning • یک شیوه یادگیری با ناظر است. • سادهترین شکل یادگیری: یادگیری یک تابع از روی چند مثال fتابع هدف موردنظر است، یک مثال از این تابع زوج مرتبی به شکل (x, f(x))میباشد. مساله ما یافتن تابع فرضیهh است به نحوی که: • که تا حد ممکن به تابع اصلی منطبق باشد: h ≈ f • ورودی ما یک مجموعه آموزشی (training set)حاوی چندین مثال میباشد.
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (Curve fitting)
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (Curve fitting)
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (Curve fitting)
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (Curve fitting)
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (curve fitting)
روش یادگیری استقرایی • ایجاد و یا تنظیم تابع hبه نحوی که روی مجموعه آموزشی با f تطابق داشته باشد. • تابع hیک تابع سازگار(consistent)خواهد بود اگر با f روی تمام مثالها تطابق داشته باشد. • مشابه روش برازاندن منحنى (curve fitting) • اصل Ockham: سادهترین فرضیه سازگار مورد ترجیح است.
یادگیری با درخت تصمیم Decision trees مساله: تصمیمگیری در مورد صبر کردن یا نکردن برای خالی شدن یک میز در یک رستوران با توجه به شرایط روی صفات زیر: • Alternate: آیا رستوران جایگزینی در نزدیکی این رستوران وجود دارد؟ • Bar: آیا محلی برای صرف نوشیدنی در زمان انتظار در رستوران وجود دارد؟ • Fri/Sat: آیا امروز یک روز آخر هفته است؟ • Hungry: میزان گرسنگی ما چقدر است؟ • Patrons: تعداد مشتریان موجود در رستوران چندتاست؟ (None, Some, Full) • Price: محدوده قیمت رستوران چیست؟ ($, $$, $$$) • Raining: آیا باران در خارج رستوران میبارد؟ • Reservation: آیا از قبل رزرو انجام دادهایم یا خیر؟ • Type: رستوران از چه نوعی است؟ (French, Italian, Thai, Burger) • WaitEstimate: زمان تخمینی انتظار چقدر است؟ (0-10, 10-30, 30-60, >60)
نمایشهای مبتنی بر صفتAttribute-based representations • مثالها بوسیله مقادیر صفات (بولی، گسسته، پیوسته) توصیف میشوند. • مثالها با مثبت(T)و منفی(F) طبقهبندی شدهاند.
درخت تصمیم Decision trees • یک شیوه ممکن برای نمایش فرضیه میباشد. • در موارد true عمل انتظار انجام میپذیرد.
قابلیت توصیفExpressiveness • درختهای تصمیم قابلیت توصیف هر تابعی از صفات ورودی را دارا میباشند. • به عبارت دیگر هر تابع بولی بیان شده با یک جدول حقیقت توسط درخت تصمیم قابل توصیف است. در این حال هر سطر جدول یک مسیر از ریشه تا برگ است. • بنابراین برای هر مجموعه آموزشی یک درخت تصمیم سازگار وجود دارد، (مگر اینکه تابع f غیر قطعی باشد) اما این احتمال وجود دارد که مثالهای جدید در درخت قابل تعمیم نباشند. • ترجیح با درختهای تصمیم فشرده است.
فضاهای فرضیه Hypothesis spaces سوال: چند درخت تصمیم (فرضیه) متمایز برای n صفت بولی وجود دارد؟ = تعداد توابع بولی متمایز که میتوان با n صفت بولی ساخت. = تعداد جداول حقیقت متمایز با 2nسطر = 22n. • بطور مثال برای 6 صفت بولی 18،446،744،073،709،551،616 درخت وجود دارد.
فضاهای فرضیه Hypothesis spaces سوال: چند درخت تصمیم (فرضیه) متمایز برای n صفت بولی وجود دارد؟ = تعداد توابع بولی متمایز که میتوان با n صفت بولی ساخت. = تعداد جداول حقیقت متمایز با 2nسطر = 22n. • بطور مثال برای 6 صفت بولی 18،446،744،073،709،551،616 درخت وجود دارد. سوال: چند فرضیه عطفی خالص وجود دارد؟ • هر فرضیه عطفی ( نظیرHungry Rain ) یک مسیر از ریشه تا برگ در درخت تصمیم است. • هر صفت ممکن است در یک فرضیه عطفی نقش مثبت، منفی یا بدون تاثیر داشته باشد. • در نتیجه برای n صفت، 3nفرضیه عطفی متمایز وجود دارد. • افزایش حجم فضای فرضیه باعث میشود: • شانس توصیف تابع هدف افزایش یابد. • از طرف دیگر باعث افزایش تعداد فرضیههای سازگار با مجموعه آموزشی میشودو در نتیجه احتمال پیش بینی غاط نیز بیشتر میشود. پس نیاز به یک الگوریتم هوشمند داریم تا در این فضا یک درخت سازگار بیابد.
الگوریتم یادگیری درخت تصمیم • هدف: یافتن کوچکترین درخت سازگار با مثالهای آموزشی است. • ایده: انتخاب (بازگشتی) با معنیترین صفت برای ریشه (زیر) درخت.
انتخاب صفت • ایده: یک صفت خوب در حالت ایدهآل مثالها را به دو زیرمجموعه تمام مثبت و تمام منفی تفکیک میکند. • بنابراین Patrons?انتخاب بهتری است.
استفاده از تئوری اطلاعات • در پیادهسازی Choose-Attribute در الگوریتمDTL از محتوای اطلاعاتی (انتروپی) استفاده میشود. • برای یک مجموعه آموزشی حاوی p مثال مثبت و n مثال منفی:
استفاده از تئوری اطلاعات • در حالتیکه دو کلاس مثبت و منفی داریم: • اگر I=0 باشد یعنی همه مثالها در یک کلاس هستند. • اگر I=1 باشد یعنی نصف مثالها در یک کلاس و نصف دیگر در کلاس دوم هستند.
بهره اطلاعات Information gain • یک صفت منتخب نظیرA مجموعه آموزشیE را به زیرمجموعههای E1, … , Ev بر اساس مقادیر Aتقسیم مینماید. با فرض آنکه A دارای v مقدار متمایز است. میزان اطلاعات صفت A عبارت است از: • بهره اطلاعات (IG) که حاصل تفریق انتروپی و میزان اطلاعات صفت A است معیار مناسبی برای انتخاب صفت است. • صفتی انتخاب میشود که بیشترینمقدار بهره اطلاعات (IG) را داشته باشد.
بهره اطلاعات Information gain برای مجموعه آموزشی ذکر شده داریم: p = n = 6, I(6/12, 6/12) = 1 bit برای این مجموعه صفاتPatrons وTypeرا در نظر بگیرید ( و همچنین سایر صفات ): در این مجموعه صفتPatrons بیشترینIG را نسبت به سایر صفات داراست پس به عنوان ریشه درخت توسط الگوریتمDTL انتخاب میشود
مثال • درخت تصمیم آموزش داده شده با 12 مثال: • این درخت سادهتر از درخت فرضیه واقعی است. اساسا مجموعههای آموزشی کوچک فرضیههای پیچیده ایجاد نمیکند.
اندازهگیری کارایی Performance measurement • چگونه میتوان مطمئن شد که h ≈ f؟ • استفاده از قضایایمحاسباتی/ آماری تئوری اطلاعات. • آزمایش hروی یک مجموعه آزمایشی جدید. (امتحان الگوریتم روی اندازههای متفاوت از مجموعه آموزشی و تست روی باقیمانده دادهها به عنوان مجموعه آزمایشی) منحنی آموزش = درصد درستی پاسخ روی مجموعه آزمایشی نسبت بهاندازه مجموعه آموزشی
تطبیق بیش از حد(Over fitting) • گاهی اوقات در مجموعه آموزشی مثالهاینادریوجود داردکهممکناستباتوزیعکلیدادههامطابقتنداشتهباشند. تعدادزیادگرههاییکدرخت تصمیمباعثمیشودتا درخت درجهآزادیزیادیبرایانطباقبااینمثالهاداشتهباشد.
مقابله با تطبیق بیش از حد • اجتناب از رشد درخت در مرحله ایجاد. • هرس کردن (Post-Pruning) درخت پس از ایجاد. • روشهای تعیین اندازه درخت: • استفاده از دو مجموعه جداگانه آموزش و تست جهت ارزیابی. • بکارگیری تستهای آماری (نظیر روشQuinlan 86 ) برای تخمین بسط دادن یا هرس کردن یک گره. • استفاده از توابع هیوریستیک برای تشخیص اندازه مناسب درخت. (نظیر روش Quinlan & Rivest 89 و روش Mehta et al.95)
هرس خطای کاهشیافتهReduced Error Pruning • یک روش مقابله با .Over fitting • ابداع شده توسط Quinlan.1987 • حذف زیردرخت و جایگزینی آن با ریشه زیردرخت. • تخصیص کلاس اکثریت به گره جایگزین شده. • حذف زیردرخت، مشروط به اینکه خطای گره جایگزین شده بیشتر از حالت اولیه نباشد.