Ingeniería Informática
Permanent URI for this collectionhttp://54.81.141.168/handle/123456789/9139
Browse
5 results
Search Results
Item Metadata only Desarrollo de un Framework para la identificación del nivel de complejidad de texto para el entrenamiento de chatbots basado en Machine Learning(Pontificia Universidad Católica del Perú, 2022-03-21) Matos Rios, Hans; Beltrán Castañón, César ArmandoLa generación de diálogo implica diseñar un programa para generar una conversación natural, esto requiere desarrollar algoritmos que puedan conversar con un ser humano y otro programa de manera coherente y fluida. Desarrollar una conversación también depende del contexto y conocimiento del interlocutor, lo cual nos lleva a definir la existencia de niveles de complejidad conversacional, la cual se refiere a determinar que tan fácil o difícil de leer es un texto. En este aspecto, especialmente para el idioma español, no existe una herramienta que tenga un módulo propio que le permita clasificar textos en español por su complejidad textual. En el presente trabajo de fin de carrera se realiza el desarrollo de un módulo en el lenguaje de programación Python, el cual funciona como un Framework para identificar la complejidad textual de textos en español usando técnicas de Machine Learning. Para ello, en primer lugar, se implementaron 48 métricas de análisis de complejidad textual basadas en Coh-Metrix usando el lenguaje de programación Python. Dichas métricas convierten textos en español en datos numéricos con los cuales se entrenaron distintos modelos de Machine Learning, con el motivo de obtener el mejor modelo a utilizar con el Framework desarrollado, siendo este capaz de utilizar un modelo personalizado provisto por el usuario. Para ello, se necesitó obtener un corpus de 183 textos en español para realizar dicho entrenamiento, el cual fue obtenido al descargar textos educativos de nivel primaria y secundaria. Por último, se entrenó un chatbot con los textos obtenidos para el corpus, cuyas respuestas generadas fueron analizados con el Framework previamente desarrollado, identificando que el nivel de complejidad de dichas respuestas correspondía al nivel de los textos con los cuales el chatbot fue entrenado. En conclusión, en el presente proyecto de investigación se desarrolla un módulo de Python que funciona como un Framework, el cual es capaz de identificar la complejidad textual de textos en español, ya sea con el mejor modelo de Machine Learning utilizado en el presente proyecto o utilizando uno provisto por el usuario de la herramienta.Item Metadata only Implementación de un algoritmo de aprendizaje profundo basado en eventos para el problema de predicción de movimiento bursátil(Pontificia Universidad Católica del Perú, 2021-11-30) Bustamante Arce, Jaime Diego; Beltrán Castañón, César ArmandoLa predicción de precios bursátiles, acciones e índices siempre ha sido un tema de interés en el mundo financiero, no solo por su capacidad de originar grandes rentabilidades en poco tiempo, sino también por su volatilidad y complejidad. Así, desde que los mercados bursátiles fueron concebidos diferentes investigadores en variadas áreas han tratado de “vencerlo” prediciendo su comportamiento, como el índice S&P 500 que lista la cotización de las 500 corporaciones más líquidas de la Bolsa de New York. Uno de los enfoques es el fundamentalista, que busca predecirlo de acuerdo a las noticias en los medios de las empresas listadas en la Bolsa de Valores. Desde el lado informático, diversas técnicas han venido siendo aplicadas para realizar esta predicción como estadísticas y las clásicas herramientas de aprendizaje de máquina. Sin embargo, con el creciente aumento de volumen de información, se hace necesario aplicar técnicas que consigan lidiar con esta información no estructurada. Técnicas como redes profundas recurrentes (LSTM), se han mostrado ad-hoc para el manejo de información temporal, debido a que tienen de capacidad de memorizar hechos pasados, que persisten en el tiempo. En el presente trabajo se propone una metodología y conjunto de redes neuronales profundas para la predicción de movimiento bursátil a partir de eventos y noticias corporativas. Para ello no solo se considera la contextualización de palabras, sino también sus relaciones y composición semántica, estructura e historia para la predicción del índice S&P 500. En resumen, el presente proyecto obtiene resultados exitosos puesto que sobrepasan a los del estado del arte. Así, el conjunto de modelos neuronales propuestos puede ser usados como apoyo en la decisión de inversión diaria en el índice S&P 500.Item Metadata only Diseño de un modelo algorítmico para la discriminación de patrones acústicos entre voces y pisadas humanas(Pontificia Universidad Católica del Perú, 2019-03-29) Viera Barthelmes, Cecilia del Pilar; Beltrán Castañón, César ArmandoActualmente existe una gran demanda de soluciones innovadoras e informáticas que permitan generar sistemas de vigilancia o que ayuden en esta labor. Es así como se han generado diversos proyectos que buscan satisfacer las necesidades de sistemas de este tipo. Mayormente, se ha utilizado la tecnología de imágenes y utilizando drones o algún tipo de cámara, donde una persona está monitoreando estas imágenes captadas en tiempo real para verificar la presencia de un objeto o un ser no deseado. Sin embargo, estas soluciones han presentado una gran complejidad tanto en procesamiento como infraestructura, conllevando así también a un precio elevado de su implantación. Es por esto que este proyecto de investigación se enfoca en presentar una solución a este problema utilizando recursos más simples, basándose en un reconocimiento de patrones en señales acústicas. Esta es un área de la especialidad de informática que en los últimos años ha tenido un gran desarrollo y estudio debido a las diversas aplicaciones que puede tener en el mundo contemporáneo. Cada vez se han ido perfeccionando los algoritmos de extracción de características y de aprendizaje de máquina, por lo cual en este trabajo se utilizarán y compararán dos métodos de caracterización estudiados en investigaciones de reconocimiento de voz. Además, se desarrollará un módulo de recorte de la señal que permita identificar a las regiones de interés. Finalmente, se usarán redes neuronales como el clasificador del algoritmo.Item Metadata only Algoritmo para el balanceo dinámico del grado de dificultad mediante aprendizaje de máquina en la implementación de un juego orientado a apoyar el desarrollo de la inteligencia espacial en niños de etapa pre-escolar(Pontificia Universidad Católica del Perú, 2018-03-27) Caballero Torres, Franco André; Beltrán Castañón, César ArmandoDentro del ámbito educativo nacional, la Inteligencia espacial, a pesar de haber demostrado estar relacionada con una serie de habilidades que permiten y estimulan la creación y el desarrollo matemático y científico, no es muy reconocida y posee pocas herramientas que ayuden a su desarrollo en niños de edad preescolar, etapa en la que este se recomienda ampliamente. Sumado a esto encontramos la necesidad de herramientas que contribuyan en la enseñanza cuyos requerimientos han crecido en cantidad y complejidad en las últimas décadas, y que involucren modos innovadores de llevar el conocimiento aprovechando las tecnologías disponibles. La necesidad de contribuir con la educación también surge de los requerimientos del Aprendizaje Adaptativo, el cual es una metodología que, a través de la adecuación del nivel del contenido que se desea enseñar, permite al estudiante una experiencia de aprendizaje personalizada y más efectiva en resultados. Esta metodología aprovecha las posibilidades de interacción que proporcionan las tecnologías de información y la capacidad de procesamiento de los equipos informáticos para lograr su objetivo. La presente tesis describe el desarrollo de una aplicación educativa gamificada de apoyo en el desarrollo de la Inteligencia espacial en niños de etapa preescolar, e involucra el uso de tecnologías que permitan adaptar al estudiante la dificultad del juego presentado por el aplicativo. Para esto se hizo uso de métodos de Ajuste Dinámico de la Dificultad, a través de redes neuronales y aprendizaje supervisado. El entorno de juego está basado en el uso de representaciones virtuales de bloques lógicos, mediante los cuales se le presenta al alumno una figura la cual este debe imitar manipulando, mediante la pantalla táctil, otro conjunto bloques similares. Se evaluaron siete métricas en el desempeño del usuario relacionadas a cuan correcta es su respuesta en los siguientes conceptos: Encaje, ubicación, forma, tamaño, color, rotación y textura. Mediante estas métricas la aplicación elige el siguiente escenario a presentar al usuario ajustando diez atributos en dicho escenario. El proceso de adaptación busca introducir las métricas del usuario a un rango de acierto deseado y se realiza en dos pasos. Primero, se realiza sin presencia del usuario un entrenamiento de redes neuronales mediante propagación hacia atrás con información de casos base. Este primer paso permite obtener una versión inicial de la adaptabilidad. Y segundo, luego de cada ronda, se evalúa la respuesta del usuario mediante un conjunto de eventos que determinan la efectividad de la red neuronal para introducir a un usuario especifico al rango deseado, y se modifica la red usada para ese usuario con los resultados obtenidos. En los resultados del proyecto se observó que la metodología empleada es efectiva para el caso propuesto, logrando introducir las métricas en el rango luego de un número de rondas jugadas. La evaluación de requerimientos computacionales (velocidad, efectividad, robustez y eficiencia) y funcionales (claridad, variedad, consistencia y escalabilidad) para una AI adaptativa también muestra resultados positivos. Sobre la rapidez de la solución, la respuesta para ambos modelos (solo entrenamiento inicial y modificación por eventos) es imperceptible para el usuario. En cuanto eficacia se logró resultados positivos, logrando mejorar las métricas respecto a un algoritmo manual en más del 70% de los casos y obteniendo un aumento promedio comparándola a un algoritmo manual de +0.012 para las redes neuronales y +0.02 para el aprendizaje supervisado. Estos valores representan el 13% y el 22% de la máxima mejora posible respectivamente. En cuanto a la robustez y eficacia, ambos modelos lograron adaptar la respuesta al usuario en la mayoría de casos y en un número similar de rondas, aunque el aprendizaje supervisado mostró ser más efectivo en el primer criterio, mejorando los resultados del algoritmo manual. Respecto a la variedad de los escenarios presentados se obtuvo, mediante la modificación por eventos, una menor variación entre estos, lo que se relaciona con la mejor adaptabilidad alcanzada. Y sobre la escalabilidad, ambos modelos mostraron resultados positivos para los tres niveles de desempeño evaluado, aunque el aprendizaje supervisado muestra ser más efectivo. Estos resultados permiten identificar beneficios en el uso de esta metodología específicamente para el ámbito evaluado, así como identificar en qué casos específicos es más efectiva. Los resultados positivos encontrados que en conjunto indican que se ha logrado realizar una aplicación que cumple en presentar al usuario un entorno adaptativo, hacen válido el seguir este camino para futuras investigaciones en la exploración de las aplicaciones gamificadas educativas de apoyo a la inteligencia espacial.Item Metadata only Diseño de un algoritmo para rendering eficiente de estructuras proteicas de gran escala(Pontificia Universidad Católica del Perú, 2014-11-19) Moreno Valles, Fernando Antonio; Beltrán Castañón, César ArmandoEl software de gráficos por computadora en 3D de hoy en día nos da la capacidad de modelar y visualizar objetos en situaciones o tamaños que antes no habría sido posible, incluso nos dan la capacidad de que la visualización de estos objetos sea generada en tiempo real lo que otorga la posibilidad de crear aplicaciones que hagan uso de esta capacidad para agregar interactividad con los objetos modelados. Es muy importante la capacidad de poder dotar al usuario de una capacidad de interactividad con el gráfico generado, pero esto no se logra si es que el tiempo de respuesta de la aplicación es muy grande, por ejemplo una consola de videojuegos exigen como mínimo 30fps (cuadros por segundo) un valor menor ocasiona que los movimientos no fueran fluidos y se pierda la sensación de movimiento. Esto hace que la experiencia de usuario fluida sea una de las metas principales del rendering interactivo. Uno de los mayores problemas que se encuentran en esta área es el de visualizar gran cantidad de polígonos, debido a limitaciones de memoria o capacidad de procesamiento, mientras mayor sea la cantidad de polígonos que se desea dibujar en pantalla, mayor será el tiempo de procesamiento que será necesario para generar las imágenes. Una aplicación en particular es el de visualización de la estructura de proteínas. Existen proteínas que poseen una gran estructura, por la cantidad de polígonos que se requieren para representar todos los elementos y conexiones que poseen estas moléculas y adicionalmente la necesidad de visualizar grandes cantidades de moléculas simultáneamente, ocasiona que se disminuya el rendimiento y la interactividad al momento de la visualización. El presente proyecto plantea utilizar una estructura algorítmica para realizar rendering eficiente de gran cantidad de proteínas haciendo uso de un visualizador 3D, que muestre la estructura tridimensional de estas y permita la interacción en tiempo real con el modelo. La estructura propuesta en este proyecto hace uso de la aceleración por hardware presente en las tarjetas gráficas modernas a través de un API de generación de gráficos en tiempo real que es OpenGL con el cual se aplican optimizaciones que aprovechan la estructura planteada. Para que el proceso de renderizado sea más veloz, se mantiene un número bajo de polígonos en los modelos. Debido a que los elementos son repetitivos (esferas y cilindros) se reutiliza la geometría de estos elementos haciendo uso de una estructura como el Scene Graph de modo que el uso de memoria sea menor y de otra estructura como el Octree que permite discriminar los elementos que deben ser procesados durante el rendering. Combinando todo lo mencionado anteriormente, la estructura propuesta permite que se visualicen proteínas de gran estructura o gran cantidad de estas, manteniendo el grado necesario de interactividad para facilitar su estudio así como también manteniendo un aspecto estético que permita reconocer los elementos sin reducir el rendimiento.