مطالب تخصصی

مقدمه ای بر یادگیری ماشین و کاربرد آن در سنجش از دور

معصومه واحدی
نوشته شده توسط معصومه واحدی

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

دور از ذهن نیست که بگوییم بیشتر کارهای تجزیه و تحلیل امروز در جهان توسط الگوریتم های یادگیری ماشین در آینده نزدیک انجام می شود.


دانلود فایل همین مقاله به صورت کتابچه

به منظور دانلود کامل این متن، فیلدهای زیر را پر کرده و بلافاصله به صورت یک پی دی اف جمع و جور در ایمیل خود دریافت کنید

 


ماشین ها به ما امکان انجام محاسبات پیچیده را در مدت زمان کوتاه داده اند. این امر زمینه کاملاً متفاوتی از تحقیق را فراهم کرده است که مورد بررسی قرار نگرفته است:

آموزش ماشین ها برای پیش بینی نتیجه احتمالی با مشاهده الگوها

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

امروزه چندین الگوریتم معروف یادگیری ماشین وجود دارد و هر روز، الگوریتم های جدید ظاهر می شوند. برخی از الگوریتم های شناخته شده عبارتند از:

۱-­ ماشین های بردار پشتیبان (Support Vector Machines)

۲-­ شبکه های عصبی مصنوعی (Neural Network)

۳-­ جنگل های تصادفی (Random Forest)

۴-­ نزدیکترین k همسایگان (K-Nearest Neighbors)

۵-­ درختان تصمیم (Decision Trees)

۶-­ خوشه بندی k میانگین (K-Means)

۷-­ تحلیل مولفه ­های اصلی (Principal Component Analysis)

 

یادگیری ماشین در سنجش از دور

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

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

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

مراحل فرآیند یادگیری ماشین:

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

فرآیند یادگیری ماشین در سنجش از دور:

۱-­ داده ها بیشتر با استفاده از ماهواره ها یا پهپادهای هوایی جمع آوری می شود،

۲-­ تمیز کردن داده ها زمانی انجام می شود که مجموعه داده های ما دارای مقادیر ناقص یا مفقود شده باشد،

۳-­ و انتخاب الگوریتم شامل آشنایی با مسئله ای است که یکی از آنها سعی در حل آن دارد (در ادامه این مورد بیشتر توضیح داده خواهد شد).

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

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

تمیز کردن داده ها (Data Cleaning):

این فرایند شامل تمیز کردن داده های متنی و یا مبتنی بر تصویر و مدیریت داده ها (که گاهی اوقات ممکن است شامل کاهش تعداد متغیرهای مرتبط با یک رکورد) باشد. انواع داده ها عبارتند از:

داده های متنی (Textual Data):

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

داده های تصویر (Image Data):

تمیز کردن داده ها همچنین شامل دستکاری تصاویر نیز است که ممکن است حاوی برخی مصنوعات باشد که می تواند در الگوریتم های طبقه بندی شخص تداخل ایجاد کند. Nath و همکاران (۲۰۱۰) در مقاله خود در مورد استخراج نواحی پوشیده از آب این مشکل را حل می کنند. در تصاویری که آنها استفاده کردند، مناطقی که دارای سایه های ساختمانی بودند به راحتی می توانند با اجسام آب اشتباه گرفته شوند. آنها با محاسبه آنتروپی تصویر، تا حدی این مشکل را حل کردند و سپس از آن برای تقسیم بندی تصویر استفاده کردند.

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

داده های حاوی چندین ویژگی (Multiple Features):

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

اینجاست که تجزیه و تحلیل مولفه­ های اصلی (Principal Component Analysis) ارائه می شود – این تعداد متغیرها را به چند ترکیب خطی قابل تفسیر داده کاهش می دهد. هر ترکیب خطی با یک جز مولفه (component) اصلی مطابقت دارد. ابزارهای بی شماری برای به کار بردن PCA در دسترس است. اگر شخصی از کتابخانه معروف Scikit-learn که از ابزارهای پایتون است، استفاده می کند، عملکرد PCA وجود دارد که می تواند به راحتی آن را پیاده کند.

 

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

به طور کلی سه دسته کلی از الگوریتم های یادگیری ماشین وجود دارد:

۱-­ یادگیری ماشین تحت نظارت

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

۳-­ یادگیری تقویت شده

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

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

جنگل تصادفی (Random Forest):

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

 

ماشین بردار پشتیبانی (SVM):

SVM ها مدل های یادگیری نظارت شده ای هستند که می توانند برای رگرسیون و همچنین مشکلات طبقه بندی استفاده شوند. آنها بیشتر برای مشکلات طبقه بندی (classification) استفاده می شوند. روش کار آنها با ترسیم نقاط (ویژگی ها) در یک فضای n بعدی (n ویژگی ها) و سپس ارائه یک ابر فضا است که به بهترین وجه آن نقاط را تقسیم می کند.

SVM ها تقریباً در همه انواع مشکلات طبقه بندی در سنجش از دور، از طبقه بندی جنگل گرفته تا تقسیم بندی (segmentation) تصاویر سنجش از دور چند طیفی مورد استفاده قرار می گیرند. درست مانند دیگر الگوریتم ها، موفقیت آنها به ماهیت مسئله بستگی دارد و فرد باید هر الگوریتم را جداگانه آزمایش کند و سپس بر اساس عملکرد هر الگوریتم تصمیم گیری کند.

 

