نوشته‌ها

آموزش های رایگان یادگیری ماشین با بهترین کیفیت آموزشی

در این مطلب قرار هست شما را با لینک های بسیار مفید جهت ارتقای سطح «یادگیری ماشین» که در دروس هوش مصنوعی رشته کامپیوتر اعلب تدریس میشود آشنا کنیم.

 

لینک اول : آموزش جناب اندرونگ هست که زحمت آپلودش توسط بچه های خوب مکتبخونه کشیده شده و خداقوت داره خدمتشان

https://maktabkhooneh.org/course/andrew647

 

لینک دوم : آموزش سرکار خانم سلیمانی هست که در حال حاضر دوازده جلسه از آن آماده شده است و باز هم جای تشکر و قدردانی از همه عزیزان دست اندرکار و دکتر سلیمانی دارد.

https://maktabkhooneh.org/course/soleymani23

 

 

باتشکر از جناب مهندس علیزاده در خصوص ارسال این لینک های جالب و مفید

آشنایی با یادگیری ماشین

یادگیری ماشین چیست ؟

برای شروع می خواهیم بدانیم یادگیری ماشین چیست و نگاهی به تاریخچه اش بیندازیم و به استفاده ی مفید آن را در صنعت پی ببریم. سپس چند زبان برنامه نویسی را که در یادگیری ماشین کاربردی هستند را معرفی می کنیم.

تاریخچه یادگیری ماشین

۱-۱ Alan Turing

در سال ۱۹۵۰،آلن تورینگ در مقاله ایی سوالی را مطرح کرد ” که آیا ماشین فکر میکند؟”(لینک اصل مقاله)  در این مقاله به توصیف بازی(Imitation Game) پرداخته که شامل ۳ شرکت کننده می باشد.یک انسان که کار قضاوت را به عهده دارد و یک انسان که شرکت کننده است و یک کامپیوتر که تلاش میکند خود را جای انسان جا بزند. قاضی با تایپ سوالاتی در ترمینال برنامه با شرکت کننده ها صحبت میکند و در جواب ان ها،باید تشخیص دهد کدام کامپیوتر است.حال اگر قاضی نتواند همواره  تفاوت مابین جواب کامپیوتر و انسان شرکت کننده را تشخیص دهد،کامپیوتر برنده میشود.

۲-۱ Arthur Samuel

در سال ۱۹۵۹ آرتور سموئل،یادگیری ماشین را به این صورت تعریف کرد:<<زمینه ی تحصیلی ایی است که درآن کامپیوتر قادر است بدون آنکه برنامه ریزی شود یاد بگیرد>>.او بر بازی ها به عنوان روشی که کامپیوتر بتواند چیزهای مختلفی را یاد بگیرد تمرکز می کرد.بازی مورد انتخاب سموئل Checkers بود به این علت که در عین سادگی نیاز با استراتژی ایی که برنامه بتواند از آن یاد بگیرئ داشت.سموئل برای کارهایش در هوش مصنوعی به طور گسترده ایی شناخته شده است و همچنین جزء اولین برنامه نویسانی بود که ازHash tables استفاده کرد.

تعریف نهایی

یادگیری ماشین شاخه ایی از هوش مصنوعی است که با استفاده از محاسبات، ما سیستمی را طراحی میکنیم تا بتواند از اطلاعات به شیوه ایی که از قبل آموخته، یادگیری را انجام دهد.

گونه های الگوریتم یادگیری ماشین

الگوریتم های متفاوت زیادی وجود دارد که میتوان در یادگیری ماشین مورد استفاده قرار داد.با توجه به خروجی مورد نیاز ما تصمیم میگیریم از کدام الگوریتم استفاده کنیم که به دو گونه تقسیم میشوند: یادگیری با نظارت و یادگیری بدون نظارت

۱-۲ یادگیری با نظارت

یادگیری نظارت شده به سادگی رسمی سازی تفکرات و ایده های یادگرفته شده از نمونه هاست.در این دسته یادگیرنده معمولا یک برنامه کامپیوتری است و مجموعه آموزش و مجموعه محک دو دسته از مجموعه هایی هستند که قادر به ارائه آن ها می باشد. طرز تفکر یادگیرنده برای یادگیری از مجموعه نمونه های برچسب دار در مجموعه آزمایش است به گونه ایی که می تواند در مجموعه محک با دقت بالا نمونه های فاقد برچسب را شناسایی کند و همچنین برای هر نمونه در مجموعه آزمایش یک شی به عنوان ورودی و یک شی به عنوان خروجی در دسترس است . برای مثال فرض کنید داده های زیر از Twitter  است به عنوان ورودی :

الگوریتم با نظارت به طبقه بندی خروجی ها برای هر Tweet می پردازد به گونه ی زیر:

بدیهی است برای مرتب سازی هر مفهوم داده، زمانی که به درستی اداره می شود بایستی به صورت دستی بر داده های ورودی زیادی عملیاتی انجام شود.

۲-۲ یادگیری بدون نظارت

در آن طرف منظر الگوریتم یادگیری بدون نظارت وجود دارد که در آن به شما این اجازه را می دهد الگوی مخفی در کوله باری از داده و اطلاعات را کشف کنید.با این یادگیری ، هیچ جواب درست یا غلطی وجود نداشته و در الگوریتم یادگیری ماشین این فقط یک مورد اجرا کننده می باشد.

در یادگیری بدون نظارت بیشتر ممکن است به موارد داده کاوی نسبت به یادگیری حقیقی بپردازیم.اگر شما در جست و جوی داده های دسته بندی شده هستید، این برای شما شانس خوبیست که بیشتر وقت خودتان را صرف یادگیری بدون نظارت در سنجیدن نمونه چیزهایی همانند شبکه های عصبی مصنوعی خرج کنید.

موارد مورد استفاده از یادگیری ماشین

خب در اینجا میخوا هیم پاسخ این سوال  را بدهیم : “با یادگیری ماشین چه کار هایی می شود انجام داد؟”

۱-۳ سخت افزار

یادگیری ماشین به طور گسترده در سخت افزار مورد استفاده قرار می گیرد به گونه ایی که توسط کاربر یا استفاده کنند تجربه اش را بهبود می بخشد. که این در بعضی از بسته ها، سخت افزار با استفاده از رفتار اولین استفاده کاربر یاد میگیرد. پس از استفاده از سخت افزار در یک مدت او شروع میکند به پیشبینی کاربر که چه میخواهد انجام دهد.

۲-۳ تشخیص spam

تشخیص spam  که همواره در حال پیشرفت است ، یکی از موارد استفاده قدیمی در یادگیری ماشین است.در سرویس ایمیل زمانی که یک پیام را مشاهده میکنیم، سرویس پس از تشخیص بی ارزش بودن پیام، از شما سوال می کند که آیا بی ارزشی پیام را قبول داری یا نه.در نهایت تصمیم بر دوش ما قرا می گیرد که با قرار دادن پیام در spam به سرویس بیاموزیم  و بر تجربه اش بیفزاییم.

۳-۳ تشخیص صدا

سرویس Apple’s Siri یکی دیگر از نمونه های یادگیری ماشین در سخت افزار است. شما از Siri  سوالی کرده و آن در پاسخ ، بر روی  آن کاری که می خواهید انجام دهید کار می کند. نتیجه ممکن است فرستادن یک پیام یا تنظیم قرار ملاقات یا حتی تماس تلفنی باشد. اگر  Siri  نتواند بر روی آن چه شما درخواسن آن را داده اید کار کند ، عبارت گفته شده از شما را در Google  جست و جو می کند.

۴-۳ روباتیک

با استفاده از یادگیری ماشین، روبات ها می توانند مهارت های فراوانی را بدست بیاورن  که این مهارت ها یا از طریق خود ربات و یا با دخالت انسان ها می آموزند و همچنین  تطبیق با محیطی که در آن کار انجام می دهند را  می بایست فرا گیرند. با افزایش میزان سنسور های به کار رفته در ربات ها ، دیگر الگوریتم ها می توانند در خارج ربات برای تحلیل و بررسی بیشتر به کار گرفته شوند.

۵-۳ پزشکی و  مراقبت های سلامتی

امروزه رقابت در استفاده کردن یادگیری ماشین برای تجزیه و تحلیل در زمینه های پزشکی می باشد.تعداد زیادی  startup مختلف در جست جوی مزایا ی یادگیری ماشین با داده های حجیم  برای ارائه حرفه ای ترین مراقبت های پزشکی بر پا شده که هدف مشترکشان گرفتن عاقلانه ترین تصمیمات است.

کمپانی IBM برای داشتن سوپرکامپیوتر Watson که یک بار در مسابقه تلویزیونی Jeopardy  در مقابل دو شرکت کننده انسان به پیروزی رسید مشهور است. با پیاده سازی Watson یه عنوان یک سرویس بر روی شبکه ابری، پزشکان قادر خواهند بود به هزاران تحقیقات و شواهد پزشکی دسترسی داشته باشند.

امروزه تعداد بیشماری از مصرف کنندگان حتی با گوشی های هوشمند خود می توانند طیف وسیعی از اطلاعات سلامت خود را به طور منظم اندازه گیری کنند. با سیستم های یادگیری ماشین می توان الگویی از وضعیت سلامت خود بدست آورد و از توصیه هایی که سیستم برای بهبود فرد به روز رسانی می کندمی توان استفاده کرد.

۶-۳ تبلیغات

