franyack / IMachineApp

This Android application uses the CIEngine module to automatically manage the photos and images on the device. Then you will be able to manage the result according to your criteria, by moving or erasing images as you want.
1 stars 0 forks source link

Probar clustering en dataset de memes #18

Closed leferrad closed 6 years ago

leferrad commented 6 years ago

Dado que fue uno de los casos planteados en la ERS, deberíamos ver qué tipos de tags encontramos en los memes como para que caigan en un mismo cluster. En este caso sospecho que no va a ayudar mucho la matriz de afinidad hecha con embeddings, por lo que sería bueno entender si con las clasificaciones de la mobilenet es suficiente para tener un buen clustering o deberíamos tener otra regla/matriz más que ayude al respecto.

En cuantos a las imágenes a usar, creo que ya había una base de datos hecha pero dejo esta otra por las dudas: https://www.kaggle.com/sayangoswami/reddit-memes-dataset

leferrad commented 6 years ago

@franyack cuando ejecutes el protocolo de experimentos, podrías contemplar tener un conj de imágenes de memes como se explica acá? así tmb vemos cómo dan las métricas de clasificación al menos con esto, seguro sería super interesante y puede dar valor en una posible feature "opcion para separar aparte los memes".

ldvignolo commented 6 years ago

Quizás si se puede observar que siempre aparecen ciertos tags en los memes, podría plantearse alguna estrategia para modificar el peso que se le da a los embeddings para esos casos, cuando aparece tal y tal tag (cuando seguro es meme).. Habría que ver qué tira la red...

El vie., 13 jul. 2018 20:00, Leandro Ferrado notifications@github.com escribió:

@franyack https://github.com/franyack cuando ejecutes el protocolo de experimentos, podrías contemplar tener un conj de imágenes de memes como se explica acá? así tmb vemos cómo dan las métricas de clasificación al menos con esto, seguro sería super interesante y puede dar valor en una posible feature "opcion para separar aparte los memes".

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/franyack/IMachineApp/issues/18#issuecomment-404974246, or mute the thread https://github.com/notifications/unsubscribe-auth/APJ-G1b_6OGquCVOtGmqN3UJKXkhfwhCks5uGSaMgaJpZM4UZwQy .

franyack commented 6 years ago

Hice una primer prueba contemplando una carpeta de memes y estos fueron los resultados:

I/MainActivityView: - I/MainActivityView: MCL maxIt: 100 I/MainActivityView: MCL expPow: 2 I/MainActivityView: MCL infPow: 2 I/MainActivityView: - I/MainActivityView: Length of CARS (CAR) folder: 20 I/MainActivityView: Length of CAT (CAT) folder: 15 I/MainActivityView: Length of DOG (DOG) folder: 15 I/MainActivityView: Length of FOOD (FOO) folder: 15 I/MainActivityView: Length of NINEGAG (NIN) folder: 15 I/MainActivityView: - I/MainActivityView: - I/MainActivityView: Sorensen-Dice Average: 0.926484 I/MainActivityView: - I/MainActivityView: Accuracy: 0.925 I/MainActivityView: - I/MainActivityView: Precision for CAR: 1.0 I/MainActivityView: Recall for CAR: 0.85 I/MainActivityView: F1-Score for CAR: 0.9189189 I/MainActivityView: - I/MainActivityView: Precision for CAT: 1.0 I/MainActivityView: Recall for CAT: 0.93333334 I/MainActivityView: F1-Score for CAT: 0.9655172 I/MainActivityView: - I/MainActivityView: Precision for DOG: 0.9375 I/MainActivityView: Recall for DOG: 1.0 I/MainActivityView: F1-Score for DOG: 0.9677419 I/MainActivityView: - I/MainActivityView: Precision for FOO: 0.9375 I/MainActivityView: Recall for FOO: 1.0 I/MainActivityView: F1-Score for FOO: 0.9677419 I/MainActivityView: - I/MainActivityView: Precision for NIN: 0.7647059 I/MainActivityView: Recall for NIN: 0.8666667 I/MainActivityView: F1-Score for NIN: 0.8125 I/MainActivityView: - I/MainActivityView: Precision Macro-Averaging: 0.92794114 I/MainActivityView: Recall Macro-Averaging: 0.93 I/MainActivityView: F1-Score Macro-Averaging: 0.926484 I/MainActivityView: -

