مقدمه: ¶ یادگیری ماشین زمینه نسبتا جدیدی از هوش مصنوعی است که در حال حاضر دوران رشد و تکامل خود را میگذراند.
یادگیری ماشین یک زمینه تحقیقاتی بسیار فعال در علوم کامپیوتر است.
¶ یادگیری روش، الگو و...
بصورت خودکار توسط ماشین یا کامپیوتر.
¶علوم مختلفی در ارتباط با یادگیری ماشین در ارتباط هستند از جمله: هوش مصنوعی، روانشناسی، فلسفه، تئوری اطلاعات ، آمار و احتمالات، تئوری کنترل و ...
هدف یادگیری ماشین (Machine Learning) تبدیل داده (Data) به اطلاعات (Information) است.
بعد از یادگیری از یک مجموعه داده، ما ماشینی می خواهیم که به سوالاتی درباره داده ها جواب دهد.
مثلاً کدام یک از داده های دیگر بیشترین شباهت را به این داده دارند؟
آیا یک اتومبیل در تصویر وجود دارد؟
کاربر به کدام تبلیغ پاسخ خواهد داد؟
اغلب یک بخش هزینه وجود دارد، بنابراین این سوال می تواند این طور مطرح شود که: از میان محصولاتی که ما از آن ها بیشترین درآمد را داریم، در صورت نشان دادن یک تبلیغ بازرگانی کدام یک را مشتری با احتمال بیشتری خریداری می کند؟
و ...
در یادگیری ماشین (ML)، تبدیل داده به اطلاعات به کمک استخراج قوانینی از الگوهای داده، انجام می شود.
به عنوان یکی از شاخههای وسیع و پرکاربرد هوش مصنوعی، یادگیری ماشینی (Machine learning) به تنظیم و اکتشاف شیوهها و الگوریتمهایی میپردازد که بر اساس آنها رایانهها و سامانهها توانایی تعلٌم و یادگیری پیدا میکنند.آنالیز الگوریتم های یادگیری ماشین ها، شاخه ای از علوم نظری کامپیوتر است که با نام تئوری یادگیری کامپیوتری شناخته می شود.
یادگیری ماشینی به بررسی روش هایی می پردازد که به رایانه ها امکان استفاده از داده ها و یادگیری از آنها برای بهبود عملکردهای مختلف را می دهد.
هدف یادگیری ماشینی این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها بازدهی بالاتری در وظیفهٔ مورد نظر پیدا کند.
نمونه هایی از کاربردهای یادگیری ماشین می تواند الگوریتم های تشخیص چهره، جداسازی هرزنامه و بازشناسی گفتار می باشد.
رشد فوق العاده ای که اخیراً در حوزه هوش مصنوعی و کاربردهایش به وجود آمده به موازات توجه روزافزون به «یادگیری ماشین ها» به وقوع پیوسته است.
حوزه «یادگیری ماشین» به توسعه نظریه های محاسباتی فرایندهای یادگیری و ساخت ماشین های یادگیری مربوط است.
واضح است که قابلیت یادگیری برای هر رفتار هوشمندانه ای ضروری است.
اهمیت قایل شدن و هدف گذاری برای قدرت یادگیری ماشین در مرکز برنامه های توسعه هوش مصنوعی قرار دارد.
طیف پژوهشهایی که در یادگیری ماشینی میشود گستردهاست.
در سوی نظریی آن پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روشهایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند.
البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مولفههایی از هر دو رویکرد هستند.
برای اصطلاح یادگیری ماشین تعریف های متعددی ارایه شده.
از جمله این که یادگیری ماشین، توانایی آن در یادگیری از تجربیات گذشته و یا و سوابق و انجام بهتر وظایف است.
به عبارتی برای انجام بهتر کارها در آینده از گذشته تقلید می شود.بر اساس تعریفی دیگر ماشین ها چیزهایی یاد می گیرند و براساس آموخته ها رفتارشان را به نحوی تغییر می دهند که باعث می شود در آینده وظایفشان را بهتر انجام دهند.
اشیای اصلی که در حوزه این مطالعه قرار دارند مصنوعی هستند.برنامه ریزی رایانه ای برای بهینه سازی یک عملکرد با استفاده از داده ها و تجربیات گذشته نیز از تعاریف یادگیری ماشین است.
ایجاد امکان یادگیری برای ماشین ها، همواره از پژوهش های اصلی در زمینه ی هوش مصنوعی بوده است.
یادگیری بدون نظارت: قابلیت یادگیری الگو ها، از اطلاعات ورودی را فراهم میکند.
یادگیری نظارت شده هم، می تواند هردو امکان: طبقه بندی و عبرت عددی را ایجاد کند.
طبقه بندی این امکان را می دهد که کامپیوتر بتواند تشخیص دهد که چه چیز هایی را می توان در یک گروه خاص گنجاند.
عبرت عددی (Regression takes) نیز به این صورت عمل می کند که بعد از دادن چیز هایی به عنوان ورودی به کامپیوتر و مشخص کردن خروجی دقیق آنها، کامپیوتر می تواند روابط بین ورودی و خروجی را کشف کرده و الگوریتم ها و توابع پیوسته ای را برای آنها تعیین کند.
این روش برای به وجود آوردن الگوریتم های بسیار پیچیده، مفید خواهد بود.
هدف یادگیری این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها بازدهی بالاتری در وظیفهٔ مورد نظر پیدا کند.
گستردهٔ این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهرهٔ مورد نظر تا فراگیری شیوهٔ گامبرداری برای روباتهای دوپا با دریافت سیگنال پاداش و تنبیه باشد.
اجازه دهید تا در این مورد مثالی بزنیم: وقتی در حال رانندگی هستید و به عابران پیاده نگاه می کنید، می توانید تا حد زیادی تشخیص دهید که آنها قصد چه کاری را دارند.
مثلا می خواهند از خیابان رد شوند یا این که تاکسی بگیرند و یا این که فقط سر جای خود ایستاده اند.
خب، این کار برای من و شما نسبتا ساده است اما اساسا برای نوشتن الگوریتم آن برای کامپیوتر، از دست یک انسان کاری ساخته نیست.
با استفاده از روش عبرت عددی می توان با روش های خاص این مورد را با مثال های زیادی به کامپیوتر و برنامه ی مربوطه نشان داد و به تدریج الگوریتم مورد نیاز را تحویل گرفت.
اما چیزی که باید هم اکنون به آن اشاره کرد، عملیات تقویت یادگیری است.
این کار به این صورت انجام می پذیرد که تئوری تصمیم گیری کامپیوتر آنالیز شده و برداشت های سودمند آن تئوری، مورد تاکید قرار می گیرند.
در واقع کار های درست با تشویق (به صورت اولویت دادن) و کار های غلط با تنبیه (به صورت امتیاز منفی) پاسخ داده می شوند و به همین خاطر یادگیری کامپیوتر به طور مرتب بهبود می یابد.
تعریف یادگیری ماشین: یادگیری ماشین عبارت است از اینکه چگونه میتوان برنامه ای نوشت که از طریق تجربه یادگیری کرده و عملکرد خود را بهتر کند.
یادگیری ممکن است باعث تغییر در ساختار برنامه و یا داده ها شود.
تعریف فرهنگ لغات از یادگیری: .
یادگیری عبارت است ازبدست آوردن دانش و یا فهم آن از طریق مطالعه، آموزش و یا تجربه .
همچنین گفته شده است که یادگیری عبارت است از بهبود عملکرد از طریق تجربه یادگیری انسان و ماشین یادگیری انسان چگونه است؟
• انسان از طریق تعامل با محیط بیرونی یاد میگیرد.
• یک عامل باید وجود داشته باشد تا یادگیری را شروع کند.
یادگیری ماشین چگونه است؟
• از طریق نوشتن برنامه میتوان به ماشین گفت که چه باید بکند.
• از طریق نمایش مثالهای متعدد میتوان ماشین را وادار به یادگیری نمود.
• ماشین میتواند از طریق تجربه محیط واقعی یاد بگیرید.
• در حالتیکه مثالها مشخص نیستند و خبره ای وجود ندارد ماشین میتواند از طریق مشاهده یادبگیرد.
چرا یادگیری؟
چرا ماشین را برنامه نویسی نکنیم؟
¶ بعضی کارها را بدرستی نمیتوان توصیف نمود.
در صورتیکه ممکن است آنها را بتوان بصورت مثالهای ( ورودی/خروجی) معین نمود.
¶ ممکن است در خیل عظیمی از داده اطلاعات مهمی نهفته باشد که بشر قادر به تشخیص آن نباشد ( داده کاوی).
¶ ممکن است موقع طراحی یک سیستم تمامی ویژگیهای آن شناخته شده نباشد در حالیکه ماشین میتواند حین کار آنها را یاد بگیرد.
¶ ممکن است محیط در طول زمان تغییر کند.
ماشین میتواند با یادگیری این تغییرات خود را با آنها وفق دهد.
¶ در عمل نوشتن برنامه ای برای تشخیص یک صورت میتواند کار مشکلی باشد.
زیرا تعریف دقیقی برای آن وجود ندارد و حتی در صورت وجود داشتن نوشتن برنامه ای بر اساس آن کار سختی است.
¶ در نتیجه بجای نوشتن یک برنامه با دست، میتوان با تهیه مقدار زیادی نمونه صحیح و اعمال آن به یک الگوریتم یادگیری ماشین برنامه ای تولید کنیم که کار مورد نظر را انجام دهد.
¶ این برنامه بسیار با آنچه که قرار بود با دست نوشته شود متفاوت خواهد بود.
اگر این برنامه درست تهیه شده باشد میتواند برای نمونه هائی که تاکنون ندیده است نیز خروجی مورد نظر را تولید کند.
¶ در سالهای اخیر پیشرفتهای زیادی در الگوریتم ها و تئوری های مربوطه بوجود آمده و زمینه های تحقیقاتی جدید زیادی پدید آمده اند.
¶ داده های آزمایشی زیادی بصورت Online بوجود آمده اند.
¶ کامپیوتر ها قدرت محاسباتی زیادی بدست آورده اندجنبه های عملی با کاربردهای صنعتی بوجود آمده اند.
( در زمینه پردازش گفتار برنامه های مبتنی بر یادگیری از همه روشهای دیگر پیشی گرفته اند) انواع یادگیری یادگیری ماشین در مسایل مختلفی کاربرد دارد: Classification ماشین یاد میگیرد که ورودیها را به دسته های از پیش تعیین شده ای نسبت دهد.
Clustering سیستم یادگیر کشف میکند که کدام ورودیها با هم در یک دسته بندی قرار میگیرند.
Numeric prediction ماشین یاد میگیرد که به جای تعیین دسته بندی یک ورودی مقدار عددی آنرا پیش بینی نماید.
دسته بندی یادگیری یادگیری با ناظر: یک مجموعه از مثالهای یادگیری وجود دارد بازای هر ورودی، مقدار خروجی و یا تابع مربوطه نیز مشخص است.
هدف سیستم یادگیر بدست آوردن فرضیه ای است که تابع و یا رابطه بین ورودی و یا خروجی را حدس بزند.
یادگیری بدون ناظر: یک مجموعه از مثالهای یادگیری وجود دارد که در آن فقط مقدار ورودی ها مشخص است و اطلاعاتی در مورد خروجی صحیح در دست نیست.
یادگیری بدون ناظر برای دسته بندی ورودیها و یا پیش بینی مقدار بعدی بر اساس موقعیت فعلی بکار میرود.
یادگیری تقویتی: مثالها بصورت ورودی/خروجی نیستند بلکه بصورت وضعیت/پاداش هستند که یادگیر در وضعیت های مختلف عملیات مختلفی را انجام داده و پاداشهای متفاوتی دریافت و بر اساس مجموع پاداش های یادگیری نیمه نظارتی: مثالها طوری هستند که برای تعداد کمی از آنها مقدار خروجی موجود است اما برای مثالهای زیادی مقدار خروجی مشخص نیست.
برخی از کاربردهای یادگیری ماشین ¶ کنترل روباتها ¶ داده کاوی ¶ تشخیص گفتار ¶ شناسائی متن ¶ پردازش داده های اینترنتی ¶ بازهای کامپیوتری واما توضیحاتی از درس یادگیری ماشین: کتاب درس: Machine learning by Tom Mitchell, McGraw Hill, 1997.
Pattern Recognition and Machine Learning, Christopher M.
Bishop, 2006.
Introduction to Machine Learning, Second Edition.
Ethem Alpaydın,The MIT Press, 2010.
سایر مراجع Reinforcement learning: An introduction, By Richard S.
Sutton & Andrew G Barto.
ارزیابی معمولا به این شکل انجام میگیرد: پروژه 30% تکالیف 30% پایان ترم 30% ارائه 10% انواع تکالیف تکالیفی از کتاب پیاده سازی الگوریتم های یادگیری آزمایش یک الگوریتم موجود با استفاده از نرم افزارهای آماده نظیر MATLAB و WEKA برای هر تکلیف باید یک گزارش کتبی شامل: پاسخ سوالات، خلاصه کارهای انجام شده، نحوه پیاده سازی الگوریتم و نتایج بدست آمده ارائه شود.
برنامه نوشته شده را میتوانید برروی CD تحویل دهید.
پروژه: هر دانشجو در مورد یک زمینه مرتبط با یادگیری ماشین آزمایشی را انجام داده و بصورت عملی پیاده سازی می نماید.
نتیجه بصورت یک گزارش کتبی تحویل داده شده و در زمان تعیین شده بصورت شفاهی آن را ارائه می نماید.
ارائه: تهیه یک متن آموزشی جهت معرفی یکی از زمینه های مرتبط با درس بصورت فایل pdf یا سایت اینترنتی سیلابس درس: انتخاب تجربه یادگیری: اولین مرحله طراحی این است که نوع تجربه آموزشی را مشخص نمائیم.
نوع تجربه آزمایشی میتواند تاثیر زیادی درموفقیت یا شکست یادگیرداشته باشد.
یک ویژگی مهم این است که فیدبک بازگشتی توسط سیستم اندازه گیری معیار فیدبک مستقیم است یا غیر مستقیم.
اهداف درس: هدف از این درس ارائه یک دید کلی نسبت به یادگیر ماشین است که مباحث زیر را در بر میگیرد: جنبه های عملی شامل: الگوریتم های یادگیری مختلف نظیر درخت های تصمیم گیری، شبکه های عصبی و شبکه های باور بیزی، مدلهای عمومی شامل: الگوریتم ژنتیک و یادگیری تقویتی مفاهیم تئوریک شامل: زمینه های مرتبط درعلم آمار، یادگیری بیزین و ساختاریادگیریPAC .
در این مباحث ارتباط تعداد مثالها با کارائی یادگیری بررسی میشوند، میزان خطای قابل انتظار محاسبه میشود، و بررسی میشود که کدام الگوریتم یادگیری برای چه مسائلی کارائی بیشتری دارد.
مقدمهIntroductionیادگیری مفهومConcept learningدرخت تصمیم گیریDecision Tree Learningشبکه های عصبی مصنوعیArtificial Neural Networksارزیابی فرضیهEvaluating Hypothesisیادگیری بیزین و شبکه های باور بیزیBayesian learningتئوری یادگیری محاسباتیComputational Learning Theoryیادگیری نمونهInstance based learningالگوریتم ژنتیکGenetic Algorithmsبادگیری تقویتیReinforcement Learningماشین بردار پشتیبانSupport Vector Machineمدل مخفی مارکفHidden Markov Modelاتوماتای یادگیر سلولیCellular Learning Automata