تا زمانی تولیدات به صورت صنعتی بوده و سرویس های ارئه شده از طرف کمپانی ها، تلاش می کرد تا بیشترین تاثیر را بر روی خریداران برای خرید محصول داشته باشد. در سال ۱۹۹۵، اینترنت سرویس هایی به فروشندگان عرضه داشت تا شانس تبلیغات مستقیم خود را بر روی صفحه های نمایشگر بدون کمک تلویزیون یا کمپانی های بزرگ ارائه کند. باید به خاطر داشت آیا فکر استفاده از Cookies بر روی کامپیوتر خودمون باعث پیگیری می شود؟ مسابقه بر روی غیرفعال کردن Cookies از مروگرها است و بدست گرفتن کنترل آن ها بود.آنالیز Log file یک تاکتیک دیگر است که برای دیدن چیزهای مورد علاقمون مورد استفاده قرا می گیرد. آن ها قادر خواهند بود تا نتایج را دسته بندی کرده و گروه کاربرانی که علاقه بیشتری نسبت به یک محصول خاصی دارند را طبقه بندی کنند. که در این مسیر اطلاع موقعیت مکانی موبایل و تبلیغات بسیار هدفمند یک زوج هستند که به صورت مستقیم برای شما فرستاده می شوند. زمانی که  این دسته تلیغات بکار گرفته میشد این نگرانی وجود داشت که تهاجمی به حریم خصوصی فرد شده ولی رفته رفته از این استفاده شد و باعث خوشحالی بسیاری از مردم در چک کردن موقعیت خود و اعلام ورود خود شد.اگر فکر شما این است که دوستتون است که فقط او قابل دیدن است، باید دوباره فکر کنید. در واقع بسیاری از کمپانی ها  از فعالیت های خود و یا تجزیه تحلیل کردن آن ها یاد می گیرند.

۷-۳ تجارت الکترونیک و خرده فروشی

یادگیری ماشین به شدت در خرده فروشی و تجارت الکترونیک استفاده می شود همانند آجر و ملات می ماند. در سطح بالا تر، به وضوح استفاده از Loyalty card آشکار می شود.  خرده فروشان در ایده ی Loyalty card  گاهی در تلاش هستند تا بازگشت اطلاعات به سوی خود را درک کنند.

سوپرمارکت بزرگ Tesco در انگلستان به عنوان یک رهبر است. در Tesco مشتریان به شدت از Clubcard استفاده می کنند و Tesco یک نمای فوق العاده از تصمیم خرید مشتریانش به نمایش می گذارد. اطلاعات از نقطه شروع  (POS)  جمع آوری گردیده و  به انبار اطلاعات بازآورده شد. در اوایل استفاده از Clubcard ، استخراج اطلاعات به سرعت کافی نبود.خیلی زیاد بود. روش های پردازش بعد از سال ها بهبود یافت ، Tesco و کمپانی Dunn Humby یک استراتژی خوب را برای فهمیدن رفتار و عادت های معمول مشتریان خود  پرورش دادن و  سعی بر تولید محصولات نزدیک به سلیقه ی مشتریان خود کردند.

هدف آمریکا هم مشابه هستش که با اجرا کردن برنامه منظم یکسان مسیر مشتریان خود را به برندها برسانند که می شود به نامه های پستی ، بازدیدهای سایت و یه حتی بازدید حضوری اشاره کرد. از انبار داده های خود، هدف می تواند چگونگی ارتباط مناسب یک مشتری درست را بیابد. هدف می آموزد که همه ی  مشتریان E-mail یا سرویس پیام کوتاه نمی خواهند بلکه بعضی ها هنوز سرویس پیام با پست را ترجیح می دهند. استخراج سبد و طبقه بندی مشتریان کلید پردازش ارتباط درست پیامکی با مشتریان است. و در سوی دیگر باید خیلی دقیق و علتی بر سردرد نباشد.

۸-۳ آنالیز بازی

می توان گفت نامزدی مناسب برای یاگیری ماشین پیدا شد. آیا بازی قدیمی شطرنج کامپیوتری را به یاد دارید؟ بازیکن یک حرکت انجام می داد و در جواب کامپیوتر می بایست یک حرکت بهتر عرضه کند که این خود یادگیری ماشین در الگوریتم برنامه ریزی شده حرکت  می باشد. با سرعتی که از دهه ها قبل تا به امروز سپری کردیم  کمپانی ها در حال کاووش و آنالیز داده ها می باشند ولی با این وجود شما مشغول بازی کردن بازی مورد علاقه خود هستید.

کمپانی Microsoft زمان خود را بر روی مطالعه اطلاعات بدست آمده از بازی Halo 3 صرف کرد چون نیاز داشت رفتار بازیکن ها را زمانی که در مرحله ی مشخص در حال بازی کردن هستند مشاهده کند و همچنین کشف کند چه زمانی از کدهای تقلب استفاده می کنند.