Una segunda prueba, aumentando la cantidad de imágenes 9gag:

I/MainActivityView: - I/MainActivityView: MCL maxIt: 100 I/MainActivityView: MCL expPow: 2 I/MainActivityView: MCL infPow: 2 I/MainActivityView: - I/MainActivityView: Length of CARS (CAR) folder: 20 I/MainActivityView: Length of CAT (CAT) folder: 15 I/MainActivityView: Length of DOG (DOG) folder: 15 I/MainActivityView: Length of FOOD (FOO) folder: 15 I/MainActivityView: Length of NINEGAG (NIN) folder: 50 I/MainActivityView: - I/MainActivityView: - I/MainActivityView: Sorensen-Dice Average: 0.6572777 I/MainActivityView: - I/MainActivityView: Accuracy: 0.773913 I/MainActivityView: - I/MainActivityView: Precision for CAR: 0.9411765 I/MainActivityView: Recall for CAR: 0.8 I/MainActivityView: F1-Score for CAR: 0.8648649 I/MainActivityView: - I/MainActivityView: Precision for CAT: 0.0 I/MainActivityView: Recall for CAT: 0.0 I/MainActivityView: F1-Score for CAT: 0.0 I/MainActivityView: - I/MainActivityView: Precision for DOG: 0.46875 I/MainActivityView: Recall for DOG: 1.0 I/MainActivityView: F1-Score for DOG: 0.63829786 I/MainActivityView: - I/MainActivityView: Precision for FOO: 0.875 I/MainActivityView: Recall for FOO: 0.93333334 I/MainActivityView: F1-Score for FOO: 0.9032258 I/MainActivityView: - I/MainActivityView: Precision for NIN: 0.88 I/MainActivityView: Recall for NIN: 0.88 I/MainActivityView: F1-Score for NIN: 0.88 I/MainActivityView: - I/MainActivityView: Precision Macro-Averaging: 0.6329853 I/MainActivityView: Recall Macro-Averaging: 0.7226666 I/MainActivityView: F1-Score Macro-Averaging: 0.6572777 I/MainActivityView: -

Como se puede ver, la categoría "gato" obtuvo 0 en todo, ya que 14 de las 15 imágenes fueron a parar a una carpeta con las 15 imágenes de perros, por lo que la clase ganadora fue perro y todas las medidas se tomaron en base a esta categoría.

Estas fueron algunas de las medidas que obtuve haciendo 2 pruebas rápidas, por supuesto que falta todavía validar y asegurar de que se están obteniendo todas las métricas de forma correcta.

leferrad commented 6 years ago

Las mejoras respecto a la clase Gato vs Perro en cómo se realiza la clasificación las podemos seguir en #24 para que este issue sólo se dedique a ver el desempeño del clustering con memes. En principio parecen alentadores los resultados! Sería bueno probar con más memes, y de hecho que la proporción d estas imágenes sean mayor al resto d las clases para ver cómo eso afecta al clustering. Por ejemplo, 15 de cada clase, salvo la de memes que tiene que tener 50 o 100.

ldvignolo commented 6 years ago

Muy bueno! ¿esto es usando embeddings o sólo con los tags? me llama la atención como en el primer caso no tiene problema con los gatos, pero al aumentar la cantidad de memes los deja de clasificar bien. Estaría bueno entender porqué pasa eso... ¿habrá muchos memes con gatos en el conjunto que armaste?

Dr. Leandro Daniel Vignolo Assistant Professor | Assistant Research Scientist sinc(i), FICH-UNL/CONICET, Santa Fe, Argentina www.sinc.unl.edu.ar | Tel: +54 (342) 4575233 ext 117

2018-07-16 21:40 GMT-03:00 Leandro Ferrado notifications@github.com:

