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

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

 

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

https://maktabkhooneh.org/course/andrew647

 

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

https://maktabkhooneh.org/course/soleymani23

 

 

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

نمایش گرافیکی ماترسی اغتشاش confusion matrix

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

توضیح ویکیپدیا برای ماتریس اغتشاش:

در حوزهٔ هوش مصنوعی، ماتریس در هم ریختگی (به انگلیسی: confusion matrix) به ماتریسی گفته می‌شود که در آن عملکرد الگوریتم‌های مربوطه را نشان می‌دهند. معمولاً چنین نمایشی برای الگوریتم‌های یادگیری با ناظر استفاده می‌شود، اگرچه در یادگیری بدون ناظر نیز کاربرد دارد. معمولاً به کاربرد این ماتریس در الگوریتم‌های بدون ناظر ماتریس تطابق می گویند. هر ستون از ماتریس، نمونه‌ای از مقدار پیش بینی شده را نشان می‌دهد. در صورتی که هر سطر نمونه‌ای واقعی (درست) را در بر دارد. اسم این ماتریس نیز از آنجا بدست می‌آید که امکان این را آسانتر اشتباه و تداخل بین نتایج را مشاهده کرد. در خارج از هوش مصنوعی این ماتریس معمولاً ماتریس پیشایندی (contingency matrix) یا ماتریس خطا (error matrix) نامیده می‌شود. در مباحث هوش مصنوعی از این جدول برای تعیین مقدار شاخص های ارزیابی مانند دقت (Precision) و صحت (Recall) استفاده می شود. دقت عبارت است از اینکه “چه میزان از نمونه های انتخابی درست هستند” و صحت بر این مفهوم که “چه میزان از نمونه های صحیح موجود انتخاب شده اند” دلالت دارند. البته با ممکن است در منابعی، Accuracy نیز دقت ترجمه شود که مفهومی کاملا متفاوت داشته و بر میزان نمونه هایی اشاره دارد که سیستم در تشخیص آنها موفق بوده است.

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

کافیست تابع ذیل را به کد پایتونی خود اضافه کنید:

 

برای بحث استفاده نیز کافیست کد ذیل را بزنید:

 

منظور از y_true و y_pred در مطلب « محاسبه عناصر جدول اغتشاش TP,NP,FP,FN» بیان گردیده است.

 

منبع : https://goo.gl/otsmhY

باتشکر از مهندس محمد خالوئی در اشتراک گذاشتن این لینک مفید.

 

شما نیز میتوانید از طریق بخش ارتباط با ما مطالب خوب و مفیدتان را برای درج در سامانه ارسال کنید. همچنین جهت همکاری به https://mnote.ir/collaboration/  مراجعه کنید

محاسبه عناصر جدول اغتشاش confusion matrix : TP,NP,FP,FN در راحت ترین وجه ممکن!

در این مطلب قرار هست تا با چیزی شما را آشنا کنیم که در زمان ارزیابی سیستم یا مدل یا ایده ای که داشتید شما را از وضعیت کارکرد سیستم آگاه میکند. همانطور که میدانید در Confusion matrix شما با توجه به میزان درستی و میزان اشتباهاتی که در حالات مختلف TP,NP,FP,FN رخ میدهد میتوانید تقریبا روند کارکرد سیستم خود را ارزیابی کنید.

شما کافیست با مثال ذیل همگام شوید. البته اگر میخواهید آن را برای کد خود استفاده کنید کافیست فقط دو آرایه y_pred که به معنای چیزی که مدل یا شبکه شما بدان رسیده را با y_true با چیزی که به عنوان Ground Truth (جدول درستی) دارید مقایسه و ارزیابی کنید

برای مثال:

در ابتدا کتابخانه Numpy را اضافه کنید:

سپس برای مثال ما اعداد وکتوری ذیل را جهت آزمایشی ایجاد میکنیم

حال کافیست کد ذیل را برای محاسبه چهار حالتTP,NP,FP,FN نیز بنویسیم:

 

به همین راحتی.

منبع این مطلب :  https://goo.gl/hEF6SQ

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

ایام خوبی برایتان آرزو مندم

یادگیری ماشین به زبان ساده – بخش اول (سری صفر تا قهرمان)