همچنین Microsoft بر روی Drivatar کار می کند که در بازی رانندگی Forza Motorsport گنجاده است. زمانی که برای اولین بار این بازی را تست می کنید، هیچگونه اطلاعتی درباره ی حالت رانندگی ندارید. بعد از مدتی که چندین بار تمرین کردید خود سیستم به شما حالات مختلف از قبیل اسحکام ، استفاده درست از سرعت در گوشه و کنار و موقیعت مناسب در مسیر مسابقه را به شما آموزش می دهد. نمونه بیش از ۳ بار اتفاق می افتد که این برای مشاهده رفتار مشخصات فرد کافی است. زمانی که شما مشغول بازی هستید سیستم در حال یادگیری الگو های رانندگی شما هستش. بعد از اینکه شما به بازی اجازه دادید تا حالت رانندگی شما را بهبود بخشد، به شما این اجازه را می دهد تا به مراحل بالاتری بروید و  همچنین برای کامل شدن یادگیری می توانید از الگو دیگر راننده ها حتی دوستان خود استفاده کنید.

امروزه کمپانی ها در زیر ساخت های خود یادگیری ماشین را برای بهبود کیفیت بازی های خود قرار داده اند.  با آشکار شدن روز افزون بازی ها برروی دستگاه های کوچک همانند iOS  و Anroid پلتفرم ، حالت اصلی یادگیری  در این است که چگونه بازیکن را برگردانیم به بازی تا دوباره بازی را انجام دهد.

۹-۳ اینترنت اشیاء (IOT)

دستگاه های متصل قادر هستند با شیوه ایی از داده که همه جا حضور داره مقابله کنند. ارتباط دستگاه به دستگاه یک مسئله ی تازه به حساب می آید ولی در واقع تا همین اواخر به ذهن مردم خطور نکرده بود.  با هزینه اندک تولید و توزیع، در حال حاضر دستگاه ها در خانه استفاده می شوند فقط تا آن جا که در صنعت حضور داشته باشند. اتوماسیون مصرف در خانه شامل خرید کردن و مقیاس هوشمند برای اندازه گیری مصرف انرژی می باشد. این چیزها در مراحل ابتدایی خود هستند و نگرانی های زیادی درباره ی جنبه های امنیتی دستگاه ها مطرح می شود. در همان راه محل دستگاه تلفن نگران کننده هستش چرا که کمپانی قادر هستش به دستگاه های با شناسه منحصر به فرد خود(Unique ID) با دقت اشاره کند و در نهایت آن ها به یک کاربر وابسته می شوند.

از طرف دیگر، داده ایی که غنی است این فرصت را خواهد داشت که یادگیری ماشین در مرکز داده قرار گیرد و از خروجی دستگاه اطلاعاتی بدست آورد. برای مثال نظارت بر گرم یا سرد بودن دمای محیط یک خانه می تواند به عنوان یک نمونه مطرح شود.

این روزها برای اینترنت اشیاء بسیار زود است اما در بسیاری از زمینه ها که به نتایج جالبی منتهی می شود اتفاق می افتد. با امثال  Arduino and Raspberry Pi computers که نسبتا ارزان است  می توان برای اندازه گیری حرکت، دما و صدا شروع کرد سپس داده ها را برای آنالیز کردن استخراج کرد.

نمونه هایی از زبان های برنامه نویسی یادگیری ماشین

۱-۴ Python

زبان برنامه نویسی Python در استفاده کردن رشد بسیاری کرده و دلیل آن یادگیری و خواندن آسان است و همچنین این زبان کتابخانه های بسیار خوبی برای یادگیر ماشین دارد نظیر Scikit-learn و PyML و Pybrain.

۲-۴ R

R یک زبان برنامه نویسی منبع باز است Syntax آن به آسانی قابل یاد گرفتن نیست ولی بد نیست یه نگاهی به آن بیندازیم. این زبان دارای تعداد زیادی پکیج های یادگیری ماشین به همراه ابزار های مختلفی برای تصور است. پروژه Rjava به برنامه نویسان Java این اجازه را می دهد که به توابع R از کدهای Java دسترسی داشته باشند.

۳-۴ Matlab

این زبان برنامه نویسی به شدت در آکادمی ها برای محاسبات فنی و ایجاد الگوریتم ها استفاده می شود. همانند R دارای یک مرکز برای خلق تجسم و گراف ها است.

۴-۴ Clojure

این زبان برنامه نویسی بر پایه JVM بنا نهاده شده و اساس آن زبان برنامه نویسی Lisp  می باشد. آن را برای همزمانی طراحی کردن که می توان آن را یک کاندیدای خوب برای برنامه های یادگیری ماشین در مجموعه های داده تبدیل کرد

 


جزئیات این مطلب:

نویسنده : امین ابراهیمی

منبع رسمی : وبسایت صفر تا قهرمان