UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
PROYECTO DE TITULACIÓN
PLATAFORMA TECNOLÓGICA PARA CONTRIBUIR A LA PLANEACIÓN URBANA
DE LA CIUDAD DE GUAYAQUIL DIRIGIDO A LA TRANSPORTACIÓN, ENFOCADO
AL USO DE UN ALGORITMO RECOMENDADOR QUE BRINDE ALTERNATIVAS DE
SOLUCIÓN EN PROYECTOS VIALES UTILIZANDO LOS MODELOS DE
APRENDIZAJE.
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTORES:
MORAN ZAMBRANO BRYAN FABRIZIO
MELGAR FREIRE KENNETH AGUSTÍN
TUTOR:
ING. TANIA PERALTA GUARACA, M.Sc.
GUAYAQUIL – ECUADOR
2018
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS TÍTULO: Plataforma Tecnológica para contribuir a la planeación urbana de la ciudad de Guayaquil, enfocado al
uso de un algoritmo recomendador que brinden alternativas de soluciones en proyectos viales utilizando los
modelos de aprendizaje
AUTORES:
Melgar Freire Kenneth Agustín
Moran Fabrizio Moran Zambrano
REVISORES:
Ing. Fabricio Medina Palacios, MDPR.
Ing. Fabricio Medina Palacios, MDPR.
INSTITUCIÓN: Universidad de Guayaquil FACULTAD: Ciencias Matemáticas y Físicas
CARRERA: Ingeniería en Sistemas Computacionales
FECHA DE PUBLICACIÓN: N° DE PÁGS.: 104
ÁREA TEMÁTICA: Desarrollo de Sistemas.
PALABRAS CLAVES: Congestion vehicular, inteligencia artificial, Algoritmo, SOM, Modelo de aprendizaje, Red neuronal, Trayectorias.
RESUMEN: El proyecto va enfocado en contribuir a una plataforma tecnológica implementando un algoritmo recomendador para la ayuda en la planeación urbana debido a la problemática de congestión vehicular que afecta a la ciudad de Guayaquil, para solventar este problema se empleará un algoritmo de trayectoria que obtendrá posibles soluciones de optimización entre un destino y una partida para evitar el congestionamiento. Una de las metodologías fue la cuatitativa la cual se hara uso de diferentes metodos de comparación, análisis e implementación para la elección del más conveniente para lo que se busca. El algoritmo a utilizar es SOM, que realiza un aprendizaje y entrenamiento no supervisado, que para facilitar la complejidad del mismo se hace el uso de redes neuronales cocurrentes, en conjunto se empleará un modelo de aprendizaje profundo. Estara implementado en Python con el entorno de desarrollo de Jupyter la cual provee facilidades de uso e implementación de sus funciones, librerias ect.
N° DE REGISTRO (en base de datos): N° DE CLASIFICACIÓN:
DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF SI NO
CONTACTO CON AUTORES: Melgar Freire Kenneth Agustín
Moran Fabrizio Moran Zambrano
Teléfono: 0960150363
0967507794
E-mail:
CONTACTO DE LA INSTITUCIÓN
Universidad de Guayaquil Carrera de Ingeniería en Sistemas Computacionales Víctor Manuel Rendón y Baquerizo Moreno
Nombre: Abg. Juan Chávez
Teléfono: 2307729
X
II
APROBACION DEL TUTOR
En mi calidad de Tutor del trabajo de titulación, “Plataforma tecnológica para
contribuir a la planeación urbana de la ciudad de Guayaquil dirigido a la transportación,
enfocado al uso de un algoritmo recomendador que brinde alternativas de solución en
proyectos viales utilizando los modelos de aprendizaje “elaborado por los Sres.
Melgar Freire Kenneth Agustín y Moran Zambrano Bryan Fabrizio, de la Carrera
de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas
y Físicas de la Universidad de Guayaquil, previo a la obtención del Título de
Ingeniero en Sistemas, me permito declarar que luego de haber orientado,
estudiado y revisado, la Apruebo en todas sus partes.
Atentamente
Ing. Tania Peralta Guaraca, M.Sc.
TUTOR
III
DEDICATORIA
Le dedico este triunfo a mi familia que tanto me ha apoyado en especial a mis padres de crianza quienes me dieron la fuerza para seguir adelante, a mi hermano que pase lo que pase a esta allí conmigo mi tío Francisco, mi tía Alexandra a mi mama y por su puesto a mi madrastra que son las personas que cuando han podido han velado por mí y sobre todo han sabido darme un buen consejo cuando lo necesitase.
MELGAR FREIRE KENNETH AGUSTIN
Dedico principalmente a Dios por darme la fuerza y la perseverancia de seguir adelante y no desmayar por cumplir mis objetivos, a mi madre Maura Dolores Zambrano y a mi Padre Beder Fabricio Moran que estuvieron siempre conmigo, brindándome su apoyo, consejos y enseñarme valores que demuestra la persona que soy ahora, por su amor incondicional y la motivación que me han dado durante toda mi carrera universitaria. Por último, a mis queridos hermanos que les agradezco infinitamente y a toda mi familia.
MORAN ZAMBRANO
BRYAN FABRIZIO
IV
AGRADECIMIENTO
Agradezco primeramente a Dios, porque sin el hoy no estaría donde estoy, agradezco a mis padres de crianza quienes me hicieron como soy, a mi hermano Jefferson que la persona con la que comparto todo, a mi tío Francisco quien se ha convertido como un padre y a sus hijos que mis primos son como mis hermanos, a mi madrastra quien sobre todo a ha estado allí para ayudarme y por su puesto a mi mamita que siempre está allí para cuando la necesito y por ultimo a mis primas Karen y Mabel quienes me quieren como un hermano.
MELGAR FREIRE KENNETH AGUSTÍN
Agradezco a Dios por ayudarme a cumplir este triunfo de mi vida, a mis padres dolores Zambrano y Beder moran por el apoyo incondicional, a mis queridos hermanos Allison y Fernando Morán, a mi amigo Marcelo Bazurto por estar conmigo desde siempre, mi tío Jerson Loor por su apoyo incondicional, a las personas que aportaron sus conocimientos para la tesis. Agradezco también a mi tutora ing. Tania Peralta por su guía, recomendaciones y apoyo en todo momento. Gracias a todos.
MORAN ZAMBRANO
BRYAN FABRIZIO
V
TRIBUNAL PROYECTO DE TITULACIÓN
Ing. Eduardo Santos Baquerizo, M.Sc.
DECANO DE LA FACULTAD CIENCIAS MATEMATICAS Y
FISICAS
Ing. Abel Alarcón Salvatierra, Mgs. DIRECTOR DE LA CARRERA DE
INGENIERIA EN SISTEMAS COMPUTACIONALES
Ing. Fabricio Felipe Medina, MDPR
PROFESOR REVISOR DEL AREA TRIBUNAL
Ing. Tania Peralta Guaraca, M.Sc.
PROFESOR TUTOR DEL PROYECTO DE TITULACION
Ab. Juan Chávez Atocha, Esp. SECRETARIO
VI
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de este
Proyecto de Titulación, me corresponden
exclusivamente; y el patrimonio intelectual
de la misma a la UNIVERSIDAD DE
GUAYAQUIL”
____________________________
MELGAR FREIRE KENNETH AGUSTÍN
C.C.0952173003
____________________________
MORAN ZAMBRANO BRYAN FABRIZIO
C.C: 0950938761
VII
.
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
PLATAFORMA TECNOLÓGICA PARA CONTRIBUIR A LA PLANEACIÓN
URBANA DE LA CIUDAD DE GUAYAQUIL DIRIGIDO A LA
TRANSPORTACIÓN, ENFOCADO AL USO DE UN ALGORITMO
RECOMENDADOR QUE BRINDE ALTERNATIVAS DE SOLUCIÓN EN
PROYECTOS VIALES UTILIZANDO LOS MODELOS DE APRENDIZAJE
Proyecto de Titulación que se presenta como requisito para optar por el
título de
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor: MELGAR FREIRE KENNETH MELGAR
C.I.0952173003
Autor: MORAN ZAMBRANO BRYAN FABRIZIO
C.I.0950938761
Tutor: Ing. Tania Peralta Guaraca, M.Sc.
Guayaquil, septiembre del 2018
VIII
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del proyecto de titulación, nombrado con el Consejo
Directivo de la Facultad de Ciencias Matemáticas y Físicas de la
Universidad de Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por los estudiantes Melgar Freire Kenneth Agustín y Moran Zambrano Bryan Fabrizio, como requisito previo para optar por el título de Ingeniero en Sistemas Computacionales cuyo problema es:
“Plataforma tecnológica para contribuir a la planeación urbana de la ciudad de Guayaquil dirigido a la transportación, enfocado al uso de un algoritmo recomendadores que brinde alternativas de solución en proyectos viales utilizando los modelos de aprendizaje”
Considero aprobado el trabajo en su totalidad.
Presentado por: Melgar Freire Kenneth Agustín C.C Nº 0952173003 Moran Zambrano Bryan Fabrizio C.C Nº 0950938761
Tutor: Ing. Tania Peralta Guaraca, M,Sc.
Guayaquil, septiembre del 2018
IX
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN INGENIERIA EN SISTEMAS COMPUTACIONALES
Autorización para Publicación del Proyecto de Titulación en Formato
Digital
1. Identificación del Proyecto de Titulación
Nombre Alumno: Melgar Freire Kenneth Agustín Dirección: Cdla. los Tulipanes mz 1125 v.6 Teléfono: 0960150363 E-mail: [email protected]
Nombre Alumno: Moran Zambrano Bryan Fabrizio
Dirección: Coop. 5 de junio mz g2 v. 6
Teléfono: 2-862443 E-mail: [email protected]
Tema del Proyecto de Titulación: Congestión vehicular, inteligencia artificial, Algoritmo, SOM, Modelo de aprendizaje, Red neuronal, Trayectorias.
Facultad: Ciencias Matemáticas y Físicas Carrera: Ingeniería en Sistemas Computacionales Proyecto de titulación al que opta: Ingeniero en Sistemas Computacionales Profesor tutor: Ing. Tania Peralta Guaraca, M.Sc
Título del Proyecto de titulación: Plataforma tecnológica para contribuir a la planeación urbana de la ciudad de Guayaquil dirigido a la transportación, enfocado al uso de un algoritmo recomendador que brinde alternativas de solución en proyectos viales utilizando los modelos de aprendizaje.
2. Autorización de Publicación de Versión Electrónica del Proyecto de
Titulación
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de este Proyecto de Titulación. Publicación electrónica:
Inmediata X Después de 1 año
X
Firma Alumno: Melgar Freire Kenneth Agustín Firma Alumno: Moran Zambrano Bryan Fabrizio 3. Forma de envío: El texto de la Plataforma tecnológica para contribuir a la planeación urbana de la ciudad
de Guayaquil dirigido a la transportación, enfocado al uso de un algoritmo recomendador
que brinde alternativas de solución en proyectos viales utilizando los modelos de
aprendizaje debe ser enviado en formato Word, como archivo .Doc. O .RTF y. Puf para
PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .TIFF.
DVDROM CDROM X
XI
ABREVIATURAS
ABP Aprendizaje Basado en Problemas UG Universidad de Guayaquil FTP Archivos de Transferencia g.l. Grados de Libertad Html Lenguaje de Marca de salida de Hyper Texto http Protocolo de transferencia de Hyper Texto Ing. Ingeniero CC.MM.FF Facultad de Ciencias Matemáticas y Físicas ISP Proveedor de Servicio de Internet Mtra. Maestra Msc. Master URL Localizador de Fuente Uniforme www world wide web (red de área mundial) FCI Fondo Competitivo de Investigaciones SOM Mapas Autoorganizados (Self Organization Map). LSTM Larga memoria a corto plazo (Long Short-Term
Memory)
XII
SIMBOLOGÍA
s Desviación estándar e Error E Espacio muestral E(Y) Esperanza matemática de la v.a. y s Estimador de la desviación estándar e Exponencial
XIII
ÍNDICE GENERAL
FICHA DE REGISTRO DE TESIS ............................................................. II
APROBACION DEL TUTOR ...................................................................... II
DEDICATORIA ......................................................................................... III
AGRADECIMIENTO ................................................................................. IV
TRIBUNAL PROYECTO DE TITULACIÓN ................................................ V
CERTIFICADO DE ACEPTACIÓN DEL TUTOR .................................... VIII
ABREVIATURAS ...................................................................................... XI
SIMBOLOGÍA .......................................................................................... XII
ÍNDICE GENERAL .................................................................................. XIII
ÍNDICE DE CUADROS .......................................................................... XVI
ÍNDICE DE GRÁFICOS ....................................................................... XVIII
Resumen ............................................................................................... XXI
Abstract ................................................................................................. XXII
INTRODUCCIÓN ....................................................................................... 1
CAPÍTULO I ............................................................................................... 4
Planteamiento del problema ................................................................... 4
Situación Conflicto Nudos Críticos ......................................................... 6
Causas y Consecuencias del Problema ................................................. 8
Delimitación del Problema ...................................................................... 8
Evaluación del Problema ........................................................................ 9
OBJETIVOS ......................................................................................... 11
Objetivo General ............................................................................... 11
Objetivos específicos ........................................................................ 11
Alcances del Problema ......................................................................... 11
XIV
Justificación E Importancia ................................................................... 12
Metodología Del Proyecto .................................................................... 14
CAPÍTULO II ............................................................................................ 17
Antecedentes Del Estudio .................................................................... 17
Fundamentación Teórica ...................................................................... 18
Inteligencia artificial .......................................................................... 21
Machine learning .............................................................................. 22
Redes neuronales ............................................................................. 24
Neurona biológica ............................................................................. 24
Neuronas artificiales ......................................................................... 25
Redes neuronales concurrentes ....................................................... 33
Redes LSTM ..................................................................................... 35
Algoritmos genéticos ........................................................................ 37
Mapas Auto-Organizados (SOM) ...................................................... 42
Python............................................................................................... 47
TensorFlow ....................................................................................... 49
Keras ................................................................................................ 49
Cuda - NVIDIA .................................................................................. 50
Docker .............................................................................................. 50
Fundamentación Legal ......................................................................... 50
Sección II .......................................................................................... 51
Sección III ......................................................................................... 53
Constitución De La República Del Ecuador ...................................... 54
Pregunta Científica Que Contestarse ................................................... 55
Definiciones Conceptuales ................................................................... 55
XV
CAPITULO III ........................................................................................... 58
Propuesta Tecnológica ......................................................................... 58
Análisis de factibilidad ...................................................................... 59
Factibilidad Operacional ................................................................... 59
Factibilidad técnica ........................................................................... 60
Factibilidad Legal .............................................................................. 60
Factibilidad Económica ..................................................................... 61
Etapas de la metodología del proyecto ................................................ 62
Levantamiento de información de Servicio ....................................... 62
Levantamiento del servicio ............................................................... 62
Análisis del Algoritmo ....................................................................... 63
Implementación del Algoritmo y Modelo de Aprendizaje .................. 63
Levantamiento de Datos ................................................................... 63
Pruebas ............................................................................................ 63
Integración ........................................................................................ 63
Documentación ................................................................................. 63
Entregables del proyecto ...................................................................... 64
Criterios De Validación De La Propuesta ............................................. 64
Procesamiento Y Análisis ..................................................................... 65
CAPÍTULO IV ........................................................................................... 73
Criterios de aceptación del producto o Servicio ................................... 73
Conclusiones ........................................................................................ 76
Recomendaciones ................................................................................ 77
Bibliografía ........................................................................................... 78
ANEXOS .................................................................................................. 81
XVI
ÍNDICE DE CUADROS
CUADRO 1:
CAUSAS Y CONSECUENCIAS DEL PROBLEMA .................................... 8
CUADRO 2 :
ASPECTOS GENERALES DE LAS LIMITACIONES DEL PROBLEMA .... 8
CUADRO 3:
VARIABLES BINARIAS DE UNA SOLA NEURONA ............................... 27
CUADRO 4:
CODIFICACION ( CROMOSOMAS POSIBLES ) .................................... 41
CUADRO 5:
POBLACION INICIAL .............................................................................. 41
CUADRO 6:
EVALUACION DE LA POBLACION INICIAL ........................................... 41
CUADRO 7:
NUEVA POBLACION (SELECCION Y CRUCE) ...................................... 42
CUADRO 8:
NUEVA EVALUACION DE LA NUEVA POBLACION .............................. 42
CUADRO 9:
LIBRERIAS DE PYTHON CON SUS FUNCIONALIDADES .................... 48
CUADRO 10:
BASES LEGALES CON SUS RESPECTIVOS ARTICULOS .................. 60
CUADRO 11:
RECURSOS DE SOFTWARE ................................................................. 61
CUADRO 12:
OTROS RECURSOS ............................................................................... 62
CUADRO 13:
RECURSOS DE HARDWARE ................................................................. 62
CUADRO 14:
MATRIZ CON LOS CRITERIOS DE ACEPTACION ................................ 73
CUADRO 15:
XVII
MATRIZ CON LOS CIRTERIOS DE ACEPTACION ................................ 74
CUADRO 16:
MATRIZ CON LOS CRITERIOS DE ACEPTACION RESULTADOS
OBTENIDOS ............................................................................................ 74
CUADRO 17:
MATRIZ CON LOS CRITERIOS DE ACEPTACION ................................ 75
XVIII
ÍNDICE DE GRÁFICOS
GRAFICO 1:
CARACTERÍSTICAS DE LA METODOLOGÍA CUALITATIVA ................... 15
GRAFICO 2:
ENTORNO DE DESARROLLO DE JUPYTER .............................................. 19
GRAFICO 3:
ESTRUCTURA DE UNA RED NEURONAL BIOLÓGICA ........................... 24
GRAFICO 4:
ESTRUCTURA DE UNA RED NEURONAL ARTIFICIAL ............................ 26
GRAFICO 5:
ESTRUCTURA NEURONAL HACIENDO REFERENCIA A LA PUERTA
LÓGICA AND ...................................................................................................... 27
GRAFICO 6:
RESULTADOS OBTENIDOS DEL PROCESAMIENTO DE LA NEURONA
............................................................................................................................... 28
GRAFICO 7:
SEPARACIÓN LINEAL EXPUESTO POR EL RESULTADO DE LA
NEURONA ( AND) ............................................................................................. 28
GRAFICO 8:
ESTRUCTURA NEURONAL HACIENDO REFERENCIA A LA PUERTA
LÓGICA OR ........................................................................................................ 29
GRAFICO 9:
SEPARACIÓN LINEAL EXPUESTO POR EL RESULTADO DE LA
NEURONA (OR) ................................................................................................. 29
GRAFICO 10:
ESTRUCTURA DE DOS NEURONALES HACIENDO REFERENCIA A LA
PUERTA LÓGICA XOR .................................................................................... 30
GRAFICO 11:
SEPARACIÓN NO LINEAL EXPUESTO POR EL RESULTADO DE DOS
NEURONAS (XOR) ............................................................................................ 31
XIX
GRAFICO 12:
BLOQUE DE RETRASO (TIEMPO DISCRETO) .......................................... 33
GRAFICO 13:
BLOQUE INTEGRADOR (TIEMPO CONTINUO) ......................................... 34
GRAFICO 14:
ARQUITECTURA DE UNA RED RECURRENTE......................................... 35
GRAFICO 15:
ARQUITECTURA DE UNA RED LSTM .......................................................... 36
GRAFICO 16:
SOLUCION PADRE Y MADRE ........................................................................ 38
GRAFICO 17:
CRUZAMIENTO DE LAS SOLUCIONES ....................................................... 39
GRAFICO 18:
DIAGRAMA DE FLUJO DEL ALGORITMO GENÉTICO ............................. 40
GRAFICO 19:
CONEXIÓN LINEAL .......................................................................................... 44
GRAFICO 20:
CONEXIÓN CUADRADA .................................................................................. 45
GRAFICO 21:
CONEXIÓN HEXAGONAL ............................................................................... 45
GRAFICO 22:
EJECUCIÓN DEL SERVICIO CON BD POCO POBLADA ......................... 64
GRAFICO 23:
EJECUCIÓN DEL SERVICIO CON BD MAS POBLADA ........................... 65
GRAFICO 24:
TERMINAL CON VERSION DEL DOCKER .................................................. 66
GRAFICO 25:
IMAGENES CREADAS EN DOCKER ............................................................ 67
GRAFICO 26:
PLATAFORMA JUPYTER ................................................................................ 68
GRAFICO 27:
XX
ENTORNO JUPYTER CON ARCHIVO DE CODIGO FUENTE ................. 68
GRAFICO 28:
TEMRINAL DEL ENTORNO DE JUPYTER .................................................. 69
GRAFICO 29:
CODIGO FUENTE ............................................................................................. 70
GRAFICO 30:
MAPEO DEL ALGORITMO .............................................................................. 71
XXI
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
Plataforma tecnológica para contribuir a la planeación urbana de la ciudad
de Guayaquil dirigido a la transportación, enfocado al uso de un algoritmo
recomendador que brinde alternativas de solución en proyectos viales
utilizando los modelos de aprendizaje.
Resumen
El proyecto fue enfocado en contribuir a una plataforma tecnológica
implementando un algoritmo recomendador para la ayudar en la planeación
urbana debido a la problemática de congestión vehicular que afecta a la
ciudad de Guayaquil, para solventar este problema se empleo un algoritmo
de trayectoria que devolvio posibles soluciones de optimización entre un
destino y una partida para evitar el congestionamiento. Una de las
metodologías fue la cuatitativa la cual se hizo uso de diferentes metodos
de comparación, análisis e implementación para la elección del más
conveniente para lo que se busca. El algoritmo a utilizar fue SOM, que
realiza un aprendizaje y entrenamiento no supervisado, que para facilitar la
complejidad del mismo se hace el uso de redes neuronales concurrentes,
en conjunto se empleará un modelo de aprendizaje profundo. Fue
implementado en Python con el entorno de desarrollo de Jupyter el cual
provee facilidades de uso e implementación de sus funciones, librerias ect.
Palabras Claves: Congestion vehicular, inteligencia artificial, Algoritmo,
SOM, Modelo de aprendizaje, Red neuronal, Trayectorias.
Autores: Kenneth Melgar y Bryan Moran. Tutor: Ing. Tania Peralta G.M.Sc.
XXII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
Technological platform to contribute to the urban planning of the city of
Guayaquil aimed at transportation, focused on the use of a recommender
algorithm that provides alternative solutions in road projects using learning
models.
Abstract
The project is focused on contributing to a technological platform by
implementing a recommender algorithm to help in urban planning due to the
problem of vehicular congestion affecting the city of Guayaquil. To solve this
problem, a trajectory algorithm will be used to obtain possible solutions. of
optimization of an exit point to a point of arrival to avoid congestion. As a
methodology of the project, the quantitative methodology was used which
will make use of different methods of comparison, analysis and
implementation for the selection of the most convenient and optimal for what
is sought. The trajectory algorithm to be used is SOM (Self Organized Maps)
that performs an unsupervised learning and training, in addition to facilitate
the complexity of it, the use of cocurrent neural networks is made, together
a deep learning model will be used for the help of the algorithm. The
programming language to be used is python in the Jupyter development
environment which provides facilities for the use and implementation of its
functions, ect libraries.
Key words: Vehicular congestion, artificial intelligence, Algorithm, SOM,
Learning model, Neural network, Trajectories.
Authors: Kenneth Melgar y Bryan Moran. Tutor: Ing. Tania Peralta G. M.Sc.
1
INTRODUCCIÓN
Este proyecto tiene como enfoque principal ayudar en la regularización de
la congestión vehicular de la ciudad de Guayaquil. La problemática se da
por el principal y más importante motivo que es aumento del uso vehicular
provocando el congestionamiento vehicular, posteriormente se origina
también por accidentes de tránsitos, regeneración de vías que reducen las
mismas y provocan negligencia de conductores.
A nivel de algoritmos no se ha implantado dentro del Ecuador
específicamente en la ciudad de Guayaquil que es donde brindaremos la
posible solución, por otra parte, se ha brindado facilidades de movilidad y
abastecimiento de espacio vial por ejemplo en la ciudad de Quito
promoviendo el sistema de pico y placa, regularizando así el
congestionamiento, eludir accidentes de tránsito, restar la incomodidad de
las personas aledañas a las vías, y en Guayaquil el sistema de Metro Vía
que su principal objetivo es reducir el desorden vehicular.
¿Cuál sería una de las posibles soluciones para normalizar el tráfico en las
vías más transitadas de la ciudad? Lo propuesto en el proyecto es
implementar un algoritmo recomendador enfocado en trayectorias
vehiculares que posterior a esto nos brindará diferentes alternativas de
escape vial para optimizar el tráfico más aún cuando se circula en las muy
comunes "horas picos". Como antecedentes de estudio se tomó en cuenta
los algoritmos genéticos que se enfocan en dar soluciones posibles a un
problema específico, como el algoritmo SOM (Mapas Autoorganizados)
El modelo de aprendizaje utilizado es LSTM (Long Short-Term Memory) de
la librería de Keras junto a Tensorflow que ayuda a la construcción y
entrenamiento de redes neuronales profundas, dichos recursos
computacionales fueron implementados en el lenguaje de programación
2
Python los que se usaron para la optimización y la implementación de redes
neuronales profundas.
Como valor agregado se realizó visualización de manera gráfica las
posibles alternativas arrojadas por el algoritmo la cual se presentó como un
"FrontEnd" del proyecto lo cuales pueden ser observados por el usuario y
su compilación pasará a un segundo plano ya que solo va a ser consumido
por quien solicite la codificación que forma parte de un "BackEnd" que
conforman librerías, frameworks e información de base de datos.
A continuación, se dará un breve resumen de lo que tratará cada capítulo
expuesto dentro del desarrollo del proyecto:
Capítulo I – El Problema: Este apartado del presente proyecto muestra la
problemática y razón por la cual nace una necesidad y se plantea la
creación de la plataforma tecnológica con el fin de erradicar dicho
problema, así mismo se detallan los nudos críticos, se examinan las causas
y consecuencias que lo provoca, el alcance donde se determinaron de
forma analítica los objetivos generales y específicos del estudio del
problema, su justificación e importancia que mostro porque el proyecto será
útil en la problemática y la metodología de desarrollo que se aplicará.
Capítulo II– Marco Teórico: En esta sección se detallan otros estudios
realizados referentes al tema de investigación planteado, los mismos que
forman parte del análisis y conocimientos teóricos que son reales, además
de las definiciones básicas relacionadas o que se involucran en la
evaluación de algoritmos de trayectorias; y la fundamentación legal que
forma parte de estatutos, reglamentos y apoyos en leyes.
Capítulo III – Propuesta Tecnológica: Una vez realizada la investigación y
habiendo obtenido los conocimientos con respecto al uso de los diversos
3
algoritmos, este apartado mostrará la implementación del algoritmo
recomendador que permitirán ser una fuente de información para otros
módulos de la plataforma tecnológica que se desea implementar.
Capítulo IV – Criterios de Aceptación Del Producto o Servicio: Finalmente
en este capítulo se obtendrá el resultado final del proyecto, donde se
emitirán los criterios con respecto al rendimiento y calidad de los algoritmos
propuestos, además de las métricas establecidas para la integración y
aceptación respectiva en la plataforma antes mencionada.
4
CAPÍTULO I
EL PROBLEMA
Planteamiento del problema
En la actualidad del 2018 es muy probable que obtener un vehículo sea
más accesible o más fácil de adquirir por motivo que se generan diferentes
tipos de descuentos o formas de pago por lo cual va aumentando la oferta
y la demanda “personas y vehículos”. Los vehículos como recurso también
reducen el esfuerzo o trabajo masivo de una persona dentro de una tarea
determinada, después de las consideraciones anteriores y por todos los
beneficios que promueve obtener un vehículo esta tiende a generar más
demanda de personas y lo tanto deben de aumentar la fabricación de estos.
En muchos países existe el deseo de crear e innovar autos, y más en las
regiones que son potencia mundial.
Enfocándonos a la ubicación del problema específicamente en Ecuador por
las estadísticas hechas por el Instituto Nacional De Estadísticas y Censo
(INEC) entre el año 2010 y el año 2015 el parque automotor tuvo un
crecimiento del 57%.
Durante los dos primeros meses de 2017 las ventas de carros
muestran un incremento anual del 45%. Así lo confirman las cifras
publicadas el 17 de marzo por la Asociación de Empresas
Automotrices del Ecuador (Aeade), con corte a febrero de este año.
Los datos engloban a vehículos importados y de producción nacional
(ensamblaje) a escala nacional.("El Telegrafo," 2017).
Refiriéndose en la ciudad de Guayaquil se conoce que cada vez son más
los vehículos que se observan circular, sobre todo en la parte céntrica y en
barrios aledaños, esto se debe a un aumento poblacional y vehicular que
es cada vez mayor y está generando problemáticas en la infraestructura de
5
la ciudad, que a medida que pasa el tiempo es más caótica. Entonces si se
habla de exceso de vehículos a esto también se suma otra problemática
que es el embotellamiento o tráfico vehicular en horas picos que se
producen por diversos motivos como: accidentes de tránsitos, obras viales,
por salidas de horarios laborales y educativos, entre otros.
Para poder solventar o regularizar el tráfico principalmente los usuarios
deben tener a mano o de conocimiento básico, que pueden acudir a otras
vías de escape para disminuir el tráfico y mejorar la circulación vehicular al
seleccionar otras rutas.
El problema se enfoca hacia los conductores que deben conciliar el día a
día con el masivo congestionamiento vehicular, tanto en las horas de la
mañana y la noche en la ciudad de Guayaquil en vías mayormente
transitadas y céntricas. En el horario matutino es muy probable vivir con los
problemas ya que existen ciertos factores comunes que provocan el tráfico
como la jornada laboral, estudiantil, controles de tránsito, accidentes u
otros.
El alto incremento de vehículos en la ciudad de Guayaquil provoca que las
vías transitadas sean menos factibles en llegar a tiempo en un lugar
determinado. Según las ventas de vehículos en el ecuador aumentan un
20% anual, sin embargo, es una ventaja para la población que puede contar
con este recurso.
Este problema social afecta el tiempo de los conductores, retrasando así
su hora de llegada hacia un lugar que con anterioridad ya está programado
por cada conductor, tanto así que en la ciudad de Guayaquil es muy
habitual que exista tráfico vehicular, por eso los conductores deben partir
hacia sus trabajos o estudios de manera muy anticipada pero aun así se
encuentran con el problema.
6
Situación Conflicto Nudos Críticos
La oferta y demanda de vehículos son los factores más relevantes,
por motivos como la generación de comodidades en las formas de
pago, hacen que sean más accesibles para las personas que desean
obtener uno, muy independientemente de los requisitos que son
primordiales para el proceso de la obtención de un vehículo. Esto
provoca que existan más demandas de vehículos circulando por las
vías de la ciudad, tan así que provoca la congestión.
La reducción de espacios en las vías es causada principalmente por
motivo de que existen renovaciones y mantenimientos de calles,
promovido en este caso por la M.I. Municipalidad de Guayaquil
sección de Dirección de obras públicas, la cual realiza mucho antes
un estudio de las rutas afectadas y mal tratadas por la masiva
circulación de vehículos, esto hace que el pavimento se deteriore y
obligan a las autoridades a tomar medidas preventivas y correctivas
para mejorar las rutas afectadas. Su consecuencia más relevante es
que se reduzca el espacio de vías.
La jornada laboral y estudiantil también influye en este problema, las
personas que usualmente usan o poseen estos medios de transporte
(vehículos) ya sean públicos o privados, son aquellas que habitan
muy lejos de su trabajo o centro de estudio facilitando la distancia de
un lugar, es muy factible ya que es un ahorro grande de tiempo y
dinero. Sin embargo, la problemática de la distancia la viven decenas
de personas en la ciudad, esto provoca una similitud de
concentración vehicular y como consecuencia al momento de
transitar por las zonas viales se encuentran con muchos vehículos,
que hacen que el problema sea masivo por varias horas durante las
semanas laborales.
7
Existen vías no seguras por motivos de que no poseen las señales
de tránsito correspondientes, que son signos usados para impartir
información, según las prioridades de los conductores se deben a
los semáforos y marcas viales. Esto es consecuencia de que existen
personas mal intencionadas que destruyen las señales de tránsito o
son deterioradas con el pasar del tiempo, por las lluvias o por el
calor. Sin embargo, las autoridades no toman medidas las
correspondientes dejando así en segundo plano este problema. Los
semáforos en algunas vías no funcionan como deberían, ya que
existen algunos a lo largo de la ciudad que están apagados o
simplemente son muy lentos, provocando el caos vehicular y en
algunos casos accidentes de tránsito.
Las autoridades pertinentes hacen caso omiso a este problema y no
cuentan con asesoría de cómo controlar y prevenir todos los
problemas mencionados anteriormente y ser regularizado como se
debe en la ciudad de Guayaquil usando modelos de aprendizaje
para ser implementados en plataformas tecnológicas. La falta de
información también es consecuencia ya que no se involucran a la
investigación de la misma problemática de raíz.
8
Causas y Consecuencias del Problema
CUADRO 1: CAUSAS Y CONSECUENCIAS DEL PROBLEMA
CAUSAS CONSECUENCIAS
Oferta y demanda de
Vehículos.
Alto grado de vehículos
circulando en la ciudad.
Reducción de espacios en
carriles viales.
Obliga a los vehículos
circular por vías más
congestionadas.
Por jornada laboral o
estudiantil.
Circulación de vehículos en
horarios similares.
Vías alternas no seguras Provocando accidentes de
tránsito por falta de
señaléticas de tránsitos,
semáforos, etc.
Falta de información de las
autoridades pertinentes para
tomar medidas en regularizar
el congestionamiento.
No implementan modelos
de aprendizajes en
plataformas tecnológicas
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Delimitación del Problema
CUADRO 2 : ASPECTOS GENERALES DE LAS LIMITACIONES DEL PROBLEMA
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Campo
Ordenamiento Territorial
Área
Desarrollo de Sistemas
Aspecto
Congestionamiento Vehicular
Tema
Uso de un algoritmo recomendador que brinden alternativas de solución en proyectos viales utilizando los modelos de aprendizaje.
9
Formulación del Problema
¿Cómo se mejoraría con el uso de algoritmos el congestionamiento
vehicular, empleando modelos de aprendizaje implementados en
plataformas tecnológicas enfocados a la planeación urbana dentro de
la ciudad de Guayaquil en las vías céntricas y urbanas?
Evaluación del Problema
Los aspectos generales de evaluación son: Delimitado: el masivo congestionamiento de vehículos en rutas
céntricas de la ciudad de Guayaquil es la problemática que es visto,
más en los días laborales, además se crean costos sociales producto
de los ruidos de los vehículos. Esto también involucra accidentes de
tránsito, estrés por parte de los conductores, contaminación en el aire
etc.
Claro: como principal objetivo se busca encontrar posibles rutas
alternas que permitan regularizar el tráfico en la ciudad realizando un
estudio previo como investigaciones técnicas de trayectorias
vehiculares por medio de algoritmos.
Evidente: es probable observar congestión vehicular en la ciudad en
horarios laborales y festividades de la ciudad que se vive debido a la
demanda de vehículos que es incrementada con el pasar del tiempo
porque a la mayor parte de las personas se le hace más cómodo que
andar a pie de un lugar a otro.
Concreto: la problemática se genera principalmente por exceso de
demanda de vehículos circulando por la ciudad, a esto se originan
10
factores que complementan el problema como: infraestructura vial no
generada, negligencia por conductores, faltas de semaforización y
señalización de tránsito.
Relevante: es importante poder solventar y reducir una gran parte del
tráfico para que las personas que utilicen algún tipo de vehículo no
retrasen el tiempo de llegada a su destino por el tráfico vehicular.
Factible: cuando las personas sepan que hay alguna alternativa para
no caer en el tráfico vehicular, estas trataran de utilizarla para así
optimizar tiempos.
Identifica los productos esperados: el objetivo principal es reducir
el tiempo de llegada de los usuarios conductores de vehículos dentro
de la ciudad de Guayaquil.
Variables: las variables que se tratarán de tomar en cuenta son el
tiempo de semaforización, dimensión de la calle, densidad, volumen,
velocidad media y vehicular.
11
OBJETIVOS
Objetivo General
Diseñar un prototipo es decir modulo basado en algoritmos
recomendadores de análisis de trayectorias con el fin de obtener vías
alternativas a través de herramientas de aprendizaje mejorando la
planeación urbana de la ciudad de Guayaquil.
Objetivos específicos
1. Investigar artículos de diferentes algoritmos basados en trayectorias
de modelos de aprendizaje para ser implementados,
categorizándolos por complejidad y optimización.
2. Aplicar un algoritmo recomendador y las herramientas de
aprendizaje necesarios para mejorar el congestionamiento en la
ciudad de Guayaquil de acuerdo con el estudio realizado.
3. Implementación de un prototipo que permita visualizar los resultados
que devuelva la utilización de algoritmos recomendadores por medio
de la plataforma que se utiliza para el desarrollo de las pruebas.
4. Describir los beneficios de los resultados obtenidos de la
implementación del algoritmo recomendador y evaluar su viabilidad
de uso.
Alcances del Problema
El alcance principal del proyecto implica el estudio de algoritmos
recomendadores que aporten el análisis de escenarios en tráfico vehicular
para su implementación en el proyecto de FCI, el cual se realiza de la
siguiente manera:
12
Estudiar el algoritmo propuesto y resultados planteados en papers
elaborados en base a trayectorias vehiculares.
Organizar los tipos de algoritmos de acuerdo con los estudios
realizados por otros autores.
Explorar los diferentes modelos de aprendizaje en los que se podrían
implementar en el algoritmo recomendador para análisis de
trayectorias.
Clasificar los tipos de algoritmos recomendadores existentes para su
uso en la plataforma.
Seleccionar las técnicas adecuadas para evaluar el algoritmo
recomendadores.
Escoger uno de los modelos de aprendizaje para implementar el
algoritmo recomendador.
Diseñar el prototipo de visualización de resultados del algoritmo
recomendador.
Comprobar que el algoritmo que han sido seleccionado aporta con
la optimización del tráfico vehicular.
Demostrar que el algoritmo con el que se van a trabajar en la
plataforma es el que más ayuda con el tráfico vehicular.
Plantear las soluciones de acuerdo con el tipo de algoritmo
recomendador para su posible uso dentro de la plataforma.
Implementar una técnica para que el algoritmo pueda ser usado
dentro del proyecto de la Universidad de Guayaquil FCI.
Justificación E Importancia
Lo que vive la ciudad de Guayaquil en los días laborales y los días festivos
en es la masiva circulación de vehículos dentro de vías muy transitadas,
lo cual genera precipitación en los transeúntes porque no tan solo se
involucran vehículos livianos, sino buses urbanos, vehículos pesados,
13
motocicletas que hacen más pesado el tráfico.
Hace unos años atrás se solvento el tráfico a gran medida, por el hecho
que implementaron el transporte urbano “Metro vía”, este fue de gran
impacto social porque facilito la movilidad a entre muchos puntos de la
ciudad Guayaquil.
Sin embargo, la demanda de vehículos con el pasar de los años ha
incrementado a gran escala, por su principal ventaja que son más
accesibles de obtener uno en comparación de 15 años atrás. Por estas
razones se prevé implementar soluciones posibles a través de modelos de
aprendizajes para reajustar esta problemática.
La importancia del proyecto transciende por tratar de minorizar la
congestión vehicular, aparte de ser un problema de movilidad también
afecta a la salud y contaminación del aire provocada por los automóviles.
Para argumentar la importancia del uso de modelos de aprendizaje, se
realizó un análisis de algoritmos, los cuales para la plataforma que se
realizó, se pueden distinguir dos tipos, que son matemáticos y genéticos.
Los algoritmos matemáticos son algoritmos probados científicamente por
lo cual ya se encuentran patentados, en cambio los algoritmos genéticos
no porque son algoritmos utilizados por otros autores, pero estos no han
sido comprobados científicamente.
Entre los tipos de algoritmos antes mencionados, no hay mucha diferencia
con respecto a los resultados, pero en la eficacia con la que ejecutan es
donde hay disconformidad debido a que una es óptima que otra, también
hay que tener en cuenta que no ocurre con todos los algoritmos.
14
Metodología Del Proyecto
Se empleó como metodología de desarrollo en el proyecto es SCRUM
debido a su versátil funcionalidad, con respecto a la entrega de avances del
proyecto final, ya que este nos obliga a trabajar directamente con posibles
usuarios finales del producto o proyecto que se esté elaborando, trabajando
con la entrega de avances de proyectos en cortos periodos de tiempo, que
al final ayuda a que podamos corregir posibles errores en un menor tiempo
y mas no al final del proyecto que es donde se dificulta más corregirlos.
Scrum, nos permite segmentar por capas o fases los proyectos y ese es el
caso del proyecto que se elaboró; que se dividió en 5 capas que son:
1. El estudio o análisis de algoritmos recomendadores.
2. Pruebas y selección del algoritmo con data aleatoria
3. Implementación del algoritmo en la plataforma a utilizar.
4. Generación de prototipo para uso de FCI y,
5. Por último, la elaboración de prototipo de presentación de gráficos
de resultados de algoritmo.
La metodología de investigación aplicada al proyecto es la metodología
cualitativa, donde principalmente se planteó la idea del problema, sus
causas y consecuencias. Se hizo el trabajo de campo realizando una
selección de técnicas eligiendo los análisis documentales de diferentes
algoritmos que cumplas con los requerimientos que se desean, que estés
enfocados al análisis de trayectoria vehicular, donde los parámetros a
utilizar son la longitud, latitud, medición de tiempo y otros parámetros que
conforman el algoritmo y lo emplea de manera interna para probar posibles
resultados mediante el algoritmo de trayectorias implementado, esto se dio
mediante la medición de tiempo longitud, latitud, densidad, espacio
vehicular y otros parámetros que conformaran el algoritmo. Mediante la
recolección y de datos en este caso los diferentes algoritmos escogidos se
15
los organiza para su respectivo análisis de pruebas, para después hacer el
reporte de resultados de cada uno de ellos y seleccionar el algoritmo que
más se asemeja a lo que se desea implementar en el proyecto.
Se presentará en el grafico siguiente sus características:
GRAFICO 1: CARACTERÍSTICAS DE LA METODOLOGÍA CUANTITATIVA
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Prueba de calidad
Antes de obtener el resultado final de la implementación del proyecto se
tuvo que realizar pruebas en base a los algoritmos recomendadores con el
uso de datos reales de trayectoria vehicular. Estas pruebas se realizaron
para observar el comportamiento y la funcionalidad de los algoritmos a
través de diferentes ambientes o eventos.
IDEA DEL PROBLEMA
CAUSA Y CONSECUENCIA
DESARROLLO DE MARCO TEORICO
ALCANCE DEL ESTUDIO
DEFINICION DE VARIABLES
DISEÑO DE INVESTIGACION
SELECCION DE LA MUESTRA
RECOLECCION DE DATOS
ANALISIS DE DATOS
REPORTE DE RESULTADOS
16
Supuestos
Para la implementación se usó PYTHON como principal lenguaje de
programación.
Se desarrolló sobre la aplicación web Jupyter
También el uso de KERAS, que es una librería de Python.
Para la exportación de imágenes se utilizará DOCKER y a nivel de
software se usará TENSORFLOW
Y para mostrar los resultados de los algoritmos de manera gráfica
se implementará NVIDIA
17
CAPÍTULO II
MARCO TEÓRICO
Antecedentes Del Estudio
Previo al desarrollo del proyecto se realizó el estudio de diferentes
algoritmos recomendadores que se ajusten a lo que se espera como
posibles resultados del problema y que tengan similitud de requerimientos
que transciende la problemática que serían los parámetros, se esperan
resultados cuantitativos y enfoques de aprendizajes.
Un algoritmo es una serie de pasos organizados que describe el proceso
que se debe seguir para dar soluciones en un problema en específico,
como primer paso se descarta los algoritmos secuenciales o interactivos ya
que no brindan soluciones diferentes. Lo que se busco fue un tipo de
algoritmo que pueda dar múltiples soluciones tanto de optimización como
de búsqueda. Se consideró los algoritmos genéticos y matemáticos que
tiene similitud a los algoritmos adaptativos. Estos algoritmos son utilizados
en varios campos como la medicina, ingeniería, negocios, etc.
En el campo de la ingeniería se usa para la optimización de tareas tanto
numéricas como combinacionales, estos algoritmos están basados en la
teoría de la evolución genética y biológica de organismos vivos, tomando
como ejemplo lo que es la transformación poblacional en la naturaleza.
Primero comenzara en una población de datos los cuales representaran
posibles resultados donde serán evaluados por una función aplicada y base
a eso se descartará los de bajo y alto rendimiento y quedando el de mayor
optimización.
Luego se determinarán por medio de cruce de datos y mutación de datos,
esta última evita que el algoritmo tenga problemas en soluciones. El
18
algoritmo genético posee la habilidad de manipular varios parámetros
simultáneamente la cual permite explorar diversas soluciones, es decir
evalúa implícitamente varios esquemas a la vez. Una vez descrita la
funcionalidad de los algoritmos se opta en requerirlo, sin embargo, no
asegura que el resultado sea exacto y sin margen de error, por lo tanto,
existen otros métodos en los cuales asegura soluciones de un nivel alto.
Existen otras técnicas más especializadas que superan a este algoritmo,
ya que este como tal solo se enfocan en problemas que no existan técnicas
especializadas. Esta técnica mencionada hace énfasis en ayudar a mejor
la optimización de tareas empleadas en los algoritmos. Los modelos de
aprendizajes serían las técnicas especializadas. Los algoritmos genéticos
y matemáticos son utilizados para caso de pruebas mas no para la
implementación, por otra parte, será la pauta de utilizar un algoritmo más
sofisticado como lo es el SOM (Mapas Auto organizados) donde su
principal virtud es su aprendizaje no supervisado y a su vez emplearán
modelos de aprendizajes.
Fundamentación Teórica
En el análisis de la problemática se logró identificar que para la realización
del proyecto inicialmente se debía realizar un estudio de los posibles
ambientes donde se podían realizar pruebas, en donde se obtuvo
principalmente que elegir un lenguaje de programación con el cual se debía
manejar el proyecto, y a partir de esto surgieron lenguajes como: C++, C#,
Java, Php y Python los cuales cumplen con las características necesarias
para aplicar algoritmos de trayectorias vehiculares.
El leguaje que se escogió para el desarrollo fue Python inicialmente porque
primero es el lenguaje más fácil de interpretar o que las personas puedan
entender, seguido de que se puede aplicar a diferentes plataformas,
19
además debido a que tiene una amplia gama de librerías. Gracias a que es
un lenguaje que se puede implementar en diferentes plataformas se
procedió a escoger una por lo cual se inició su investigación en donde se
encontró Docker, Júpiter entre otros.
Por otra parte, Jupyter Notebook donde se realizará el desarrollo del
proyecto consiste en una aplicación de código abierto expuesta en la web
que ayuda a la creación y poder compartir documentos que tengan códigos,
ecuaciones matemáticas, imágenes. También cuenta con procesos como
la transformación y visualización de datos, modelado de aprendizajes,
simulación en el aspecto numérico, modelado estadístico, entre otras más.
Esta aplicación cuenta como soporte más de 40 lenguajes de programación
la cual se incluye Python que es la que se va a utilizar en el proyecto.
También ayudara a la exportación de su código por medio de código HTML,
también de imágenes estadísticas, clúster, imágenes en 2D.
GRAFICO 2: ENTORNO DE DESARROLLO DE JUPYTER
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
20
Para una hacer más cómoda la elaboración del proyecto se eligió la
herramienta Docker la cual nos facilita muchas cosas como los son las
exportaciones de las imágenes creadas y ejecutarlas en cualquier otro
ambiente que utilice Docker, además esta herramienta nos ayuda a
implementar muchas cosas como condensadores, contenedores,
balanceadores de carga, Nginx, puertos seguros entre otros, así como
también administrar los recursos que se utilizaran.
Entre los softwares, aplicaciones y librerías que se pudieran haber utilizado
son TensorFlow, Caffe, Theano, Keras, entre otros, pero en este caso
debido a que todos tenían características muy parecidas fue difícil la
selección, pero como Keras es una librería de Python que nos permite
trabajar con redes neuronales y nos ayuda con una pequeña parte gráfica,
adicionalmente porque trabaja en conjunto con TensorFlow es que se la
eligió.
Adicionalmente para la realización del proyecto se procedió a identificar un
medio que ayudara en la graficación de los resultados del algoritmo se
eligió NVIDIA, el cual se puede integrar no solo como una imagen adicional
a TensorFlow, sino que para tenerla en toda la implementación se puede
complementar a Docker con NVIDIA-Docker que es una combinación entre
Docker y NVIDIA.
Como punto más importante dentro de la investigación fue la selección y
estudio de los algoritmos recomendadores (algoritmos de trayectorias), que
no son más que facilitadores de cálculos matemáticos de una manera más
rápida dándonos resultados más precisos en donde se encontraron de dos
tipos como los algoritmos matemáticos y genéticos.
21
Inteligencia artificial
Este término es el más general y este engloba campos como son el
Machine Learning y Deep Learning, que a su vez unen otras técnicas como
los algoritmos de búsqueda, simbólicos, de razonamiento lógico y
estadísticos.
Para dar un concepto de inteligencia artificial es muy complicado porque
este que depende de la propia definición de inteligencia, que hasta el día
de hoy tiene múltiples interpretaciones. Muchos autores la definen a su
manera, si se toma todas las definiciones y se extrae una idea en común
se puede decir que la inteligencia artificial, es la subdisciplina del campo de
la informática, que busca la creación de máquinas que puedan imitar
comportamientos inteligentes.
Los comportamientos pueden ser muy diversos como: conducir, analizar
patrones, reconocer voces o ganar un juego. Son muchas las formas en
que una maquina simular un comportamiento inteligente. Con esas
características se puede decir que las convierten más capaces que los
humanos.
La capacidad de realizar múltiples tareas es la que nos permite al mismo
tiempo pensar, ver, caminar y hablar. Un ejemplo muy común es cuando
vamos por la calle caminando y hablando con un amigo a la vez, esta es
una característica muy codiciada que hoy en día se sigue investigando en
todos los departamentos de inteligencia artificial.
En la inteligencia artificial tenemos dos agrupaciones, los débiles y los
fuertes. Inteligencia artificial débil se refieren a aquellos sistemas que
únicamente pueden cumplir con un conjunto muy limitado de tareas y no
sobrepasan a ser sistemas especializados por ejemplo enseñarle a un robot
22
a caminar y que luego intente patear un balón, es decir realiza una tarea
que no está establecida y puede que no se obtengan resultados esperados.
Inteligencia artificial fuerte hacen referencia a aquellas situaciones que son
capaces de aplicarse a una gran variedad de problemas y dominios
diferentes, por lo tanto, es la capacidad que permitiría construir máquinas
que tengan similitud a la del ser humano con respecto a las características
de pensar y ser consciente.
El imitar comportamientos no significa que dicho comportamiento sea en
esencia un comportamiento cognitivo, es decir, se puede programar de
manera clásica los movimientos de un brazo robótico para que siempre
realice un mismo movimiento, eso no parecería muy inteligente ya que la
lógica de la programación ya está establecida por el programador, que de
una u otra forma encaja sobre el concepto de inteligencia artificial.
Dentro de la inteligencia artificial existen diferentes subcategorías de
corresponder a diferentes comportamientos inteligentes como en el campo
de la robótica, la capacidad de entender el lenguaje. Existe una capacidad
dentro de la inteligencia artificial que destaca entre las demás que define
como agentes inteligentes que es la capacidad de aprender, es decir el
Machine Learning.
Machine learning
El Machine Learning o aprendizaje automático, es la rama del campo de la
inteligencia artificial que busca como dotar a las máquinas con la capacidad
de aprendizaje. Es decir, es el conjunto de técnicas informáticas que ayuda
a una computadora a tener la capacidad de aprender sin ser programadas
23
de manera explícita. Este aprendizaje puede dividirse en aprendizaje
supervisado y aprendizaje no supervisado.
El Machine Learning se conecta y realiza una relación con el resto de
categorías, porque todas las capacidades pueden ser limitadas ya sea
porque alguien las haya programado o porque el propio sistema haya
aprendido a realizarlas. Una cosa es programar una máquina para pueda
moverse y otra diferente programarla para que aprenda a moverse.
Dentro del Machine Learning existen técnicas que sirven para cubrir
diferentes tipos de aplicaciones como son:
Arboles de decisión
Modelos de regresión
Modelos de clasificación
Técnicas de clusterizacion y muchas mas
Unas de las técnicas que se ha dado fama en el campo de Machine
Learning durante las últimas décadas han sido las redes neuronales,
capaces de aprender de manera jerárquica, es decir, aprenden por niveles
donde las primeras aprenden conceptos muy concretos como que es un
tornillo, un espejo, una rueda, y las capas posteriores usa la información
aprendida previamente para aprender conceptos más abstractos como un
camión, moto, auto, etc.
Cada vez que se añade más capas la información que se aprende es más
abstracta e interesante, por lo tanto, los algoritmos se convierten en ser
más complejas. Este incremento y complejidad son conocidos como Deep
Learning o aprendizaje profundo, esta técnica se aprende y se entrena a
partir de los datos.
24
Redes neuronales
Las redes neuronales artificiales son un paradigma de aprendizaje y
procesamiento automático inspirado en la forma que funciona el sistema
nervioso. Se trata de un sistema de interconexión de neurona que colabora
entre sí para producir un estímulo de salida.
Neurona biológica
Fue Ramón y Cajal en 1888 quienes descubrieron la estructura celular
(neurona) del sistema nervioso. Defendieron que las neuronas se
conectaban entre sí de forma paralela y que no formando un circuito
cerrado como el sistema sanguíneo.
Una neurona consta de un cuerpo celular (soma) de que surge un denso
árbol de ramificaciones (dendritas) y una fibra tubular (axón).
GRAFICO 3: ESTRUCTURA DE UNA RED NEURONAL BIOLÓGICA
Fuente: Wordpress
Elaborado por: Lourismar K. y Juliet G.
De alguna forma, una neurona es un procesador de información muy
simple.
Entrada: Dendritas
Procesador: Soma
25
Salida: Axón
La conexión entre neuronas se llama sinapsis, no es una conexión física
son conexiones unidireccionales en la que la transmisión de la información
se hace de forma eléctrica en el interior de la neurona y de forma química
entre neuronas.
Neuronas artificiales
Una neurona es la unidad básica de procesamiento que nos encontraremos
dentro de una red neuronal, similar a una neurona biológica estas neuronas
tienen conexiones de entrada a través de los que reciben estímulos
externos.
Con los valores de entrada las neuronas realizan un cálculo interno y
genera un valor de salida. Esto se refiere a una función matemática, en el
cálculo numérico, internamente la neurona utiliza todos los valores de
entrada para realizar una suma ponderada de ellos.
La ponderación viene dada por el peso que se le asigna a cada una de las
conexiones de entrada, es decir, cada conexión que llega a la neurona
tendrá asociado un valor que servirá para definir, con que intensidad cada
variable de entrada afecta a la neurona.
El Sesgo se representa como otra conexión a la neurona en que la variable
siempre está asignada a 1, la cual podemos controlar manipulando el valor
del paramento del Sesgo. A continuación, se muestra de manera
simplificada el concepto de cada uno de sus componentes.
26
GRAFICO 4: ESTRUCTURA DE UNA RED NEURONAL ARTIFICIAL
Fuente: Laarbook
Elaborado: Raúl E. López Briega
X1, X2…, Xn: significa los datos de entrada a una neurona, las
cuales estas también pueden ser el resultado de salida de otras
neuronas dentro de la red.
X0: Es la unidad del Sesgo que tienen un valor constante 1 y que se
le suma a la entrada de la función de activación de la neurona y se
moverá hacia la derecha o izquierda, esto ayudara en la flexibilidad
para aprender.
W0, W1, W2…, Wn: son los pesos de las entradas a las neuronas,
sin descartar que la unidad del sesgo tiempo también un peso
a: es la salida de la neurona, esta se calcula de la siguiente manera:
𝑎 = 𝑓 ∑ 𝑊𝑖 ∗ 𝑋𝑖
𝑛
𝑖=0
27
Ejemplo en base a una sola neurona: un grupo de amigos desean jugar
futbol. ¿Qué se necesita para obtener dicho objetivo? El balón y una cancha
de futbol, sin una de ellas no se pueden dar el objetivo final.
CUADRO 3: VARIABLES BINARIAS DE UNA SOLA NEURONA
VARIABLES BINARIAS 1 0
BALÓN: X1 SI NO
CANCHA DE FÚTBOL:
X2
SI NO
Y1 SI NO
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
GRAFICO 5: ESTRUCTURA NEURONAL HACIENDO REFERENCIA A LA PUERTA LÓGICA AND
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
4X1+5X+-6
1 -6
X1
X2 5
4 Y
1
28
GRAFICO 6: RESULTADOS OBTENIDOS DEL PROCESAMIENTO DE LA NEURONA
x1 x2 y1 valor
0 0 0 -6
1 0 0 -2
0 1 0 -1
1 1 1 3
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
GRAFICO 7: SEPARACIÓN LINEAL EXPUESTO POR EL RESULTADO DE LA NEURONA ( AND)
1 0 1
X2
0 0 0
0 X1 1
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
PUERTA
LOGICA
AND
29
GRAFICO 8: ESTRUCTURA NEURONAL HACIENDO REFERENCIA A LA PUERTA LÓGICA OR
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
GRAFICO 9: SEPARACIÓN LINEAL EXPUESTO POR EL RESULTADO DE LA NEURONA (OR)
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
1 1 1
X2
0 0 1
0 X1 1
3X1+4X+-2
1 -2
X
1
X
2
4
3 Y
1
PUERTA
LOGICA
OR
30
GRAFICO 10: ESTRUCTURA DE DOS NEURONALES HACIENDO REFERENCIA A LA PUERTA LÓGICA XOR
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
4X1+5X+-6
1 -6
X
1
X
2
5
4 Y
1
4X1+-2X+-
3
1 -3
X
1
X
2
-2
4 Y
1
31
GRAFICO 11: SEPARACIÓN NO LINEAL EXPUESTO POR EL RESULTADO DE DOS NEURONAS (XOR)
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Mientras más capas se añaden más profundo será el conocimiento, lo que
se conoce como aprendizaje profundo. Para alcanzar el aprendizaje
profundo se debe conectar múltiples neuronas de forma secuencial, y si
vemos lo que hace cada una de estas neuronas, concluimos que es un
problema de regresión lineal, es decir, si se lo plasma matemáticamente se
concatenan diferentes operaciones de regresión lineal.
El problema matemáticamente es el efecto de sumar muchas operaciones
de regresión lineal, es decir sumar muchas líneas rectas equivalen al hecho
de realizar una única operación que da como resultado otra línea recta, lo
cual provoca que la estructura que se desea tener colapse hasta llegar a
una sola neurona.
Para que no colapse el resultado, la suma debe de ser diferente a una línea
recta, y se necesita que cada una de las líneas sufra una manipulación no
lineal que las distorsione, en donde se utiliza la función de activación. La
1 1 0
X2
0 0 1
0 X1 1
PUERTA
LOGICA
XOR
32
función de activación lo que hará es distorsionar el valor de salida
añadiéndole deformación no lineal.
Existen cuatro tipos de función de activación que son:
Función escalonada
Se llama escalonada porque el cambio del valor se produce
instantáneamente y no de forma gradual, produciendo así un escalón y este
no favorece al aprendizaje.
f(X)= 0 for X < 0
1 for X >=0
Función sigmoides
La distorsión que produce hace que los valores muy grandes se saturen en
1, y los más pequeños se saturen en 0, con esta función no solo se
consigue la deformación sino que también sirve para representar las
probabilidades que están en el rango de 0 a 1.
𝑓(𝑥) = 𝜎(𝑥) = 1
1 + 𝑒−𝑥
Función tangente hiperbólica
Similar a la sigmoides, pero diferencia en que el rango varia de -1 a 1.
tanh(𝑥) =(𝑒𝑥 − 𝑒−𝑥)
(𝑒𝑥 + 𝑒−𝑥)
Función RELU
Función lineal cuando es positivo y constante a 0 cuando es negativo.
33
f(X)= 0 for X < 0
x for X >=0
Redes neuronales concurrentes
Son llamadas también redes recursivas o de retroalimentación, es la
conexión recurrente entre ellos. Estas conexiones permiten generar lo que
se puede llamar memoria sobre las entradas anteriores es decir la salida
de una neurona puede tener relación de una u otra que se encuentra en
una capa anterior.
Las ventajas de este tipo de redes es que usan la misma estructura,
modelo, mismos parámetros para cada dato con su secuencia temporal
Función recurrente:
𝑥(𝑡) = ∫ 𝑥(𝑡−1)) = 𝑓 (𝑓(𝑥(𝑡−2))) = ⋯ = 𝑔(𝑥(𝑡−1), … 𝑥(0)
ℎ(𝑡) = 𝑔(𝑡)(𝑥(𝑡−1), 𝑥(𝑡−2) , … 𝑥(2), 𝑥(1)) Ejemplo
Para lograr la recurrencia existen ciertos bloques:
GRAFICO 12: BLOQUE DE RETRASO (TIEMPO DISCRETO)
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
D
a(0)
a(t) a(t)
34
La salida de a en un tiempo t es el valor de entrada de u de un tiempo
anterior, es decir:
a(t)=u(t-1)
Este bloque es usado por la red de Hamming y Hoppield.
Cuando se inicia por primera vez una red con esta clase de bloque se usa
la condición inicial a en un tiempo 0.
GRAFICO 13: BLOQUE INTEGRADOR (TIEMPO CONTINUO)
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Este bloque es utilizado por la red de Grossberg y es representado por la
siguiente ecuación
a(t)=∫ 𝒖(𝒕)𝒅𝒕 + (𝟎)𝟏
𝟎
a(0)
a(t) a(t)
35
GRAFICO 14: ARQUITECTURA DE UNA RED RECURRENTE
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Redes LSTM
Una red lstm es un tipo de red a nivel neuronal que es recurrente e intenta
modelar el comportamiento dependiente del tiempo o la secuencia; es decir
en cada paso del tiempo se proporciona una instrucción nueva y el
aprendizaje se ejecuta. En términos un poco más técnicos, el aprendizaje
lo hace realizando una retroalimentación de la salida de una capa de red
neuronal en un tiempo determinado (t) a la entrada de la misma capa de
red en el tiempo establecido más la unidad (t+1).
El modelo lstm ha sido aplicado y ejecutado en los sistemas predictivos que
se basan en información secuencial. Las redes de memoria Long Short
Term, generalmente llamadas "LSTM", fueron introducidas por Hochreiter
y Schmiduber. Estos se han utilizado ampliamente para reconocimiento de
voz, modelado de lenguaje, análisis de sentimiento y predicción de texto.
X(t-1) X(t) X(t+1) X
u u u
www
u
o(t-1) o(t) ot+1)
v v v
h(t-1) h(t) h(t+1)
h
v
o
w
36
GRAFICO 15: ARQUITECTURA DE UNA RED LSTM
Elaboración: Colah
Fuente: Colah 2015
Esta estructura es representada en círculos amarillos las operaciones de
vectores, matrices, cálculos algebraicos, etc. Los cuadros amarillos son las
capas de una red neuronal, las líneas que se funcionan estas representa la
concatenación de la información, las líneas con doble flecha describen que
el contenido es copiado y estas copias van en diferentes lugares.
Estas redes tienen la capacidad de borrar, modificar o agregar la
información al estado de la célula y estos se van encaminadas por
estructuras que son nombradas como puertas. Las puertas dejan pasar la
información y estas compuestas por una capa sismoidea. Esta capa está
representada por números de 1 y 0 si es “0” no pasa nada de información
y si es “1” deja pasar toda la información.
Las redes LSTM igual que las redes concurrentes tienen una estructura de
tipo cadena repetitiva. La estructura de las redes concurrentes tiene una
sola capa en comparación a las redes lstm que tienen 4 capas y cada una
cumplen una función diferente.
Cada capa es representada por una función detallando:
37
Que parte de la memoria de información a la vista del input no es
importante.
De la información nueva hay algo importante para ser almacenado.
Si hay información nueva como se combina con la memoria vieja.
Y, por último, que es lo que dará como resultado.
Funciones de las capas de la red LSTM
Forget gate:
𝑓𝑡= 𝜎 (𝑊𝑓∗[ℎ𝑡−1,𝑋𝑡]+𝑏𝑓
Input gate:
𝑖𝑡= 𝜎 (𝑊𝑖∗[ℎ𝑡−1,𝑋𝑡]+𝑏𝑖
𝐶𝑡= 𝑡𝑎𝑛ℎ (𝑊𝑐∗[ℎ𝑡−1,𝑋𝑡]+𝑏𝑐
Candidate gate:
𝐶𝑡= 𝑓𝑖∗+𝐶𝑡−1+ 𝑖𝑡∗ 𝐶𝑡
Output gate:
𝑜𝑡= 𝜎 (𝑊𝑜∗[ℎ𝑡−1,𝑋𝑡]+𝑏𝑜
ℎ𝑡= 𝑜𝑡∗tanh(𝐶𝑡)
Algoritmos genéticos
Son una herramienta fundamental dentro del campo de la toma de
decisiones cuando se busca la optimización.
Los algoritmos genéticos prácticamente emulan el proceso de la evolución
de las especies siguiendo a la adaptación al medio que hace que una
38
especie sea mejor que las demás, es decir que los que son mejores
sobreviven y los que no son me mejores no lo hacen.
Descripción y procedimiento
Procedimiento o algoritmo que intenta emular e proceso de la
evolución
Las poblaciones o soluciones de un problema se asemejan a las
poblaciones de la evolución
El objetivo consiste en conseguir la mejor solución por comparación
con un conjunto de soluciones
Se genera n soluciones a partir del cruzamiento de soluciones
obtenidas y se comparan si son mejores que las anteriores
GRAFICO 16: SOLUCION PADRE Y MADRE
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Punto de cruzamiento
Solución
Padre
Solución
Madre
39
GRAFICO 17: CRUZAMIENTO DE LAS SOLUCIONES
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Fases
1. Como primer punto se codifica la información de la problemática en
binarios 1 y 0.
2. Luego se generará de manera aleatoria cuál será la población inicial.
Los individuos serán representados como cromosomas la cual
deben de tener la información de forma codificada. Cabe recalcar
que cada cromosoma serán las soluciones posibles de la
problemática a resolver.
3. Se emplea la evaluación de la población inicial, es decir a cada uno
de los cromosomas se le debe de aplicar una función de aptitud la
cual se elige de acuerdo con el estudio del problema.
4. Luego de la evaluación se hace la selección de la nueva población
y a su vez se vuelve a generar una nueva haciendo el uso de los
cromosomas que contienen mayor puntuación y estos se los añade
mediante:
a. Cruce (crossover): se selecciona de forma aleatoriamente
aquellos individuos que desea a reproducir, también el cruce
se lo hace de manera aleatoria (y el cruce también se hace
de forma aleatoria (combinando los componentes del
cromosoma).
Punto de cruzamiento
Solución
Padre
Solución
Madre
40
b. Mutación: Consiste en utilizar los cromosomas de mayor
puntuación e introducir un cambio aleatorio en sus elementos.
5. Se repetirá los pasos 3 y 4 el número que sea hasta que se genere
la Se repite los pasos 3 y 4 un número de veces y finalmente se elige
la solución que se desea obtener o esperada.
GRAFICO 18: DIAGRAMA DE FLUJO DEL ALGORITMO GENÉTICO
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Iniciar
Población
Evaluar
Evaluación
Inicial
Selección
Cross-over
Mutación Solución
Final
Condición
Salida
41
Ejemplo Se desea obtener el número más cercano a 10 entre 0 y 7. f(x)= max(x).
CUADRO 4: CODIFICACION ( CROMOSOMAS POSIBLES )
CROMOSOMA VALOR
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7 Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
CUADRO 5: POBLACION INICIAL
Cromosoma valor 010 2
011 3
110 6
Elaborado por: Bryan Moran Zambrano y Kenneth Melgar Freire
CUADRO 6: EVALUACION DE LA POBLACION INICIAL
CROMOSOMA VALOR EC. FITNESS F=(10-X)
010 2 10-2=8
011 3 10-3=7
110 6 10-6=4
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
42
CUADRO 7: NUEVA POBLACION (SELECCION Y CRUCE)
cromosoma valor
011 3
110 6
111 7
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
CUADRO 8: NUEVA EVALUACION DE LA NUEVA POBLACION
CROMOSOMA VALOR EC. FITNESS F=(10-X)
011 3 10-3=7
110 6 10-6=4
111 7 10-7=3
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Mapas Auto-Organizados (SOM)
Esta red neuronal artificial fue descubierta en 1982 por T. Kohonen en
Finlandia, su teoría está basada en un sistema de comportamiento similar
al cerebro, su diseño fue creado para emular un sistema biológico sin
conexión no lineal Kohonen creando un método simple llamado Self-
Organizing Feature Map.
Esta red proporciona una manera de representar los datos
multidimensionales (vectores) en dimensión inferiores (2D). Son usados
para visualizar vistas de baja dimensión con datos de alta dimensión.
Tienen la capacidad de crear mapas con características similares a como
ocurre en el cerebro.
SOM trabaja en dos modos que son el entrenamiento y mapeo. Basados
en el entrenamiento este construye un mapa y lo hace usando parámetros
entrantes y el mapeo clasifica una nueva entrada. Este tipo de red realiza
43
un aprendizaje no supervisado de manera competitiva es decir no existe
nada externo que le ordene a la red neuronal y confirmar si su ejecución se
está cumpliendo de manera correcta o incorrecta la cual no tiene la orden
de salida objetiva en la que la neurona deba regirse.
La red como tal debe descubrir rasgos básicos, correlaciones o categorías
dentro de los datos de entrada y estos son incorporados a la estructura
internas de la conexión, es decir las neuronas se auto organizan en base a
los estímulos (datos) que son procedentes del entorno exterior.
Arquitectura
Posee un aprendizaje no supervisado
Consiste en n números de neuronas que se encuentran organizadas
que están formados sobre una red dimensional.
Cada una de sus neuronas contiene un vector de pesos (w) en su
entrada asociado, por otra parte, la neurona con vector de peso más
cercana a la entrada P será activado.
Características
Aprendizaje competitivo
Estas neuronas llevan un proceso de competición unas con las otras
para poder llegar a una tarea dada.
Esta competición entre neuronas se emplea con todas las capas de
la red.
Poseen conexiones recurrentes de inhibición y autoexcitación por
las neuronas vecinas.
El aprendizaje, clasifica de manera de clúster los datos que son
introducidos dentro de la red.
Las categorías y clases son creadas por la misma red.
44
Estas neuronas poseen un peso total, es decir, es la suma de los
pesos que tienen en la entrada.
Algoritmo SOM
Se entrena con patrones de entrada, es denominada una red no
supervisada.
Estas entradas son conectadas a una sola capa de neuronas y que
cada de los nodos se conectan a su vecino y puede existir una sola
neurona activa.
Esta conexión puede ser cuadrada, hexagonal, irregular, lineal. Etc.
La red percibe grupos de similitud o clusters.
Definición de vecindad
La vecindad señala que nodos aprenden.
Se usan arreglos: unidimensionales, bidimensionales,
tridimensionales. Etc
En la teoría de Kohonen recomendó vecindarios hexagonales y
rectangulares para que la implementación tenga alto grado de
eficiencia.
GRAFICO 19: CONEXIÓN LINEAL
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
45
GRAFICO 20: CONEXIÓN CUADRADA
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
GRAFICO 21: CONEXIÓN HEXAGONAL
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
46
Algoritmo de aprendizaje (Entrenamiento)
Los mapas auto organizativos surgen del aprendizaje competitivo
convencional en la manera que las neuronas actualizan sus pesos. No
solo se actualizan los pesos de la neurona que resulta ganadora en el
aprendizaje, sino que se actualizan también los de la vecindad.
La propiedad anterior, da como resultado que las neuronas vecinas
producen vectores de pesos similares para vectores de entrada similares.
Una fórmula para actualizar una neurona con vector de peso 𝑤𝑣(𝑠) es:
𝑤𝑣(𝑠 + 1) = 𝑤𝑣(𝑠) + 𝜃 (𝑢, 𝑣. 𝑠)𝛼 (𝑠)(𝐷(𝑡) − 𝑤𝑣)
Donde:
𝑠 es el índice de peso
𝑡 es el índice dentro del conjunto entrenante
𝑢 es el índice de BMU para D(t)
∝ (𝑠) es el coeficiente monótonamente decreciente de aprendizaje
D(t) es el vector de entrada; se asume que 𝑣 visite todas las
neuronas para cada valor de 𝑠 𝑦 𝑡
Algoritmo
1. Hacer un mapa con neuronas con vectores basado en pesos
aleatorios
2. Se toma un vector de entrada D (T)
a. se itera por cada neurona del mapa
i. luego calcula las distancias entre el vector de entrada
y los vectores de pesos de las neuronas dentro del
mapa,
ii. se mantiene la neurona que ha tenido menor
distancia, a neurona como menor distancia será la
BMU
b. actualizar las neuronas en la vecindad del BMU
47
𝑤𝑣(𝑠 + 1) = 𝑤𝑣(𝑠) + 𝜃 (𝑢, 𝑣. 𝑠)𝛼 (𝑠)(𝐷(𝑡) − 𝑤𝑣(𝑠))
3. Incrementar s y volver al paso 2, mientras s < ү
Aplicaciones
Es el algoritmo de RNA más popular dentro de la arquitectura no
supervisada
En muchos proyectos industriales son utilizadas como una
herramienta que resuelve problemas del mundo real.
Muchos campos de la ciencia han adoptado los SOM como una
herramienta analítica estándar en: estadística, procesamiento de
señales, teoría de control, análisis financiero, experimentos físicos
químicos y médicos.
El SOM es un algoritmo para visualizar e interpretar conjuntos de
datos multidimensionales.
Los SOM resuelven problemas difíciles no lineales y de alta
dimensión, así como extracción de características y clasificación de
imágenes y patrones acústicos, control adaptativo de robots,
ecualización, demodulación y transmisión de tolerancia de error de
señales en telecomunicaciones.
Python
Es un lenguaje de desarrollo de programación de código abierto y uno de
los más populares que existe. Es usado desde los más básicos “scripts”
hasta servidores web de alta gama de recursos sin ser interrumpidos la cual
es compatible con la licencia publica general de GNU que es una licencia
orientada al derecho de autor y usada en el mundo del software libre y del
código abierto que tiene soporte a orientación de objetos, programación
48
funcional e imperativa. Fue desarrollado en finales de los años ochenta y
comienzo de los noventas por Guido Van Rossum.
Existe una diversidad de librerías de Python útiles de acuerdos a las
necesidades del desarrollador o de lo que se quiera mostrar de acuerdo al
área de funcionalidad. A continuación, se nombrarán las librerías más
utilizadas y empleadas en Python.
CUADRO 9: LIBRERIAS DE PYTHON CON SUS FUNCIONALIDADES
LIBRERÍA FUNCIONALIDAD
REQUEST Es un must-have para los desarrolladores de Python, es
una librería que trabaja con diversos métodos del
protocolo HTTP. Crea, envía, envía, recibe, modifica
paquetes y su contenido.
PILLOW Es utilizado para la creación y manipulación de
imágenes de manera sencilla.
NUMPY Proporciona funcionalidades numéricas avanzadas
para Python como la manipulación de matrices
MATPLOTLIB Biblioteca para el trazado numérico, útil para el análisis
de datos.
SYMPY Resuelve y permite la manipulación de evaluaciones
algebraica, diferenciación, cálculo de números
complejos. etc.
NETWORKXY Permite la creación de grafos
DEAP Ayuda a la optimización de algoritmos genéticos,
programación genética
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
49
TensorFlow
En español significa flujo de tensores, donde tensor representa los vectores
o matrices y flujo las funciones matemáticas.
Este es un conjunto de librerías de SW de código abierto que ayuda a
realizar cálculos numéricos a gran capacidad, como lo son los algoritmos
de trayectorias vehiculares, esta herramienta nos permite trabajar con
cálculos matemáticos en lenguajes de programación como C y Python,
cabe mencionar que esta biblioteca de SW es de rápido aprendizaje
mayormente utilizado en el área de IA.
(Martín Abadi et al., 2015) TensorFlow is an interface for expressing
machine learning algorithms, and an implementation for executing such
algorithms. A computation expressed using TensorFlow can be executed
with little or no change on a wide variety of heterogeneous systems, ranging
from mobile devices such as phones and tablets up to large-scale
distributed systems of hundreds of machines and thousands of
computational devices such as GPU cards.
Keras
Keras es una librería proveniente del lenguaje de programación Python el
cual proporciona una amplia generación de modelos de aprendizaje
profundo (Deep Learning), que nos permite expresar redes neuronales de
forma modular tomando en cuenta cada modelo como una secuencia o solo
un grafo, actualmente la librería es de código abierto bajo licencia permisiva
del MIT.
50
Cuda - NVIDIA
Es una arquitectura de cálculo paralelo de NVIDIA que aprovecha la gran
potencia de la GPU (unidad de procesamiento gráfico) para proporcionar
un incremento extraordinario del rendimiento del sistema.
Docker
Está diseñado para el desarrollo empresarial y los equipos de TI que crean,
envían y ejecutan aplicaciones críticas para el negocio en producción y a
escala. Docker EE está integrado, certificado y respaldado para
proporcionar a las empresas la plataforma de contenedores más segura de
la industria.
Fundamentación Legal
La investigación que se desarrollo ha considerado como fundamento legal
las siguientes leyes
Haciendo una revisión de las leyes de propiedad intelectual podemos citar:
LEY DE PROPIEDAD INTELECTUAL
TITULO I
DE LOS DERECHOS DE AUTOR Y DERECHOS CONEXOS
CAPITULO I
DEL DERECHO DE AUTOR SECCION I
PRECEPTOS GENERALES
Art. 4. Se reconocen y garantizan los derechos de los autores y los
derechos de los demás titulares sobre sus obras.
51
Art. 5. El derecho de autor nace y se protege por el solo hecho de la
creación de la obra, independientemente de su mérito, destino o modo de
expresión. Se protegen todas las obras, interpretaciones, ejecuciones,
producciones o emisión radiofónica cualquiera sea el país de origen de la
obra, la nacionalidad o el domicilio del autor o titular. Esta protección
también se reconoce cualquiera que sea el lugar de publicación o
divulgación.
El reconocimiento de los derechos de autor y de los derechos conexos no
está sometido a registro, depósito, ni al cumplimiento de formalidad alguna.
El derecho conexo nace de la necesidad de asegurar la protección de los
derechos de los artistas, intérpretes o ejecutantes y de los productores de
fonogramas.
Art. 6. El derecho de autor es independiente, compatible y acumulable con:
a) La propiedad y otros derechos que tengan por objeto la cosa material a
la que esté incorporada la obra;
b) Los derechos de propiedad industrial que puedan existir sobre la obra;
y,
c) Los otros derechos de propiedad intelectual reconocidos por la ley.
También se tendrá en cuenta artículos referenciados al derecho de autor
la cual se citará:
Sección II
Objeto Del Derecho De Autor
Art. 8. La protección del derecho de autor recae sobre todas las obras del
ingenio, en el ámbito literario o artístico, cualquiera que sea su género,
52
forma de expresión, mérito o finalidad. Los derechos reconocidos por el
presente Título son independientes de la propiedad del objeto material en
el cual está incorporada la obra y su goce o ejercicio no están supeditados
al requisito del registro o al cumplimiento de cualquier otra formalidad.
Las obras protegidas comprenden, entre otras, las siguientes:
a) Libros, folletos, impresos, epistolarios, artículos, novelas, cuentos,
poemas, crónicas, críticas, ensayos, misivas, guiones para teatro,
cinematografía, televisión, conferencias, discursos, lecciones, sermones,
alegatos en derecho, memorias y otras obras de similar naturaleza,
expresadas en cualquier forma;
b) Colecciones de obras, tales como antologías o compilaciones y bases
de datos de toda clase, que por la selección o disposición de las materias
constituyan creaciones intelectuales, sin perjuicio de los derechos de autor
que subsistan sobre los materiales o datos;
c) Obras dramáticas y dramático musicales, las coreografías, las
pantomimas y, en general las obras teatrales;
d) Composiciones musicales con o sin letra;
e) Obras cinematográficas y cualesquiera otras obras audiovisuales;
f) Las esculturas y las obras de pintura, dibujo, grabado, litografía y las
historietas gráficas, tebeos, comics, así como sus ensayos o bocetos y las
demás obras plásticas;
g) Proyectos, planos, maquetas y diseños de obras arquitectónicas y de
ingeniería;
h) Ilustraciones, gráficos, mapas y diseños relativos a la geografía, la
topografía, y en general a la ciencia;
53
i) Obras fotográficas y las expresadas por procedimientos análogos a la
fotografía;
j) Obras de arte aplicada, aunque su valor artístico no pueda ser disociado
del carácter industrial de los objetos a los cuales estén incorporadas;
k) Programas de ordenador; y,
l) Adaptaciones, traducciones, arreglos, revisiones, actualizaciones y
anotaciones; compendios, resúmenes y extractos; y, otras
transformaciones de una obra, realizadas con expresa autorización de los
autores de las obras originales, y sin perjuicio de sus derechos.
Sin perjuicio de los derechos de propiedad industrial, los títulos de
programas y noticieros radiales o televisados, de diarios, revistas y otras
publicaciones periódicas, quedan protegidos durante un año después de la
salida del último número o de la comunicación pública del último programa,
salvo que se trate de publicaciones o producciones anuales, en cuyo caso
el plazo de protección se extenderá a tres años.
Sección III
Titulares De Los Derechos
Art. 11. Únicamente la persona natural puede ser autor. Las personas
jurídicas pueden ser titulares de derechos de autor, de conformidad con el
presente Libro.
Art. 12. Se presume autor o titular de una obra, salvo prueba en contrario,
a la persona cuyo nombre, seudónimo, iniciales, sigla o cualquier otro signo
que lo identifique aparezca indicado en la obra.
54
Se hace referencia en base a los fundamentos de la educación superior
en la cual se citará:
Constitución De La República Del Ecuador
Sección primera
Educación
Art. 350. El sistema de educación superior tiene como finalidad la
formación académica y profesional con visión científica y humanista, la
investigación científica y tecnológica, la innovación, promoción, desarrollo
y difusión de los saberes y las culturas, la construcción de situaciones para
los problemas del país, en relación con los objetivos del régimen de
desarrollo.
Art. 355. El estado reconocerá a las universidades y escuelas politécnicas
autonomía académica, administrativa, financiera y orgánica acorde con los
objetivos del régimen de desarrollo y los principios establecidos en la
Constitución.
Art. 385. El sistema nacional de ciencia, tecnología, innovación y saberes
ancestrales, en el marco del respeto al ambiente, la naturaleza, la vida, las
culturas y la soberanía, tendrá como finalidad:
1. Generar, adaptar y difundir conocimientos científicos y tecnológicos.
2. Recuperar, fortalecer y potenciar los saberes ancestrales.
3. Desarrollar tecnologías e innovaciones que impulsen la producción
nacional, eleven la eficiencia y productividad, mejoren la calidad de
vida y contribuyan a la realización del buen vivir.
Art. 386. El sistema comprenderá programas, políticas, recursos, acciones,
e incorporará a instituciones del Estado, universidades y escuelas
politécnicas, institutos de investigación públicos y particulares, empresas
públicas y privadas, organismos no gubernamentales y personas naturales
55
o jurídicas, en tanto realizan actividades de investigación, desarrollo
tecnológico, innovación y aquellas ligadas a los saberes ancestrales.
Art. 136.- Trabajos realizados por investigadores y expertos
extranjeros.- El reporte final de los proyectos de investigación deberán ser
entregados por los centros de educación superior, en copia electrónica a la
Secretaría Nacional de Educación Superior Ciencia, Tecnología e
Innovación. Esta información será parte del Sistema Nacional de
Información de la Educación Superior.
Pregunta Científica Que Contestarse
1. ¿Cuál es la importancia de analizar artículos científicos enfocados
a trayectorias vehiculares con uso de algoritmos y modelos de
aprendizaje?
2. ¿De qué manera se emplean los algoritmos recomendadores para
mejorar el congestionamiento vehicular en la ciudad de Guayaquil?
3. ¿Cómo se podrá sustentar y/o demostrar el funcionamiento de los
algoritmos recomendadores?
4. ¿En que contribuiría sintetizar los beneficios del uso de algoritmos
recomendadores en la plataforma tecnológica de planeación
urbana?
Definiciones Conceptuales
Congestión vehicular: se refiere a la saturación de la circulación vehicular
que es provoca principalmente en las horas picos dando como resultado
pérdida de tiempo en los viajes rutinarios.
56
Vehículo: es definido como un mecanismo de transporte que ayuda a
trasladarse de un lugar a otro, incluyendo personas, animales o cosas.
Trayectoria: es el curso o recorrido que se da en un punto inicial a un punto
final a lo largo de un tiempo determinado.
Velocidad: es el movimiento que se aplica a un cuerpo determinado por
las variables de distancia y tiempo.
Semaforización: es usada en las intersecciones de vías que permite el
ordenamiento de la circulación de los vehículos y el tránsito de los peatones
dentro de un área urbana.
Scrum: es una metodología que sigue un proceso colaborativo regulando
un conjunto de actividades o tareas para conseguir un resultado óptimo de
un proyecto.
Algoritmo: se define como una secuencia de pasos con una etapa inicial
y con una etapa final que da como resultado una ejecución de tareas, cada
paso se expresa de forma específica.
Framework: denominado también como entorno o ambiente de trabajo es
una estructura de conjunto de módulos complementados con un software
que ayuda el desarrollo y enlaza los componentes del proyecto.
Docker: es una plataforma de código abierto que ayuda automatizar los
despliegues de las aplicaciones dentro de los contenedores de software a
nivel de Linux y Windows.
Tensorflow: conjunto de librerías de Open Source que permite diseñar
redes neuronales y forman una arquitectura de imágenes, palabras, datos,
etc.
57
Keras: librería establecida en Python que se ejecuta en Tensorflow y
Theano ayudando en la experimentación rápida en redes neuronales
profundas.
Nvidia: plataforma de computo paralelo que permite codificar los algoritmos
en GPU en la aplicación de Nvidia.
Grafos: conjunto de vértices y aristas que se conectan entre si, pueden ser
dirigidos y no dirigidos.
58
CAPITULO III
Propuesta Tecnológica
El presente proyecto forma parte de una plataforma tecnológica que
ayudara a la contribución de la minimización del tráfico en la ciudad de
Guayaquil. Dicha aplicación web será de disponibilidad de entidades
gubernamentales como pueden ser el municipio de la ciudad y la comisión
de tránsito para que tengan más información real de la planificación urbana.
La arquitectura de la plataforma tecnológica se basa en la recolección de
datos que será información de avenidas o calles de la ciudad con sus
respectivos parámetros como latitud, longitud, tiempo de semaforización y
velocidad promedio del vehículo. Como segundo proceso es la ilustración
de mapas la cual, serán usados los datos para ser consumidos en los
mapas, por lo consecuente se aplicará algoritmos recomendadores,
matemáticos o genéticos para la implementación y muestreo de los mapas
en diversos lenguajes de desarrollo, y por último el análisis de datos que
serán arrojados mediante los mapas que dará una respuesta de
optimización y de eficiencia sobre la planeación urbana en este caso sobre
el congestionamiento vehicular.
El proyecto se enfocará sobre la implementación de algoritmos sobre
trayectorias vehiculares la cual es el resultado final esperado para que sea
consumido sobre un mapa de un punto de la ciudad de Guayaquil. La
utilización de algoritmos recomendadores sirve para poder dar diferentes
alternativas posibles de soluciones. Previo a la implementación se debe
contar con programas, aplicaciones, framework, lenguaje de desarrollo,
librerías, etc.
El algoritmo a utilizar y que se ajusta a los parámetros y modelos
matemáticos para el resultado final es el algoritmo de SOM (Mapas
59
Autoorganizados) que permite la visualización de vistas de dimensión baja
de datos.
Análisis de factibilidad
Una vez que se tiene en claro las problemáticas y los conflictos viales, se
efectúa a implementar una solución a nivel de algoritmo vehicular para la
optimización y regular la congestión que ayudara como solución óptima en
la planificación urbana en la ciudad de Guayaquil.
El presente proyecto tiene factibilidad de uso en la automatización de
información que serán representadas y consumidas mediante ilustraciones
de mapas. Así mismo cuenta con los requerimientos necesarios para ser
consumidos por la aplicación web donde se alojará el desarrollo del
proyecto como un módulo del antes mencionado.
Factibilidad Operacional
En cuanto a la operabilidad del proyecto se puede manifestar que el
sistema va a ser muy sencillo de manipular, debido a que su funcionalidad
es interna, en conjunto con su aprendizaje de trayectorias más recurrentes,
el módulo que se implementó realiza un consumo de datos que a partir de
otros módulos dentro del proyecto FCI, son previamente cargados.
A nivel de visualización el usuario podrá solo elegir un destino, y el sistema
se encargará de enviar la información de la ingresado, hará una consulta
de las rutas que más se utilizan para llegar a dicho destino, analizará las
rutas donde se acumula mayormente el tráfico y nos dará una o varias
soluciones que el usuario final podrá tomar para llegar a su lugar de destino.
60
Factibilidad técnica
De acuerdo a los requerimientos que se implantaron al proyecto elaborado
para la inserción de la implementación a la aplicación web como primer
punto debe de contar con el sistema operativo de Linux, en este caso una
máquina virtual donde tenga este S.O. Un servidor alojado en la nube
donde se recolectará la información ya sea de la base de datos, acceso a
nivel de usuario y administrador, contar con Docker para la adaptabilidad
de lenguaje de programación y aplicaciones de software para que puedan
ser ejecutada en cualquier máquina.
Factibilidad Legal
De acuerdo con los proceso del proyecto estos se rigen a una ley o
reglamento de disponibilidad, uso e integración. Y con la factibilidad legal
se puede deducir en el siguiente cuadro con detalle las bases legales con
su respetiva articulo o inciso.
CUADRO 10: BASES LEGALES CON SUS RESPECTIVOS ARTICULOS
BASE LEGAL ARTICULO O
INCISO
Ley de propiedad intelectual Art. 4,5 y 6
Objeto al derecho del autor Art. 8
Titulares de los derechos Art. 11 y 12
Educación (constitución de la república del
Ecuador
Art. 350, 355 y 385
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
61
Factibilidad Económica
Una vez analizado el costo económico del proyecto previo a la
implementación tanto como de software: aplicaciones, framework, sistema
operativo etc., y de hardware como equipo de cómputo donde se empleará,
otros recursos físicos, etc. Se conoce no se hizo gastos considerables. A
continuación, se mostrará en un cuadro sobre los costos empleados de
hardware y software detalladamente.
CUADRO 11: RECURSOS DE SOFTWARE
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
CANTIDAD RECURSO USO TOTAL
1 VMWARE
WORKSTATION
CREACION DE LA
MAQUINA VIRTUAL
$0.00
1 WINDOWS 10 SISTEMA OPERATIVO $0.00
1 PYTHON LENGUAJE DE
PROGRAMACION
$0.00
1 JYPITER APLICATIVO WEB $0.00
1 KERAS MODELO DE
APRENDIZAJE
$0.00
1 TENSORFLOW CONJUNTO DE
LIBRERÍAS DE PYTHON
$0.00
1 DOCKER IMPORTACION DE
IMÁGENES
$0.00
1 NVIDIA CODIFICA ALGORITMOS
EN GPU
$0.00
62
CUADRO 12: OTROS RECURSOS
CANTIDAD DETALLE VALOR
UNITARIO
VALOR TOTAL
1 Algoritmo de
trayectoria (creado)
$0.00 $0.00
2 Recurso humano $350 $700
2 Internet $30 $30
TOTAL $730
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
CUADRO 13: RECURSOS DE HARDWARE
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Etapas de la metodología del proyecto
Levantamiento de información de Servicio
Selección de lenguaje de programación a utilizar.
Análisis de tipos de algoritmos existentes.
Estudio de los modelos de aprendizaje que se pueden
implementar.
Levantamiento del servicio
Instalación de Docker.
Creación de la imagen de Jupyter con Keras en Docker.
Instalación de librerías dentro de la imagen en ejecución.
DETALLE CANTIDAD CARACTERISTICAS VALOR
PORTÁTIL 2 HP $900
TOTAL $1800
63
Análisis del Algoritmo
Selección de algoritmo.
Revisión de la documentación del algoritmo.
Estudio de las funciones y métodos que utiliza el
algoritmo.
Implementación del Algoritmo y Modelo de Aprendizaje
Realización del o los modelos que van a realizar la
ejecución del servicio.
Implementación del modelo de aprendizaje sobre el
algoritmo.
Levantamiento de Datos
Creación de una BD.
Conexión de la BD con el proyecto.
Recopilación de información para la BD.
Almacenamiento de la Data.
Pruebas
Realización de pruebas del algoritmo con data
recolectada.
Resolución de posibles errores.
Pruebas con usuario final.
Integración
Exportación del código fuente.
Pase respectivo del módulo realizado al proyecto final
(FCI).
Documentación
Manual Técnico.
Manual de Usuario.
Exportación de imagen en Docker.
64
Entregables del proyecto
Al final del proyecto se va a realizar la entrega al grupo de FCI de los
archivos Python (Código fuente) donde se encuentra la implementación del
algoritmo, así como el manual de técnico, la data recolectada de la ciudad
de Guayaquil y la imagen de Docker que se utilizó para la implementación
del servicio.
Criterios De Validación De La Propuesta
En estos criterios de validación se realizaron pruebas de algoritmo para
verificar los resultados obtenidos conforme a la alimentación de la base de
datos el sistema tiende a ser más exacto como se muestra en las siguiente
graficas:
GRAFICO 22: EJECUCIÓN DEL SERVICIO CON BD POCO POBLADA
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
65
GRAFICO 23: EJECUCIÓN DEL SERVICIO CON BD MAS POBLADA
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Procesamiento Y Análisis
Introducción al sistema
En la etapa de levantamiento de información se realizó un análisis de las
posibles opciones en donde se podría utilizar un algoritmo recomendador
en conjunto de un modelo de aprendizaje. Y es aquí donde también se hizo
la elección del lenguaje de programación que se utilizó.
66
Conforme al lenguaje de programación que se eligió, fue más fácil la
elección del Framework y el modelo de aprendizaje debido a su
compatibilidad, la elección de Python fue debido a su facilidad de uso, y
debido a que hasta el presente 2018, ha sido uno de los lenguajes con
mayor ranking de usabilidad y porque cada vez ha ido mejorando a una
gran escala.
Para la elección del algoritmo se requirió mucho más tiempo debido a que
en la elección de este, se tuvieron que tomar en cuenta ciertas
especificaciones que se requerían para el proyecto con respecto a su uso
y la finalidad que se tenía para con él.
Instalación de Docker.
GRAFICO 24: TERMINAL CON VERSION DEL DOCKER
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
En este caso se hizo la elección de Docker-ce debido a que en la extracción
de las imágenes de Keras y Jupyter, presentaban inconvenientes de
compatibilidad con Docker.io, que fue la principal versión que se iba a
67
utilizar, además de otros tipos inconvenientes con otras versiones de
Docker.
Creación de la imagen de Jupyter con Keras en Docker
GRAFICO 25: IMAGENES CREADAS EN DOCKER
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Como se muestra en la imagen se realizó el levantamiento de cuatro
imágenes, cada una tiene una particularidad como los son;
complementos de Cuda, Nvidia-docker, hasta las versiones de
Docker a usar.
Levantamiento del servicio de Keras.
En esta etapa lo que se procedió a realizar fue el levantamiento del servicio
como tal para así, ya comenzar con la utilización y análisis del algoritmo.
68
Ingreso al sistema de Jupyter.
GRAFICO 26: PLATAFORMA JUPYTER
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Aquí ya podemos apreciar que con el levantamiento de la imagen ya
podemos hacer uso de la aplicación, aunque esto no es lo que va a
visualizar el, usuario final. En donde principalmente nos pide la clave del
Kernel para poder acceder al sistema.
Instalación de librerías dentro de la imagen en ejecución.
GRAFICO 27: ENTORNO JUPYTER CON ARCHIVO DE CODIGO FUENTE
69
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
En la plataforma tenemos opciones como crear nuevos archivos en Python
como los que se muestran a la izquierda de la imagen, crear archivos de
texto e inclusive levantar una terminal donde se va a poder instalar librerías
en el sistema.
GRAFICO 28: TEMRINAL DEL ENTORNO DE JUPYTER
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
Como se puede visualizar tenemos una pequeña terminal donde podemos
apreciar una porción de las librerías instaladas para el proyecto, la cuales
70
hemos podido presentar por medio del comando “pip3 freeze”, que nos
permite ver las todas las librerías instaladas en Python 3.
Para la fase de análisis del algoritmo, lo primordial fue ver detalle a detalle
el funcionamiento del algoritmo para su implementación, aquí se
contemplaron los parámetros que recibe el algoritmo como tal, de qué
manera se podría implementar con Python y de qué manera se
visualizarían los resultados.
Además, este apartado se realizó como una segunda fase de análisis, pero
enfocado netamente con el algoritmo a utilizarse después de haber
realizado su elección, para verificar cual sería el comportamiento y rapidez
en conjunto en el entorno de Jupyter.
Realización del o los modelos que van a realizar la ejecución del servicio.
GRAFICO 29: CODIGO FUENTE
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
En el grafico se muestra una parte de la implementacion del servicio
ademas de la eleccion de los datos que va a analizar el algoritmo. Para el
analisis de los datos inicialmente se trabajo una base de pruebas con datos
71
de trayectorias de otros paises, los cuales al final van a ser reemplzados
por datos de la ciudad de Guayaquil.
GRAFICO 30: MAPEO DEL ALGORITMO
Elaborado por: Kenneth Melgar Freire y Bryan Moran Zambrano
En el grafico se logra visualizar algunos de los mapas que nos da como
resultado el algoritmo.
Implementación del modelo de aprendizaje en conjunto con el
algoritmo.
Para poder concluir con lo que es desarrollo, se la procedió con la
implementación del modelo de aprendizaje, la finalidad de esto nos llevó a
terminar definitivamente con la implementación del algoritmo, para que con
los resultados que nos arrojó el algoritmo pasarlos al modelo de aprendizaje
y procesarlos.
En la fase de levantamiento de datos lo que se procedió a realizar fue un
conteo y/o análisis de vehículos que transitan en diferentes calles de la
72
ciudad de Guayaquil, para así poder tener una base de datos poblada con
datos reales, y poder al final realizar pruebas con datos reales de la ciudad.
Para esta fase de pruebas se requiere tener la base de datos con una gran
cantidad de data para poder realizar las pruebas y saber si el algoritmo está
funcionando de manera correcta. Lo que se realiza es la conexión con la
BD desde el sistema y se hace el consumo de datos, previamente
almacenados.
En esta fase integración se realizó la respectiva integración del módulo
realizado con el proyecto de FCI, para verificar su funcionamiento con los
demás módulos que lo comprenden con el fin de solventar todas las
posibles fallas que se encuentren, y así tener un proyecto finalmente solido
con resultados bastantes cercanos a la realidad.
Como fase final se tiene la fase de documentación para así redactar como
se realizó el proyecto como tal, especificar como funciona y de qué manera
se lo puede utilizar en otros proyectos. Así como los manuales de usuario
y técnico para ayudar con el entendimiento del proyecto.
73
CAPÍTULO IV
Criterios de aceptación del producto o Servicio
En el presente proyecto de titulación los criterios de aceptación fueron
aprobados por las ING. PERALTA GUARACA TANIA JESEENIA M.sc.,
tutora d la tesis y Coordinadora de Pasantías Pre-Profesionales de la
Carrera de Ingeniería en Sistemas Computacionales e Ingeniería en
Software de la Universidad de Guayaquil Facultad de ciencias Matemáticas
y Físicas.
Los puntos evaluados fueron todos los alcances que se plantearon al inicio
de proyecto y cada uno de requerimientos que fueron surgiendo a medida
que se avanzaba con la tesis como lo son:
CUADRO 14: MATRIZ CON LOS CRITERIOS DE ACEPTACION
USUARIO- INTERFAZ
Requerimiento Descripción
Porcentaje
de
Satisfacción
INGRESO AL
SISTEMA
Fácil acceso al sistema.
Comodidad en uso.
Entorno agradable para el usuario
100%
USO DE SISTEMA Comprensión del módulo.
Sistema al alcance de un botón. 100%
PARAMETROS DE
USO
Para poder tener resultados mas
efectivos con respecto a lo solicitado
se debe principalmente hacer una
consulta de trafico y luego buscar
una solución vehicular.
100%
RESULTADO DE LA
APLICACION
EL principal resultado es la o las
vías alternas para llegar a nuestro
destino.
Otro resultado es el aprendizaje que
tiene el sistema con respecto a la
ruta en una nueva consulta
100%
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
74
CUADRO 15: MATRIZ CON LOS CIRTERIOS DE ACEPTACION
ADMINISTRADOR-INTERFAZ
Requerimiento Descripción
Porcentaje
de
Satisfacción
AJUSTES SISTEMA
El módulo del sistema tiene pocos
parámetros de ajuste como lo son:
Conexiones con la BD.
Uso de Tablas con data de
trayectorias
100%
PRUEBAS DEL
SISTEMA
Para las pruebas del administrador
se puede levantar el sistema adverso
en la plataforma Jupyter.
100%
PARAMETROS DE
USO
Los parámetros de uso no pueden
ser cambiados por uso exclusivo de
los algoritmos.
100%
RESULTADO DE LA
APLICACION
Los resultados para el administrador
en Debug, son la visualización de
otras graficas por medio del código
fuente para su respectivo análisis.
100%
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
CUADRO 16: MATRIZ CON LOS CRITERIOS DE ACEPTACION
RESULTADOS OBTENIDOS
Requerimiento Descripción
Porcentaje
de
Satisfacción
ALGORITMO Solución de vías alternas que se pueden
tomar para llegar a un destino. 100%
MODELO DE
APRENDIZAJE
Aprendizaje de corto tiempo con respecto
a soluciones viales anteriores para la
emisión de rutas alternas.
100%
GRAFICACIÓN
La gráfica de resultado final se plasma
en un mapa de la ciudad de tal manera
que pueda ser entendido por el usuario.
100%
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
75
CUADRO 17: MATRIZ CON LOS CRITERIOS DE ACEPTACION
RECURSOS DEL SISTEMA
Requerimiento Descripción
Porcentaje
de
Satisfacción
HARWARE
Se requiere para el levantamiento
del sistema:
4GB de RAM (Mínimo).
80GB de Memoria.
Procesador AMD (Mínimo).
Entre mejor procesador y RAM la
ejecución del servicio va a ser más
ágil.
100%
SOFTWARE
Para complementar el Hardware se
requiere:
Tener una Base de Datos.
Entorno de ejecución del
sistema.
Docker (Opcional).
Módulo de Rutas de FCI.
100%
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
CUADRO 17: MATRIZ CON LOS CRITERIOS DE ACEPTACION
RECURSOS ADMINISTRATIVOS
Requerimiento Descripción
Porcentaje
de
Satisfacción
ECONÓNICO
Equipos de cómputo x2 $1500
Transporte $50
Cables de Red x2 $5
Alimentación $200
Instancia en AWS $300
Internet $120
100%
HUMANO 2 Tesistas 100%
Elaboración: Kenneth Melgar Freire y Bryan Moran Zambrano
76
Conclusiones
Con respecto a la exhaustiva investigación que se realizó sobre los
algoritmos recomendadores para trayectorias se encontraron varios como;
KMEANS, DBScan, SOM, Pyga, entre otros, pero en la investigación se
logró llegar a la conclusión que en la parte de análisis de datos los
algoritmos son muy similares, lo que los diferencian son ciertas
características como el tiempo de ejecución, la manera de que se pueden
integrar o los complementos adicionales que posee o necesitan.
En la aplicación de los algoritmos se pudo constatar que los resultados de
análisis son muy similares, aunque el tiempo de ejecución de ellos cambie
muy poco, pero en si nos llamó la atención SOM por su adaptación con las
redes neuronales, y con esto poder adaptar modelos de aprendizaje como
RNN o LSTM, es por eso se escogió SOM como algoritmo a aplicar.
Se logró implementar el prototipo gráfico del algoritmo recomendador, el
cual nos permitió visualizar los resultados obtenido del algoritmo
recomendador.
Para los resultados obtenidos llegamos a la conclusión que con el algoritmo
SOM hemos alcanzado los resultados esperados con respecto a obtener
una ruta solución, como beneficio podemos tener que le código fuente es
manipulable para que pudiesen ser añadidos otros algoritmos.
77
Recomendaciones
En la parte investigativa podemos tomar como recomendación, que al
realizar el estudio de un algoritmo este se realice de tal manera que casi no
se dejen funcionalidades de los mismo sin estudiar, porque de esta manera
se lograra no implementar un algoritmo no deseado desde el principio o a
su vez, se lograra utilizar algoritmos que dentro de pequeñas
funcionalidades cumplen con los requisitos del proyecto.
Como recomendación podemos decir que en el análisis e implementación
de los algoritmos se basen solo en el tiempo de ejecución de este, sino que
también se pueden basar en la precisión de los resultados que puede llegar
a arrojar o la cantidad de recursos que necesita.
En la implementación de un modelo gráfico en nuestro caso
parametrizamos que el modelo de aprendizaje trabaje con el algoritmo
SOM, como recomendación podemos decir que se podría mejorar haciendo
que la data que recibe el modelo de aprendizaje trabaje con más
algoritmos, además de integrarlo a Lesstraffic lo cual se podría realizar en
una siguiente versión.
En el análisis resultados podemos recomendar que, para mayor efectividad
de los resultados, en el caso de trayectorias vehiculares se debe tratar de
conseguir la suficiente información de rutas y uso vehiculares del lugar
donde se va a realizar análisis.
78
Bibliografía
HAIBO CHEN, SUSAN GRANT-MULLER, LORENZO MUSSONE, AND FRANK MONTGOMERY. A STUDY OF HYBRID NEURAL NETWORK APPROACHES AND THE EFFECTS OF MISSING DATA ON TRAFFIC FORECASTING. NEURAL COMPUTING AND APPLICATIONS, 10:277–286, 2001. BORGATTI, S. P. (2005). CENTRALITY AND NETWORK FLOW. SOCIAL NETWORKS, 55-71. CONGRESO NACIONAL DEL ECUADOR. (2006). LEY DE PROPIEDAD INTELECTUAL, (320), 83. RETRIEVED FROM HTTP://WWW.CORREOSDELECUADOR.GOB.EC/WPCONTENT/UPLOADS/DOWNLOADS/2015/05/LEY_DE_PROPIEDAD_INTELE CTUAL.PDF J. E. DAYHOFF. “NEURAL NETWORK ARCHITECTURES: AN INTRODUCTION”. VAN NOSTRAND REINHOLD. Nº 1. NEW YORK, USA. PP. 259. 1990. ISBN: 0-442-20744-1. K, KIVILUOTO. “TOPOLOGY PRESERVATION IN SELF-ORGANISING MAPS”. IEEE INT. CONF. ON NEURAL NETWORKS, 294-299. JUNIO, 1996. DOI: 10.1109/ICNN.1996.548907. T. KOHONEN. “SELF-ORGANIZATION OF VERY LARGE DOCUMENT COLLECTIONS: STATE OF THE ART”. ICANN 98, 1, PP. 65-74. 1998. DOI: 10.1007/978-1-4471-1599-1_6. G. REYES ZAMBRANO, F. MACÍAS TEPÁN, A. PIZARRO JAIME, & J. MACIAS GUEVARA. “VISUALIZACIÓN Y ANÁLISIS DE TRAYECTORIAS VEHICULARES CON QGIS Y WEKA”. INTERNATIONAL JOURNAL OF INNOVATION AND APPLIED STUDIES. VOLUMEN 18. NÚMERO 4, PP. 961-971. DICIEMBRE, 2016. ISSN: 2028-9324. El Telegrafo. (2017, Marzo 21). Retrieved from Martín Abadi, A. A., Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro,, Greg S. Corrado, A. D., Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow,, Andrew Harp, G. I., Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser,, Manjunath Kudlur, J. L., Dan Mane, Rajat Monga, Sherry Moore, Derek Murray, ´, Chris Olah, M. S., Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar,, Paul Tucker, V. V., Vijay Vasudevan, Fernanda Viegas, Oriol Vinyals,, . . . Research, G. (2015). TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems. 19.
79
Ramírez, A. S. A. (2017). DENTIFICACIÓN DE PATRONES DE TRAYECTORIAS VEHICULARES UTILIZANDO EL ALGORITMO LVQ. Retrieved from Vemula, A. (2017). Social Attention: Modeling Attention in Human Crowds. El Telegrafo. (2017, Marzo 21). Martín Abadi, A. A., Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig
Citro,, Greg S. Corrado, A. D., Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow,, Andrew Harp, G. I., Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser,, Manjunath Kudlur, J. L., Dan Mane, Rajat Monga, Sherry Moore, Derek Murray, ´, Chris Olah, M. S., Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar,, Paul Tucker, V. V., Vijay Vasudevan, Fernanda Viegas, Oriol Vinyals,, . . . Research, G. (2015). TensorFlow:
Large-Scale Machine Learning on Heterogeneous Distributed Systems. 19. Ramírez, A. S. A. (2017). DENTIFICACIÓN DE PATRONES DE
TRAYECTORIAS VEHICULARES UTILIZANDO EL ALGORITMO LVQ.
Vemula, A. (2017). Social Attention: Modeling Attention in Human Crowds.
Pinales Delgado Javier Francisco, V. A. C. E. (2014). Algoritmos
resueltos con diagramas de flujo y pseudocódigo.
A.Ultsch, H. S. (9-13 de Julio de 1990). Kohonen's Self
Organizing Feature Maps for Exploratory Data Analysis.
Proceedings of the International Neural Network Conference
(INNC-90). Alahakoon, D.
H. (1998). A structure adapting feature map for optimal cluster
representation. In International Conference on Neural Information
Processing ICONIP98, 809–812.
Bullinaria, J. A. (2004). Self Organizing Maps: Fundamentals.
Introduction to Neuronal Networks: Lecture 16.
da Silva, I. H. (2017). Artificial Neural Networks A Practical
Course. Springer International Publishing
80
G., S., M.V., G., & Carrillo H. (2002). ViBlioSOM: Visualización de
Información Bibliométrica mediante el Mapeo Auto-Organizado.
Revista Española de Documentación Científica, 477 - 484.
81
ANEXOS