سلام به شما دوستان و همراهان zerotohero. همان طور که قبلاً وعده داده بودیم قصد داریم آموزش‌های بیشتر و کامل‌تری از مبحث یادگیری ماشین را پوشش دهیم. مبحثی که به جرئت می‌توان گفت یکی از مهم‌ترین تکنولوژی‌های دهه آینده خواهد بود. حتی اگر در مورد آن هیچ چیزی نمی‌دانید باز هم خوش شانس هستید که این فرصت را برای یادگیری آن در این زمان دارید. مطمئن باشید در آینده از این علم بیشتر خواهید دید و شنید. با این سری مقالات همراه باشید تا به ساده‌ترین شکل ممکن یاد بگیریم که یادگیری ماشین چیست و چطور می‌تواند به انسان‌ها و همچنین کسب و کارها کمک کند.

قبل از این که شروع کنیم، قصد دارم از آدام گایتگی (Adam Geitgey) تشکر کنم که درخواست من برای گرفتن حق امتیاز ترجمه مقالاتش در سایت Medium را با روی خوش پذیرفت و حتی در ابتدای مقاله اولش لینک این صفحه را قرار داد.

.   .   .

می‌شنوید که مردم در مورد یادگیری ماشین صحبت می‌کنند ولی ایده خاصی در مورد این که واقعاً چه چیزی هست ندارید؟ آیا از این که هنگام بحث‌ با دوستان و همکاران نمی‌توانید نظری در این مورد بدهید خسته شدید؟ پس بیایید تغییرش بدهیم.

.   .   .

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

هدف این است که هر کسی به سادگی متوجه بشود، و این یعنی که مفاهیم به صورت کلی بیان خواهد شد. اما چه ایرادی دارد؟ اگر این مطالب باعث بشود حتی یک نفر بیشتر به یادگیری ماشین علاقمند شود، ما مأموریتمان را انجام داده‌ایم.

.   .   .

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

یادگیری ماشین (Machine Learning) یعنی این که الگوریتم‌هایی وجود دارند که بدون نیاز به نوشتن کد اختصاصی برای مجموعه‌ای از داده‌ها، می‌توانند اطلاعات جالبی در مورد آن‌ها به ما بگویند. به جای نوشتن کد، داده‌ها را به عنوان ورودی به این الگوریتم‌ها می‌دهیم و الگوریتم بر مبنای داده‌ها خودش منطق خودش را می‌سازد.

برای مثال، یکی از این الگوریتم‌ها، الگوریتم دسته‌بندی (classification) است که می‌تواند داده‌ها را در گروه‌های مختلفی قرار دهد. از همان الگوریتم دسته‌بندی که اعداد را در دست خط انسان تشخیص می‌دهد، می‌توان برای دسته‌بندی ایمیل‌ها به دو دسته هرزنامه و غیرهرزنامه نیز استفاده کرد، بدون این که لازم باشد حتی یک خط کد را تغییر دهیم. این همان الگوریتم است با این تفاوت که مجموعه داده‌های آموزشی (training data set) متفاوتی به آن داده شده. بنابراین منطق دسته‌بندی نهایی نیز متفاوت خواهد بود.

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

الگوریتم یادگیری ماشین یک جعبه سیاه است که می‌توان از آن برای انواع مسائل دسته‌بندی استفاده کرد.

الگوریتم یادگیری ماشین یک جعبه سیاه است که می‌توان از آن برای انواع مسائل دسته‌بندی استفاده کرد.

«یادگیری ماشین» اصطلاحی است که مثل یک چتر انواع این الگوریتم‌ها را پوشش می‌دهد.

دو نوع مختلف الگوریتم‌های یادگیری ماشین

اکثر الگوریتم‌های یادگیری ماشین را می‌توان در یکی از این دو دسته اصلی قرار داد: یادگیری بانظارت (Supervised Learning) و یادگیری بدون نظارت (Unsupervised Learning). تفاوت این دو ساده ولی بسیار مهم است.

یادگیری با نظارت

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

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

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

این همان مجموعه train ما است.

این همان مجموعه train ما است.

با استفاده از این مجموعه train، می‌خواهیم برنامه‌ای بنویسیم که تخمین بزند هر خانه دیگری در اطراف شما چقدر ارزش دارد:

می‌خواهیم به کمک مجموعه train قیمت خانه‌های دیگر را پیش‌بینی کنیم.

می‌خواهیم به کمک مجموعه train قیمت خانه‌های دیگر را پیش‌بینی کنیم.

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

برای ساخت برنامه، مجموعه train را به عنوان ورودی به الگوریتم یادگیری ماشین می‌دهیم. الگوریتم در تلاش است تا بفهمد چه نوع ریاضیاتی به کار رفته تا این اعداد به دست بیاید.

این مشابه این است که در امتحان ریاضی جواب مسئله‌ها را داشته باشیم ولی عملگر بین اعداد مجهول باشد.

