h1

Summary of parameters

marzo 7, 2011

Distribution ImageEsta entrada está dedicada detallar los parámetros que se usan a la hora de realizar entremaiento y test

 

CLASES

– building

– flower

– landscape

– people

A la hora de entrenar es necesario entrenar con al menos dos clases. Es obligado ya que al entrenar solo con una clase, “flower”, a lo hora de clasificar para él todo es “flower”. Esto sucede  debido a que es lo único que conoce. Así que si se quiere hacer una clasificación al estilo “flower” o cualquier otra cosa, habría que crear una clase “unknown” y etiquetar con ella cualquier cosa que no sea “flower”. De esta manera el clasificador sabría lo que es “flower” y que el resto es “unknown”.

 

NÚMERO DE IMÁGENES

Se han escogido 40 imágenes de cada clase. Dichas imágenes han sido utilizadas para el entrenamiento y la clasificación. El reparto de imágenes se ha realizado con la siguiente distribución

– 10% -> del total para entreamiento (4). El resto para clasificación (36)

– 25% -> del total para entreamiento (10). El resto para clasificación (30)

– 50% -> del total para entreamiento (20). El resto para clasificación (20)

De forma que se puede preparar el entorno con cualquiera de estas distribuciones

 

 

h1

Attribute selection by group of characteristic

marzo 3, 2011

Attribute selection by group of characteristicUn pequeño paso mas que nos ha llevado a la implementación del borrado de cojuntos mayores de atributos

1) RGB + Nº de repeticiones del color mas repetido + RGB + Nº de repeticiones del 2º color mas repetido

2) % líneas verticales + % líneas horizontales

3) % líneas oblícuas \ y % líneas oblicuas /

En principio no hay pensadas mas baterías de selección de atributos. A continuación se resumen los distintos tipos de selección de atributos que se han implementado.

– Borrado por características (borrado de un único grupo x todos los grupos)

– Borrado por características inverso (borrado de todos los grupos excepto uno x todos los grupos)

– Borrado por grupos de características (borrado de un único “nuevo” grupo de características x todos los grupos)

– Borrado por zonas (borrado de una única zona x todas las zonas definidas)

Todos estos tipos de borrado se han impletado de forma que se realice para high y low resolution.

Entorno de ejecución

Para la ejecución se puede elegir una combinación entre clases a utilizar (mínimo 2; máximo 4) y porcentaje de imágenes a usar en el entrenamiento

– CLASES: building – flower – landscape – people

– % TRAIN: 10 – 25 – 50

Cualquier combinación entre estos tipos es posible y se puede llevar a cabo. Incluso se puede preparar el entorno (tan solo con ejecutar un script) para que se ejecute para la combinación de todos. Lo cual nos da un número de 30 posibles entornos distintos a los que aplicar nuestras baterías de selección de atributos

 

h1

Attribute selection by characteristic

marzo 2, 2011

By CharacteristicEn este paso se ha llevado a cabo el desarrollo de  la eliminación de atributos basándonos en los grupos de caracaterísticas creados anterirormente. En este caso se ha hecho justo lo contrario a lo que ya se tenía en borrado por características. Y es que se ha mantenido un único grupo de características mientras que se ha procedido al borrado del resto. De esta manera podemos observar cual es el impacto directo de cada uno de los grupos de características, por si solos,  en nuestros resultados.

El siguiente paso, como ya se comentó anteriormente, será la ampliación de los grupos de características y el realizar otra batería de borrado para estos nuevos grupos.

h1

Attributes selection by zone

marzo 1, 2011

Como se comentaba en la anterior entrada. Ya se ha conseguido realizar una selección de atributos en función de las zonas. La selección de atributos queda de la siguiente manera:

NARANJA -> Zonas cuyos atributos NO se tienen en cuenta

GRIS -> Zonas cuyos atributos SI se tienen en cuenta

* Para baja resolución (LOW Res 3×3)

0     -> Nothing will be deleted

3x3_nothing

1     -> Center will be deleted (gr1)

3x3_center

2     -> Periphery wil be deleted (gr1)
3x3_periphery

* Para alta resolución (HIGH Res 5×5)

0     -> Nothing will be deleted

1     -> Center will be deleted (gr1)

5x5_center_gr1

2     -> Periphery wil be deleted (gr1)

5x5_periphery_gr1

3     -> Center will be deleted (gr2)

5x5_center_gr2

4     -> Periphery will be deleted (gr2)

5x5_periphery_gr2

* Por características

En cuanto a la selección por características. Avanzar que ya está decididos los grupos de borrado

– Divididas en 7 grupos, borrando uno cada iteración (usando 6)

– Divididas en 7 grupos, borrado de todas excepto una (usando 1)

– Unsando los grupos originalmente definidos se harán agrupaciones mayores

1)  Los 8 componentes de color (RGB + Nº apariciones + RGB + Nº de apariciones)

2) % de líneas verticales y % de líneas horizontales

3) % de líneas oblicuas / y % de líneas oblicuas \

4) Nº de caras

h1

New setting for training and testing

enero 19, 2011

