ایزومپ چیست؟

منتشر‌شده در towardsdatascience : به تاریخ ۲۶ می ۲۰۲۱
لینک منبع: What is Isomap?

مقدمه

ما نمی‌توانیم داده‌های با ابعاد بالا را در بالای ۳ بعد مجسم کنیم. بنابراین وقتی با این وضعیت روبرو هستیم که تقریباً در همه برنامه‌های Data Science وجود دارد، چه کنیم؟ تکنیک‌های کاهش بعد مانند PCA اغلب با شکست مواجه می‌شوند زیرا یک فرض ساده برای این روش‌ها وجود دارد: داده‌ها می‌توانند به صورت خطی کاهش یابند. با این حال، برای بیشتر انواع داده‌های با ابعاد بالا، احتمالا یک رابطه غیرخطی وجود دارد و بنابراین ما باید این شکل را در زمانی که ابعاد را کاهش می‌دهیم حفظ کنیم. این جایی است که تکنیک‌های یادگیری Manifold مانند Isomap وارد بازی می‌شوند.

توجه: من در مقالات بعدی در مورد تکنیک‌های یادگیری متعدد دیگر Manifold بحث خواهم کرد، بنابراین به دنبال این موضوع نیز باشید!

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

ایزومپ

ایزومپ کوتاه شده‌ی (Isometric Mapping) نقشه‌برداری ایزومتریک است. هدف از این نقشه‌برداری حفظ فاصله ژئودزیک بین دو نقطه است. ژئودزیک به طور رسمی به عنوان کوتاه‌ترین مسیر بر روی خود سطح تعریف می‌شود. با درک فواصل ژئودزیک دو به دو، هدف ایزومپ تخمین هندسه داده‌ها قبل از طرح‌ریزی آن در ابعاد مشخص است. ایزومپ در ۳ مرحله اصلی عمل می‌کند:

  • یک نمودار همسایگی بسازید، معمولا از طریق k-Nearest Neighbors
  • کوتاه‌ترین مسیر بین نقاط را، چه از طریق الگوریتم Dijkstra و چه از طریق الگوریتم فلوید-وارشال، محاسبه کنید.
  • یک دسته‌بندی d بعدی با تجزیه مقدار ویژه جزیی (یعنی گرفتن بزرگ‌ترین مقادیر ویژه کرنل) بسازید.

در اینجا چگونگی عملکرد ایزومپ بر روی دو مجموعه داده اصلی برای تصویرسازی یادگیری Manifold، S-curve و Swiss Roll آورده شده‌است.

مورد اول S Curve:

اول، با استفاده از sklearn.datasets، ما ۱۰۰۰ نقطه روی s-curve تولید خواهیم کرد.

شکل ۱: s-curve
شکل ۱: s-curve

حالا که S-curve تولید شده‌است، بیایید از ایزومپ در تلاش برای کاهش آن به ۲ بعد استفاده کنیم.

شکل ۲: کاهش به ۲ بعد
شکل ۲: کاهش به ۲ بعد

درست مانند k-Nearest Neighbors، تعداد همسایگان پارامتری است که باید برای عملکرد ایده‌آل اصلاح شود. در حالی که من از ۳۵ استفاده کردم تا بهترین راه ممکن برای رسیدن به فرآیند یادگیری manifold را به شما نشان دهم، از این کد استفاده کرده و پارامتر n_neighbors را اصلاح کنید تا ببینید این چگونه بر شکل نهایی تاثیر می‌گذارد.

همانطور که می‌بینیم، بخش زرد S-curve دورترین بخش از بنفش تیره / آبی در طرح سه‌بعدی است، که نشان می‌دهد که می‌خواهیم آن بخش‌های manifold از یکدیگر دورتر باشند، که چیزی است که در طول کوتاه‌ترین مسیر ساخت به دست می‌آید.

مطالعه مقاله دانشمندان داده‌ها در عرض ۱۰ سال آینده منقرض خواهند شد.توصیه می‌شود.

مورد دوم Swiss Roll:

حالا با استفاده از همین مدول، ما ۱۰۰۰ نقطه در swiss_roll تولید خواهیم کرد.

شکل ۳: Swiss Roll
شکل ۳: Swiss Roll

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

شکل ۴: استفاده از ایزومپ
شکل ۴: استفاده از ایزومپ

دوباره، ما قادر به «باز کردن» شکل مشابه s-curve بودیم. همان خصوصیاتی که در بالا ذکر شد در مواردی وجود دارد که ما قادر به تفکیک و جداسازی بین بخش‌هایی از شکل هستیم که از یکدیگر فاصله دارند. علاوه بر این، ما به بخش‌هایی از شکلی که به یکدیگر نزدیک‌تر هستند نیز اجازه می‌دهیم تا به دلیل گام ۲ و ۳ که در بالا ذکر شد، در فاصله نزدیک‌تر باشند.

افکار نهایی

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

متشکرم که مطالعه کردید.

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