Cognitive Science">
Nothing Special   »   [go: up one dir, main page]

4.2 Practica. Técnicas de Deep Learning en Datos Longitudinales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

Maestría Ciencia de datos y análisis de datos

masivos Big Data

Equipo
Magdaleno Arroyo Dulce María
000-00- 4830

Niño Peña Christiam Alejandro


000-00- 5220

Cuellar Perez Lina Marcela


000-00- 5204

4.2 Practica. Técnicas de Deep Learning en datos


longitudinales
Unidad 4

Dr. Humberto Muñoz Bautista


09 de julio de 2023
DESARROLLO

1.1. Análisis de la red neuronal convolucional (funcionamiento del


algoritmo).

Según (KeepCoding, 2019) las redes neuronales convolucionales fueron creadas


pensando en el funcionamiento del cerebro humano teniendo la capacidad de
aprender en diferentes niveles de abstracción, lo anterior, manejado por capas.

- La primera capa es la diferencia de formas simples, bordes o colores.


- La segunda capa es para distinguir combinaciones de bordes y colores
- La tercera capa está enfocada en la forma para averiguar qué es
exactamente un objeto.

Estas características utilizan filtros o lentes para determinarlas, de esta forma el


ordenador puede ver creando sistemas inteligentes.

1.1.1. Funcionamiento de una red neuronal convolucional

Este tipo de red extrae de forma automática características para de esta forma
poder clasificar los objetos, funcionan de forma similar a la arquitectura de la
corteza visual de los mamíferos donde se extraen campos receptivos locales y se
conectan a filtros. (KeepCoding, 2019)

El análisis del algoritmo fue revisado y evaluado de (Na8, 2018), donde una red
neuronal convolucional o también llamada CNN por su traducción en Convolutional
Neural Network permiten identificar objetos y ver como se mencionó anteriormente,
además, contienen varias capas ocultas como las mencionadas con una jerarquía.

Para la aplicación del algoritmo se requiere un gran número de objetos dentro de


imágenes para que de esta forma la red pueda obtener sus características únicas
de los objetos, de esta forma se puede reconocer diversos estados de uno en varios
imágenes.
Por ejemplo, en la Figura 1 se muestra como a una imagen se le representa en una
matriz de pixeles.

Figura 1. Representación de una imagen

Fuente. (Na8, 2018)

1.1.2. Preprocesamiento

Se validarán los pixeles de la imagen para realizar el procesamiento, en este caso


si se tiene una imagen pequeña de 28x28 pixeles de alto y ancho esto será 784
neuronas teniendo en cuenta que se maneje un solo color, pero si ya se maneja 3
canales como azul, rojo y verde ya se manejaría 28x28x3 que seria 2352 neuronas.

Iniciando el procesamiento se debe normalizar los valores por los colores de los
pixeles que van de 0 a 255, de esta forma se realizaría una transformación de cada
pixel con valor/255 donde siempre será un 1 o 0. La Figura 2 muestra cómo se
determinaría el color en una imagen.
Figura 2. Colores y manejo de valores de colores por pixel

Fuente. (Na8, 2018)

1.1.3. Convoluciones

Su función es tomar grupos de pixeles cercanos de la imagen de entrada y realizar


un producto escalar contra una matriz que se llama kernel, ese kernel recorre todas
las neuronas de entrada de izquierda a derecha y de arriba abajo generando una
matriz de salida, esta se convierte en la nueva capa de neuronas ocultas. (Na8,
2018). La Figura 3 muestra como quedaría la matriz de kernel, de estas se crearán
muchas que también son llamadas filtros, en una primera convolución se podrían
tener 32 filtros que resultaran en 32 matrices de salida que son llamadas “feature
mapping”, en este caso, 28x28x1 dando 25.088 neuronas para la primera capa.
Figura 3. Creación del kernel para poder encontrar la matriz de salida.

Fuente. (Na8, 2018)

