Laboratorios 3: Redes Neuronales Convolucionales – (CNN)
Enviado por angel_merino • 21 de Diciembre de 2021 • Trabajo • 1.322 Palabras (6 Páginas) • 106 Visitas
[pic 1]
Laboratorios 3: Redes Neuronales Convolucionales – (CNN)
Mozo Vega Camilo, González Pérez Herick, Meriño Pabón Ángel. |
Universidad Del Magdalena – Ingeniería Electrónica Autómatas Grupo 1 |
Santa Marta. D.T.C.H - Colombia camilomozoav@unimagdalena.edu.co, hericgonzalezdp@unimagdalena.edu.co, angelmerinojp@unimagdalena.edu.co. |
Resumen: En el presente documento se realizara el diseño una app en la que se entrenara un modelo basado en redes neuronales convolucionales con el fin de predecir que numero se relaciona con la figura de una mano a partir dataset dado, se implementaran en la suite Anaconda Navigator que permite crear entornos virtuales para la gestión de paquetes relacionados con la ciencia de datos, en los que se encuentra la herramienta Jupyter Notebook en la que se ejecutara el modelo de redes neuronales.
Introducción
Muy probablemente en algún momento de nuestra vida en el siglo XXI, la mayoría de nosotros hemos tenido la oportunidad de ver en acción algún tipo de algoritmo de reconocimiento de objetos, por ejemplo, la detección facial de la cámara del teléfono móvil. En el núcleo de soluciones de visión computacional como éstas, se encuentran las redes neurales convolucionales (CNN). En pocas palabras, son redes neurales capaces de construir funciones completas a partir de otras menos complejas. Un ejemplo clásico es la detección facial, en la que primeras capas eligen líneas horizontales y verticales mientras que las capas posteriores encuentran narices y bocas; como también Gracias a esto, desde apenas 1998, podemos clasificar imágenes y detectar diversos tipos de tumores automáticamente, enseñar a conducir a los coches autónomos y un sinfín de otras aplicaciones [3].
diseño realizado
La presente practica consiste en realizar un modelo de redes neuronales convolucionales, el cual tenga la capacidad de clasificar a partir de la figura formada con la mano y de esta forma identificar el número, dicho modelo se implementará por medio de una interfaz gráfica.
Para el desarrollo y entrenamiento del modelo se acude a la herramienta Júpiter Notebook donde se hará uso del framework Tensorflow y Keras, por tanto, es necesario importar los paquetes de las bibliotecas necesarias para la implementación (Fig. 1).
[pic 2]
Fig. 1 Importar paquetes de bibliotecas.
Se crea una función load_dataset para cargar los respectivos datos pera realizar el entrenamiento del modelo, dichos datos tienen extensión .h5, como se muestra en la figura 2.
[pic 3]
Fig. 2, Función load_dataset.
Posteriormente de crear la función que nos permitirá cargar el dataset, y de su respectivo uso, se procede a distribuir los datos para cada una de las etapas presente en la creación del modelo por medio de la función train_test_split del paquete Scikit learn. (Fig. 3.)
[pic 4]
Fig. 3. Distribución de los datos.
Luego de la distribución, se normalizan los datos (Fig. 4.).
[pic 5]
Fig. 4. Normalización de los datos.
Hecho el debido procesamiento de los datos, se procede a definir los hiperparametros del modelo (Fig. 5).
[pic 6]
Fig. 5. Definición de los hiperparametros.
Posteriormente se define el modelo el cual es de tipo secuencial, con la ayuda del paquete Keras, para esto se define una función llamada create_model, donde el cuerpo de la función estará formado por el número de capas que tendrá la red neuronal y el algoritmo optimizador a implementar, de igual forma la función de costo (Fig. 6).
[pic 7]
Fig. 6. Definición del modelo.
Seguidamente se define la estructura del modelo del algoritmo, en esta estructura se define los mini batch. (Fig. 7.)
[pic 8]
Fig. 7. Estructura Del Modelo.
Luego de el entrenamiento del modelo se encuentra el accuracy correspondiente al conjunto de datos de test. (Fig. 8.)
[pic 9]
Fig. 8. Determinar el Acccuracy datos de test.
Luego, se realizan unas pruebas al modelo con imágenes que no estén incluidas en el data set con el cual fue entrenado.
(Fig. 9.)
[pic 10]
Fig. 9. Prueba del modelo.
Por último, al observar un buen comportamiento del modelo se guarda para implementarlo. (Fig. 10.)
[pic 11]
Fig. 10. Guardar Modelo.
resultados.
Con el fin de obtener los mejores resultados se realizaron varias pruebas.
- Primera prueba
Esta primera prueba los hiperparametros fueron los siguientes.
Learning Rate | 0.001 |
Numero de épocas | 20 |
Hidden layer size 1 | 200 |
No. De Filtros | 32 |
Tamaño de Kernerl | 5 |
Capas CNN | 1 |
Max Pooling | (2x2) |
Capas NN | 1 |
Batch Size | 16 |
Loss train | Accuracy Validación | Accuracy Test |
0.0050 | 0.9083 | 0.908333 |
- Segunda prueba
En la segunda prueba se opto por añadir más capas ocultas de redes convolucionales y capas neuronales.
...