شبکه های عصبی مصنوعی (Artificial Neural Network):

شبکه های عصبی دسته ای از الگوریتم های یادگیری ماشین هستند که سعی می کنند نحوه عملکرد مغز ما را تقلید کنند. اولین کاربرد شبکه های عصبی (Neural Network) در سنجش از دور در سال ۱۹۸۸ تکمیل شد. شبکه های عصبی مصنوعی نوعی شبکه عصبی هستند. ANN شبیه سازی های الهام گرفته شده از نظر بیولوژیکی است که در رایانه برای انجام کارهای خاصی مانند شناسایی الگو، خوشه بندی، طبقه بندی و غیره انجام می شود. اخیراً به دلیل پیشرفت های فنی که به دلیل ANN ها امکان پذیر شده است، محبوبیت آنها بسیار افزایش یافته است.

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

 

مفاهیم Overfitting و Bias در یادگیری ماشین:

در بیشتر مواقع که در حال تهیه مدلی برای پیش بینی / طبقه بندی تصاویر هستید ، یک مجموعه داده بزرگ برای آموزش و آزمایش الگوریتم خود دارید. ما مجموعه داده را تقریباً به نسبت ۷۵:۲۵ تقسیم می کنیم که ۷۵٪ از داده ها برای آموزش و ۲۵٪ برای ارزیابی عملکرد مدل پس از آموزش استفاده می شود. ۷۵:۲۵ نسبت سختی نیست. تنها مشکلی که باید به آن توجه کنید این است که بخش آموزش مجموعه داده باید نمایشی بی طرفانه از کل مجموعه داده داشته باشد و در مقایسه با بخش تست مجموعه داده، نباید خیلی کوچک باشد.

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

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

 

کدام الگوریتم بهترین است؟

پاسخ به این سوال به مشکلی که کاربر در صدد حل آن است بستگی دارد. در برخی موارد که چندین بعد دارید اما رکوردهای محدودی دارید، SVM ممکن است بهتر کار کند. اگر رکوردهای زیادی داشته باشید اما ابعاد (ویژگی) کمتری دارید، ممکن است شبکه های عصبی (NN) پیش بینی / دقت طبقه بندی بهتری داشته باشند. همچنین کاربران اغلب مجبور هستند چندین الگوریتم را روی مجموعه داده خود آزمایش کنند و یکی را که بهترین عملکرد را دارد، انتخاب کند.

اغلب اوقات، تنظیم پارامترهای مختلف برای الگوریتم های مختلف (به عنوان مثال اهمیت متغیر برای RF، تعداد لایه های پنهان و نورون ها برای شبکه های عصبی و “شکل عملکرد تصمیم” برای SVM ها و غیره) ضروری است زیرا با تنظیم این پارامترها می توان به دقت بالاتری دست پیدا کرد. در بسیاری از مواقع، با ترکیب چندین الگوریتم با هم ، دقت بهتری حاصل می شود که ensemble نامیده می شود. همچنین می توان برای بهبود دقت پیش بین ، SVM و شبکه های عصبی یا SVM و RF را ترکیب کرد (ترکیب شبکه های مختلف بی پایان هستند). تاکید می شود که، برای انتخاب بهترین گروه ، باید چندین گروه را آزمایش کنیم.

همچنین توجه به این نکته مهم است که ممکن است دقت پیش بینی بر اساس ویژگی خاصی که فرد می خواهد برای اهداف طبقه بندی / پیش بینی استفاده کند، تغییر کند. به عنوان مثال، در مطالعه ای که Shang and Chisholm  (۲۰۱۴) انجام دادند به منظور چگونه طبقه بندی گونه های جنگلی بومی استرالیا، تصمیم گرفتند از الگوریتم های پیشرفته سنجش از دور استفاده کنند. آنها تصمیم گرفتند درختان را در سطح برگ، سایبان (canopy) و سطح جامعه طبقه بندی کنند. آنها الگوریتم های مختلف را آزمایش کردند و دریافتند که هر الگوریتم در هر سطح متفاوت بهتر از الگوریتم های دیگر عمل می کند. در سطح برگ، جنگل تصادفی به بهترین دقت طبقه بندی (۹۴٫۷٪) دست یافت و ماشین بردار پشتیبانی از الگوریتم های دیگر هم در سایبان (۸۴٫۵٪) و هم در سطح جامعه (۷۵٫۵٪) بهتر عمل کرد.

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

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


دانلود فایل همین مقاله به صورت کتابچه

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

 


 

۱ دیدگاه

دیدگاهتان را بنویسید

اگر تمایل به تدریس و تولید آموزش و کسب درآمد دارید لطفا بر روی دکمه رو به رو کلیک کنید و فرم را پر کنیدپر کردن فرم همکاری در تهیه ویدئوهای آموزشی
+ +
از حالا یه 24 ساعت تخفیف هارو تمدید کردیم. کد تخفیف: mohandes
روز
ساعت
دقیقه
ثانیه
ورود به بخش محصولات آموزشی