Showing posts with label Neural Networks. Show all posts
Showing posts with label Neural Networks. Show all posts

Friday, December 7, 2012

Sentence Recognition Using Hopfield Neural Network

El sistema propuesto utiliza los clasificadores de Hopfield para categorizar a las oraciones de acuerdo a su significado. Un clasificador de Hopfield es una red neuronal que trabaja de manera recursiva busca situar su salida en uno de los puntos dados. La arquitectura general se muestra en la siguiente figura:

image

El primer módulo es encargado de extraer las oraciones que serán utilizadas en el sistema. Las oraciones y por tanto la base de datos son específicas de un dominio y deben ser relevantes para la clasificación.

Las oraciones son enviadas al segundo módulo en el que son separadas en palabras y son codificadas en una matriz. Se emplea una codificación binaria (1 y -1). La matriz tiene en cuenta la letra que ocupa cada posición dentro de la palabra. Las columnas representan cada letra dentro del alfabeto mientras que las filas representan la posición en la que se encuentra. La siguiente figura es el ejemplo de la representación de la palabra “web”.

image

Siendo la red de Hopfield una red recurrente por lo que la salida de cada nodo repercute en los pesos de las otras neuronas. Se crea la red dando como entrada una serie de vectores que corresponden a las diversas clases. El número de dimensiones debe corresponder al número de componentes binarios.

El módulo de reconocimiento de palabra, es una red neuronal entrenada con ciertas palabras de la base de datos y tiene como objetivo arrojar la palabra conocida (de las empleadas en el entrenamiento) más apegada a la palabra que se dio como entrada.

Las palabras obtenidas se juntan para obtener un patrón que describe a la oración y que requiere el módulo de codificación de oraciones. El módulo consta de otra red neuronal entrenada con las oraciones de la base de datos. Al final se obtiene una oración que debe tener el mismo significado. La siguiente figura muestra el patrón utilizado como entrada:

image

La base de datos empleada para las pruebas consta de 500 oraciones. Para el entrenamiento se hizo uso de 50 oraciones. Se emplearon las palabras dentro de las 50 oraciones y se agregaron otras 100. Los detalles de las redes empleadas se muestran a continuación:

image

Empleando los parámetros descritos, lograron clasificar correctamente el 92.2% de las oraciones de entrada según su significado. Los resultados se muestran a continuación:

image

Se trabaja con un diccionario finito y se propone como trabajo a futuro la extensión de este modelo a sistemas expertos (se propone uno médico como ejemplo).

Pandey, B., Ranjan, S., Shukla, A., & Tiwari, R. (2010). Sentence Recognition Using Hopfield Neural Network. IJCSI - International Journal of Computer Science Issues, 7(4). Retrieved from http://www.ijcsi.org/papers/IJCSI-Vol-7-Issue-4-No-6.pdf#page=26

Thursday, December 6, 2012

Learning Similarities for Text Documents using Neural Networks

En IR (Information Retrieval) y los motores de búsqueda Web, se tiende a representar a las palabras como bolsas de palabras (bags of words) por lo que se toma a cada palabra independiente una de la otra. De este modo, los documentos representados como vectores ocupan un espacio dimensional muy grande (con millones de componentes que corresponden a cada palabra en el diccionario). Para determinar la similitud entre dos documentos, se emplea la co-ocurrencia de las mismas palabras (correlación de coseno). Esta representación no logra capturar el sentido semántico de los documentos ya que no toma en cuenta la complejidad del lenguaje natural (sinónimos, homónimos, verbos, etc.). En el artículo se propone una MLP (Multi Layered Perceptron) para proyectar la bolsa de palabras a un espacio dimensional pequeño y posteriormente realizar las búsquedas mediante el k-vecino más cercano basado en su distancia euclidiana.

Mientras que el aprendizaje supervisado es empleado en ocasiones en las que se tiene clara una salida (una clasificación) y una serie de entradas, en el caso del artículo buscan un enfoque no supervisado en el que se intenta obtener patrones de relación entre los términos de entrada.

El proceso de la red intenta agrupar a los términos mediante su similitud, los patrones similares son atraídos entre sí mientras que se alejan de los que no se tiene nada en común. La siguiente figura muestra un ejemplo del proceso:

image