New settings for training and testtingTras una agradable y productiva charla con uno de mis tutores (Antonio). Hemos definido un nuevo escenario de pruebas. Con esto me refiero a una ampliación de pruebas con respescto a las que teníamos. Para ello hemos dividido la selección de atributos en dos ramas principales. Por un lado centrarnos en las regiones definidas por Alvaro y en función a estas hacer clasificaciones utilizando distintas áreas de la imagen. Y por el otro lado profundizar mas en la selección de características (grupos de atributos creados anteriormente). A continuación detallo estas dos ramas:

 

* POR REGIONES

– Toda las regiones

– Centrales (1×1, 1×1+3×3)

– Periferia (3×3, 5×5, 5×5+3×3)

– División Horizontal (en mente)

NOTA: Cuando consideramos imágenes de alta resolución (5×5 regiones) tenemos distintos grados de centro y de periferia. Por ello lo de 1×1+2×2, ….

 

* POR CARACTERÍSTICAS

– Divididas en 7 grupos, borrando uno cada iteración (usando 6)

– Divididas en 7 grupos, borrado de todas excepto una (usando 1)

– Unsando los grupos originalmente definidos. Probar con distintas agrupaciones de estos (se definirán mas adelante)

 

Todo esto para los dos tipos de resolución/región que se han utilizado anteriormente. Esto ayudará a saber que regiones, partes de la imagen, son mas relevantes. También mostrará qué grupos de atributos destacan mas frente a otros. Con todo esto se podrá hacer una seleción de regiones y atributos en base al mayor porcentaje de acierto e intentar obtener buenos resultados.

 

h1

Needs train harder?

diciembre 14, 2010

Estuve investigando los problemas comentados en la entrada anterior. Y se llegaron a las siguientes conclusiones.

En el código que tenía hecho para borrado de attributos tan solo añadía a la cabecera (complemento el nombre de la relacion) los elementos que se iban a borrar.

@relation imageRelation-weka.filters.unsupervised.attribute.Remove-R5

Sin darme cuenta de que esto no era sufciente para borrar los attibutos. Ya que para ello también era necesario borrarlo del listado de attributos

@attribute 1 numeric
@attribute 2 numeric
@attribute 3 numeric
@attribute 4 numeric
@attribute 5 numeric

Y para terminar también borrar los datos pertenecientes a ese atributo

@data
1,2,3,4,5
1,2,3,4,5
23,434,54,23,34
23,2,435,54,45

Cuando vi esto y lo trabajoso que podía llegar a ser, pensé que tenía que haber una manera mas fácil de hacerlo. Y así  es. Hay un método (filtro) de weka para eliminar atributos. A este se le pasa un listado de parámetros

1-3,20-25  ….

y se le especifica si son los que se quieren borrar (false) o si son los que se quieren mantener (true). Esto último implica que borra el resto.

Training harderUna vez visto esto, y haberme fustigado unas cuantas veces por la perdida de tiempo con la anterior idea, me puse manos a la obra para reestructurar el código en función de la nueva metodología a seguir.

Tras hacer correr unos test con las distintas opciones de borrado se han obtenido procentajes de aciertos bastante bajos (57% – 67%). Esto puede ser debido a que el entrenamiento es insuficiente ya que tan solo lo estoy haceindo con unas 12 instancias de cada clase. Es por ello que el siguiente paso se va a centrar en seleccionar mas imágenes para entrenamiento. Y así poder aumentar el porcentaje de acierto o por el contrario descartarlo como impedimento y ver qué puede estar fallando

 

h1

Something is wrong

diciembre 10, 2010

ThinkingTras unos problemillas con los ficheros de datos (algunos parámetros se perdían en la extracción de datos. Ahora solucionado. Gracias Alvaro) he conseguido pasarle al clasificador los ficheros de datos con nuestras listas de parámetros. Los resultados han sido bastante pésimos. Me explico:

Para entrenar el clasificador le alimento con un ARFF en el que a parte de todos los datos se indica si quiero prescindir de alguno.

Para realizar el test es el mismo proceso que el anterior.

Para realizarlo para la todas las opciones que tengo de borrado (estan enumeradas de 0 a 7) tan solo he tenido que crear un bucle e ir creando los ficheros ARFF en función de la variable contadora de dicho bucle. De esta manera cada vez entreno y testeo con unos atributos distintos. En este mismo bucle tengo añadido un fichero de estadísticas el cual me guarda le resultado del entrenamiento y el posterior testeo. De esta manera tengo los resultados de cada “ronda” en ficheros independientes.

Una vez vista la metodología viene la explicación del PROBLEMA. El caso es que al comprobar los resultados de los tests, siempre se observa el mismo porcentaje de acierto/error. He comprobado que no me esté generando siempre los mismos ficheros. Por lo que esto me indica que algo está pasando, como si no hiciese caso alguno de los distintos atributos que se usan en cada una de las iteraciones. Haciendo alguna pruebecilla con la interfase gráfica he visto algo que no me gusta mucho:

=== Run information ===

Scheme:       weka.classifiers.trees.ADTree -B 10 -E -3
Relation:     imageRelation
Instances:    30
Attributes:   110
[list of attributes omitted]
Test mode:    user supplied test set:  size unknown (reading incrementally)

No me gusta nada la línea que destaco en negrita