প্রকল্প সম্পর্কে
UMAP (Uniform Manifold Approximation and Projection) হলো ভিজ্যুয়ালাইজেশন এবং সাধারণ ননলিনিয়ার এমবেডিংয়ের জন্য একটি ডাইমেনশন রিডাকশন টেকনিক, যা পাইথন প্যাকেজ umap-learn হিসেবে বাস্তবায়িত। এটি scikit-learn ট্রান্সফরমারের মতো কাজ করার জন্য ডিজাইন করা হয়েছে, তাই বিদ্যমান পাইপলাইনে t-SNE-এর ড্রপ-ইন বিকল্প হিসেবে ব্যবহার করা যায়।
পদ্ধতিটি তিনটি অনুমানের উপর ভিত্তি করে: ডেটা একটি রিম্যানিয়ান ম্যানিফোল্ডে সমানভাবে বিতরণ করা, রিম্যানিয়ান মেট্রিক স্থানীয়ভাবে ধ্রুবক, এবং ম্যানিফোল্ড স্থানীয়ভাবে সংযুক্ত। এই অনুমানগুলি একটি ফাজি টপোলজিক্যাল রিপ্রেজেন্টেশন তৈরি করতে ব্যবহৃত হয়, এবং নিকটতম সমতুল্য কাঠামোসহ একটি নিম্ন-মাত্রিক প্রজেকশন খুঁজে এমবেডিং পাওয়া যায়। গণিতটি ArXiv পেপার 1802.03426-এ বর্ণিত, এবং একটি বিস্তৃত পরিচিতি Nature Reviews Methods Primers নিবন্ধে রয়েছে।
ইনস্টলেশন conda-forge (conda install -c conda-forge umap-learn) বা PyPI (pip install umap-learn) এর মাধ্যমে পাওয়া যায়। এটি scikit-learn, numpy, scipy, numba, tqdm, এবং pynndescent-এর উপর নির্ভর করে। ঐচ্ছিক এক্সট্রাগুলো প্লটিং (matplotlib, datashader, holoviews), Parametric UMAP (TensorFlow), এবং x86-এ tbb CPU অপটিমাইজেশন কভার করে।
মৌলিক ব্যবহার scikit-learn-এর অনুরূপ:
import umap
from sklearn.datasets import load_digits
digits = load_digits()
embedding = umap.UMAP().fit_transform(digits.data)
মূল প্যারামিটারগুলোর মধ্যে রয়েছে n_neighbors, যা কতটা স্থানীয় বনাম বৈশ্বিক কাঠামো সংরক্ষিত হবে তা নিয়ন্ত্রণ করে (সাধারণত 5-50, 10-15 একটি যুক্তিসঙ্গত ডিফল্ট), min_dist, যা পয়েন্টগুলো কতটা ঘনভাবে প্যাক করা হবে তা নিয়ন্ত্রণ করে (0.001-0.5, 0.1 একটি যুক্তিসঙ্গত ডিফল্ট), এবং metric, যা ইনপুট স্পেসে দূরত্ব ফাংশন নির্বাচন করে। স্পার্স ম্যাট্রিক্স ইনপুট সমর্থিত।
নথিভুক্ত সুবিধাগুলোর মধ্যে রয়েছে বড় এবং উচ্চ-মাত্রিক ডেটাসেটে গতি, সাধারণ প্রিপ্রসেসিংয়ের জন্য এমবেডিং ডাইমেনশনে স্কেলিং, কিছু বৈশ্বিক কাঠামো সংরক্ষণ, cosine এবং correlation-এর মতো নন-মেট্রিক দূরত্বের সমর্থন, transform-এর মাধ্যমে বিদ্যমান এমবেডিংয়ে নতুন পয়েন্ট যোগ করার ক্ষমতা, এবং y হিসেবে লেবেল পাস করে সুপারভাইজড বা সেমি-সুপারভাইজড রিডাকশন। পরীক্ষামূলক ফিচারগুলোর মধ্যে রয়েছে inverse transform, hyperbolic এমবেডিংয়ের মতো নন-ইউক্লিডীয় এমবেডিং, অনিশ্চয়তাসহ এমবেডিং, এবং প্রাথমিক dataframe সমর্থন।
প্যাকেজটি densMAP-ও প্রদান করে, যা densmap=True দিয়ে সক্রিয় করা যায়, এবং স্থানীয় ঘনত্বের তথ্য সংরক্ষণের জন্য UMAP-কে বর্ধিত করে। densMAP dens_frac, dens_lambda, dens_var_shift, এবং output_dens-এর মতো প্যারামিটার যোগ করে, এবং বড় n_neighbors মান (যেমন 30) সুপারিশ করে। Parametric UMAP একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণ দেয় UMAP-ভিত্তিক ট্রান্সফরমেশন শিখতে, যা অদেখা ডেটায় দ্রুততর ইনফারেন্স, আরও রোবাস্ট inverse transform, autoencoder ভ্যারিয়েন্ট, এবং সেমি-সুপারভাইজড ক্লাসিফিকেশন সমর্থন করে। একটি umap.plot সাবপ্যাকেজ hover টুল এবং ডায়াগনস্টিক অপশনসহ মৌলিক ও ইন্টারঅ্যাকটিভ প্লটিং প্রদান করে।
GPU অ্যাক্সিলারেশনের জন্য, README torchdr-এর দিকে ইঙ্গিত করে, যা একটি PyTorch-ভিত্তিক বাস্তবায়ন যা GPU-তে kNN গণনা, affinity নির্মাণ, এবং এমবেডিং অপটিমাইজেশন ত্বরান্বিত করে।
ডকুমেন্টেশন Read the Docs-এ হোস্ট করা, একটি FAQ সহ। প্রকল্পটি 3-clause BSD লাইসেন্সের অধীনে এবং অবদান স্বাগত জানায়। README ব্যবহারকারীদের JOSS সফটওয়্যার পেপার, ArXiv পেপার, এবং যেখানে প্রযোজ্য সেখানে densMAP, Parametric UMAP, এবং Nature Primer রেফারেন্স সাইট করার অনুরোধ করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.