היכרות עם דמיון TensorFlow

צומת המקור: 1079311

היכרות עם דמיון TensorFlow

TensorFlow Similarity היא ספרייה שפורסמה לאחרונה מגוגל המאפשרת הדרכה, אינדקס ושאילתה של מודלים של דמיון. בדוק עוד כאן.


לעתים קרובות אנחנו צריכים להיות מסוגלים למצוא דברים שהם כמו דברים אחרים. חיפוש דמיון היא טכניקה שימושית לעשות זאת. במדעי הנתונים, למידה ניגודית יכול לשמש לבניית מודלים של דמיון אשר לאחר מכן ניתן להשתמש בהם לחיפוש דמיון.

מודלים של דמיון מאומנים להטמעות שבהן פריטים מוטמעים במרחב מטרי, וכתוצאה מכך מצב שבו פריטים דומים קרובים זה לזה ומתרחקים מפריטים לא דומים. זה קשור ישירות - הן אינטואיטיבית והן מבחינה מתמטית - להטמעות מילים, שאתה כבר מכיר; פריז ולונדון קרובות זו לזו, וכך גם חרדל וקטשופ, אבל 2 הקבוצות הללו רחוקות יותר זו מזו.

באותו אופן, נוכל להשתמש במודל דמיון להשוואה, למשל, כלי רכב. לדוגמה, מכוניות ב.מ.וו ומרצדס סדאן יהיו משובצות קרוב אחת לשניה, בעוד שאופנועי ימאהה וקוואסאקי ימצאו את עצמם משובצים באופן הדוק. האופנועים יהיו רחוקים יחסית ממכוניות הסדאן, אשר, בתורן, יהיו מרוחקות מכלי רכב שונים אחרים כגון סירות, מנוע, טנדרים, אופניים וכו'.

תרשים
סקירת מודל דמיון (מָקוֹר)

 

למידה עמוקה משמשת לאימון הרשתות העצביות שלעתים קרובות מוצאות את עצמן משמשות למודלים של דמיון אלו. כדי להקל על ההכשרה של דגמים כאלה, גוגל פרסמה לאחרונה דמיון TensorFlow.

Tensorflow Similarity מציעה אלגוריתמים חדישים ללמידה מטרית ואת כל הרכיבים הדרושים למחקר, אימון, הערכה ושירות של מודלים מבוססי דמיון.

לאחר הכשרת מודל, נבנה אינדקס הטמעות על מנת להקל על החיפוש. לחיפוש, TF Similarity משתמש בחיפוש קרוב קרוב ביותר (ANN) כדי לאחזר את ההתאמות הקרובות ביותר. מכיוון שהמרחק בין פריטים מוטבעים הוא פונקציה של מדד מרחק, חיפושים מהירים ומדויקים באמצעות ANN.

מודלים של דמיון הם גם גמישים וניתנים להרחבה, ומאפשרים להוסיף לדגם מספר בלתי מוגבל של מחלקות פריטים ללא הסבה מחדש; פשוט חשב הטמעות פריטים חדשים מייצגים והוסף אותם לאינדקס הקיים.

תרשים
סקירת דמיון TensorFlow (מָקוֹר)

 

TensorFlow Similarity מאפשר אימון של מודלים של דמיון, כמו גם את השאילתות הבאות, אינטואיטיבי, במיוחד עם הצגת המודל החדש של Keras SimilarityModel(), התומך בהטמעת אינדקס ושאילתות. עם TF Similarity, הדרכה ושאילתות של מודלים מקצה לקצה הם פשוטים.

כדי להדגים, הנה קוד לדוגמה מהדמיון TF ריפו של GitHub שמאמן באופן תמציתי, אינדקס ושאילתה של מערך הנתונים של MNIST.

משכבות ייבוא ​​של tensorflow.keras # הטמעת שכבת פלט עם נורמה L2 מ-tensorflow_similarity.layers import MetricEmbedding # אובדן מטרי מיוחד מ-tensorflow_similarity.losses import MultiSimilarityLoss # Keras תת-מחלקות מודל עם תמיכה באינדקס מ-tensorflow_similarity.models pull data data Similarity. ישירות מקטלוג הנתונים של tf מ-tensorflow_similarity.samplers ייבוא ​​TFDatasetMultiShotMemorySampler # Visualizer השכן הקרוב מ-tensorflow_similarity.visualization import viz_neigbors_imgs # דגימת נתונים שיוצרים אצווה מאוזנת מ-MNIST_datasetm-sampler = TFDatas-datasetm _per_batch=10) # בנה מודל דמיון שימוש בשכבות Keras סטנדרטיות inputs = layers.Input(shape=(28, 28, 1)) x = layers.Rescaling(1/255)(inputs) x = layers.Conv2D(64, 3, activation='relu')( x) x = layers.Flatten()(x) x = layers.Dense(64, activation='relu')(x) outputs = MetricEmbedding(64)(x) # בניית מודל מיוחד של Similarity Model = SimilarityModel(inputs, פלטים) # רכבת מודל דמיון באמצעות הפסד ניגודי model.compile('adam', loss=MultiSimilarityLoss()) model.fit(sampler, epochs=5) # אינדקס 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 ריפו, או לבדוק את שלום עולם דוגמה להגיע ישר אליו.

 
מוצרים מקושרים:

מקור: https://www.kdnuggets.com/2021/09/introducing-tensorflow-similarity.html

בול זמן:

עוד מ KDnuggets