معرفی تشابه TensorFlow

گره منبع: 1079311

معرفی تشابه TensorFlow

TensorFlow Similarity یک کتابخانه جدید منتشر شده از گوگل است که آموزش، نمایه سازی و جستجوی مدل های مشابه را تسهیل می کند. بیشتر اینجا را بررسی کنید.


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

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

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

شکل
نمای کلی مدل شباهت (منبع)

 

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

Tensorflow Similarity الگوریتم های پیشرفته ای را برای یادگیری متریک و تمام اجزای لازم برای تحقیق، آموزش، ارزیابی و ارائه مدل های مبتنی بر شباهت ارائه می دهد.

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

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

شکل
نمای کلی تشابه TensorFlow (منبع)

 

TensorFlow Similarity آموزش مدل های شباهت و همچنین پرس و جوی بعدی را آسان می کند، به ویژه با معرفی مدل جدید Keras. SimilarityModel()، که از تعبیه نمایه سازی و پرس و جو پشتیبانی می کند. با TF Similarity، آموزش مدل و پرس و جو از انتها به پایان ساده است.

برای نشان دادن، در اینجا کد مثال از شباهت TF آورده شده است GitHub Repo که به طور خلاصه مجموعه داده MNIST را آموزش می دهد، فهرست می کند و پرس و جو می کند.

از لایه‌های واردات tensorflow.keras # جاسازی لایه خروجی با استاندارد L2
از tensorflow_similarity.layers import MetricEmbedding # تلفات متریک تخصصی
از tensorflow_similarity.losses import MultiSimilarityLoss # مدل keras زیر کلاس با پشتیبانی از نمایه سازی
از tensorflow_similarity.models import SimilarityModel
# نمونه‌بردار داده که مجموعه داده‌ها را مستقیماً از کاتالوگ مجموعه داده tf می‌کشد
از tensorflow_similarity.samplers وارد کردن TFDatasetMultiShotMemorySampler
# نزدیکترین تصویرساز همسایه
from tensorflow_similarity.visualization import viz_neigbors_imgs # نمونه‌گر داده که دسته‌های متعادلی را از مجموعه داده MNIST تولید می‌کند
سمپلر = TFDatasetMultiShotMemorySampler(dataset_name='mnist', classes_per_batch=10) # ساخت یک مدل مشابه با استفاده از لایه های استاندارد Keras
ورودی ها = لایه ها. ورودی(شکل=(28، 28، 1))
x = لایه‌ها. تغییر مقیاس (1/255) (ورودی‌ها)
x = layers.Conv2D(64, 3, activation='relu')(x)
x = لایه ها. Flatten()(x)
x = layers.Dense(64, activation='relu')(x)
خروجی ها = MetricEmbedding(64)(x) # ساخت یک مدل تشابه تخصصی
مدل = SimilarityModel (ورودی‌ها، خروجی‌ها) # Train مدل شباهت با استفاده از افت کنتراست
model.compile('adam', loss=MultiSimilarityLoss())
model.fit(sampler, epochs=5) # Index 100 نمونه‌های MNIST تعبیه‌شده برای قابل جستجو کردن آنها
sx, sy = sampler.get_slice(0,100)
model.index(x=sx, y=sy, data=sx) # 5 نمونه برتر نمایه شده MNIST را برای یک مثال مشخص پیدا کنید
qx، qy = sampler.get_slice(3713، 1)
nns = model.single_lookup(qx[0]) # مثال پرس و جو و 5 همسایه برتر آن را تجسم کنید
viz_neigbors_imgs(qx[0]، qy[0]، nns)


اگر متوجه شدید که به دنبال چیزهایی هستید که شبیه چیزهای دیگر هستند، TensorFlow Similarity ممکن است بتواند به شما کمک کند. می توانید اطلاعات بیشتری را در آنها پیدا کنید GitHub repo، یا بررسی کنید سلام جهان مثال برای رسیدن به آن.

 
مربوط:

منبع: https://www.kdnuggets.com/2021/09/introducing-tensorflow-similarity.html

تمبر زمان:

بیشتر از kdnuggets