La función más utilizada para este tipo de redes es llamada ReLu (Rectifier Linear
Unit) que es f(x) = max (0,x)

1.1.4. Subsampling

En este paso se requiere reducir la cantidad de neuronas antes de hacer una nueva
convolución, lo anterior, para reducir el tamaño de la próxima capa utilizando
subsampling donde prevalecerán las características más importantes que detectó
cada filtro, hay muchos métodos de subsampling, el más usado se llama Max-
Pooling. La primera convolución vendría dada como se muestra en la Figura 5.

Esta primer convolución consiste en una entrada, filtros, mapa de características y


un subsampling donde por ejemplo se tendrían los resultados dados en la Tabla 1.

Tabla 1. Pasos y resultados primera convolución

Fuente. (Na8, 2018)


Figura 5. Primera convolución de imagen.

Fuente. (Na8, 2018)

Esta primera convolución detecta características como líneas o curvas, cuando se


realizan más convoluciones se encontrarán formas más complejas, en la Figura 6
se ve como seria la 2da convolución y siguientes.

Figura 6. Segunda convolución

Fuente. (Na8, 2018)


1.1.5. Conexión con una red neuronal común

El paso final es tomar la última capa oculta que es llamada también “tridimensional”
y se aplana para dejarla como una capa de neuronas tradicionales, una forma de
verlo es la Figura 7 donde se obtienen estas neuronas para el posterior análisis.

Figura 7. Arquitectura CNN

Fuente. (Na8, 2018)

A esta capa tradicional se le aplica una función llamada Softmax que encuentra las
clases para clasificar los objetos. Estas salidas tendrán el formato “one-hot-
encoding”.
1.2. Implementación de la red neuronal convolucional (implementación
del algoritmo).

La implementación del algoritmo se realizó usando como base el contenido de


(Na8, 2018), además, se utilizaron las imágenes propiedad de (jbagnato, 2018)

1.2.1. Importar librerías:

Cargar las librerías requeridas

En este caso se debe tener en cuenta que hay librerías de tensorflow que se
deben usar para to_categorial y BatchNormalization

1.2.2. Cargar las imágenes de evaluación:

a. Estas imágenes fueron descargadas del sitio (jbagnato, 2018) y están


descomprimidas en un folder para su posterior lectura (dirname), tiene 10
subdirectorios un por deporte.
b. El proceso plt.imread carga en memoria 77000 imágenes
1.2.3. Crear las clases y etiquetas

a. Se crea la etiqueta labels para dar a cada deporte, de esta forma se podrá
utilizar el algoritmo supervisado, por ejemplo, se cargarán imágenes de
boxeo con la etiqueta 3, ciclismo 4 y así con todas.
b. Con esas etiquetas se ajustarán los pesos de las neuronas con las entradas
y salidas esperadas.
c. Luego se convierten las etiquetas e imágenes en numpy array con la
función np.array()
1.2.4. Creación de conjuntos de entrenamiento y pruebas

a. Se preprocesan el valor de los pixeles y se normalizan para que tengan un


valor de 0 y 1, dividiendo en 255
b. Se realizará un “one-hot encoding” con la función to_categorical() para
convertir las etiquetas, por ejemplo 6 de futbol a (0 0 0 0 0 0 1 0 0 0)
corresponde a las salida de 10 neuronas.
c. Se subdivide los datos en 80-20 para entrenamiento y pruebas con
train_test_split()
1.2.5. Creación de la red neuronal convolucional

a. Se declaran 3 constantes, el valor inicial de la tasa de aprendizaje llamada


INIT_LR, la cantidad de iteraciones llamada epochs y el tamaño de
imágenes a procesar llamado batch_size
b. Se creará la primer capa de neuronal convolucional de 2 dimensiones con
Conv2D
c. Se aplicarán 32 filtros al kernel de tamaño 3x3 de activación linear
d. Se utilizará la función LeakyReLU para activar la neuronas
e. Se realizará un MaxPolling de 2x2 para reducir la imagen
f. Para no tener overfitting se usa la técnica llamada Dropout
g. Se aplica aplanando con Flatten() para los 32 filtros y se aplica Dense()
para obtener la capa de 32 neuronas
h. Luego, se tiene la capa de salida con 10 neuronas con activación Softmax
para que se tenga el “hot encoding”
i. Por último, se compila la red con sport_model.compile() asignándole un
optimizador, en este caso Adagrad.
1.2.6. Entrenamiento de la red neuronal convolucional

