Presentamos TensorFlow Similarity

Nodo de origen: 1079311

Presentamos TensorFlow Similarity

TensorFlow Similarity es una biblioteca recientemente lanzada por Google que facilita el entrenamiento, la indexación y la consulta de modelos de similitud. Vea más aquí.


A menudo necesitamos poder encontrar cosas que sean como otras cosas. Búsqueda de similitudes es una técnica útil para hacerlo. En ciencia de datos, aprendizaje contrastivo se puede usar para construir modelos de similitud que luego se pueden usar para la búsqueda de similitudes.

Modelos de similitud están capacitados para generar incrustaciones en las que los elementos están integrados en un espacio métrico, lo que da como resultado una situación en la que elementos similares están cerca unos de otros y más lejos de elementos diferentes. Esto está directamente relacionado, tanto intuitiva como matemáticamente, con las incrustaciones de palabras, con las que ya está familiarizado; París y Londres están cerca uno del otro, al igual que la mostaza y el ketchup, pero estos 2 grupos están comparativamente más separados entre sí.

De la misma manera, podríamos usar un modelo de similitud para comparar, digamos, vehículos. Por ejemplo, los sedanes BMW y Mercedes estarían incrustados uno cerca del otro, mientras que las motocicletas Yamaha y Kawasaki se encontrarían muy incrustadas. Las motocicletas estarían relativamente más alejadas de los sedanes, que a su vez, estarían distanciados de otros vehículos diferentes como botes, autocaravanas, camionetas, bicicletas, etc.

Figura
Descripción general del modelo de similitud (fuente)

 

El aprendizaje profundo se utiliza para entrenar las redes neuronales que a menudo se utilizan para estos modelos de similitud. Para facilitar el entrenamiento de tales modelos, Google ha lanzado recientemente Similitud de TensorFlow.

Tensorflow Similarity ofrece algoritmos de última generación para el aprendizaje de métricas y todos los componentes necesarios para investigar, entrenar, evaluar y ofrecer modelos basados ​​en similitudes.

Una vez entrenado un modelo, se crea un índice de incrustaciones para facilitar la búsqueda. Para la búsqueda, TF Similarity utiliza la búsqueda rápida aproximada del vecino más cercano (ANN) para recuperar las coincidencias más cercanas. Como la distancia entre elementos incrustados es una función de una métrica de distancia, las búsquedas son rápidas y precisas con ANN.

Los modelos de similitud también son flexibles y extensibles, lo que permite agregar un número ilimitado de clases de elementos al modelo sin tener que volver a capacitarse; simplemente calcule las incorporaciones representativas de nuevos elementos y agréguelas al índice existente.

Figura
Descripción general de TensorFlow Similarity (fuente)

 

TensorFlow Similarity facilita el entrenamiento de modelos de similitud, así como las consultas posteriores, intuitivas, especialmente con la introducción del nuevo modelo de Keras SimilarityModel(), que admite la incrustación de indexación y consultas. Con TF Similarity, el entrenamiento y la consulta de modelos de un extremo a otro son sencillos.

Para demostrar, aquí hay un código de ejemplo de la similitud de TF Repositorio de GitHub que entrena, indexa y consulta de forma concisa el conjunto de datos MNIST.

de tensorflow.keras importar capas # Incrustación de capa de salida con norma L2 de tensorflow_similarity.layers import MetricEmbedding # Pérdida métrica especializada de tensorflow_similarity.losses import MultiSimilarityLoss # Modelo de keras subclasificado con soporte para indexación desde tensorflow_similarity.models import Similarity thatModels pull sampler # Datasets directamente desde el catálogo de conjuntos de datos tf desde tensorflow_similarity.samplers import TFDatasetMultiShotMemorySampler usando capas estándar de Keras entradas = capas.Input (forma = (10, 28, 28)) x = capas.Rescaling (1/1) (entradas) x = capas.Conv255D (2, 64, activación = 'relu') ( x) x = capas.Aplanado () (x) x = capas.Denso (3, activación = 'relu') (x) salidas = MetricEmbedding (64) (x) # B uild un modelo de modelo de similitud especializado = SimilarityModel (entradas, salidas) # Entrene el modelo de similitud usando el modelo de pérdida contrastiva. para hacerlos buscables sx, sy = sampler.get_slice (64) model.index (x = sx, y = sy, data = sx) # Encuentra los 5 ejemplos de MNIST indexados más similares para un ejemplo dado qx, qy = sampler. get_slice (100, 0,100) nns = model.single_lookup (qx [5]) # Visualice el ejemplo de consulta y sus 3713 vecinos principales viz_neigbors_imgs (qx [1], qy [0], nns)


Si busca cosas que se parecen a otras cosas, TensorFlow Similarity puede ayudarlo. Puedes encontrar más en su Repositorio GitHubO echa un vistazo a la Hola Mundo ejemplo para ir directo a ello.

 
Relacionado::

Fuente: https://www.kdnuggets.com/2021/09/introducing-tensorflow-similarity.html

Sello de tiempo:

Mas de nuggets