Arquitecturas Deep Learning PDF

ARQUITECTURAS DEEP LEARNING Rodríguez Díaz, Daniel Alejandro-1802558, Ramírez Gómez, Sebastián-1803083. Actividad teóri

Views 150 Downloads 9 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ARQUITECTURAS DEEP LEARNING Rodríguez Díaz, Daniel Alejandro-1802558, Ramírez Gómez, Sebastián-1803083.

Actividad teórica: Las Deep Neural Networks (DNN) existen en varias formas o arquitecturas, cada una tiene propiedades y aplicaciones diferentes. La forma más simple de las DNN son las Convolutional neural networks ( CNN ), estas tal vez son la forma más común y la que en muchas aplicaciones se usa como base de otras formas más complejas: ● Investigue cómo están conformadas, de que partes o elementos constan estas redes. Estas redes son sistemas multicapa de filtros convolucionales y son realizadas por medio de matrices bidimensionales, de esta manera, en cada una de las capas de estas redes se realiza una funcion la cual consiste en realizar un mapeo que permite tener una causal no lineal, de esta forme se componen de: - Fase de extracción: Compuesta por neuronas convolucionales y de reducción de muestreo. -

Neuronas convolucionales: Por medio de la fase de extracción, las neuronas sencillas se reemplazan por métodos de matrices que realizan operaciones sobre las imágenes 2D por medio de un único valor numérico, dicho proceso se calcula por medio de la expresión:

Imagen 1. Calculo de una neurona convolucional J representa la matriz que se calcula en la combinación lineal de las salidas Yi de las neuronas encontradas en la capa anterior operadas por medio del núcleo de convolución Kij. Este resultado se suma a la influencia bj que posteriormente pasa por una función que cumple con la función de activar de manera no lineal el resultado g(*). De esta forma, en este primer proceso, se realiza un filtro a la imagen que ingresa por medio del núcleo que ya ha sido entrenado, de esta manera se busca resaltar ciertas características de la imagen de entrada dependiendo del aprendizaje que tengan las neuronas. -

Neuronas de reducción de muestreo: Por medio de la operación de max-pooling realiza una operación que permite encontrar el valor máximo entre una ventana de muestras y envía este dato como resumen de característica que representa dicha área, de esta forma la dimensión de los datos es reducida por un factor igual al tamaño de la ventana sobre la cual se realizó la operación.

-

Neuronas de clasificación: Por medio de los procesos anteriores, los datos llegan a esta fase totalmente depurados, trayendo consigo una serie de características que permiten identificar en su totalidad a la imagen de entrada, de esta forma, las neuronas de clasificación se encargan de etiquetar dichos datos según sean los objetivos del entrenamiento. Este proceso se calcula por medio de la función:

Imagen 2. Calculo de etiqueta de datos J representa la matriz que se calcula en la combinación lineal de las salidas Yi de las neuronas encontradas en la capa anterior operadas por medio de un peso wij. Este resultado se suma a la influencia bj que posteriormente pasa por una función que cumple con la función de activar de manera no lineal el resultado g(*). ● Describa su funcionamiento. De esta manera, se conoce como red neural artificial de aprendizaje supervisado en donde su principal característica se basa en la búsqueda continua de características en los datos de entrada de una imagen en donde por medio del proceso de aprendizaje debe tener la capacidad de detectar lineal, curvas y procesos mucho mas complejos como la detección de rostros o siluetas de animales. Con base en ello, como dato inicial ingresa una imagen cualquiera:

Por medio del análisis de las neuronas, se procede a añadir características a los datos ingresados con el fin de determinar características a la imagen para proceder a generar operaciones como se muestra en la siguiente imagen:

De esta manera se toman los pixeles de la imagen los cuales determinaran el numero de neuronas que se deben utilizar en el proceso, si se tiene una imagen con 28x28 pixeles de alto y ancho, se tendrán que utilizar 784 neuronas, dicho proceso depende del color que tenga la imagen en donde si este es a color se procede a multiplicar la dimensión de la imagen por el los colores primarios (red, green, blue) que equivale a x3 teniendo como resultado final 2352 neuronas a utilizar. En primera instancia se deben normalizar los datos de las imágenes por medio de números entre 0 y 1, dicho proceso se realiza dividiendo el valor del pixel en 255.

