Esittelyssä TensorFlow Similarity

Lähdesolmu: 1079311

Esittelyssä TensorFlow Similarity

TensorFlow Samankaltaisuus on Googlen äskettäin julkaisema kirjasto, joka helpottaa samankaltaisuusmallien koulutusta, indeksointia ja kyselyitä. Katso lisää täältä.


Usein meidän on pystyttävä löytämään asioita, jotka ovat kuin muut asiat. Samankaltaisuuden haku on hyödyllinen tekniikka sen tekemiseen. Tietotieteessä, kontrastiivinen oppiminen voidaan käyttää samankaltaisuusmallien rakentamiseen, joita voidaan sitten käyttää samankaltaisuushakuun.

Samankaltaisuusmalleja on koulutettu tulostamaan upotuksia, joissa kohteet upotetaan metriseen tilaan, mikä johtaa tilanteeseen, jossa samanlaiset kohteet ovat lähellä toisiaan ja kauempana erilaisista kohteista. Tämä liittyy suoraan – sekä intuitiivisesti että matemaattisesti – sinulle jo tuttuihin sanojen upottamiseen; Pariisi ja Lontoo ovat lähellä toisiaan, samoin kuin sinappi ja ketsuppi, mutta nämä kaksi ryhmää ovat verrattain kauempana toisistaan.

Samalla tavalla voisimme käyttää samankaltaisuusmallia esimerkiksi ajoneuvojen vertailuun. Esimerkiksi BMW- ja Mercedes-sedanit olisi upotettu lähelle toisiaan, kun taas Yamaha- ja Kawasaki-moottoripyörät olisivat tiiviisti upotettuina. Moottoripyörät olisivat suhteellisen kauempana sedaneista, jotka puolestaan ​​olisivat kaukana muista erilaisista ajoneuvoista, kuten veneistä, matkailuautoista, pakettiautoista, polkupyöristä jne.

Kuva
Samankaltaisuusmallin yleiskatsaus (lähde)

 

Syväoppimista käytetään kouluttamaan hermoverkkoja, joita usein käytetään näissä samankaltaisuusmalleissa. Tällaisten mallien koulutuksen helpottamiseksi Google on äskettäin julkaissut TensorFlow-samankaltaisuus.

Tensorflow Samankaltaisuus tarjoaa huippuluokan algoritmeja metrinen oppimiseen ja kaikki tarvittavat komponentit samankaltaisuuspohjaisten mallien tutkimiseen, kouluttamiseen, arviointiin ja palvelemiseen.

Mallin koulutuksen jälkeen luodaan upotushakemisto haun helpottamiseksi. Hakua varten TF Samankaltaisuus käyttää nopeaa lähin naapurihakua (ANN) löytääkseen lähimmät osumat. Koska upotettujen kohteiden välinen etäisyys on etäisyysmittarin funktio, haut ovat sekä nopeita että tarkkoja ANN:n avulla.

Samankaltaisuusmallit ovat myös joustavia ja laajennettavissa, mikä mahdollistaa rajoittamattoman määrän esineluokkien lisäämisen malliin ilman uudelleenkoulutusta; yksinkertaisesti laskea edustavat uudet nimikkeiden upotukset ja lisää ne olemassa olevaan hakemistoon.

Kuva
TensorFlow-samankaltaisuuden yleiskatsaus (lähde)

 

TensorFlow Samankaltaisuus helpottaa samankaltaisuusmallien koulutusta ja myöhempää kyselyä intuitiivisesti erityisesti uuden Keras-mallin käyttöönoton myötä SimilarityModel(), joka tukee upottamista indeksointia ja kyselyjä. TF Samankaltaisuuden avulla mallin harjoittelu ja kyselyjen tekeminen on yksinkertaista.

Havainnollistamiseksi tässä on esimerkkikoodi TF-samankaltaisuudesta GitHub Repo joka kouluttaa, indeksoi ja tekee kyselyitä ytimekkäästi MNIST-tietojoukosta.

osoitteesta tensorflow.keras tuontitasot # Tulostason upottaminen L2-normilla tensorflow_similarity.layers-tuonnista MetricEmbedding # Erikoistunut metrihäviö tensorflow_similarity.losses -tuonnista MultiSimilarityLoss # Alaluokiteltu keras Malli, joka tukee indeksointia osoitteesta tensorflow_similarity.models, tuonti samankaltaisuusmalli # Dataset sampler that pulls suoraan tf-tietojoukon luettelosta osoitteesta tensorflow_similarity.samplers tuo TFDatasetMultiShotMemorySampler # Lähin naapuri visualisaattori osoitteesta tensorflow_similarity.visualization import viz_neigbors_imgs # Data sampleri, joka luo tasapainotetut erät MNIST-tietojoukosta modelper10. käyttämällä tavallisia Keras-tasoja syötteet = kerrokset.Syöte(muoto=(28, 28, 1)) x = kerrokset.Uudelleenskaalaus(1/255)(tulot) x = kerrokset.Conv2D(64, 3, aktivointi='relu')( x) x = kerrokset. Tasoita()(x) x = kerrokset.Tiheä(64, aktivointi='relu')(x)-ulostulot = MetricEmbedding(64)(x) # B uild erikoistunut samankaltaisuusmalli = Samankaltaisuusmalli(sisääntulot, lähdöt) # Harjoittele samankaltaisuusmalli kontrastiivisen häviön mallilla.compile('adam', loss=MultiSimilarityLoss()) model.fit(sampler, epochs=5) # Indeksi 100 upotettua MNIST-esimerkkiä tehdäksesi niistä haettavia sx, sy = sampler.get_slice(0,100) model.index(x=sx, y=sy, data=sx) # Etsi 5 samankaltaisinta indeksoitua MNIST-esimerkkiä tietylle esimerkille qx, qy = sampler. get_slice(3713, 1) nns = model.single_lookup(qx[0]) # Visualisoi kyselyesimerkki ja sen viisi suurinta naapuria viz_neigbors_imgs(qx[5], qy[0], nns)


Jos huomaat etsiväsi asioita, jotka ovat samanlaisia ​​kuin muut asiat, TensorFlow Samankaltaisuus voi auttaa. Löydät lisää heiltä GitHub repotai tarkista Hei maailma esimerkkiä päästäksesi oikeaan asiaan.

 
liittyvä:

Lähde: https://www.kdnuggets.com/2021/09/introducing-tensorflow-similarity.html

Aikaleima:

Lisää aiheesta KDnuggets