REDES NEURONALES Y SU APLICACIÓN EN LA CLASIFICACIÓN DE PATRONES
Revista de la Facultad de Ciencias
Universidad Nacional de Colombia, Colombia
ISSN: 2357-5549
Periodicidad: Semestral
vol. 11, núm. 1, 2022
Recepción: 23 Octubre 2021
Aprobación: 24 Diciembre 2021
Resumen: El objetivo de este trabajo es mostrar algunas aplicaciones de redes neuronales en la clasificación de patrones. Se explicará la estructura de una red neuronal artificial, el gradiente descendente y el algoritmo de backpropagation. Se exhibirá cómo se ajustan redes neuronales a datos encontrados en la literatura, haciendo uso de la función sigmoide logístico y la función sigmoide arcotangente, considerando capas ocultas y variando el número de neuronas ocultas; además se muestran tablas de confusión para comparar la clasificación de las redes neuronales.
Palabras clave: Redes neuronales, gradiente descendente, algoritmo de backpropagation, reconocimiento de dígitos, reconocimiento de caras.
Abstract: The objective of this work is to show some applications of neural networks for classifying patterns. It will be explain the structure of a neural network, gradient descent and backpropagation algorithm. It will be exhibited how neural networks are adjusted to real data found in the literature, taking into account the logistic sigmoid function and the arctangent sigmoid function, considering hidden layers and varying the number of hidden neurons; furthermore, confusion tables are shown to compare the classification of neural networks.
Keywords: Neural network, digit recognition, faces recognition, backpropagation algorithm, gradient descent.
1. INTRODUCCIÓN
La ciencia de datos es hoy en día una herramienta fundamental para la explotación de datos y la generación de conocimiento. Entre los objetivos que persigue se encuentra la búsqueda de modelos que describan patrones y comportamientos a partir de los datos con el fin de tomar decisiones o hacer predicciones. Es un área que ha experimentado un enorme crecimiento al extenderse el acceso a grandes volúmenes de datos e incluso su tratamiento en tiempo real. Abarca a numerosos grupos de investigación de diferentes áreas (computación, estadística, matemáticas, ingeniería, etc.) que trabajan en la propuesta de nuevos algoritmos, técnicas de computación e infraestructuras para la captura, almacenamiento y procesado de datos, etc., ver García-Molina et al. (2018).
Una parte fundamental de la ciencia de datos son las redes neuronales artificiales, las cuales son modelos computacionales inspirados en los trabajos de investigación, iniciados en 1930, cuyo propósito era modelar computacionalmente el aprendizaje humano llevado a cabo a través de las neuronas en el cerebro. Las redes neuronales son una nueva forma de analizar la información de tal modo que son capaces de detectar y aprender patrones complejos y características de los datos. Como nuestro cerebro, aprenden de la experiencia y del pasado, y aplican el conocimiento adquirido para resolver problemas nuevos. Este aprendizaje se obtiene como resultado del entrenamiento (training), el cual permite la sencillez y la potencia de adaptación y evolución ante una realidad cambiante y muy dinámica. Una vez adiestradas, las redes neuronales pueden hacer previsiones, clasificaciones y segmentación. Además, en la mayoría de los casos, presentan una eficiencia y confiabilidad por lo menos similares a los métodos estadísticos y sistemas expertos. En los casos de muy alta complejidad, las redes neuronales son especialmente útiles dada la dificultad para modelar que tienen otras técnicas. Rosenblatt (1958) propuso el primer modelo precursor de redes neuronales, el perceptrón. Sin embargo, éste tenía capacidades muy limitadas, lo que trajo como consecuencia que, en la década de 1970, esta área de investigación fuera casi abandonada; no fue sino hasta la década de 1980, con el uso de hardware computacional, que se dio un auge en la investigación de redes neuronales, el cual persiste hasta el día de hoy, ver Rodríguez-Flores (2010).
En el problema de clasificación se tienen datos (x1,y1),(x2,y2),...,(xn,yn), donde xi ∈ Rd, yi ∈ {1,2,...,k} y k representa el número de clases. Estos datos son llamados datos de entrenamiento. Se supone que los datos provienen de una distribución desconocida. El problema que se quiere resolver es el de clasificar un nuevo dato x en alguna de estas clases. Para ello se desea construir una regla de clasificación, la cual está dada por una función
g : Rd → {1,2,...,k}
x → g(x).
En muchas situaciones es deseable realizar la clasificación de patrones, es decir, el reconocimiento de caracteres (escritos a mano o a máquina), de voz, de caras, de objetos, de huellas, entre otros.
En este artículo se presenta la forma en que se utilizan las redes neuronales artificiales en la clasificación de patrones, explicando brevemente su implementación y proporcionando algunos ejemplos de su aplicación. A continuación se describe como está dividido este trabajo. En la sección 2 se presentan el perceptrón multicapa, el gradiente descendente y el algoritmo de backpropagation (propagación hacia atrás), que son piezas claves para la implementación de las redes neuronales artificiales. En la sección 3 se muestran ejemplos de aplicación con datos reales encontrados en la literatura, para ilustrar el uso de las redes neuronales artificiales como una herramienta para clasificar patrones, para lo cual se empleó la paquetería “nnet”, ver Ripley & Venable, W. (2021), del software RStudio. Por último se presenta una sección de conclusiones.
2. REDES NEURONALES
2.1. Perceptrón multicapa
Como se menciona en Devroye et al. (2013), el discriminante lineal o perceptrón tiene la regla de decisión
basada en una combinación lineal ψ(x), dada por:
donde las ci’s son los pesos, x = (x(1),...,x(d))T y c = (c1,...,cd)T. Esto es llamado una red neuronal sin capas ocultas, ver Figura 1.
En una red neuronal (hacia adelante) o perceptrón multicapa con una capa oculta se tiene
donde las ci’s son como antes y cada ψi es de la forma dada en (1): ψi(x) = bi +∑dj=1aijx(j) para algunas constantes bi y aij, ver Figura 2. La función σ es llamada sigmoide, la cual se define como una función no decreciente con σ → −1 cuando x ↓ −∞ y σ → 1 cuando x ↑ ∞. Algunos ejemplos de sigmoides son: el sigmode umbral, el sigmoide estándar o logístico, el sigmoide arctangente y el sigmoide gaussiano. En el
Figura 1: El perceptrón de Rosenblatt. La decisión se basa en una combinación lineal de los componentes del vector de entrada. Fuente: Elaboración propia.
Figura 2: Red neuronal con una capa oculta. Las neuronas ocultas se encuentran dentro del marco. Fuente: Elaboración propia.
perceptrón con una capa oculta, se dice que hay k neuronas ocultas (la salida de la i-ésima neurona oculta es ui = σ(ψi(x))). Así, la expresión (2) puede reescribirse como
que es similar a la expresión (1). Se puede continuar este proceso y crear redes neuronales multicapa hacia adelante. Por ejemplo, un perceptrón de dos capas ocultas es de la forma:
donde
y
y las dij’s, bj’s y aji’s son constantes. La primera capa oculta tiene k neuronas ocultas, mientras que la segunda capa oculta tiene ℓ neuronas ocultas, ver Figura 3.
2.2. Gradiente descendente
Como se menciona en Alpaydin (2014), en la clasificación basada en verosimilitud, los estimadores son estadísticos suficientes de la función de densidad de probabilidad dada la clase, p(x|C(i)), y de la probabilidad a priori de la clase, P(C(i)); el método que se utiliza para estimar los parámetros es el de máxima verosimilitud. Mientras que en discriminación, los parámetros son de los discriminantes y están optimizados para minimizar el error de clasificación.
Figura 3: Red neuronal hacia adelante con dos capa ocultas. Fuente: Elaboración propia.
Cuando w = (w(1),...,w(d))T denota el vector de pesos o el conjunto de parámetros y E(w|X) es el error con parámetros w para el conjunto de entrenamiento X dado, se busca:
En muchos casos no existe una solución analítica y se debe recurrir a métodos de optimización iterativos, de los cuales el método más empleado es el gradiente descendente. Cuando E(w) es una función diferenciable de un vector de variables, se tiene el vector gradiente, compuesto de las derivadas parciales
El procedimiento del gradiente descendente para minimizar E comienza a partir de un w aleatorio y en cada paso actualiza w en la dirección opuesta del gradiente:
por lo que
donde η es llamado el tamaño de paso o factor de aprendizaje y determina cuanto moverse en esa dirección. Cuando se llega a un mínimo, la derivada es 0 y el procedimiento termina. Esto indica que el procedimiento encuentra el mínimo más cercano que puede ser un mínimo local, y no hay garantía de encontrar el mínimo global, a menos que la función tenga solo un mínimo. El uso de un buen valor para η también es crítico; si es demasiado pequeño la convergencia puede ser demasiado lenta, pero un valor grande puede causar oscilaciones e incluso divergencia.
Figura 4: Estructura de un perceptrón multicapa. Fuente: Elaboración propia.
2.3. El algoritmo de backpropagation
El entrenamiento de un perceptrón multicapa es análogo al de un perceptrón, la única diferencia es que ahora la salida es una función no lineal de las entradas debido a la función sigmoide en las neuronas ocultas. En la Figura 4 se muestra la estructura de un perceptrón multicapa en la cual las xj, j = 0,...,d, son las entradas y las zh, h = 1,...,H, son las neuronas ocultas, donde H es la dimensión de este espacio oculto, z0 es el intercepto de la capa oculta, las yi, i = 1,...,k, son las unidades de salida, las whj son los pesos de la primera capa, y las vih son los pesos de la segunda capa. Como se observa en esta figura, se consideran las neuronas ocultas como entradas de la segunda capa la cual es un perceptrón, que se ajusta de la forma usual dadas las entradas zh. Para los pesos de la primera capa, whj, se utiliza la regla de la cadena para calcular la derivada parcial
Es como si el error se propagara desde la salida . de regreso a las entradas, y por esa razón se le denominó backpropagation, ver Alpaydin (2014). Con la fórmula anterior se calculan las entradas del vector gradiente y se lleva a cabo el método del gradiente descendente.
2.3.1. Discriminación de dos clases
Cuando hay dos clases, una unidad de salida es suficiente y puede ser vista de la siguiente forma:
que aproxima a P(C(1)|xt), la probabilidad de que el dato xt pertenezca a la clase 1, y Pb(C(2)|xt) ≡ 1−yt es la probabilidad de que el dato xt pertenezca a la clase 2. La función de error, mejor conocida como entropía cruzada, es
donde W es la matriz de pesos en las capas ocultas, v es el vector de pesos en la capa de salida (ver Figura 4) y rt es la etiqueta correspondiente al dato xt.
Las ecuaciones de actualización implementando el gradiente descendente son:
Y
2.3.2. Discriminación multiclase
En un problema de clasificación multiclase (k > 2) hay k salidas. Se define
y se utiliza la función softmax para indicar la dependencia entre clases,
donde yti aproxima a P(C(i)|xt). La función de error es
donde V es la matriz de los pesos en la capa de las salidas, de aquí se obtienen las ecuaciones de actualización utilizando el gradiente descendente:
y
2.3.3. Múltiples capas ocultas
Como se ha mencionado anteriormente, es posible tener múltiples capas ocultas, cada una con sus propios pesos y en la que se aplica la función sigmoide a su suma ponderada. Para clasificación, por ejemplo de dos clases, si se tiene un perceptrón multicapa con dos capas ocultas, se escribe:
donde w1h y w2ℓ son los pesos de la primera y segunda capa, z1h y z2ℓ son las neuronas de la primera y segunda capa oculta, y v es el vector cuyas entradas son los pesos de la tercera capa. En una red de este tipo, para entrenar los pesos de la primera capa se necesita propagar hacia atrás (backpropagate) una capa más.
3. RESULTADOS
En esta sección se mostrarán algunas aplicaciones de redes neuronales en la clasificación de patrones con datos encontrados en la literatura. Estos datos son divididos en datos de entrenamiento y de prueba. Con los datos de entrenamiento se ajustan redes neuronales para clasificación utilizando la función sigmoide logística y la función sigmoide arcotangente. Posteriormente, se utilizan los datos de prueba para evaluar el modelo de la red neuronal para la clasificación de patrones a través de tablas de confusión, y se comparan las proporciones de error de clasificación correspondientes a las dos funciones sigmoide en estudio.
3.1. Clasificación de dígitos escritos a mano
Se cuenta con datos de dígitos escritos manualmente tomados del conjunto de datos del Modified National Institute of Standards and Technology (MNIST), ver Bishop (2006), que a su vez se construyó modificando un subconjunto de un conjunto de datos mucho más grande producido por NIST (the National Institute of Standards and Technology). La base de datos consiste de un conjunto de entrenamiento de 60,000 muestras y un conjunto de prueba de 10,000 muestras. Algunos datos fueron recopilados de empleados de la oficina del censo y el resto fueron recopilados de niños de secundaria. Se tuvo cuidado de garantizar que las muestra del conjunto de prueba fueran escritos por personas diferentes a las de las muestras del conjunto de entrenamiento.
Los datos originales del NIST tenían píxeles binarios (blanco o negro). Para crear los datos del MNIST, se normalizó el tamaño de estas imágenes para que quepan en una imagen de 20 × 20 píxeles, mientras se conserva su relación de aspecto. En consecuencia, debido al suavizado (anti-aliasing) utilizado para cambiar su resolución, las imágenes de los dígitos del MNIST resultaron tener escalas de grises. Luego, estas imágenes se centraron en una imagen de 28×28 píxeles. Algunos ejemplos se muestran en la Figura 5.
Cada imagen es transformada en un vector de entradas reales de dimensión 784 = 28 × 28, mediante la concatenación de columnas. En la Figura 6 se puede apreciar un ejemplo de ello.
Figura 5: Imágenes de escritura de dígitos del MNIST de 28×28 píxeles en escalas de grises. Fuente: Elaboración propia.
La motivación de este ejemplo es mostrar que la clasificación de dígitos puede ser automatizada mediante redes neuronales artificiales de manera adecuada. El proceso de clasificar grandes cantidades de dígitos se puede efectuar en lapsos de tiempo relativamente cortos, además el procesamiento es realizado por un equipo de cómputo y el trabajo de catalogar los dígitos se realiza de manera objetiva. En cambio, un grupo de personas clasificaría una cantidad grande de dígitos en un tiempo extenso, además de que podrían haber errores debido al agotamiento o por carencia de objetividad en dicho proceso.
Como se menciona en Hastie et al. (2009), la clasificación de dígitos escritos manualmente se puede utilizar en la implementación de un proceso de ordenamiento automático de sobres de acuerdo a su código postal. Otras aplicaciones son el reconocimiento de números de placa y en el procesamiento de cheques bancarios, ver Dixit et al. (2020).
Utilizando los datos de entrenamiento se ajustaron redes neuronales usando la función sigmoide logística y la función sigmoide arcotangente, mediante la metodología descrita en la Sección 2. Cabe mencionar que se consideró un tamaño de paso de η = 0.001 en el gradiente descendente, las entradas del vector de pesos inicial w se eligieron aleatoriamente en el intervalo [−0.5,0.5] y se tomó como número máximo de iteraciones a 100,000. En cada caso se consideró una capa oculta y el número de neuronas ocultas se varió en 3,6,10,13,15 y 20. Con los datos de pruebas y el ajuste de la red neuronal, se obtuvieron tablas de confusión. En las Tablas, 1–6 se presentan las tablas de confusión correspondientes a 3, 10 y 20 neuronas ocultas. En estas tablas “Reales” se refiere a los verdaderos valores de los dígitos; “Predichos” a los valores predichos por la red neuronal; los valores dentro de la tabla proporcionan las frecuencias en la clasificación.
Después de obtener las tablas de confusión se obtuvieron las proporciones de error de clasificación, las cuales se proporcionan en la Tabla 7.
(a) Vista concatenada
(b) Vista en escalas de grises
Figura 6: Visualización del dígito 2. Fuente: Elaboración propia.
Se observa en las tablas de confusión con tres neuronas ocultas, y cualquiera de las funciones sigmoide, que la red neuronal no clasifica los dígitos en todas las clases (0,1,2,3,4,5,6,7,8,9), únicamente en unas cuantas. A partir de seis neuronas ocultas ya se observan todas las clases. En la tabla de proporciones de error de clasificación se nota que no es recomendable considerar tres o seis neuronas ocultas, debido a que con ambas funciones sigmoide las proporciones de error tienen un valor muy elevado. Sin embargo, para esta clase de datos, a partir de diez neuronas ocultas no hay diferencia significativa entre las dos funciones sigmoide, porque las tablas de confusión resultan ser similares o existe una pequeña diferencia entre ellas, además de tener proporciones de error significativamente pequeñas, por lo que puede utilizarse cualquiera de ellas para ajustar la red neuronal que produzca buenos resultados. De igual forma, si se desea tener proporciones de error más pequeñas se tendrían que aplicar más neuronas ocultas dentro de la capa oculta, por lo que esto se deja a consideración del experimentador.
Tabla 1: Tabla de confusión de la red neuronal con función sigmoide logística de 1 capa oculta con 3 neuronas ocultas.
Tabla 2: Tabla de confusión de la red neuronal con función sigmoide arcotangente de 1 capa oculta con 3 neuronas ocultas.
Tabla 3: Tabla de confusión de la red neuronal con función sigmoide logística de 1 capa oculta con 10 neuronas ocultas.
Tabla 4: Tabla de confusión de la red neuronal con función sigmoide arcotangente de 1 capa oculta con 10 neuronas ocultas.
Tabla 5: Tabla de confusión de la red neuronal con función sigmoide logística de 1 capa oculta con 20 neuronas ocultas
Tabla 6: Tabla de confusión de la red neuronal con función sigmoide arcotangente de 1 capa oculta con 20 neuronas ocultas
Finalmente, se muestran ejemplos de cómo la red neuronal clasifica dígitos, los cuales se presentan en las Figuras 7 y 8.
Tabla 7: Proporciones de error de clasificación considerando una capa oculta y variando en 3, 6, 10, 13, 15 y 20 el número de neuronas ocultas.
Figura 7: Clasificación de dígitos correspondiente a una red neuronal de 1 capa oculta con 20 neuronas ocultas y función sigmoide logística. Fuente: Elaboración propia.
Figura 8: Clasificación de dígitos correspondiente a una red neuronal de 1 capa oculta con 20 neuronas ocultas y función sigmoide arcotangente. Fuente: Elaboración propia.
3.2. Reconocimiento de caras
Se cuenta con datos de imágenes de rostros de varias personas en varias poses, los cuales son proporcionados por Mitchell (1997). La base de datos consiste de imágenes de 20 personas diferentes, con aproximadamente 32 imágenes por persona variando su estado de ánimo (feliz, triste, enojado, neutral), la dirección en la que miran (izquierda, derecha, de frente, arriba) y si portan o no gafas de sol, tal como puede verse en la Figura 9. En total se recopilaron 624 imágenes en escala de grises, cada una con una resolución de 64×60, con cada píxel de imagen descrito por un valor de la intensidad en la escala de grises entre 0 (negro) y 255 (blanco). Cada imagen fue transformada en un vector de entradas reales de dimensión 3840 = 64×60, mediante la concatenación de columnas.
El propósito de este ejemplo es mostrar que la clasificación de sujetos puede ser automatizada mediante redes neuronales artificiales. El proceso de clasificar grandes cantidades de caras se puede efectuar en lapsos de tiempo relativamente cortos; el procesamiento es realizado por un equipo de cómputo y el trabajo de catalogar las caras se realiza de manera objetiva. De igual forma, la misma base de datos puede ser utilizada para clasificar a los sujetos de acuerdo a si portan o no gafas sol en la imagen. Del mismo modo, los datos son útiles para clasificar la dirección en la que miran los sujetos, es decir, izquierda, derecha, de frente o arriba. Así mismo, la base de datos puede ser empleada para clasificar el estado de ánimo de los sujetos, es decir, enojado, feliz, neutral o triste.
Figura 9: Imágenes de rostros de varias personas de 64×60 píxeles en diferentes poses, diferentes estados de ánimos y si portan o no gafas de sol. Fuente: Elaboración propia.
Cabe mencionar que la clasificación de caras es útil en procedimientos de seguridad, videovigilancia, interacción persona-computadora con fines de entretenimiento, robótica y tarjetas “inteligentes” (pasaportes, licencias de conducir, registro de votantes), ver Izenman (2013).
En cada análisis que se presenta se procedió a dividir de forma aleatoria en dos partes a la base de datos, el 70% de los puntos como datos de entrenamiento (436 puntos) y el 30% restante (188 puntos) conformaron los datos de prueba. Utilizando los datos de entrenamiento se ajustaron redes neuronales utilizando la función sigmoide logística y la función sigmoide arcotangente, mediante la metodología descrita en la Sección 2. Como anteriormente, se consideró un tamaño de paso de η = 0.001 en el gradiente descendente, las entradas del vector de pesos inicial w se eligieron aleatoriamente en el intervalo [−0.5,0.5] y se tomó como número máximo de iteraciones a 100,000. Con los datos de prueba y el ajuste de la red neuronal, se obtuvieron tablas de confusión para evaluar la clasificación proporcionada por las redes neuronales ajustadas.
3.2.1. Clasificación de sujetos
En este ejemplo se procedió a reconocer a un sujeto en particular de entre los demás, para ello se etiquetó al sujeto de interés, en este caso al sujeto “an2i”, con la etiqueta 1 y a los demás sujetos que conforman la base de datos con la etiqueta 2.
Tabla 8: Tabla de confusión de la red neuronal con función sigmoide logística y arcotangente de 1 capa oculta con 1 neurona oculta.
Figura 10: Clasificación de sujetos correspondiente a una red neuronal de 1 capa oculta con 1 neurona oculta y función sigmoide logística. “sujeto an2i”=1, “otro”=2. Fuente: Elaboración propia
Se ajustaron redes neuronales utilizando la función sigmoide logística y la función sigmoide arcotangente considerando una capa oculta con una neurona oculta. Las tablas de confusión fueron idénticas al considerar las dos funciones sigmoide, en la Tabla 8 se presenta la tabla de confusión obtenida.
Mediante la tabla de confusión se observa que la proporción de error con ambas funciones sigmoide es 0. Entonces para estos datos es suficiente considerar una red neuronal de una capa oculta, con una neurona oculta y cualquiera de las funciones sigmoide.
En las Figuras 10 y 11 se muestra cómo cada red neuronal clasifica a los sujetos.
3.2.2. Clasificación de uso de gafas de sol
Para la clasificación de uso de gafas de sol de los sujetos, se procedió a etiquetarlos de la siguiente manera: “sin gafas de sol”=1, “con gafas de sol”=2. Se ajustaron redes neuronales utilizando la función sigmoide logística y la función sigmoide arcotangente; en cada caso se consideró una capa oculta con una neurona oculta. Las tablas de confusión fueron idénticas al considerar las dos funciones sigmoide; en la Tabla 9 se presenta la tabla de confusión obtenida.
Tabla 9: Tabla de confusión de la red neuronal con función sigmoide logística y arcotangente de 1 capa oculta con 1 neurona oculta.
Figura 12: Clasificación de sujetos que portan gafas de sol o no, correspondiente a una red neuronal de 1 capa oculta con 1 neurona oculta y función sigmoide logística. “sin gafas de sol”=1, “con gafas de sol”=2. Fuente: Elaboración propia.
Figura 13: Clasificación de sujetos que portan gafas de sol o no, correspondiente a una red neuronal de 1 capa oculta con 1 neurona oculta y función sigmoide arcotangente. “sin gafas de sol”=1, “con gafas de sol”=2. Fuente: Elaboración propia.
Mediante la tabla de confusión se tiene que la proporción de error con ambas funciones sigmoide es 0.0106. Cabe mencionar que al aumentar el número de neuronas ocultas dentro de la capa oculta se obtuvo la misma proporción de error que con una neurona oculta, con ambas funciones sigmoide. Por lo que, considerando estos datos, es suficiente utilizar una red neuronal de una capa oculta, con una sola neurona oculta y cualquiera de las dos funciones sigmoide para obtener una buena clasificación de sujetos con gafas de sol.
Por último, se muestran ejemplos de cómo la red neuronal clasifica a los sujetos que portan gafas de sol o no en las imágenes, las cuales se presentan en las figuras 12 y 13.
3.2.3. Clasificación de dirección de miradas
Para el caso de clasificar la dirección en la que miran los sujetos, se etiquetó dicha dirección de la siguiente forma: “izquierda”=1, “derecha”=2, “de frente”=3 y “arriba”=4. Se ajustaron redes neuronales usando la función sigmoide logística y la función sigmoide arcotangente. En cada caso se consideró una capa oculta, y se varió el número de neuronas ocultas de 1 al 6.
En las tablas 10 y 11 se presentan las tablas de confusión para 1 neurona oculta, usando la función sigmoide logística y arcotangente, respectivamente. A partir de dos neuronas ocultas las tablas de confusión fueron idénticas al considerar las dos funciones sigmoide.
En las tablas 12 y 13 se presentan las tablas de confusión correspondientes a 2 y 3 neuronas ocultas, respectivamente.
Una vez obtenidas las tablas de confusión se obtuvieron las proporciones de error de clasificación que se muestran en laTabla 14.
Tabla 14: Proporciones de error de clasificación considerando una capa oculta y variando de 1 a 6 neuronas ocultas.
Figura 14: Clasificación de dirección de la mirada de los sujetos, correspondientes a una red neuronal de 1 capa oculta con 2 neuronas ocultas y función sigmoide logística. “izquierda”=1, “derecha”=2, “de frente”=3, “arriba”=4. Fuente: Elaboración propia.
Figura 15: Clasificación de dirección de la mirada de los sujetos, correspondientes a una red neuronal de 1 capa oculta con 2 neuronas ocultas y función sigmoide arcotangente. “izquierda”=1, “derecha”=2, “de frente”=3, “arriba”=4. Fuente: Elaboración propia.
Al considerar una neurona oculta las proporciones de error con ambas funciones sigmoide son significativamente elevadas. No obstante, a partir de 2 neuronas ocultas las proporciones de error son iguales para ambas funciones sigmoide y además son muy pequeñas, por lo que es recomendable utilizar una red neuronal de una capa oculta con al menos 2 neuronas ocultas y cualquiera de las dos funciones sigmoide para clasificar la dirección de la mirada con estos datos.
Para terminar, en las Figuras 14 y 15 se muestran ejemplos de cómo la red neuronal clasifica la dirección de la mirada de los sujetos.
3.2.4. Clasificación de emociones
Finalmente, para clasificar las emociones de los sujetos, se etiquetaron las emociones de la siguiente manera: “enojado”=1, “feliz”=2, “neutral”=3 y “triste”=4. Se ajustaron redes neuronales usando la función sigmoide logística y la función sigmoide arcotangente. En cada caso se consideró una capa oculta y se varió el número de neuronas ocultas de 1 a 6. En las tablas 15–18 se presentan las tablas de confusión correspondientes a 1 y 6 neuronas ocultas.
Después de obtener las tablas de confusión se obtuvieron las proporciones de error que se presentan en la Tabla 19
Las proporciones de error con ambas funciones sigmoide son significativamente elevadas con una neurona oculta. No obstante, a partir de dos neuronas ocultas, es recomendable utilizar la función sigmoide logística debido a que su proporción de error de clasificación, en general, es menor que la correspondiente a la función sigmoide arcotangente. Sin embargo, a partir de tres neuronas ocultas con la función sigmoide arcotangente se tienen proporciones de error de clasificación muy pequeñas.
Tabla 15: Tabla de confusión de la red neuronal con función sigmoide logística de 1 capa oculta con 1 neurona oculta.
Tabla 16: Tabla de confusión de la red neuronal con función sigmoide arcotangente de 1 capa oculta con 1 neurona oculta.
Tabla 17: Tabla de confusión de la red neuronal con función sigmoide logística de 1 capa oculta con 6 neuronas ocultas.
Tabla 18: Tabla de confusión de la red neuronal con función sigmoide arcotangente de 1 capa oculta con 6 neuronas ocultas
Tabla 19: Proporciones de error de clasificación considerando una capa oculta y variando de una a seis neuronas ocultas.
Finalmente, en las figuras 16 y 17 se muestran ejemplos de cómo la red neuronal clasifica las emociones de los sujetos.
Figura 16: Clasificación de las emociones de los sujetos, correspondientes a una red neuronal de 1 capa oculta con 6 neuronas ocultas y función sigmoide logística. “enojado”=1, “feliz”=2, “neutral”=3, “triste”=4. Fuente: Elaboración propia
Figura 17: Clasificación de las emociones de los sujetos, correspondientes a una red neuronal de 1 capa oculta con 6 neuronas ocultas y función sigmoide arcotangente. “enojado”=1, “feliz”=2, “neutral”=3, “triste”=4. Fuente: Elaboración propia
4. CONCLUSIONES
En este trabajo, mediante redes neuronales artificiales, aplicando una función sigmoide logística o arcotangente y variando el número de neuronas ocultas dentro de una capa oculta, se clasificaron patrones encontrados en la literatura, y se evaluaron las redes neuronales mediante sus tablas de confusión y sus proporciones de error de clasificación.
En el ejemplo presentado de los datos de los dígitos escritos manualmente, tomados del conjunto de datos del Modified National Institute of Standards and Technology (MNIST), se concluye que puede utilizarse una red neuronal con una capa oculta, con al menos 10 neuronas ocultas y cualquiera de las dos funciones sigmoide para obtener una buena regla de clasificación con estos datos. Si se desea tener proporciones de error más pequeñas, se tendría que agregar más neuronas ocultas dentro de la capa oculta.
En el ejemplo de la base de datos de las imágenes de rostros de varias personas en varias poses, se concluye que para estos datos puede utilizarse una red neuronal de una capa oculta, con una sola neurona y cualquiera de las dos funciones sigmoide para obtener una buena regla de clasificación en la identificación de un sujeto de interés, así como también para la clasificación de sujetos con gafas de sol. Para la clasificación de la dirección de las miradas, se concluye que puede utilizarse una red neuronal de una capa oculta, con al menos 2 neuronas ocultas y cualquiera de las dos funciones sigmoide. En el caso de la clasificación de las emociones, se obtiene una buena regla de clasificación con una red neuronal de una capa oculta, con al menos 3 neuronas ocultas y cualquiera de las dos funciones sigmoide.
Se observó, en los ejemplos de aplicación presentados en este trabajo, un buen comportamiento de las redes neuronales artificiales para clasificar patrones. También vimos en estos ejemplos que es posible tener una buena clasificación considerando una sola capa oculta y pocas neuronas ocultas. Cuando el número de clases aumenta, por lo general se requieren más neuronas ocultas para tener una proporción de error de clasificación baja.
Referencias
Alpaydin, E. (2014). Introduction to Machine Learning. MIT Press, London, England.
Bishop, C. (2006). Pattern Recognition and Machine Learning. Springer, New York.
Devroye, L., Györfi, L. & Lugosi G. (2013). A Probabilistic Theory of Pattern Recognition. Springer-Verlag, New York.
Dixit, R., Kushwah, R. & Pashine, S. (2020). Handwritten digit recognition using machine and deep learning algorithms. International Journal of Computer Applications, 176(42), 27–33.
García Molina, J., Herrero, J., de Jesús, A., López, J., Guisado, M.A., Bustamante, Á. & Padilla, W. (2018). Ciencia de datos: técnicas analíticas y aprendizaje estadístico. Alfaomega, Bogotá.
Hastie, T., Tibshirani, R. & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer-Verlag, New York.
Izenman, A. (2013). Modern Multivariate Statistical Techniques: Regression, Classification, and Manifold Learning. Springer, New York.
Mitchell, T. (1997). Machine Learning. McGrawHill Education, New York.
Ripley, B. & Venable, W. (2021). Package “nnet”. Disponible en: https://cran.r-project.org/web/packages/nnet/nnet.pdf
Rodríguez-Flores, M. A. (2010). Desarrollo de un sistema basado en un clasificador neuronal para reconocimientos de orugas. Tesis presentada en la Universidad Nacional Autónoma de México. Disponible en: http://132.248.9.195/ptd2010/abril/0656324/0656324_A1.pdf
Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408.