اوه نه! یک دانش‌آموز علامت عملگرها را از کلید تصحیح معلم پاک کرده!

اوه نه! یک دانش‌آموز علامت عملگرها را از کلید تصحیح معلم پاک کرده!

آیا با استفاده از چیزی که موجود است می‌توانید حدس بزنید سوال‌های امتحان چه بوده؟ شما می‌دانید باید کاری با اعداد سمت چپ انجام دهیم تا به جواب سمت راست برسیم.

در یادگیری بانظارت، شما از کامپیوتر می‌خواهید تا این ارتباط را برای شما پیدا کند. و یک بار که ریاضیات به کار رفته برای این مسئله را پیدا کنید، می‌توانید به هر مسئله دیگر از این نوع نیز پاسخ دهید!

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

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

حتی اگر در تلاش برای پیش‌بینی یک عدد ناشناس (مثل قیمت) نباشید، باز هم می‌توان با استفاده از یادگیری ماشین کاری کرد.

حتی اگر در تلاش برای پیش‌بینی یک عدد ناشناس (مثل قیمت) نباشید، باز هم می‌توان با استفاده از یادگیری ماشین کاری کرد.

این مثل وقتی است که یک نفر کاغذی به شما بدهد که روی آن تعدادی عدد نوشته شده و بگوید: «من هیچ نظری ندارم که این عددها چه معنی و مفهومی دارند ولی شاید تو بتوانی الگو، گروه‌بندی یا چیزی پیدا کنی. موفق باشی!»

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

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

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

نکته: انواع دیگری از الگوریتم‌های یادگیری ماشین نیز وجود دارد. ولی فعلاً برای شروع از پرداختن به آن‌ها صرف نظر می‌کنیم.

جالبه، ولی آیا توانایی حدس زدن قیمت یک خانه، واقعاً یادگیری به حساب می‌آید؟

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

اما الگوریتم‌های یادگیری ماشین فعلی هنوز اینقدر قوی نیستند و فقط وقتی کار می‌کنند که بر روی مسائل محدود و کاملاً مشخصی متمرکز باشند. شاید معنی بهتر برای یادگیری در حال حاضر «یافتن یک معادله برای حل مسئله‌ای مشخص بر اساس تعدادی داده نمونه» باشد.

متأسفانه این تعریف زیاد جالب نیست. برای همین ما از عبارت «یادگیری ماشین» استفاده می‌کنیم.

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

بیاید آن برنامه را بنویسیم!

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

اگر هیچ چیزی از یادگیری ماشین نمی‌دانستید احتمالاً تلاش می‌کردید تا قوانین ساده‌ای برای تخمین قیمت یک خانه مانند این بنویسید:

 

اگر ساعت‌ها وقت صرف این کد کنید احتمالاً در نهایت به برنامه‌ای می‌رسید که تا حدی درست کار می‌کند، ولی هیچ گاه کامل و عالی نیست و با تغییر قیمت‌ها همه چیز به هم می‌ریزد.

بهتر نیست به کامپیوتر اجازه دهیم خودش نحوه پیاده‌سازی این تابع را پیدا کند؟ تا وقتی درست جواب بدهد چه اهمیتی دارد چگونه این کار را می‌کند:

 

یک راه برای نگاه کردن به این مسئله این است که فاکتور قیمت را مانند غذای خوشمزه‌ای در نظر بگیریم که مواد اولیه برای تهیه آن تعداد اتاق‌ها، مساحت و محله آن هستند. اگر می‌دانستید هر فاکتور به چه اندازه روی قیمت نهایی تأثیر می‌گذارد، احتمالاً می‌توانستید نسبت دقیق مواد اولیه را برای تهیه این غذا بدست آورید.

این کار تابع اصلی شما (با آن همه if و else) را تا چیزی در این حد ساده می‌کند:

 

به اعداد جادویی که bold شده‌اند توجه کنید. این‌ها وزن مواد اولیه هستند. پس کافی است وزن‌ها را به صورت دقیق محاسبه کنیم تا تابع ما قیت نهایی را پیش‌بینی کند.

یک روش احمقانه برای پیدا کردن وزن‌ها این است:

گام اول:

در ابتدا همه وزن‌ها را برابر ۱.۰ قرار دهید:

 

گام دوم:

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

از تابعی که نوشتید برای تخمین قیمت هر خانه استفاده کنید.

از تابعی که نوشتید برای تخمین قیمت هر خانه استفاده کنید.

برای مثال، اگر خانه اول به مبلغ ۲۵۰ هزار دلار به فروش رفته ولی تابع شما عدد ۱۷۸ هزار را تخمین زد، شما ۷۲ هزار دلار اختلاف (خطا) دارید.