Por medio de la convolución se procede a tmar grupos de pixeles cercanos en la imagen para posteriormente operar matemáticamente por medio de una matriz llamada kernel.

Por medio de un filtro implementado con base a la matriz de kernel se procede a realizar el producto matricial con la imagen de entrada y desplazando de a un pixel hacia la izquierda en sentido que la matriz de kernel se desplaza de arriba – abajo generando una nueva matriz.

De esta manera se obtiene una nueva imagen que se genera por medio del filtro de kernel que permite observar las características de la imagen de entrada.

Por medio de un proceso de subsampling se pretende reducir la cantidad de neuronas utilizadas durante el proceso, de esta manera se pretende dejar dentro del proceso las características mas importantes detectadas por medio del filtro anterior.

A partir de ello se deben aplicar varias convoluciones que se representan de la siguiente manera: -

Primera convolución

-

Segunda convolución

-

Tercera convolución

Con base a los procesos anteriores, se puede determinar por medio de una imagen de entrada cada una de las características principales que permiten determinar y encontrar la relación de la imagen con la realidad para dar un resultado de identificación final.

● ¿Qué aplicaciones son comunes para estas redes? Clasificación de datos de imágenes, clasificación de series de tiempo o señales de audio utilizando convoluciones en 1D, de igual forma clasificación de datos volumétricos por medio de convoluciones 3D.

Otra arquitectura muy de moda en los últimos 2 años son las Generative adversarial Networks ( GAN ), estas son en realidad 2 DNN que de alguna forma compiten por un objetivo, cad una de las redes está conformada por una CNN de varias capas: ● Investigue cómo están conformadas, de que partes o elementos constan estas redes. Por medio de la inteligencia artificial, estas redes deben ser entrenadas por medio de un aprendizaje automático que consta de seis pasos: -

Definición del problema Se deben determinar los resultados que se quieren obtener, a partir de ello se deben recopilar una serie de información por medio de datos reales en donde el sistema pueda obtener toda la información necesaria.

-

Arquitectura Esta arquitectura depende del tipo de uso que se requiera implementar, de esta forma no cualquier red neuronal funcionara para cualquier aplicación, esta debe elegirse adecuadamente con base a la aplicación final.

-

Primer entrenamiento de la red discriminadora Por medio de este proceso la red empieza a determinar características de los datos de entrada que deben ser datos reales, entendiéndose como imágenes no configuradas o manipuladas anteriormente por medio de software para mejorar o cambiar sus características.

-

Primer entrenamiento de la red generadora A partir de los datos recopilados, la red generadora comienza a generar daos falsos por medio de características previamente identificadas que buscan asemejarse mas no duplicarse.

-

Segundo entrenamiento de la red discriminadora En este proceso, la red empieza a alimentarse por medio de los datos falsificados que se generaron en la capa anterior, a partir de ello, esta debe determinar cuales datos son verdaderos y, por el contrario, cuales son falsos.

-

Segundo entrenamiento de la red generadora En este punto, la red contiene mucha más información que le permite determinar y aprovechar los puntos débiles de la red discriminadora permitiéndole generar datos falsos con una apariencia cada vez mas cercana a la real sin necesidad de duplicarla.

● Describa su funcionamiento. La tarea de esta red es generar una falsificación de datos por medio del reconocimiento previo de datos verdaderos con el fin de crear datos similares, pero no iguales que permitan determinar cierto nivel de realidad en los datos generados computacionalmente. De esta manera, la red aprende sobre características de datos utilizados para su aprendizaje y termina realizando procesos totalmente nuevos que se derivan del uso de dos tipos de redes, las generadoras o las discriminadoras que entre si permiten el aprendizaje continuo de las neuronas que se mantienen en un proceso de validación continua de los datos para generar cada vez mas resultados falsos que llegan a parecer más reales. ● ¿Qué aplicaciones son comunes para estas redes? -

Predicción de video Predicción de videos por medio de los fotogramas generando movimientos, acciones, cambios de fondo, permitiendo de esta manera prolongar la grabación más allá de la grabación real.