a. Con el uso de sport_model.fit se iniciará el entrenamiento y validación, de


esta manera se va a ir formando la red de imágenes, pixeles, arrays y los
filtros para ir aprendiendo a distinguir los deportes.
b. Con la red ya entrenada se ejecuta sport_model.save() para guardarla
1.3. Prueba de la red neuronal convolucional (evaluación del algoritmo).

1.3.1. Evaluación del modelo

a. Con la red entrenada se realiza la prueba del conjunto de imágenes el cual


se obtuvo un 74% de precisión reconociendo las imágenes, se debería dar
algo más de iteraciones para aumentar este valor, pero por el momento es
aceptable.
1.3.2. Predicción de prueba

a. Se realiza una predicción de prueba con dos imágenes, una de natación y


otra de boxeo, el modelo fue exitoso en predecir las imágenes
Aquí se predijo el deporte natación para la imagen.
Aquí se predijo el deporte boxeo para la imagen.
CONCLUSIÓN

El uso de una red convolucional es un método novedoso para determinar


predicciones de imágenes con un índice de precisión elevado y tiempos
relativamente buenos, sin embargo, se debe tener en cuenta que se necesita un
gran conjunto de imágenes para determinar los filtros y las capas necesarias, por
otra parte, la extracción de imágenes debe ser en gran número para que los
resultados sean viables.

Este algoritmo de tipo red neuronal está condicionado a los colores de la imagen
para clasificar los pixeles, lo que lo vuelve dependiente de las imágenes a utilizar,
esto puede ocasionar que el algoritmo pueda ser liviano o pesado y que los
resultados de las capas se tomen un determinado tiempo en procesarse, además,
con el uso del aplanado de los filtros puede llegar a generar confusiones si no se
ha entrenado correctamente el modelo.

Es de anotar que este tipo de redes está diseñado para cualquier tipo de objetos
que tengan colores, en ese caso también estaría siendo viable su uso en poder
detectar objetos contundentes en videos o fotografías donde a simple vista no sea
tan obvio su detección, esto sería excelente en áreas como investigación forense.

Como conclusión, usando herramientas de inteligencia artificial como smodin.io se


llega a esta conclusión. “Las redes neuronales convolucionales (CNN) son un tipo
de red neuronal artificial que ha revolucionado el campo del reconocimiento de
imágenes. Las CNN se han utilizado en numerosas aplicaciones, incluida la
clasificación de imágenes, la detección de objetos y el reconocimiento facial, y han
superado las técnicas tradicionales de reconocimiento de imágenes. En este
ensayo, exploraremos la arquitectura y las características únicas de las CNN, las
formas en que han transformado el reconocimiento de imágenes y las posibles
aplicaciones futuras de las CNN en este campo..”
REFERENCIAS

jbagnato. (2018). MNIST-Deportes. Obtenido de


https://github.com/jbagnato/machine-learning/raw/master/sportimages.zip
KeepCoding. (2019). ¿Qué son las Redes Neuronales Convolucionales? Obtenido
de https://keepcoding.io/blog/redes-neuronales-convolucionales/
Na8. (2018). ¿Cómo funcionan las Convolutional Neural Networks? Visión por
Ordenador. Obtenido de https://www.aprendemachinelearning.com/como-
funcionan-las-convolutional-neural-networks-vision-por-ordenador/
Na8. (2018). Clasificación de Imágenes en Python. Obtenido de
https://www.aprendemachinelearning.com/clasificacion-de-imagenes-en-
python/

También podría gustarte