حالا مربع میزان اختلاف را به ازای همه خانه‌های مجموعه train جمع بزنید. فرض کنید ۵۰۰ خانه در مجموعه شما وجود داشته و مجموعی که برای اختلاف‌ها به دست آوردید عدد ۸۶,۱۲۳,۳۷۳ دلار را نشان می‌دهد. این یعنی تابع شما در حال حاضر چقدر «اشتباه» است.

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

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

گام سوم:

گام دوم را به ازای انواع ترکیب‌های ممکن وزن‌ها بارها و بارها تکرار کنید. وقتی به حالتی رسیدید که هزینه تابع به صفر نزدیک شد، شما مسئله را حل کرده‌اید!

زمان انفجار ذهن

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

اما در ادامه چند نکته را بررسی می‌کنیم که واقعاً می‌تواند ذهن شما را منفجر کند:

  1. تحقیقات در بسیاری از زمینه‌ها در ۴۰ سال گذشته نشان داده‌اند که این الگوریتم‌های یادگیری عمومی مشابه کاری که انجام دادیم، در مواقعی که نیاز است قوانین مشخص ارائه شود، نسبت به انسان عملکرد بهتری دارند. حتی احمقانه‌ترین روش یادگیری ماشین هم می‌تواند انسان‌های متخصص را شکست دهد!
  2. تابعی که شما نوشتید واقعاً احمقانه بود. چون حتی نمی‌دانست واحد مساحت و اتاق خواب چیست! تنها چیزی که می‌دانست این بود که باید مقدار مشخصی از آن اعداد را با هم ترکیب کند تا به جواب درست برسد.
  3. احتمالاً شما هیچ ایده‌ای ندارید که چرا مجموعه‌ای مشخص از وزن‌ها درست کار می‌کند. بنابراین شما تابعی نوشتید که نمی‌دانید چطور کار می‌کند ولی می‌توانید ثابت کنید که درست کار می‌کند!
  4. تصور کنید به جای مساحت و تعداد اتاق‌ها، تابع تخمین شما آرایه‌ای از اعداد را به عنوان ورودی می‌گرفت. برای مثال فرض کنید هر کدام از این اعداد میزان روشنایی یک پیکسل از یک تصویر گرفته‌شده توسط دوربین نصب‌شده روی ماشین باشد، خروجی تابع را «میزان زاویه چرخش فرمان خودرو» نام‌گذاری کنید. به همین راحتی شما برنامه‌ یک اتومبیل خودران را نوشتید!

جالبه، این طور نیست؟

اما بخش مربوط به «هر عدد ممکن را امتحان کنید» چه می‌شود؟

بله، البته که نمی‌شود هر ترکیب ممکن از وزن‌ها را امتحان کرد. این کار به معنای واقعی کلمه تا ابد طول خواهد کشید زیرا هیچ وقت اعداد تمام نخواهند شد.

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

ابتدا، معادله ساده‌ای برای محاسبه هزینه در گام دوم می‌نویسیم:

این همان تابع هزینه شما است.

این همان تابع هزینه شما است.

حالا بیایید همین معادله را به صورت دیگری طبق ریاضیات یادگیری ماشین (که فعلاً از پرداختن به جزئیات آن صرف نظر می‌کنیم) بنویسیم:

θ نماینده وزن‌های فعلی شما است. J(θ) یعنی هزینه به ازای این مجموعه از وزن‌ها.