-

Generación de imágenes basadas en textos Permite generar imágenes por medio de un guion de texto.

-

Generación de objetos complejos Por medio de imágenes predefinidas se procede a generar bocetos mas complejos por medio de la identificación de formas.

Finalmente se estudiarán las Recursive Neural Network (RNN). Para estas formas de redes, se consideran formas de inyectar información ya sea de forma jerárquica o mediante estrategias de manejar la información en forma secuencial. Particularmente existe un tipo de red recursiva llamada Recurrent NN (RNN) aplicada con éxito en Natural Language Processing (NLP) ● Investigue cómo están conformadas las Recursive NN y las Recurrent NN, se supone que las Recursive NN son la forma general, explique cómo las Recurrent NN son una forma de Recursiv e NN. Se dice que es una generalización de las redes recurrentes debido a que es una neurona que se ha desarrollado en el tiempo por medio del proceso, es decir, las redes recurrentes se comportan de manera secuencial mientras que las recursivas parten de un sistema jerárquico que con el tiempo desarrolla nuevos nodos de interconexión.

● Describa el funcionamiento de estos tipos de red -

Red Neuronal Recursiva Permite generar arboles de análisis ya que permite generar representaciones jerárquicas, se puede representar por medio del siguiente esquema en donde los hijos de cada nodo principal son un nodo similar al que provienen.

-

Red neuronal recurrente En una red recurrente, los pesos son compartidos mientras que la dimensionalidad del sistema permanece constante a lo largo de la información secuencial. De esta manera se puede llegar a pensar que tienen una memoria que puede capturar información sobre lo que ya se ha calculado.

● Explique en qué consiste el Natural Language Processing y como las RNN se aplican en este problema. Se ocupa de la investigación de mecanismos eficaces de comunicación entre personas y maquinas por medio del lenguaje natural. De esta manera, permite desarrollar mecanismos para comunicarse que sean eficaces computacionalmente. A partir de ello, se le da a un ordenador la capacidad de entender el lenguaje humano tanto de forma escrita como hablada. ● ¿Cuál es el máximo avance que se la logrado en NLP con estas NN? Dentro de los usos diarios que se le da a esta tecnología se pueden encontrar los chequeos ortográficos, funciones de autocompletar o enviar ordenes a Alexa, Siri o Google Assistant. ● ¿Qué otras aplicaciones se han resuelto usando RNN? Dentro de las aplicaciones más conocidas se encuentran:

-

Visión artificial

-

Vehículos autónomos

-

Localización

-

Detección de carreteras

-

Observación meteorológica

DESARROLLO ACTIVIDAD PRACTICA: INVESTIGUE QUE SIGNIFICA TRANSFER LEARNING: TRANSFER LEARNING: Esto hace referencia a usar lo aprendido en un problema de machine learning para posteriormente ser usado en otro con características similares al anterior, esto contribuye en gran ventaja a que el programa no tenga que comenzar desde cero con problemas similares, se puede hacer una analogía con un estudiante del colegio donde el joven usa experiencia adquirida en problemas anteriores de alguna asignatura para interpretar nuevos retos .

EJEMPLOS DE TRANSFER LEARNING: Se tiene un problema de clasificaciones de razas de gatos por reconocimiento de imágenes:

En lugar de inicializar aleatoriamente los parámetros de la red se comienza usando los valores obtenidos después de entrenar la misma arquitectura base con un conjunto enorme de imágenes etiquetadas donde ya existían gatos entre otras cosas, De esta forma se están transfiriendo los conocimientos adquiridos en una tarea más genérica a este caso particular, y no se partiría totalmente de cero. Se puede usar un modelo de entrenamiento con la base de datos imageNet que cuenta con más de 14 millones de imágenes, esta sería la forma de operar del training transfer. Pasos más comunes para el transfer learning: - Tome capas de un modelo previamente entrenado. - Congélelos para evitar destruir la información que contienen durante las rondas de entrenamiento futuras. - Agregue algunas capas nuevas y entrenarles sobre las capas congeladas. Aprenderán a convertir las características antiguas en predicciones en un nuevo conjunto de datos. - Entrene las nuevas capas en su conjunto de datos.