Las mejoras respecto a la clase Gato vs Perro en cómo se realiza la clasificación las podemos seguir en #24 https://github.com/franyack/IMachineApp/issues/24 para que este issue sólo se dedique a ver el desempeño del clustering con memes. En principio parecen alentadores los resultados! Sería bueno probar con más memes, y de hecho que la proporción d estas imágenes sean mayor al resto d las clases para ver cómo eso afecta al clustering. Por ejemplo, 15 de cada clase, salvo la de memes que tiene que tener 50 o 100.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/franyack/IMachineApp/issues/18#issuecomment-405423111, or mute the thread https://github.com/notifications/unsubscribe-auth/APJ-Gzugc_0TTGOdCma4xhRzjEaWBvUwks5uHTKGgaJpZM4UZwQy .

franyack commented 6 years ago

Acerca del último comentario de @leferrad :

Sería bueno probar con más memes, y de hecho que la proporción d estas imágenes sean mayor al resto d las clases para ver cómo eso afecta al clustering. Por ejemplo, 15 de cada clase, salvo la de memes que tiene que tener 50 o 100.

Hice una tercera prueba, en base a lo citado arriba, y el resultado es el siguiente:

I/MainActivityView: - I/MainActivityView: MCL maxIt: 100 I/MainActivityView: MCL expPow: 2 I/MainActivityView: MCL infPow: 2 I/MainActivityView: - I/MainActivityView: Length of CARS (CAR) folder: 15 I/MainActivityView: Length of CAT (CAT) folder: 15 I/MainActivityView: Length of DOG (DOG) folder: 15 I/MainActivityView: Length of FOOD (FOO) folder: 15 I/MainActivityView: Length of NINEGAG (NIN) folder: 100 I/MainActivityView: - I/MainActivityView: - I/MainActivityView: Sorensen-Dice Average: 0.6349334 I/MainActivityView: - I/MainActivityView: Accuracy: 0.80625 I/MainActivityView: - I/MainActivityView: Precision for CAR: 0.78571427 I/MainActivityView: Recall for CAR: 0.73333335 I/MainActivityView: F1-Score for CAR: 0.7586207 I/MainActivityView: - I/MainActivityView: Precision for CAT: 0.0 I/MainActivityView: Recall for CAT: 0.0 I/MainActivityView: F1-Score for CAT: 0.0 I/MainActivityView: - I/MainActivityView: Precision for DOG: 0.42857143 I/MainActivityView: Recall for DOG: 1.0 I/MainActivityView: F1-Score for DOG: 0.59999996 I/MainActivityView: - I/MainActivityView: Precision for FOO: 0.875 I/MainActivityView: Recall for FOO: 0.93333334 I/MainActivityView: F1-Score for FOO: 0.9032258 I/MainActivityView: - I/MainActivityView: Precision for NIN: 0.9368421 I/MainActivityView: Recall for NIN: 0.89 I/MainActivityView: F1-Score for NIN: 0.9128205 I/MainActivityView: - I/MainActivityView: Precision Macro-Averaging: 0.60522556 I/MainActivityView: Recall Macro-Averaging: 0.7113334 I/MainActivityView: F1-Score Macro-Averaging: 0.6349334 I/MainActivityView: -

Como se puede ver, se logran buenos resultados para la clase "NIN" (siempre y cuando lo desarrollado en #23 esté trabajando de manera correcta jaja) . El detalle que hay que destacar, es que se generaron varias carpetas (7 de 14 en total), con 1, 2 o 3 imágenes de esta clase **, las cuales cuando son evaluadas se unen a la carpeta más grande que contiene a la gran mayoría de las 100 imágenes de prueba.

** Mas detalle: 2 carpetas con 1 imagen "NIN". 2 carpetas con 2 imágenes "NIN". 3 carpetas con 3 imagenes "NIN".

Con respecto a tu pregunta @ldvignolo, se está considerando en la misma proporción tanto la matriz de afinidad de los embeddings como la de los tags. Para la segunda pregunta, revisé el conjunto de imágenes y ninguna tiene gatos. Además, a las imágenes de la clase gatos las pone con los perros, y la carpeta más grande de memes solo contiene 1 imagen de la categoría gatos. Como dijo @leferrad , mejor sigamos este tema de mejoras con respecto a las demás categorías en #24 y usemos este issue para los memes.

leferrad commented 6 years ago

Dado que ya se pudo experimentar sobre esta clase de imágenes, y los resultados son buenos, se puede seguir la viabilidad de esta característica como parte de la app en #41 . Por lo tanto se cierra este issue.