Busque entre los 164210 recursos disponibles en el repositorio
Las Redes Neuronales son los modelos de aprendizaje automático con mejor desempeño en la actualidad en una gran variedad de problemas. Son modelos generales y aproximadores universales. Con algoritmos de optimización basados en descenso de gradiente, pueden optimizar miles o millones de parámetros en base a una función de error. Se distinguen de otros modelos en que no requieren un diseño manual de características de los datos para funcionar; las características se aprenden automáticamente mediante el proceso de optimización, también llamado entrenamiento. Su diseño se organiza en capas que determinan su arquitectura. En los últimos años, se ha conseguido entrenar Redes Neuronales con múltiples capas mediante un conjunto de técnicas que suelen denominarse Aprendizaje Profundo (Deep Learning). En particular, las Redes Convolucionales, es decir, Redes Neuronales que utilizan capas convolucionales, son el estado del arte en la mayoría de los problemas de visión por computadora, incluyendo la clasificación de imágenes. Las capas convolucionales permiten aplicar convoluciones con filtros aprendidos para un mejor desempeño y eficiencia. Muchos de los problemas para los cuales las Redes Convolucionales son el estado del arte requieren que los modelos se comporten de cierta manera ante transformaciones de su entrada. Existen dos propiedades fundamentales que capturan dicho requerimiento; la invarianza y la equivarianza. La invarianza nos dice que la salida del modelo no es afectado por las transformaciones. La equivarianza permite que la salida sea afectada, pero de una manera controlada y útil. Si bien los modelos tradicionales de Redes Convolucionales son equivariantes a la traslación por diseño, no son ni invariantes a dicha transformación ni equivariantes a otras en los escenarios usuales de entrenamiento y uso. Existen dos opciones principales para otorgar invarianza o equivarianza a un modelo de red neuronal. La tradicional ha sido modificar el modelo para dotarlo de esas propiedades. La otra opción es entrenarlo con aumentación de datos utilizando como transformaciones el mismo conjunto al que se desea la invarianza o equivarianza. Dotar con invarianza o equivarianza a los modelos tiene utilidades en varios dominios, como la clasificación de imágenes de galaxias, imágenes de microscopios o formas de mano. En particular, el reconocimiento de formas de mano en imágenes es una de las etapas más importantes de los sistemas de reconocimiento de lenguas de señas o gestos mediante imágenes o video. En muchos casos, la rotación, traslación o escalado de la mano en la imagen no afectan a su forma, y por ende se requiere dotar de invarianza a la red para mejorar el desempeño del sistema. No obstante, no está claro cómo los modelos adquieren estas propiedades, tanto al usar aumentación de datos como al modificar el modelo. Tampoco está claro como las modificaciones de modelos afectan la eficiencia y el poder de representación de los mismos. Más aún, en los modelos tradicionales tampoco es conocido cómo se adquieren dichas propiedades con aumentación de datos, así como cuál es la mejor estrategia para aumentar los datos con este fin. En el primer aporte de esta tesis, analizamos diversas estrategias para obtener invarianza o equivarianza en modelos de clasificación de imágenes con redes neuronales. Comparamos los modelos tradicionales AllConvolutional y LeNet, y los modelos especializados Group CNN y Spatial Tansformer Networks para determinar su desempeño. Realizamos experimentos con varios conjuntos de datos conocidos (MNIST y CIFAR10) utilizando aumentación de datos. Los resultados arrojan evidencia en favor de la hipótesis de que aún con ingeniosas modificaciones de las redes convolucionales, la aumentación de datos sigue siendo necesaria para obtener un desempeño similar al de los modelos no invariantes. Más aún, en varios casos la aumentación de datos por si sola puede proveer un desempeño similar al de los modelos especializados, siendo al mismo tiempo más simples de entrenar y comprender. Además, analizamos cómo re-entrenar una red previamente generada para convertirla en invariante, y encontramos que el entrenamiento de las últimas capas permite convertir un modelo no invariante en uno que si lo sea con un bajo costo computacional y leve pérdida de desempeño. Si bien estos mecanismos permiten imbuir de invarianza o equivarianza una red, la forma en que la misma codifica o representa dichas propiedades no están claros. La comprensión de la invarianza o equivarianza de una red o cualquier sistema puede ayudar a mejorar su desempeño y robustez. Estas propiedades pueden estimarse midiendo los cambios en las salidas de la red en base a las transformaciones realizadas a su entrada. Las metodologías actuales de evaluación y comprensión de la invarianza y equivarianza se enfocan solamente en las capas de salida de la red. No obstante, para poder comprender como se codifican, el análisis debe realizarse en base a toda la red, es decir, considerando las representaciones intermedias. En el segundo y principal aporte de esta tesis, por ende, desarrollamos métricas para medir la invarianza y equivarianza de las redes. Dichas métricas permiten cuantificar estas propiedades de forma empírica no solo en la salida de la red sino también en sus representaciones internas. De esta forma, podemos visualizar y cuantificar que tan invariante o equivariante es una red, ya sea en su totalidad, por capas, o por activaciones individuales. Las métricas son aplicables a cualquier red neuronal, sin importar su diseño o arquitectura, así como a cualquier conjunto de transformaciones. Realizamos una implementación de las métricas en una librería de código abierto, con soporte para la librería tensorial PyTorch. Las métricas fueron validadas para verificar su correcto funcionamiento y utilidad. Además, estudiamos sus propiedades, como la variabilidad ante los conjuntos de datos, transformaciones, inicialización de los pesos, y otras. Utilizando las métricas, también se evaluamos modelos de redes neuronales convolucionales conocidos para caracterizarlos en términos de su invarianza o equivarianza. Asimismo, caracterizamos diversos tipos de capas como las de Batch Normalization, Max Pooling, diversas funciones de activación, capas convolucionales con distintos tamaños de filtro, y otros. Los resultados otorgan una primera mirada de los modelos de redes en términos de estas propiedades, y esperamos que puedan fomentar un mejora en ese área. Por último, hacemos un tercer aporte al reconocimiento automático de lengua señas basado en video. El reconocimiento de señas es un subárea del reconocimiento de gestos o acciones. Tiene como objetivo traducir al lenguaje escrito un video en donde una persona se comunica mediante lengua de señas. Desde la aparición de tecnologías de captura de video digital existen intentos de reconocer gestos y señas con diferentes fines. Es un problema multidisciplinar complejo y no resuelto aún de forma completa. Un paso fundamental en el reconocimiento de señas es la clasificación de formas de mano, ya que estas conllevan una gran parte de la información de una seña. El motivante principal de las interrogantes planteadas sobre modelos de invarianza y equivarianza surge a partir del estudio de técnicas de clasificación de formas de mano. Si bien las redes convolucionales proveen un desempeño ejemplar en varios dominios, su desempeño para la clasificación de formas de mano no ha sido evaluado rigurosamente. Por ende evaluamos diversos modelos de redes neuronales para determinar su aplicabilidad en este dominio. Utilizando los conjuntos de datos de formas de mano LSA16 y RWTH-PHOENIX-Weather, realizamos experimentos con los modelos LeNet, VGG16D, ResNet, Inception y AllConvolutional para determinar su eficacia como clasificadores en este dominio. Los resultados indican que todos los modelos tienen un desempeño razonable en ambos conjuntos de datos, con resultados iguales o mejores que otros modelos diseñados específicamente para la tarea. No obstante, el modelo VGG16D obtuvo los mejores resultados. Incluimos también evaluaciones de transferencia de aprendizaje, con y sin re-entrenamiento de las capas; en ambos casos dichas estrategias obtuvieron un desempeño peor que los modelos entrenados sin transferencia de aprendizaje. Además, realizamos un estudio de varias estrategias de pre-procesamiento de las imágenes, encontrando que la segmentación de las manos del fondo otorga un incremento de desempeño significativo. Por último, también desarrollamos una librería de código abierto para facilitar el acceso y preprocesamiento de bases de datos de formas de manos.