Ejemplo práctico: Cargaremos el modelo Xception, previamente entrenado en ImageNet, y lo usaremos en el conjunto de datos de clasificación "gatos contra perros" de Kaggle. -

Primero, busquemos el conjunto de datos de perros y gatos usando TFDS.

El aprendizaje por transferencia es más útil cuando se trabaja con datos muy pequeños. Para mantener nuestro conjunto de datos pequeño, usaremos el 40% de los datos de entrenamiento originales (25,000 imágenes) para entrenamiento, el 10% para validación y el 10% para pruebas. Están son las primeras 9 imágenes del conjunto de datos donde los perros están clasificados con un 1 y los gatos con un cero:

Ahora se tienen que estandarizar las imágenes ya que en bruto, las imágenes tienen una variedad de tamaños, además cada pixel costa de valores enteros entre 0 y 255 RGB, entonces primero se estandariza una imagen de tamaño fijo , 150 x 150 , además también se estandarizan los datos para optimizar la velocidad de carga :

También es una buena práctica introducir artificialmente la diversidad de muestras aplicando transformaciones aleatorias pero que sean realistas a las imágenes de entrenamiento, como voltearlas de forma horizontal, o algunas pequeñas rotaciones, esto puede ayudar a exponer el modelo de diferentes aspectos a los datos que se tenían de entrenamiento. Ahora es momento de construir el modelo que haga lo siguiente : -

Agregar una normalización para escalar los valores que iban de 0,255 al -1,1 Se agrega una capa antes de la capa de clasificación para la regularización Se asegura de aprobar el training = false para cuando se llama al modelo base. Se ejecute en modo de inferencia, de modo que las estadísticas de batchnorm no se actualicen incluso después de descongelar el modelo base para un ajuste fino.

Ahora se procede a realizar el entrenamiento de la capa superior:

Finalmente, para realizar un ajuste fino en todo el modelo, se descongela el modelo base para entrenar todo el modelo con una tasa de aprendizaje baja, es importante destacar que aunque el modelo base se vuelve entrenable, las capas de normalización de lotes en el interior no se actualizarán en sus estadísticas de lotes, ya que esto causaría fallas en las representaciones aprendidas

ANALISIS DE RESULTADOS: Cuando trabajemos en un problema de aprendizaje automático relacionado con imágenes o con texto siempre nos conviene tener en cuenta la transferencia de aprendizaje a la hora de llevar a cabo la inicialización de nuestra red neuronal. Para resolver problemas encuadrados dentro de los campos que hemos visto contamos con multitud de modelos pre-entrenados que nos resultarán muy útiles

La trasferencia de aprendizaje es un método relativamente nuevo con un margen de mejora, entonces es aconsejable cada vez que se quiera implementar, buscar nuevas actualizaciones en este método.

Referencias https://es.wikipedia.org/wiki/Redes_neuronales_convolucionales https://www.aprendemachinelearning.com/como-funcionan-las-convolutional-neural-networks-visionpor-ordenador/ https://www.ionos.es/digitalguide/online-marketing/marketing-para-motores-de-busqueda/generativeadversarialnetworks/#:~:text=El%20prop%C3%B3sito%20de%20una%20Generative,neuronales%20que%20compit en%20entre%20ellas. https://stats.stackexchange.com/questions/153599/recurrent-vs-recursive-neural-networks-which-isbetter-for-nlp https://maryambafandkar.me/recursive-neural-network-vs-recurrent-neural-network/ https://www.aprendemachinelearning.com/procesamiento-del-lenguaje-natural-nlp/ https://elvex.ugr.es/decsai/deep-learning/slides/NN1%20Applications.pdf https://medium.com/metadatos/qu%C3%A9-es-la-transferencia-de-aprendizaje-y-c%C3%B3moaplicarla-a-tu-red-neuronal-e0e120156e40 https://juandomingofarnos.wordpress.com/2019/05/10/el-aprendizaje-por-transferencia-es-la-idea-desuperar-el-paradigma-de-aprendizaje-aislado-y-utilizar-el-conocimiento-adquirido-para-una-tarea-pararesolver-los-relacionados/