θ نماینده وزن‌های فعلی شما است. و (j(θ یعنی هزینه به ازای این مجموعه از وزن‌ها.

این معادله نشان می‌دهد تابع تخمین قیمت ما به ازای وزن‌های فعلی تا چه حد اشتباه است.

اگر ما نمودار این معادله هزینه را به ازای تمام مقادیر وزن‌ها برای تعداد اتاق‌ها و مساحت را رسم کنیم، به نموداری شبیه به شکل زیر می‌رسیم:

نمودار تابع هزینه شبیه به یک کاسه است. محور عمودی بیانگر هزینه می‌باشد.

نمودار تابع هزینه شبیه به یک کاسه است. محور عمودی بیانگر هزینه می‌باشد.

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

بنابراین کافی است ما وزن‌ها را طوری تغییر دهیم که روی این نمودار به سمت پایین حرکت کنیم تا به پایین‌ترین نقطه برسیم. به این ترتیب نیازی نیست اعداد زیادی را امتحان کنیم.

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

پس اگر مشتق جزئی تابع هزینه را به ازای هر یک از وزن‌ها محاسبه کنیم، می‌توانیم مقدار آن را از هر وزن کم کنیم. و این یک قدم ما را به پایین منحنی نزدیک می‌کند. با ادامه دادن این کار، در نهایت به پایین‌ترین نقطه نمودار می‌رسیم و بهترین مقادیر را به ازای وزن‌ها خواهیم داشت. (اگر چیزی متوجه نشدید نگران نباشید و به خواندن ادامه دهید).

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

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

درسته، برای راحتی بیشتر از بعضی مسائل صرف نظر کردیم

الگوریتم سه مرحله‌ای که توضیح دادم رگرسیون خطی چندمتغیره نام دارد. در واقع شما معادله خطی که از روی نقاط داده‌های مربوط به خانه عبور می‌کند را تخمین می‌زنید. سپس از این معادله استفاده می‌کنید تا براساس محل قرارگیری نقاط، قیمت فروش خانه‌هایی که قبلاً ندیده‌اید را حدس بزنید. این ایده واقعاً قدرتمندی است که به کمک آن می‌توانید مسائل “واقعی” را حل کنید.

روشی که با هم دیدیم ممکن است در مثال‌های ساده جواب بدهد، ولی پاسخگوی همه مسائل نیست. یک دلیل آن این است که معمولاً قیمت خانه‌ها به این سادگی از روی یک خط پیوسته به دست نمی‌آید.

اما خوشبختانه راه‌های زیادی برای حل این مشکل هست. الگوریتم‌های یادگیری ماشین فراوان دیگری برای استفاده در داده‌های غیرخطی داریم (مانند شبکه‌های عصبی یا SVMها به همراه kernel). همچنین راه‌های دیگری هم هست که اجازه می‌دهد از رگرسیون خطی هوشمندانه‌تر استفاده کنیم و اجازه می‌دهد خطوط پیچیده‌تری را برازش یا به اصطلاح fit کنیم. با این حال در همه موارد، همچنان ایده اصلی این است که بهترین وزن‌ها را پیدا کنیم.

همچنین، من از مشکل بیش‌برازش (overfitting) صرف نظر کردم. این که وزن‌ها را طوری تعیین کنیم که همیشه برای داده‌های موجود در مجموعه اصلی جواب بدهد، کار ساده‌ای است. اما ممکن است هیچ گاه برای خانه‌های جدید که اطلاعاتشان در مجموعه اصلی موجود نبود، کار نکند. برای این مشکل هم راه حل‌هایی وجود دارد (مانند Regularization و استفاده از مجموعه داده cross-validation). یادگرفتن چگونگی کنار آمدن با این مشکل یکی از اساسی‌ترین گام‌های پیاده‌سازی موفق الگوریتم‌های یادگیری ماشین است.

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

آیا یادگیری ماشین جادو است؟

یک بار که ببینید تکنیک‌های یادگیری ماشین به چه راحتی روی مسائل خیلی دشوار (مانند تشخیص دست خط) اعمال می‌شوند، حس می‌کنید راهی پیدا کرده‌اید که به شرط داشتن داده کافی هر مسئله‌ای را حل می‌کند. کافی است داده‌ها را وارد کنید و نگاه کنید کامپیوتر چطور جادوگرانه معادله متناسب با آن داده‌ها را کشف می‌کند!

اما یادتان باشد یادگیری ماشین تنها زمانی کار می‌کند که مسئله با داده‌هایی که دارید واقعاً قابل حل باشد.

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

تنها رابطه‌هایی را می‌توان مدلسازی کرد که واقعاً وجود داشته باشند.

تنها رابطه‌هایی را می‌توان مدلسازی کرد که واقعاً وجود داشته باشند.

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

چطور در مورد یادگیری ماشین بیشتر یاد بگیریم؟

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

دوره آموزشی رایگان آقای اندرو نگ (Andrew Ng) در سایت Coursera فوق‌العاده است. من شدیداً توصیه می‌کنم از این جا شروع کنید. این دوره برای هر کسی با حداقل دانش از علوم کامپیوتر و ریاضیات مناسب است.

همچنین، می‌توانید صدها الگوریتم یادگیری ماشین را با دانلود و نصب بسته SciKit-Learn برای پایتون ببینید و امتحان کنید.

.   .   .

 


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

نویسنده : کورش سلیمانی

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

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

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

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

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

۱-۱ 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  می باشد. آن را برای همزمانی طراحی کردن که می توان آن را یک کاندیدای خوب برای برنامه های یادگیری ماشین در مجموعه های داده تبدیل کرد

 


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

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

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