Para las pruebas se buscaron documentos que hablasen de Linux, Formula 1 y Ciencia Ficción. Se recolectaron aproximadamente 90,000 entradas por tema. Los resultados muestran que solamente para las búsquedas hechas sobre temas de ciencia ficción, se obtuvieron resultados no favorables como se muestra en la siguiente figura:

image

Cada red fue entrenada con una capa oculta de 8 neuronas y como máximo 250 iteraciones. Los resultados fueron evaluados respecto a opiniones de expertos en cada uno de los temas elegidos.

Diligenti, M., Maggini, M., & Rigutini, L. (2003). Learning similarities for text documents using neural networks. Artificial Neural Networks in Pattern Recognition (ANNPR). Retrieved from http://nautilus.dii.unisi.it/pubblicazioni/files/conference/ANN.pdf

Thursday, November 22, 2012

Text Spam Neural Network Classification Algorithm

Este artículo busca hacer una clasificación del texto contenido dentro de los correos electrónicos para determinar si son correos basura (spam). El flujo del procesamiento de mensajes se muestra en la siguiente figura:

image

El conjunto de reglas indicado se refiere a una serie de indicadores propuestos por spamassassin. Mediante el proceso de la figura anterior, se genera una matriz con los correos usados y las reglas que se aplican a ellos, este proceso se emplea principalmente para reducir la dimensión del conjunto de reglas.

El modelo de red neuronal empleado fue el de retropropagación siguiendo el modelo clásico mostrado en la siguiente figura:

image

Para las pruebas se empleó el corpus de Spamassassin del que fueron seleccionados 2,501 correos marcados como interesantes y 500 etiquetados como spam. Procesando los datos con el conjunto de reglas predefinido, se obtuvo una matriz de 568 correos y 328 rasgos de los que se escogieron de manera aleatoria 464 para entrenamiento, dejando los 104 restantes para pruebas.

Los resultados se muestran a continuación:

image

image

image

El artículo terminó estando más enfocado a la manipulación de los parámetros de la red de retropropagación que al proceso que sigue.

Ma, Q., Qin, Z., Zhang, F., & Liu, Q. (2010). Text spam neural network classification algorithm. 2010 International Conference on Communications, Circuits and Systems (ICCCAS), 466–469. doi:10.1109/ICCCAS.2010.5581954

Recurrent Neural Networks for Robust Real-World Text Classification

La clasificación de texto puede ser considerada como el proceso automático de asignación de una o más categorías predefinidas a un documento de texto. El trabajo realizado en este artículo se centra en las capacidades de los modelos simples de redes neuronales recurrentes para clasificar títulos de noticias del Reuters-Corpus.

Las características de una red neuronal recurrente simple (SRN) permite procesar información secuencial, teniendo en cuenta las reglas gramaticales y el contexto de las palabras. Este tipo de consideraciones puede ser valioso ya que el orden de las palabras puede aportar información relevante para la clasificación de la red neuronal. Otra característica del modelo consiste en la habilidad de procesar secuencias con tamaños arbitrarios.

La arquitectura general contiene dos capas de contexto asociadas a dos capas ocultas que extienden la memoria sobre estados previos a través del tiempo. La recurrencia parcial en las capas de contexto es controlada por una función de histéresis. La siguiente figura muestra una visualización de la arquitectura:

image

La entrada de una capa oculta Hn en la red, es afectada por la capa Hn-1 y por la capa de contexto incremental Cn.

Para que el texto pueda ser procesado por algún clasificador, se debe llevar a cabo un mapeo para poder representar las características o rasgos en una forma apropiada.

Se menciona al Vector Space Model (VSM) como la técnica mayormente usada y establecida para llevar a cabo este proceso dentro de Information Retrieval (IR). VSM se encarga de codificar un conjunto de palabras sin tomar en cuenta el orden secuencial.

Por otra parte, la medida estadística más comúnmente usada dentro de IR y minería de texto es TFIDF (Term Frequency-Inverse Document Frequency). TFIDF indica la relevancia de una palabra respecto a un documento.

Se empleó una variación de VSM conocida como vectores semánticos para representar los títulos de las noticias y reducir la dimensión de los datos. Los rasgos son transformados en representaciones vectoriales con pesos para cada palabra de tal forma que el número de dimensiones para cada vector de palabras está en función del número total de clases dentro del corpus. A cada palabra se le asigna un número único decimal en el rango de 0 a 1 que la asocia a una clase en particular, mientras más alto es el valor, mayor es la asociación y mientras menor sea el valor, de igual forma la asociación es menor. Esto se calcula con las siguientes fórmulas:

image

La frecuencia de aparición normalizada de una palabra w en una categoría semántica ci es dada por el valor de v(w,ci), para cada elemento del vector semántico, dividido por la frecuencia de aparición normalizada de la palabra w en el corpus. C indica el número total de clases.

El corpus empleado consiste de 10,733 títulos que están relacionados al menos a un tema. El conjunto de entrenamiento consistió de 1,040 títulos (los primeros 130 de cada una de las 8 categorías). Los 9,693 títulos restantes se emplearon para probar las capacidades de generalización de la red entrenada. Los resultados se presentan a continuación:

image

image

Los resultados muestran que las redes de este tipo son una buena opción para la clasificación de texto. Según los resultados obtenidos, el orden de las palabras no resultó importante y hasta se llegó a obtener mejores resultados al mezclar las palabras.

Arevian, G. (2007). Recurrent Neural Networks for Robust Real-World Text Classification. IEEE/WIC/ACM International Conference on Web Intelligence (WI’07), (2), 326–329. doi:10.1109/WI.2007.126

Thursday, November 15, 2012

Notas de Redes Neuronales:

Las pruebas de las redes neuronales variarán en el pre-procesamiento de los datos:

  • Normalización de texto:
    • Se incluyen pruebas eliminando (al máximo posible) los errores de ortografía, lematización de los verbos, eliminación de abreviaturas, etc.
  • Eliminación de palabras frecuentes:
    • Quitar las palabras que frecuentemente se utilizan en el español y que no aporten información sustancial al contexto del mensaje, se encontró una lista de palabras frecuentes en: http://corpus.rae.es/creanet.html
  • Estandarización de los datos de entrada:
    • Se sigue tratando con la manera de introducir los valores a la red neuronal, se había pensado en utilizar una función de mapeo directo como una tabla hash pero se están analizando las posibles implicaciones.

Neural Network Approaches for Text Document Categorization

Para este artículo se emplea un perceptrón multicapa como componente base para la categorización de documentos de texto en una gran cantidad de documentos con una gran cantidad de categorías. Se exploran dos arquitecturas, una categórica y otra jerárquica.

Una categorización multinivel de documentos consiste en una estructura jerárquica que contiene enlaces y nodos para representar la relación entre los conceptos de la categoría del documento cubiertos por la clasificación. La primera tope esta conformada por el concepto en general del dominio del documento. Se puede definir a dicha categoría como un conjunto de subcategorías (C1, C2, … Cn) que forman al primer nivel (L1) dentro del sistema. La composición de subcategorías se muestra en la siguiente figura:

image

La red tradicional fue entrenada una metodología de todos contra todos debido al gran número de clases y al gran tamaño del conjunto de entrenamiento. Esta red fue entrenada para comparar sus resultados con los dos enfoques presentados dentro del artículo.

En el modelo categórico, se entrenó a una red neuronal por cada categoría de nivel 1. Cada red tiene distintas salidas incluyendo la posibilidad que un tema no pertenezca a la categoría. Al final, todo se conjunta en un módulo de decisión que se encarga de asignar una categoría en base a un umbral que puede ser modificado. Esta arquitectura se puede paralelizar fácilmente y las estructuras de cada una de las redes neuronales son independientes entre sí así como sus parámetros. También el espacio necesario para esta representación es menor al de una sola red. La arquitectura se presenta en la siguiente figura:

image

El modelo jerárquico consiste en una primera red neuronal para el nivel 1. Esta red comparte un solo espacio y las salidas son binarias (pertenece o no pertenece). Se procede a un segundo conjunto de redes en las que cada una tiene un espacio más específico para la categoría que busca. El entrenamiento del primer nivel se hace de manera rápida y eficiente debido a la salida binaria mientras que para las redes del siguiente nivel se pueden paralelizar y al contar con espacios personalizados, requieren menos recursos que el uso de una sola red. La arquitectura se muestra a continuación:

image

Se utilizaron datos de diagnóstico de la industria automotriz para los experimentos. Se tienen 7 categorías de nivel 1 y cada una tiene un número distinto de datos siendo la segunda la más grande con 911. La siguiente figura presenta una descripción de los datos:

image

Uno de los principales motivos para realizar estas comparaciones consistió en el tiempo requerido para ejecutar los pasos. Los resultados se muestran en la siguiente figura:

image

Por otro lado, se debió llevar a cabo una medición de la confiabilidad de clasificación entre los tres modelos. Los resultados se presentan a continuación:

image

Murphey, Y. L. (2006). Neural Network Approaches for Text Document Categorization. The 2006 IEEE International Joint Conference on Neural Network Proceedings (pp. 1054–1060). IEEE. doi:10.1109/IJCNN.2006.246805

Document Classification and Recurrent Neural Networks

Se habla sobre un sistema de clasificación automática de documentos llamado NeuroClass. Es una herramienta de clasificación sobre texto en lenguaje natural basado en redes neuronales recurrentes.

Los documentos empleados para entrenamiento fueron cinco tipos de veintiocho posibles de la sección de aeropuertos de Transport Canada. Se emplearon aproximadamente 1000 documentos en la construcción del sistema. Las clases son las siguientes:

  • 5151 Establishment & Operations – General
  • 5157 Marketing
  • 5158 Construction & Maintenance – Airside
  • 5160 Emergency Services & Rescue
  • 5164 Light & Power

De los 1000 documentos, 400 fueron empleados en la construcción de un diccionario que contiene aproximadamente 14000 palabras. El diccionario contiene las palabras más empleadas en los documentos junto a la información requerida para convertir a los documentos en secuencias de vectores de probabilidad correspondientes a las palabras. Se guardan las palabras, su frecuencia en todos los documentos y la frecuencia en cada documento.

La primera codificación de los documentos se basó en el uso de los valores ASCII de las letras. Cada palabra era convertida en un vector de números reales en el rango [0,1]. Cada vector era normalizado al dividir cada componente entre 255. Sin embargo, surgió un problema al clasificar las palabras ya que sucedía que en palabras con una longitud similar, con letras cercanas (en valores), no lograban diferenciarse lo suficiente.

La representación corregida consiste en leer los documentos mediante una rutina, palabra por palabra. Cada palabra es buscada dentro del diccionario, al encontrarse se convierte a la palabra en un vector de probabilidades pi al dividir la frecuencia de la frecuencia en cada clase fi entre la frecuencia total de la palabra ftot. Si no se encuentra la palabra dentro del diccionario, se hace uso de una probabilidad de 1/n donde n=5 ya que es el número de clases consideradas para las pruebas.

La primera arquitectura propuesta consistía en dos redes. La primera se encargaba de obtener las palabras claves de cada documento mientras que la segunda llevaba a cabo la clasificación del mismo. Los resultados con esta arquitectura no fueron los deseados y se decidió utilizar una sola red entrenada con las secuencias de vectores de probabilidad que representan las palabras contenidas en el documento. El paradigma de Elman fue elegido en base a experimentos.

El progreso de eficiencia de clasificación fue avanzando gradualmente. Con 500,000 iteraciones, solo se pudo clasificar la clase 5160 al 100%. Con 1,000,000 de iteraciones, sólo la clase 5158 fue propiamente identificada. Después de 1,500,000 iteraciones se empezó a diferenciar entre clases y no fue sino hasta las 3,000,000 de iteraciones que todas empezaron a obtener un 100% de precisión.

Se creó una herramienta de validación estadística para medir la confiabilidad del sistema. Después de asignar una clase a un documento, se calcula un nivel de confianza C(x, y) mediante la siguiente fórmula:

image

En la fórmula, X representa el total del número de palabras en un documento en que pi ≥ 0.55 y Y es el número total de palabras en el documento. Los experimentos que realizaron mostraron que los casos en que C(x, y) ≥ 0.30, la mayoría de los documentos fueron correctamente clasificados mientras que en el caso C(x, y) < 0.30 eran incorrectamente clasificados. La siguiente gráfica muestra los resultados finales:

image

En general, el sistema puede asegurar la correcta clasificación al alcanzar los 3,500,000 ciclos de entrenamiento.

Farkas, J. (1995). Document classification and recurrent neural networks. Proceeding CASCON ’95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research. Retrieved from http://dl.acm.org/citation.cfm?id=781936