آنچنان رفتم كه خود می خواستم
آموزش مفاهیم خیلی پایه در ماشین لرنینگ
موضوع اصلی در این مطلب ماشین لرنینگ (Machine Learning) یا یادگیری ماشینی هست.
اینکه چرا من درباره ماشین لرنینگ می نویسم به دلیل ارتباط این موضوع زمینه تحقیقات دانشگاهیم هست. و دوم هم اینکه طبق تجربه شخصی مباحثی رو که اینجوری مستند می کنم به دلیل اینکه باید وقت بیشتری برای خوندن و آماده کردنشون بزارم، بهتر یاد می گیرم و مسلط می شم.
مقدمه
در تصویر پایین نمونه هایی از کاربرد ماشین لرنینگ در زمینه های مختلف رو می بینید.
این بخش نسبتا تکراری هست و خیلی راحت با سرچ ساده پیدا می شه، احتمالا بعدا کاملش کنم.
سه الگوریتم پایه در یادگیری ماشین (ماشین لرنینگ)
- یادگیری با ناظر (Supervised Learning - Inductive)
در این الگوریتم ورودی ها و خروجی های متناسب با آن ها کاملا مشخص هستند و به ازای هر ورودی یک خروجی مشخص در نظر گرفته شده است. در واقع هدف اصلی در Supervised Learning ارایه یک تابع است که بتواند با دریافت وروردی، خروجی از پیش تعیین شده را ارایه کند. در این اگوریتم فرآیند یادگیری تا زمانی مورد بررسی قرار می گیرد که مدل ساخته شده به سطح موردنظری از دقت در مجموعه داده های مورد آزمایش برسد. برای ارایه مثال هایی از Supervised Learning می توان به موارد زیر اشاره نمود:
Regression, Decision Tree, Random Forest, KNN, Logistic Regression, ...
الگوریتم Supervised Learning به دو شاخه اصلی زیر تقسیم می شود.
* رگرشن (با تلفظ انگلیسی) یا رگرسیون (با تلفظ فرانسوی) (Regression)
* رده بندی (Classification)
- یادگیری بدون ناظر (Unsupervised Learning - Inductive)
در این مدل داده های ورودی به سیستم ارایه می شوند ولی خروجی نهایی مثل Supervised Learning از پیش مشخص و آماده نیست و خود سیستم باید بتواند بر اساس ساختار و الگوی داده های ورودی و روش آزمون و خطا، خروجی را ایجاد کند. در واقع در Unsupervised Learning برخلاف Supervised Learning پیشبینی یا برآورد انجام نمی شود. برای ارایه مثال هایی از Unsupervised Learning می توان به موارد زیر اشاره نمود:
Apriori algorithm, K-means
* از الگوریتم های Unsupervised Learning اغلب برای خوشه بندی (Clustering) داده ها استفاده می شوند.
- یادگیری نیمه نظارتی (Semi Supervised Learning - Inductive) یا یادگیری تقویتی (Reinforcement Learning)
در یادگیری نیمه نظارتی ماشین یاد می گیرد که تصمیم مشخصی را اتخاذ کند. روند کار در Semi Supervised Learning به این صورت است که ماشین همواره با استفاده از روش صحیح و خطا و کسب تجربه به دانش بیشتری دست پیدا می کند و سعی می کند دقیقترین جواب را ارایه کند. برای ارایه مثال هایی از Semi Supervised Learning می توان به موارد زیر اشاره نمود:
Markov Decision Process
مثال:
برای جمع بندی این مطلب چند مثال رو با هم بررسی می کنیم.
Supervised Learning
مجموعه ای از متراژ خونه های مختلف در یک محله به عنوان ورودی و قیمت اون هابه عنوان خروجی مورد نظر به سیستم داده میشه. سیستم باید بتونه با استفاده از این اطلاعات به یک تابع برسه که با گرفتن متراژ قیمت نهایی رو حساب کنه. در Supervised Learning پیش بینی و تخمین مطرح است.
* رگرسیون (Regression) | تابع هدف به صورت پیوسته است.
خونه A به مساحت 1متر قیمت 1000 تومن
خونه B به مساحت 2متر قیمت 2000 تومن
خونه C به مساحت 3متر قیمت 3000 تومن
تابع مورد نظر باید با توجه به داده های بالا رابطه بین قیمت و متراژ رو به دست بیاره و
برای ما قیمت خونه D به مساحت 5 متر رو حاسبه کنه.
* رده بندی (Classification) | تابع مقدار گسسته می گیرد.
اگر خونه های پایین 2.500 تومن ارزون و بالای 2.500 تومن گرون قیمت حساب بشن، خونه D گرون قیمت هست یا ارزون؟
Unsupervised Learning
* خوشه بندی (Clustering) | گروه بندی داده ها بر اساس ماهیت آن ها و وابسته به کاربرد مورد نظر انجام می شود.
مجموعه ای از اشکال مختلف بدون هیچگونه طبقه بندی و قانون مشخصی به سیستم داده می شه. خود سیستم با توجه به بررسی داده های وروردی الگوهایی برای خوشه بندی داده ها ارایه می کند.
مطلبی دیگر از این انتشارات
بررسی پشت صحنه لاراول برای درک عمیق تر
مطلبی دیگر از این انتشارات
قسمت اول - مفاهیم و الگوهای برنامه نویسی تابعی (Functional) در جاوااسکریپت
مطلبی دیگر از این انتشارات
کامپیوتر چجوری کار میکنه؟ - مقدمه ای از شروع برنامه نویسی