99260
99260
POR:
Y TITULO PROFESIONAL DE
Y CIENCIAS DE LA COMPUTACIÓN
GRADUACIÓN
DECANO DE LA FACULTAD:
SECRETARIO DE LA FACULTAD:
ASESOR:
ING. VÍCTOR HUGO AVILÉS RODAS
III
IV
REGLAMENTO DE TESIS
V
Índice
Introducción ..................................................................................................................................... 1
1.5.3 Soporte........................................................................................................................... 7
1.6.3 Tiempo........................................................................................................................... 9
1.7 Hipótesis............................................................................................................................. 9
VI
1.11 Herramientas de investigación ......................................................................................... 10
2.7.1 Matemáticas................................................................................................................. 26
VII
Capítulo III - Redes Neuronales Artificiales - ............................................................................... 29
3.7.3 Propagación................................................................................................................. 41
3.8 El perceptrón..................................................................................................................... 42
VIII
3.10.1 Reconocimiento de imágenes ...................................................................................... 47
[Link] TelemetriaService................................................................................................. 71
IX
[Link] TensorFlow™ ....................................................................................................... 74
6.1 Pruebas................................................................................................................................ 87
X
[Link] [Link].................................................................................................................. 98
XI
Índice de figuras
Figura 1. Máquina Analítica de Babbage ...................................................................................... 16
Figura 2. Test de Turing, representación gráfica .......................................................................... 18
Figura 3. Agente Inteligente, modelo simplificado ....................................................................... 19
Figura 4. Modelo tridimensional de una red neuronal .................................................................. 29
Figura 5. Dibujo de Ramon y Cajal de las neuronas ..................................................................... 32
Figura 6. Anatomía de una neurona .............................................................................................. 33
Figura 7. Conexión sináptica......................................................................................................... 36
Figura 8. Modelo de neurona de MacCulloch-Pitts ...................................................................... 39
Figura 9. Perceptrón simple .......................................................................................................... 43
Figura 10. Detección y comparación de rostros de Azure ............................................................ 48
Figura 11. Componentes del software de logística ....................................................................... 52
Figura 12. Estructura de los datos de telemetría. ......................................................................... 54
Figura 13. Componentes del software ........................................................................................... 55
Figura 14. Diagrama de flujo general ........................................................................................... 59
Figura 15. Diagrama de secuencia del proceso ............................................................................. 60
Figura 16. Representación gráfica de regresión lineal .................................................................. 65
Figura 17. Ejemplo de gráfico comparativo de consumo real y calculado por la RNA. .............. 66
Figura 18. Ejemplo de gráfica de pronóstico ................................................................................ 67
Figura 19. Vista del área de trabajo del IDE PhpStorm. ............................................................... 69
Figura 20. Diagrama de clases ...................................................................................................... 70
Figura 21. Logotipo de TensorFlow.............................................................................................. 74
Figura 22. Integración de TensorFlowJs a un proyecto web. ....................................................... 75
Figura 23. Representación pictórica de la RNA............................................................................ 77
Figura 24. Fórmula para el cálculo del consumo de un equipo .................................................... 78
Figura 25. Tensores de entrada y salida para la RNA ................................................................... 79
Figura 26. Gráfica de línea de Amcharts ...................................................................................... 82
Figura 27. Pantalla principal del software..................................................................................... 82
Figura 28. Menú de Telemetría ..................................................................................................... 83
Figura 29. Pantalla de selección de equipo ................................................................................... 84
XII
Figura 30. Interfaz de pronóstico .................................................................................................. 84
Figura 31. Detalle del entrenamiento y análisis predictivo. .......................................................... 85
Figura 32. Área de gráficos ........................................................................................................... 86
Figura 33. Análisis predictivo de un equipo de Oxigeno Líquido ................................................ 88
Figura 34. Pronóstico y error a 2 meses: Equipo Oxigeno Líquido .............................................. 89
Figura 35. Equipo de Oxigeno Liquido: Gráfico de pronóstico .................................................... 90
Figura 36. Análisis de un equipo de gas carbónico usando 9 meses ............................................. 91
Figura 37. Pronóstico y error a 9 meses: Equipo Gas carbónico líquido ...................................... 92
Figura 38. Equipo de Oxigeno Líquido: Segundo gráfico de pronóstico ..................................... 93
Figura 39. Análisis predictivo de un equipo de Nitrógeno líquido ............................................... 94
Figura 40. Pronóstico y error a 2 meses: Equipo Nitrógeno líquido ............................................. 95
Figura 41. Equipo de Nitrógeno líquido: Gráfico de pronóstico .................................................. 96
Figura 42. Modificaciones propuestas .......................................................................................... 97
Figura 43. Comando de instalación de TensorFlow™ para [Link] ............................................. 99
Figura 44. Uso de TensorFlow™ en [Link] .............................................................................. 100
XIII
Índice de tablas
Tabla 1. Comparativa entre el cerebro y una computadora del año 2003 ..................................... 30
Tabla 2. Información de equipo de telemetría ............................................................................... 61
Tabla 3. Detalle de lectura diaria de los equipos de telemetría ..................................................... 62
Tabla 4. Web services para la obtención de la información .......................................................... 62
Tabla 5. Parámetros del Web Service de detalle de mediciones .................................................... 63
Tabla 6. Variables de la fecha ....................................................................................................... 64
Tabla 7. Web service para la creación de una cotización. ............................................................. 68
Tabla 8. Configuraciones de la RNA ............................................................................................ 76
Tabla 9. Adecuación del valor de consumo para la RNA ............................................................. 78
Tabla 10. Adecuación de la variable de salida ............................................................................. 79
Tabla 11. Cálculo de error de la RNA ........................................................................................... 80
Tabla 12. Equipos de muestra ....................................................................................................... 87
XIV
Introducción
La inteligencia artificial (IA) podría no ser considerada como un tema de actualidad debido a
que sus orígenes se remontan a una época previa a la aparición de los sistemas informáticos. Sin
embargo, en los últimos años ha tomado gran relevancia gracias a las capacidades actuales de los
sistemas de cómputo que han permitido realizar grandes avances en el área. Este mismo auge
hace que el tema pueda ser tratado como un modelo novedoso, y que se obtengan nuevos
resultados de las investigaciones realizadas en la materia.
Los países en vías de desarrollo, como Guatemala, deben de ponerse al día con el uso de estas
tecnologías para aprender de los resultados obtenidos por otros, y adquirir experiencias propias y
de primera mano al implementar y experimentar con las herramientas que en la actualidad están a
nuestra disposición.
En el capítulo II se realiza un recorrido sobre los conceptos de la IA, mostrando como esta ha
sido una de las metas del ser humano desde que se tiene memoria, dada su tendencia creadora e
intentos de imitar lo que existe en la naturaleza que lo rodea, es por ello por lo que se pueden
rastrear estos intentos desde épocas muy antiguas y seguir sus pasos hasta nuestros días,
encontrando diversas ideas con diversos cambios en el tiempo; ideas que representaron hitos
siendo uno de los más notables la aparición de las computadoras lo que impulsó en gran manera
el desarrollo de la IA pero sin reconciliar los diversos enfoques que se tienen sobre lo que debería
ser considerado como IA y lo que no. Es digno de mencionar que, formada por diversas
disciplinas, la IA ha tenido relación con muchas áreas del conocimiento humano aprovechando
conceptos de ellas, y aportando nuevos conocimientos en cambio. Gracias a esto, la IA ha
encontrado aplicación en diversas áreas no solo científicas, ha llegado a formar parte de la vida
diaria de millones de personas alrededor del mundo.
El capítulo III explora las investigaciones más recientes sobre IA y como se han enfocado en
las RNA, mostrando como ocurrió su evolución a partir de los estudios de las redes neuronales
biológicas que llevaron al desarrollo de la neurona artificial, elemento fundamental en la
1
2
construcción de las RNA. Fue un psicólogo quien dio paso a las primeras investigaciones
relacionadas a las RNA, aunque también se debe agradecer al español Santiago Ramón y Cajal
por sus aportes en el entendimiento de la verdadera estructura del sistema nervioso, y por
extensión de las conexiones neuronales. La combinación de estos dos hechos contribuyó a que la
teoría neuronal se aplicara a la IA puesto que se descubrió la capacidad de las RNA de aprender,
y por lo tanto adaptarse para encontrar solución a una gran variedad de problemas.
En el capítulo IV se realiza una descripción de la empresa en la que se realizó la investigación
indicando el giro del negocio y las actividades económicas que realiza, a la vez que se muestra el
análisis de los componentes que conforman el sistema informático sobre el que se implementó la
solución y los requisitos que debieron ser cumplidos mediante las actividades que fueron
definidas.
El capítulo V se centra en la implementación de la solución, indicando las herramientas
utilizadas y las razones involucradas en su elección, se muestran los componentes creados, la
configuración necesaria y la interacción entre estos. Finalmente, en el capítulo VI se realizan las
pruebas correspondientes para la validación de los resultados y se concluye con una propuesta
técnica que indica los cambios necesarios y las ventajas obtenidas de implementarse.
Capítulo I - Anteproyecto de Investigación -
1.1 Antecedentes
Las Redes Neuronales Artificiales (RNA – acrónimo con las siglas en español) son un
concepto que nació junto con la era de la informática a mediados de los años 40. Una RNA es un
sistema o modelo matemático que busca emular las funciones de las redes neuronales biológicas,
y por extensión el funcionamiento del cerebro.
Al igual que en las redes neuronales biológicas, la unidad mínima de una RNA es la neurona
artificial, equivalente matemático de la neurona biológica, modelo que ya en 1943 fue propuesto
por Warren McCulloch y Walter Pitts en un artículo científico en el que trataron de explicar el
funcionamiento de las neuronas biológicas, mediante la matemática.
McCulloch y Pitts establecieron las bases para estudios posteriores que tomarían dos enfoques
distintos: el enfoque biológico que buscaba explicar funciones cerebrales como la memoria, el
conocimiento y la personalidad; y el enfoque que se centra en el uso del modelo en la inteligencia
artificial (IA - acrónimo con las siglas en español) mediante modelos informáticos o de software
computacional.
En 1957 el psicólogo Frank Rosenblatt propuso el perceptrón, que se convierte en una de las
más conocidas entre las primeras aplicaciones de las RNA, y cuya aplicación primigenia fue el
reconocimiento de imágenes. El perceptrón nació del modelo biológico del ojo humano, al tratar
de imitar la capacidad de procesamiento de las imágenes, por lo que también es conocido como
fotoperceptrón, nombre no usual. Actualmente el perceptrón es usado en otros esquemas para
realizar funciones más allá de la original como en el aprendizaje de máquina, toma de decisiones
y reconocimiento de patrones. Prueba de la versatilidad del perceptrón es el software NETalk que
por medio de redes neuronales es capaz de convertir el texto en inglés en su representación
fonética.
Casos recientes de éxito de la aplicación de las RNA incluyen a Google, con su servicio
Google Street, donde las fotografías de las calles fueron procesadas usando IA para poder
reconocer los números de calle, y otras indicaciones ubicadas en letreros y señales, con lo que se
obtuvo una precisión de hasta 96% de éxito en esta tarea.
3
4
hábitos de compra, con lo que han optimizado la forma en que se ofrecen a los usuarios y
potenciales clientes, sus productos o servicios logrando incrementar sus ventas a niveles
superiores en comparados con los obtenidos si se realizara un ofrecimiento aleatorio o
tradicional.
El caso por tratar está centrado en el uso de las RNA en el contexto empresarial, y para un
caso de uso específico. Nada evitará que los datos, y resultados obtenidos puedan ser aplicados en
otras áreas empresariales o científicas en donde se cuente con una fuente de datos históricos, y
que puedan ser aprovechados para realizar análisis predictivos.
Aunque las bases de conocimiento de las Redes Neuronales Artificiales fueron establecidas en
los años cuarenta; es en la primera década del siglo XXI cuando ha tomado auge su estudio; y,
por lo tanto, pueden ser consideradas como un tema actual del cual se pueden obtener resultados
interesantes, y brindar un aporte a la sociedad guatemalteca.
1.2 Justificación
Esta investigación pretende proporcionar una prueba más de las capacidades de las RNA en el
reconocimiento de patrones, el análisis de datos, y la extracción de sus características con el fin
de poder dar una predicción del resultado de casos particulares relacionados con el origen de
estos. Dado que, en Guatemala no existen suficientes casos conocidos de aplicación de esta
tecnología en el área empresarial, se considera que los resultados podrán demostrar la viabilidad
de su uso, y la evaluación de la eficacia en su implementación.
Un análisis predictivo eficaz mediante el uso de técnicas de IA, y orientado a los negocios,
permitirá dar una ventaja competitiva en la medida que las decisiones tomadas, y las estrategias
generadas serán más acertadas; y se minimizará la incertidumbre, que es la razón principal en la
dificultad de elección.
Grandes empresas como Google, Facebook, Twitter y otras de similar o menor magnitud
dentro del área de tecnologías de la información, y que generan cantidades enormes de datos, han
implementado soluciones de IA, y han obtenido resultados interesantes que han dado la pauta
para que se incremente el interés en las técnicas de aprendizaje de máquina (machine learning
ML), reconocimiento de imágenes, reconocimiento de patrones y análisis predictivo.
5
El éxito de las empresas depende de muchos factores, y uno de ellos es la correcta toma de
decisiones estratégicas en las operaciones de la organización. Los directores o gerentes de las
diversas áreas podrían optar por tomar las decisiones al azar, pero esto deja un exagerado margen
para cometer errores y fracasar en los proyectos. Lo usual es apelar a la experiencia de las
personas, lo cual incrementa las posibilidades de éxito. Estas decisiones vendrán siempre
inducidas con base en la observación de los comportamientos de los sistemas involucrados, y los
datos que se han generado anteriormente.
Actualmente, cuentan con registros detallados de ventas, pero estos solo tienen uso de manera
de historial de negocios y, datos de importancia monetaria; en lugar de aprovecharse como un
método para poder prever un patrón de consumo de los clientes, y anticiparse a ofrecer el
6
1.4 Objetivos
1.5 Viabilidad
1.5.1 Técnica
Toda la parte que se necesita sea ejecutada en los servidores de aplicativo tampoco se verá
afectada, debido a que los mismos cuentan con los recursos de CPU suficientes para el
funcionamiento. De aparecer procesos que requieran un esfuerzo computacional mayor, se
realizarán de manera automática y en horarios no laborales.
1.5.2 Operativa
La operación de la Red Neuronal exige que exista personal que alimente con información al
sistema, personal que configure la Red Neuronal y que conozca la forma de obtener los
resultados. La alimentación de datos al sistema, y la operación para la obtención de datos queda
totalmente cubierta por el personal actual que maneja los sistemas de ventas, y el ERP de la
empresa. Pues cuentan con la experiencia de años de operación de estos sistemas, además de que
el funcionamiento de la Red Neuronal será transparente para ellos.
Para la configuración de la Red Neuronal, la responsabilidad queda en manos del personal del
departamento de informática que cuenta con recurso humano, con las capacidades necesarias para
cumplir con el requerimiento.
1.5.3 Soporte
La RNA será programada mediante una librería de código abierto proporcionada por Google
con soporte por parte de los ingenieros de la empresa como parte de la investigación de IA que es
8
realizada por Google quien además se beneficia al contar con el apoyo de miles de
desarrolladores alrededor del mundo quienes aportan constantemente mejoras.
El código fuente de la librería está disponible por lo que puede ser descargado y ser mejorado
por cuenta propia de ser necesario o mantenido en caso de que el proyecto original sea
abandonado por Google dejando siempre la abierta la posibilidad de que el proyecto sea tomado
por otros siempre bajo el modelo de librería de código abierto.
1.5.4 Administrativa
Algunos de los datos utilizados pueden ser considerados sensibles, aún con la aprobación de la
Ley de Protección de Datos Personales (Iniciativa 4090) no existiría ninguna repercusión legal
pues no se viola ninguna de las regulaciones establecidas, en la que a la fecha es una propuesta de
ley, ante la posibilidad de la aprobación de la ley, el cumplimiento de las obligaciones indicadas
esta, no representaría ningún problema de operación o funcionamiento de la Red Neuronal.
1.6 Alcances
1.6.1 Geográfico
La empresa cuenta con sucursales en otros países y la oferta de productos tiene algunas
diferencias en cada uno. Los datos utilizados se limitarán únicamente a los generados en
operaciones de ventas en Guatemala y los productos ofrecidos por la empresa en nuestro país.
1.6.2 Tecnológico
En la actualidad la empresa cuenta con diversos sistemas de software que apoyan en sus
operaciones comerciales, pero aún no existe una herramienta de seguimiento o análisis
predictivo, y en la búsqueda de la innovación apunta al uso de la IA como método para poder
predecir el consumo de sus productos por parte de los clientes.
realizada en Java Script para facilitar la integración con el software de logística de la empresa,
de esta manera se podrá ejecutar en cualquier navegador Web que interprete el lenguaje utilizado.
1.6.3 Tiempo
Al finalizar este año se contará con el análisis de la eficacia de las RNA en la predicción del
consumo de gases por parte de los clientes, al usar los datos históricos de sus adquisiciones, al
comparar y cotejar el porcentaje de aciertos en las predicciones generadas por la RNA con el fin
de reducir la incertidumbre en la toma de decisiones.
1.7 Hipótesis
Una IA basada en una RNA del tipo perceptrón podrá predecir el consumo de gases de los
clientes de la empresa con un nivel de precisión superior al 70%, al utilizar para el entrenamiento
de la Red, los datos el consumo de gases correspondientes al año 2017. El nivel de precisión
obtenido aumentará en función de una mayor cantidad de datos utilizados en el entrenamiento de
la RNA.
1.8 Variables
1.9 Indicadores
Empresas de tecnología como Google y Baidu (motor de búsqueda Web chino) han
invertido en temas de investigación y aprovechamiento de la IA entre $20 mil millones y
$30 mil millones en el 2016, mientras que inversionistas de riesgo invirtieron entre $4 mil
millones a $5 mil millones en el mismo año. En ambos casos son cantidades que triplican
las cifras del año 2013. (MacKinsey Global Institute, 2017).
1.10 Supuestos
Hasta un 30% de las decisiones financieras podrían llegar a tomarse mediante IA, ya que
puede realizar predicciones de hasta 5 días de diversos indicadores de un negocio como el
valor de sus acciones.
Los expertos, en su mayoría coinciden en que la IA será capaz no solo de realizar las
mismas acciones de la inteligencia humana, si no que pronto la superará, al tomar como
referencia que hoy en día estamos rodeados de herramientas de IA como los asistentes
virtuales: Siri de Apple y Cortana de Microsoft.
En los próximos años es posible que casi un 50% de los análisis realizados por las empresas
y que requieran de algún tipo de predicción o anticipación, estén basados en los métodos
que emplean en alguna forma técnicas de IA.
Se tratará el tema en una empresa que no usa ningún tipo de herramienta de IA al indagar
sobre su uso en la resolución del problema planteado; el cual genera nuevas ideas que podrán ser
replicadas en sectores similares o adaptadas a otras organizaciones en el ámbito empresarial de
Guatemala. Se utilizará el lenguaje de programación Java Script para modelar la estructura de
una RNA con entradas correspondientes a los detalles de la información de ventas de la empresa.
Los experimentos por realizar serán por lo tanto realizados sobre tecnologías Web, y se ejecutarán
en un navegador Web. Se utilizarán diferentes configuraciones en el modelado de los datos, al
entrenar a la RNA de manera supervisada mediante valores conocidos para compararse con los
entregados por el sistema, tal como lo define esta modalidad de aprendizaje de máquina.
12
Capítulo II - Inteligencia Artificial -
Existen varias definiciones respecto de que es la IA, casi siempre dada en función del enfoque
que se le está dando o en el ámbito en que se desarrolla, Takeyas la define como: “(…) una rama
de las ciencias computacionales encargada de estudiar modelos de cómputo, capaces de realizar
actividades propias de los seres humanos con base en dos de sus características primordiales: el
razonamiento y la conducta.” (Takeyas, 2007, pág. 1)
Otra definición igual de válida: “Disciplina científica que se ocupa de crear programas
informáticos que ejecutan operaciones comparables a las que realiza la mente humana, como el
aprendizaje o el razonamiento lógico.” (Real Academia Española, 2014).
13
14
2.2 Historia
El taller de Dartmouth no produjo ningún avance notable, pero puso en contacto a las figuras
importantes de este campo. Durante los siguientes 20 años, el campo estuvo dominado por
estos personajes, así como por sus estudiantes y colegas del MIT, CMU, Stanford e IBM.
Quizá lo último que surgió del taller fue el consenso en adoptar el nuevo nombre propuesto
por McCarthy para este campo: Inteligencia Artificial (Russell & Norvig, 2008, pág. 20).
Cada uno de esos investigadores realizaba por su propia cuenta diversos estudios relacionados
con la inteligencia humana, su funcionamiento y las formas de replicarlo, sin llegar a un consenso
del nombre con el que debían asignar a la rama de la ciencia que estaban tratando. Para algunos,
sus trabajos debían englobarse dentro de la matemática, para otros eran estudios sobre Psicología,
otros mantenían cierta firmeza en creer que sus trabajos simplemente eran otra rama más de la
Biología, por lo que McCarthy llegó a generar cierto orden, aclarando la incertidumbre imperante
entre sus colegas, y lo hizo de la manera más democrática: englobando todo en una nueva
ciencia, la IA.
antiguo que el término mismo. En épocas muy remotas la humanidad concibió historias
de máquinas o artefactos a los cuales por medio de magia se les otorgaban
capacidades humanas, historias que se pueden encontrar en textos griegos, judíos y de
otras culturas alrededor del mundo.
Aunque las reglas definidas por Aristóteles son simples, permitían definir claramente
la validez de ciertos enunciados; por lo que en su momento se consideraron exactos y
fueron ampliamente aceptados por muchos eruditos de la época.
Un área que fue beneficiada por los estudios de la IA mediante la generación de importantes
avances, es la automatización del cálculo matemático que dejó de ser una destreza exclusiva de
16
los seres humanos, y vio la llegada de las máquinas de calcular mecánicas, dispositivos como la
pascalina inventada en 1642 por el filósofo y matemático francés Blaise Pascal (1623-1662),
máquina que permitía realizar las operaciones aritméticas básicas a una velocidad superior a la
que un humano las realizaría, sobre todo con cantidades de muchas cifras.
El trabajo realizado por Pascal creó un nuevo interés en la construcción de máquinas con
capacidades de cálculo, siendo notable el trabajo del matemático Charles Babbage quien realizó
dos grandes aportes; primero con el diseño de una máquina diferencial capaz de calcular
funciones polinómicas, y su segundo aporte, la evolución de su máquina diferencial hasta el
diseño de la más famosa de sus obras: La Máquina Analítica, la cual para muchos es la
precursora de las computadoras modernas en una época en la que la electricidad no había tomado
la importancia que tiene en los tiempos modernos.
La máquina de Turing rompió el paradigma en que las máquinas podrían construirse para
resolver algún problema en específico, pero era una imposibilidad la construcción de una que
pudiera resolver cualquier problema. Turing en su modelo ideó una máquina universal que
hipotéticamente sería capaz de resolver cualquier problema “computable”. Con una memoria
infinita y la capacidad de ser reprogramada, la máquina de Turing se convirtió por antonomasia
en el modelo de computadora actual.
En el campo de la IA, Turing cuestionó el hecho de que si las máquinas podrían llegar a
pensar, y fue un paso más allá proponiendo una manera de verificar si realmente pensaban, en su
artículo “Computing Machinery and Intelligence” describe lo que él llamó “El juego de la
imitación”. Turing realizó un ejercicio mental en el que 3 personas juegan; un hombre (a quien
identificamos como A), una mujer (a la cual le asignamos una B) y un interrogador (representado
como C) del cual no importa el género. El interrogador deberá analizar las respuestas de B y C a
sus preguntas, y determinar quién es el hombre y quien es la mujer, para eliminar el factor de la
voz Turing sugiere que las respuestas se reciban por medios escritos.
Ahora nos hacemos la pregunta, “¿Qué pasará cuando una máquina tome la parte de A en este
juego? ¿El interrogador decidirá erróneamente con tanta frecuencia cuando el juego es jugado,
así como cuando el juego es entre un hombre y una mujer?” Esa pregunta reemplaza nuestra
pregunta original “¿Pueden las máquinas pensar?” (Turing, 1950, pág. 1)
ser un defensor de la idea sobre la posibilidad de emular el pensamiento humano por medio de la
computación.
Turing también nos proporciona una visión nueva para la construcción de máquinas
inteligentes al proponer un modelo en el que en lugar de construir un sistema que emule el
cerebro humano adulto, se imite el desarrollo humano mediante el aprendizaje.
En lugar de tratar de producir un programa para simular la mente adulta, ¿Por qué no más bien
tratar de producir uno que simule la de un niño? Si este se sometiera a un apropiado curso de
educación uno obtendría el cerebro adulto. (Turing, 1950, pág. 19).
Turing ofreció una visión interesante en la cual no solo la máquina imitaría al ser humano,
también proporcionó una forma de generar lo que él consideraba como una verdadera I: la
imitación de la naturaleza, y cómo mediante el aprendizaje se llega a obtener un razonamiento y
una inteligencia capaz de resolver los problemas a los que un ser humano se enfrenta.
Entre la década de los 80‟s y 90‟s se dio un gran interés en el desarrollo de sistemas expertos
capaces de solucionar problemas mediante una emulación del razonamiento humano. En la última
década del siglo XX y a inicios del siglo XXI, los estudios de IA se han centrado principalmente
en las capacidades de aprendizaje de los sistemas computacionales, y su aplicación en la
resolución de problemas inherentes a la lógica humana.
La palabra agente proviene del latín “agere” que significa hacer, y por lo tanto podemos
considerar a un agente como un sistema capaz de realizar acciones. Para el caso de estudio de la
IA se considera tanto a un sistema computacional, como a un elemento físico capaz de reaccionar
al entorno que lo rodea principalmente de manera autónoma; y sin la intervención de otro agente,
a no ser que dicha interacción sea de manera cooperativa.
Una vez que un Agente cumple con esas características es posible agruparlos en diversas
categorías según sus características:
Agentes reactivos: Es la forma más sencilla de agente, solo son capaces de reaccionar a
los estímulos actuales, y no pueden tomar en cuenta aquellas percepciones pasadas debido
a que no poseen algún medio de aprendizaje o memoria, por lo que no puede generar
ningún tipo de experiencia. El ejemplo más claro es el tipo de agente mostrado en la
figura 2.
Agentes reactivos que se basan en un modelo: Son una mejora en el agente reactivo
básico; este agente puede almacenar información previa de su entorno y mantener un
estado interno que le servirá para mantener visibilidad de alguna sección de su entorno
que no puede ver. Poseen al menos una memoria primitiva que permite que sus decisiones
sean modificadas en lo ya percibido al crear cierto tipo de experiencia elemental.
Agentes que se basan en objetivos: Son los agentes a los que se les proporcionan
detalles sobre la meta que deben alcanzar, y tienen una meta específica con la cual deben
cumplir; y toda la información que recibe de su entorno se enfoca en llegar a culminar con
lo que se le marcó como meta.
Agentes que se basan en utilidad: Es el tipo de agente que puede tener varias soluciones
finales para la resolución del problema, pero es capaz de elegir la que optimice sus
recursos. También pueden tener algún tipo de memoria con lo cual podría realizar la
misma tarea varias veces al verificar cual es la forma óptima.
Agentes con capacidad de aprender: Este tipo de agente puede empezar su
funcionamiento solamente con la instrucción sobre cuál es su meta, y llegar por sus
propios medios a encontrar la solución que satisfaga la necesidad para la que se creó. Es
capaz de modificar su propio comportamiento, según las experiencias que tiene. Además
21
Un agente inteligente puede ser una mezcla de varios tipos, y será decisión del diseñador
elegir el patrón o combinación que asegure obtener los resultados esperados y en el tiempo
óptimo.
2.4 Enfoques de la IA
A lo largo de la historia se han utilizado diversos conceptos sobre lo que es la IA, y se han
seguido diversos enfoques para definirla. Mientras que algunos autores prefieren asociar sus
conceptos refiriéndose a procesos mentales y al razonamiento; otros han puesto su atención en las
definiciones que se apegan a la conducta. Existen dos formas de tratar con ambos enfoques, por
un lado, se toma como referencia el comportamiento de la IA y como se asemeja a la forma de
actuar de los humanos; y por el otro se considera aquellos casos que usan el concepto ideal de
inteligencia o racionalidad.
La complejidad de este enfoque es determinar cómo piensan los humanos, un tema que aún no
tiene una explicación completa más allá de extensos estudios que ofrecen diversos modelos que
no aportan una visión completa del proceso del pensamiento. Si existiera una teoría completa
sobre esos mecanismos, se podría modelar por medio de un programa de computadora, y evaluar
los resultados acordes a las reacciones humanas.
Fundamentalmente este enfoque se basa en la lógica, como la definida por Aristóteles quien
por medio de sus silogismos trató de estructurar el pensamiento humano a través de la
22
argumentación para la obtención de conclusiones correctas, al partir de las premisas dadas. Si las
premisas eran las correctas, el resultado también lo es. Incluso se crearon notaciones para definir
elementos del mundo y relacionarlos entre sí, tal como se hace en la Matemática con los valores
numéricos.
El test de Turing se basa en la capacidad que podría tener una máquina para interactuar con un
ser humano, y no hacer notar el hecho de no serlo; el test no discute si la máquina es realmente
inteligente y valora más su capacidad para comportarse como un ser humano. Por ello existe
cierto debate sobre si esta forma de ver la IA es correcta, y si una máquina que logre pasar el Test
de Turing realmente será poseedora de una IA verdadera. El Test de Turing es el primer modelo
pensado, pero existen otros intentos de evaluación que implican la verificación de otros
comportamientos, como la capacidad de expresar sentimientos o la postura tomada por una IA
con respecto a temas psicológicos de los humanos.
2.5 Clasificación de la IA
La IA puede ser clasificada de diversas formas; dejando a un lado los diversos enfoques,
también existe una clasificación de acuerdo con las capacidades que tienen o que en teoría
podrían llegar a tener las diversas tecnologías.
“Inteligencia Artificial es, más que nunca, un término de moda. Pero detrás de dos simples
palabras hay mucha profundidad que no puede ser catalogada bajo una simple perspectiva.” (Sabán,
23
2016). Es interesante ver como aún en la actualidad existen algunas discrepancias entre cual es la
verdadera definición de una IA.
2.5.1 IA específica
Es aquí donde se han dado la mayoría de los avances y resultados positivos en la IA, tal como
su nombre lo indica. Este tipo de IA se enfoca principalmente en la resolución de un solo
problema específico, en ocasiones también es llamada IA estrecha o débil, y sus usos son
dedicados a la resolución de una sola tarea en la que suelen ser muy buenas, pero si se les pide
que hagan otra cosa se vuelven completamente inútiles. Hoy una computadora es capaz de
ganarle al mejor jugador de ajedrez humano, pero no le ganaría en algo más simple como un
juego de damas chinas.
Aquellos que defienden este tipo de IA piensan que nunca podrá construirse un programa o
agente que tenga realmente una conciencia, pues lo único que se logrará serán emulaciones de los
procesos cognitivos. Una computadora con este tipo de IA podrá simular un razonamiento, pero
nunca tendrían un razonamiento cognitivo por sí mismo. La IA específica es la que mayor
atractivo ha generado en el mundo y así como el interés de muchas empresas en invertir en el
tema.
2.5.2 IA general
Es la IA que hemos visto en la mayoría de las películas de ciencia ficción, una IA que posee
mente propia y conciencia. Una computadora con este tipo de IA podría tener capacidades
humanas, como imaginación y un razonamiento más allá de la simulación.
También es llamada IA fuerte, y podría tener conciencia de sí misma, aunque se ve como algo
no alcanzable en el corto plazo, pues aún no se ha logrado descifrar el mecanismo de la
inteligencia humana. Tareas tan simples como reconocer un animal son realizadas con facilidad
por niños con tan solo observarlos una vez, mientras que para una computadora actual con visión
24
artificial le tomará mucho entrenamiento y tiempo, observará miles de imágenes del animal antes
de poder tener un nivel de reconocimiento aceptable, y aun inferior a un niño humano.
2.6 Aplicaciones de la IA
En la mayoría de los casos la IA pasa de manera desapercibida para nosotros. Nick Bostrom,
director del Future of Humanity Institute de la Universidad de Oxford en el Reino Unido, dijo:
“Una gran cantidad de IA de vanguardia se ha filtrado en aplicaciones generales, a menudo sin
ser llamada IA, porque una vez que algo se vuelve lo suficientemente útil y lo suficientemente
común ya no se etiqueta como AI”. (CNN, 2006). Este mismo hecho podría ser uno de los
motivos por el que es difícil definir lo que es una IA; al ser tan cambiantes las expectativas y lo
que se acepta y se da por hecho como parte de las capacidades de las aplicaciones que manejamos
día a día.
2.6.2 Finanzas
2.6.3 Industria
La visión artificial es parte de la IA, y su capacidad de reconocer objetos, permite que los
robots sean totalmente autónomos en el proceso de manufactura de los productos. Además de
darle a las máquinas la capacidad de detectar piezas defectuosas a una velocidad muy superior a
la que tendría un ser humano, por lo que se obtienen lotes de piezas con una incidencia de fallas
muy inferior. La IA también permite predecir mantenimientos necesarios antes de que se
presenten problemas, y por lo tanto los costos sean menores pues se evitan fallas mayores.
26
La IA está inmersa en una gran cantidad de campos y aplicaciones, debido a que su estudio es
la emulación de las capacidades humanas, es de suponer que por lo tanto pueda ser aplicada a
casi todas las actividades del hombre, “En este sentido, es un campo genuinamente universal”
(Russell & Norvig, 2008, pág. 1). Esto sigue siendo una certeza, debido a que aún para áreas
donde aparentemente no existían aplicaciones para la IA, eventualmente se logró encontrar
puntos donde se podría implementar. En su desarrollo la IA ha tenido contacto con diversas
ciencias, al apoyarse en las investigaciones de estas, y al aportar en cambio nuevos conceptos de
una manera simbiótica lo que permite que los avances sean acelerados para todas las partes.
2.7.1 Matemáticas
La matemática fue testigo de los primeros pasos en los intentos de explicar el razonamiento
humano, tal como se mencionó al principio en la historia de la IA. Los filósofos griegos hicieron
una aproximación bastante acertada, sobre los procesos del pensamiento, pero no formalizaron de
manera matemática sus trabajos.
La formalización que se considera llegó con George Boole (1815-1864) quien creó la lógica
Booleana que fue fundamental para el desarrollo de las computadoras, como se conocen hoy y,
que es el medio actual del funcionamiento de la IA.
2.7.2 Neurociencia
Como muestra de la relación entre ambas ciencias, Warren McCulloch era neurólogo, y sin
embargo en compañía de Walter Harry Pitts dieron a la IA el primer modelo descriptivo de las
Redes Neuronales, y como estas afectaban los comportamientos humanos. Además, postularon
una serie de conceptos que permitieron posteriormente la creación de las RNA.
27
2.7.3 Informática
Hoy es difícil separar la IA de la informática, estas tienen una relación muy cercana. En la
actualidad, la informática provee la plataforma principal sobre la cual se ejecutan las
investigaciones; las herramientas que se utilizan son los sistemas operativos, y los lenguajes de
programación sobre los cuales se modelan los sistemas de IA actuales.
La mayor limitación actual de la IA reside en el poder de procesamiento de las computadoras,
pero en las últimas décadas esto se ha ido reduciendo, debido al cumplimiento de la ley de Moore
que pronosticaba que las capacidades de las computadoras serian duplicadas cada 18 meses. Así
mismo, se espera que en un futuro sea la misma IA quien sobrepase las capacidades humanas en
las áreas de diseño y programación, por lo que será capaz de auto mejora, un hito que los
científicos han llamado: La singularidad.
2.8 Actualidad
En la actualidad, es fácil encontrar lo que se conoce como motores de IA, herramientas que
permiten aprovechar capacidades como el reconocimiento de objetos, y análisis predictivo de
datos, Amazon Web Services (AWS) y Azure de Windows son quienes lideran la prestación de
este tipo de servicio, al ofrecer sus herramientas en un plan de pago por uso, acercando las
tecnologías a cualquier persona.
Capítulo III - Redes Neuronales Artificiales -
Las Redes Neuronales Artificiales (RNA) o simplemente Redes Neuronales, debido a que son
un modelo matemático inspirado en la biología, que trata de imitar el funcionamiento biológico
de las neuronas, y la forma en que se organizan para formar la estructura de un cerebro. Las RNA
son parte importante para la IA, pues por medio de estas se trata de crear modelos artificiales que
sean capaces de resolver problemas que no son fácilmente solucionables, mediante otras técnicas
de la IA o algoritmos convencionales. La figura 4 nos muestra un modelo en 3 dimensiones de
una red neuronal, solo para fines ilustrativos pues no es una representación fiel de estas.
Las RNA no son el único modelo que se ha utilizado para tratar de obtener un agente
inteligente, existen otros basados en modelos probabilísticos, otros en grafos como las redes
bayesianas, pero “las redes neuronales son candidatas óptimas para resolver una serie de
exigencias que un sistema de tratamiento de información capaz de imitar al humano” (Argente,
2002, pág. 32). Esto principalmente porque las RNA permiten diseñar un sistema que tiene
flexibilidad, y una estructura que permite obtener resultados muy rápidos, sin usar algoritmos
muy complejos y sobre todo tener la capacidad de adaptarse.
29
30
El cerebro que las RNA tratan de emular es el cerebro humano; el cual es el más complejo
cerebro en la naturaleza, se estima que el cerebro humano está formado por alrededor de 100 mil
millones de neuronas que interconectadas forman una red con alrededor de 500 billones de
conexiones.
La complejidad del cerebro humano frente a la complejidad de una computadora (del año 2003), se ve la
superioridad del cerebro, aunque siguiendo la ley de Moore se espera que para el año 2020, los procesadores
igualen en complejidad a las conexiones cerebrales humanas. (Russell & Norvig, 2008, pág. 14)
En ocasiones a las computadoras se les conoce como cerebros electrónicos y, sin embargo, en
muchas áreas el cerebro humano con la complejidad que tiene vence la velocidad con la que
realiza los cálculos una computadora; permite que un humano sea capaz de realizar tareas como
el reconocimiento de imágenes y patrones; tareas que, son en exceso muy complejas aún para las
computadoras más avanzadas, debido a que el cerebro humano opera de manera distinta a como
lo hace un microprocesador electrónico, forma que en la actualidad aún no se conoce a la
perfección.
Carentes de una similitud exacta con las redes neuronales biológicas, las RNA artificiales han
generado resultados sorprendentes, comportamientos muy parecidos a los sistemas nerviosos de
los seres vivos entre otras características que han fascinado a los investigadores e incluso han
servido de apoyo para que se pueda entender mejor cómo trabaja nuestro cerebro.
31
Aunque la neurona siga siendo una célula, posee características únicas que la diferencian de
las otras del cuerpo. Una de estas características es su incapacidad para dividirse, “Sin embargo,
aquellas células capaces de reproducirse son las células madres neuronales, localizadas en
distintas partes del cerebro. De esta forma, el cerebro si es capaz de generar nuevas neuronas en
la etapa adulta del individuo” (Gensel, 2016).
La incapacidad de reproducirse por división celular fue el motivo por el cual, durante algún
tiempo se consideró que los humanos nacían con un numero de neuronas que se iban perdiendo
mientras crecíamos, provocando un alto deterioro en las capacidades cognitivas. Actualmente se
niega esta teoría, pues se ha comprobado que, aunque no puedan dividirse, el cerebro si es capaz
de producir más neuronas a partir de otro tipo especial de células madre en un proceso conocido
como neurogénesis, un proceso que apenas empezó a observarse en los últimos años del siglo
XX, aunque no revierte el deterioro neuronal, frena considerablemente su aparición.
La doctrina de la neurona fue postulada por Santiago Ramón y Cajal (1852-1934), un médico
español; él fue el primero en postular la individualidad de las neuronas, situándolas como
32
entidades discretas que formaban una especie de red que se intercomunica, mediante conexiones
especializadas, sentando las bases de la neurociencia moderna. La figura 5 muestra parte del
trabajo de Cajal, en un dibujo que representa las conexiones sensi-motoras de la medula espinal,
tal como él las vio.
Para Golgi, el sistema nervioso poseía una estructura reticular, es decir, no había en él células
individuales como en otros tejidos, sino que las neuronas estaban totalmente conectadas a
través de sus prolongaciones. Cajal, por su parte, defendía la teoría neuronal: el sabio
español veía claro que las neuronas. (Investigación y ciencia, 2015)
Ramón y Cajal empleaba en sus investigaciones un método en el cual, mediante sales de plata
coloreaba secciones o cortes histológicos para ser observados mediante un microscopio, la tintura
de plata permitía ver con más detalle las células nerviosas. Mediante esta técnica realizó cada uno
de los dibujos que acompañaban su investigación. Curiosamente, el método de la tintura fue
creado por Golgi, por lo que Ramón y Cajal empleaba las mismas técnicas que el italiano; y sin
embargo cada uno vio e interpretó de manera diferente lo que colocaba bajo el microscopio
creándose la división entre los criterios, y la creación de dos teorías totalmente distintas.
Al final, tanto el trabajo del español como del italiano fue reconocido por la comunidad
científica pues, “El premio nobel de Fisiología o Medicina de 1906 fue otorgado conjuntamente a
33
Camillo Golgi y Santiago Ramón y Cajal en reconocimiento a su trabajo sobre la estructura del
sistema nervioso.” (The Nobel Prize in Physiology or Medicine 1906)
La neurona es tan compleja como cualquiera de las demás células del cuerpo, además la
forma de cada una de estas tendrá variaciones relacionadas con la ubicación de esta, considerando
que no solo son parte del cerebro (que es parte del sistema nervioso central), encontrándose
distribuidas por casi todo el cuerpo. En la figura 6 se observa una representación completa de la
anatomía de la neurona con sus partes principales, de las cuales se describen las siguientes:
3.3.1 Pericarión
El Pericarión es la parte central de la neurona, aquí es el lugar donde se encuentra el núcleo
celular, y por lo tanto es aquí donde se producen la mayoría de las proteínas que sirven de
sustento a la célula al generar los niveles de energía suficiente para que se mantenga
funcionando, el Pericarión también recibe el nombre de soma, y sirve de origen para las demás
34
prolongaciones neuronales como las dendritas y el axón, además forma lo que conocemos como
“materia gris”.
“El tamaño medio de un soma neuronal es de unas 20 µm, aunque puede variar bastante
dependiendo del tipo de neurona”. (Atlas de Historia vegetal y animal, 2018). El pericarión
tendrá un tamaño variable, debido a que no todas las neuronas tienen el mismo tamaño. Así
mismo es parte importante para explicar la forma en que se propaga la información, entre las
demás células nerviosas.
3.3.2 Dendritas
Las dendritas tienen como función el servir de “entrada” para la neurona, es aquí donde se
reciben los impulsos nerviosos provenientes desde otras neuronas, básicamente se trata de
ramificaciones que nacen del cuerpo celular. Estas ramificaciones pueden ser encontradas en
todo el cuerpo, no solamente en el cerebro, pues se encuentran distribuidas también por la medula
espinal, los músculos, los órganos internos y los ganglios.
3.3.3 Axón
Así como la neurona tiene ramificaciones de entrada, para cumplir con la transmisión de las
señales nerviosas también debe de contar con un medio de salida. Este medio es el axón, “El axón
es, por tanto, una especie de conducto por el que pasan impulsos nerviosos a toda velocidad”
(Triglia, s.f.) Esto permite la comunicación entre las dendritas, pasando por medio el cuerpo
celular llegando a las dendritas de otras neuronas completando el ciclo del impulso nervioso.
variable que depende del tipo de neurona, el lugar de su ubicación y la función que cumple dentro
del sistema nervioso.
Para las neuronas del cerebro el tamaño del axón suele ser muy pequeño, del orden de
milímetro, mientras que para otras neuronas ubicadas fuera el sistema nervioso central el axón
pueden llegar a medir hasta 20 centímetros. Esto es con el fin de acortar el número de
intermediarios entre el origen de una señal nerviosa y el destino.
3.4 Sinapsis
Las sinapsis no forman parte específica de la anatomía de las neuronas, pero es importante
hacer mención de este debido al papel que juegan para el funcionamiento de las redes neuronales.
La sinapsis es una región comprendida entre el extremo de un axón, y las dendritas de las demás
neuronas relacionadas en la estructura de red.
El concepto de sinapsis, descrito por primera vez por Ramón y Cajal y bautizado por
Sherrington, hace referencia a la existencia de una conexión entre dos neuronas, caracterizada
por la presencia de un pequeño espacio que sirve de vía para la transmisión de la información.
(Mimenza, s.f.).
La sinapsis es lo que rompe el modelo reticular que era defendido por Golgi, y es lo que hizo
que Cajal definiera la doctrina de la neurona. Esa separación haría parecer que el camino de los
impulsos nerviosos se interrumpiera, pero solamente si obviáramos la posibilidad de la
transmisión electroquímica. Para el mecanismo de la transmisión sináptica debemos considerar 3
condiciones:
Por lo general, el flujo del impulso nervioso va en una única dirección, y es por ello por lo
que deben existir estas tres características para cumplir con la transmisión de las señales
nerviosas.
La figura 7 muestra
una representación del
intercambio químico
utilizado en comunicación
de las neuronas. Si la
cantidad de neuronas en el
cerebro es inmensa, lo es
más la cantidad de
conexiones neuronales y
Figura 7. Conexión sináptica sinapsis.
(Collado, s.f.)
Todo esto al
considerar el hecho de que
una neurona puede tener conexión hasta con 10,000 de sus semejantes por lo que se estima que
un cerebro humano adulto poseerá hasta 1,000 billones sinapsis. “Se cree que la capacidad de
memoria del cerebro humano varía de entre 1 a 1,000 terabytes. Y es que hay más sinapsis en
nuestro encéfalo que estrellas en la Vía Láctea.” (Collado, s.f.). Por ello es fácilmente
entendible el hecho de que no se haya podido realizar un mapeo del cerebro humano para replicar
su funcionamiento puesto que muchos consideran que de ser esto posible, la IA seria fácilmente
alcanzable. Solamente se han hecho avances de este tipo en cerebros “más simples” como el de
algunos insectos, de los cuales se tiene un mapeo parcial, solo existe un animal del que se ostenta
el mérito de conocer toda su estructura conectiva cerebral “el gusano. C. elegans (Caenorhabditis
elegans) es un gusano microscópico con el sistema nervioso más simple que conocemos. Tiene
302 neuronas. Las conocemos todas, así como las 6.418 sinapsis que posee” (Orbe, 2012).
37
Sinapsis eléctricas: Este tipo de conexión sináptica usa transmisión eléctrica mediante
iones, las membranas celulares de la neurona se tocan para realizar el intercambio de
químicos, no son muy abundantes y las podremos encontrar principalmente en el ojo y el
corazón, una de sus características es rapidez.
Sinapsis químicas: Son más abundantes de las anteriores, su comunicación se da
mediante la liberación de químicos o neurotransmisores que son producidos por la
neurona presináptica que tienen interacción con las neuronas postsinápticas.
Según los efectos sobre las neuronas postsinápticas se puede diferenciarlas de la siguiente
manera:
Sinapsis excitadoras: Este tipo de sinapsis son capaces de estimular las conexiones con
las demás neuronas, haciendo que la conexión de los impulsos sea mejor, son capaces de
disparar los impulsos mediante iones que liberan contribuyendo a polarizar la conexión.
Sinapsis inhibidoras: Tienen un funcionamiento contrario a las anteriores, pues los
químicos que liberan limitan o restringen la transmisión de las señales nerviosas.
hormona. “Un ejemplo sería la inervación de las células de la médula suprarrenal, que
provocaría la liberación de adrenalina en el torrente sanguíneo.” (Collado, s.f.).
Tanto el modelo biológico como el artificial cuentan con elementos básicos de construcción,
el procesamiento de la información será similar para ambos casos, considerándose la
construcción por capas:
La capacidad de las neuronas de regular el flujo de los impulsos nerviosos es una de las
características sobresalientes de la célula, esta función especial la realiza regulando la cantidad de
neurotransmisores que emite, la emisión de estos químicos se da principalmente por medio del
axón. Los impulsos nerviosos son de naturaleza eléctrica, y su propagación entre las neuronas
depende de las diferencias de potencial eléctrico y la permeabilidad de la membrana celular.
Cada neurona tendrá un nivel de potencial que deberá sobrepasar antes de que los estímulos
que recibe sean transmitidos hacia su salida, el potencial eléctrico necesario para la transmisión
del impulso será regulado entonces con base en la concentración de los iones recibidos en sus
entradas.
39
La neurona artificial fue definida por primera vez por Warren S. MacCulloch (1898-1969), y
Walter H. Pitts (1923-1969), la definición posee una estructura de funcionamiento muy similar a
su contraparte biológica. Warren MacCulloch de profesión neurólogo y cibernético, y Walter
Pitts, un lógico; ambos estadounidenses, publicaron en 1943 un artículo con el nombre: “un
cálculo lógico de las ideas inmanentes en la actividad nerviosa” en el cual describen el
funcionamiento de una neurona artificial, mediante un modelo matemático que incluye las
mismas partes que la neurona biológica dado que tiene:
Elementos de entrada que recaban información tal como lo harían las dendritas.
Un elemento central que procesa la información equivalente al Soma o Pericarion.
Elementos de salida similares a los axones y por donde saldrá la información procesada.
Una de las definiciones importantes de MacCulloch-Pitts fue que “Debido al carácter „todo o
nada‟ de la actividad nerviosa, los eventos neuronales y las relaciones entre ellos se pueden tratar
mediante la lógica proposicional” (McCulloch & Pitts, 1943), esta facilidad de representación
40
permitió que se diera una explicación sencilla, pero a la vez muy consistente, y que puede ser
fácilmente representada mediante simbología matemática y lógica proposicional.
El modelo descrito por los autores es conocido como Neurona Artificial de McCulloch-
Pitts, y el artículo publicado, es considerado como el primero en la investigación de las RNA. La
síntesis realizada permitió además que, se lograra replicar lo descrito por McCulloch y Pitts por
medio de circuitos electrónicos, aunque a una escala pequeña, lo que abrió la posibilidad de
construir computadoras en un esquema muy diferente a como las conocemos en la actualidad, y
que en aquel entonces aún iniciaban. Las neuronas artificiales apuntaban a construir máquinas
con capacidades de procesamiento de información de una manera más similar de como lo hace el
cerebro humano.
3.7.2 Activación
Dentro de una RNA las neuronas artificiales podrán encontrarse únicamente en 2 estados, en
reposo y excitado; siendo estos los que se conocen como estados de activación. Una neurona
artificial contará con un umbral por lo que se agrega una función que se conoce como función de
activación, “la función de activación g se diseña con dos objetivos. Primero, queremos que la
unidad esté «activa» (cercana a +1) cuando se proporcionen las entradas «correctas», e «inactiva»
(cercana a 0) cuando se den las entradas «erróneas»” (Russell & Norvig, 2008, pág. 839). La
función de activación es la que regula el momento exacto en que la neurona se “dispara”, es decir
cuando emitirá la salida correspondiente, según la información que se encuentra procesando.
Dado que MacCulloch y Pitts establecieron de manera simplificada los estados de activación,
mediante el “todo o nada”. Se puede ver la similitud que existe entre este patrón y el
funcionamiento de las puertas lógicas; y por lo tanto la representación y ejecución de las
funciones del algebra booleana AND, OR y NOT con solo establecer los pesos neuronales
adecuados y crear la función de activación exacta.
3.7.3 Propagación
“Entre las unidades o neuronas que forman una red neural artificial existe un conjunto de
conexiones que unen unas a otras. Cada unidad transmite señales a aquellas que están conectadas
con su salida” (Hilera & Martinez Hernando, 1995, pág. 45).
Cuando una RNA se encuentra en funcionamiento, la información de entrada hará cambiar los
estados internos de cada neurona que forma la red; de tal manera que en algún momento se
tendrán neuronas en cualquiera de los dos estados de activación, las neuronas que se activen
transmitirán sus salidas a las neuronas que estén conectadas, desencadenando lo que se conoce
como propagación. El patrón de activación es el que define el comportamiento de la RNA, y este
obedecerá la estructura de la red, los pesos sinápticos y las funciones de activación de cada
neurona.
42
3.8 El perceptrón
El perceptrón tiene el mérito de ser el primer modelo de RNA, fue definido y desarrollado por
Frank Rosenblatt (1928- 1971), un psicólogo norteamericano cuyo trabajo más notable fue en el
campo de la IA. En 1958, en su artículo: “The Perceptron: a probabilistic model for information
storage and organizationin the brain”, al utilizar los conceptos de neurona artificial de
MacCulloch-Pitts, Rosenblatt desarrolló el concepto del perceptrón, el cual motivó un gran
interés entre aquellos que se dedicaban al estudio de la IA, debido a las capacidades que posee en
el aprendizaje para el reconocimiento de patrones.
El perceptrón descrito por Rosenblatt se conoce como perceptrón simple, y al ser el primer
modelo de RNA también es el más sencillo de todos, y cuenta con algunas limitaciones como el
hecho de que principalmente sirve para distinguir patrones en el que solo existan dos
posibilidades. Las limitaciones se resolvieron con los modelos mejorados que surgieron
posteriormente con base en el perceptrón simple.
Aunque simple, el perceptrón de Rosenblatt fue capaz de mostrar que era posible el
aprendizaje de las RNA; y por lo tanto su adaptabilidad para la solución de problemas y puede ser
considerada como una unidad computacional universal puesto que “tiene la expresividad
equivalente a la lógica binaria ya que podemos crear un perceptrón que tenga el mismo
comportamiento que una función booleana NAND” (Neural Network Framework, s.f.) Y al
combinar compuertas NAND se pueden obtener todas las demás. Esto quiere decir que, con un
poco de esfuerzo, se podría construir una computadora completamente funcional con una RNA.
44
Si se aborda el tema del aprendizaje desde el punto de vista biológico, este está relacionado
principalmente con las características de las sinapsis, y los valores que las neuronas pueden fijar
en ellos. Por lo tanto, para las RNA su capacidad de aprendizaje está también en los valores de
los pesos sinápticos asignados a las conexiones entre las neuronas, por ello la capacidad de
aprendizaje de una RNA dependerá de su capacidad para modificar sus pesos neuronales.
Para que una RNA aprenda, se debe de ejecutar un entrenamiento, para el cual es necesario
tener los patrones que necesitamos que la red aprenda. Se debe aplicar una regla que se conoce
como regla de aprendizaje, esta regla tiene origen en algoritmos que usan fórmulas matemáticas
que buscan ajustar los pesos neuronales de cada neurona de la red basados en las entradas que se
realizan tomando valores del patrón que la red deberá aprender.
El o los patrones que se usan para el enteramiento de la red se conocen como patrones de
entrenamiento o de muestra, y el proceso más usual es hacer que la red ejecute estos patrones
de manera iterativa ajustando en cada iteración los valores de los pesos sinápticos, hasta que se
45
alcancen los valores óptimos que igualen lo que el patrón dicta. De esta manera al ingresar
valores nuevos, las respuestas de la RNA serán óptimas y relacionadas al patrón aprendido. Este
algoritmo de aprendizaje no es el único, pero es uno de los más utilizados, teniendo como
ejemplo las redes neuronales del tipo perceptrón.
Los tipos de aprendizaje para una RNA pueden ser clasificados en función de la manera cómo
se ejecuta el entrenamiento de esta. Un punto en común será la existencia de un conjunto de datos
que representan el modelo que se desea enseñar a la red. Principalmente se distinguen dos tipos
de aprendizaje
Por refuerzo: Para este modelo, se tienen los resultados de los valores de entrada, sin
embargo, el ajuste de los pesos sinápticos no se realiza en función de estos. En este
esquema el papel del supervisor se limita simplemente a decir si la salida es correcta o no,
por esto se trata del modelo de aprendizaje supervisado más lento.
A diferencia del modelo de aprendizaje supervisado, en este modelo no se tienen los valores
de salida del modelo; y es la RNA la que debe de inferir o clasificar los patrones con base en las
características comunes que podrían presentar sin darle ningún tipo de etiqueta a la información.
Este modelo de aprendizaje también conocido como aprendizaje auto supervisado, pues
carece de un exente externo que actúe para ajustar sus pesos neuronales; y por lo tanto tampoco
tiene alguna referencia que le indique si las respuestas generadas son correctas o no. La labor de
encontrar las características, relaciones, y categorizar los datos son realizadas por la misma red,
cuentan con algunas de las siguientes características:
Las redes neuronales que usen este tipo de aprendizaje encontrarán grados de familiarización
entre la información proporcionada. En caso de que sea muy difícil la tarea de agrupación,
realizarán una cauterización (clustering) lo que le permitirá agrupar por categorías, y su salida
será una indicación sobre a qué categoría pertenecen los datos de entrada. Este tipo de
clasificaciones permiten realizar tareas de clasificación de una manera más rápida, y con
volúmenes tan grandes que serían muy difíciles para un humano o requerirían un enorme
consumo de tiempo.
47
Las RNA han destacado en diversidad de campos al realizar distintas tareas relacionadas con
el procesamiento de datos. El objetivo de estas está heredado del objetivo de la IA, pues están
inmersas en esta, siendo la búsqueda de la emulación de las capacidades cognitivas del ser
humano. Tal como se ha mencionado, algunos autores esperaban que sus estudios de las redes
neuronales explicaran el funcionamiento de la inteligencia y que una vez comprendido se pueda
extender estos modelos a las RNA, al obtener una replicación de las funciones cerebrales.
En los últimos años del siglo XX y a inicios del XXI se han convertido en una tecnología
emergente con pocas disciplinas donde no se pueda aplicar, y en las que aparentemente no sea
posible, siempre se encuentra un área donde aplicarlas. Tanto en actividades diarias, como en las
investigaciones científicas más avanzadas las RNA se han convertido en la insignia de la IA.
Se pueden explicar distintos usos de las RNA; sin embargo, muchos de estos se engloban
dentro de grandes áreas de las cuales, gracias a su versatilidad de funcionamiento, su uso se
extiende de manera más amplia. Entre las más importantes se encuentran:
El perceptrón es el principal exponente de esta aplicación de las RNA, dado su origen, pues
nace de las observaciones del sistema nervioso de la retina animal y humana. Una de sus primeras
aplicaciones fue el reconocimiento de imágenes, al llegar a desarrollarse incluso una versión de
perceptrón que se conoce como fotoperceptrón, debido a su uso en el procesamiento de señales
lumínicas. El fotoperceptrón también tuvo el mérito de ser uno de los primeros modelos de RNA
que se llevaron a un diseño totalmente electrónico, mediante el uso de tubos de vacío. Los
estudios de análisis y reconocimiento de imágenes por parte de las RNA han logrado que en la
actualidad sus usos se extiendan a:
Reconocimiento de rostros: Primero las RNA fueron capaces de identificar los rostros
dentro de las imágenes, pero han logrado ir más lejos pues en la actualidad pueden
distinguir a quien pertenecen (con el entrenamiento adecuado de por medio), en ambientes
complicados de poca iluminación, distintos ángulos de la imagen, accesorios como lentes
o la barba. Estos avances han permitido crear accesos biométricos donde por medio del
rostro se verifica la identidad; también han permitido refinar la búsqueda de personas ya
que fácilmente pueden ser encontrados en grabaciones de seguridad. Este tipo de
funciones pueden ser utilizada mediante servicios como los Microsoft Azure, que es un
servicio actual que permite el uso de RNA para la detección y comparación de rostros,
permitiendo su uso en ambientes donde será necesaria la verificación de identidad, esto se
observa en la figura 10.
Clasificación de objetos: Una RNA puede ser entrenada para reconocer casi cualquier
tipo de objetos desde animales hasta elementos inanimados, como partes de maquinaria y
piezas de fabricación. El reconocimiento de imágenes se aplica en la visión por
computadora que se ha agregado a dispositivos como robots de ensamblaje, lo que les
permite que sean capaces de ubicar los componentes necesarios para su labor, además de
agregarles la capacidad de posicionarlos por sí mismo de manera tan precisa, como solo
una computadora lo puede hacer.
El ejemplo más típico sobre análisis predictivo es el pronóstico del clima, aunque en la
actualidad también se aplican técnicas predictivas sobre modelos financieros, de ventas, consumo
eléctrico, entre otros. “El análisis predictivo ha recibido mucha atención en los últimos años
debido a los avances en la tecnología que lo respalda, especialmente en las áreas de big data y
aprendizaje automático.” (MathWorks, 2018).
En la actualidad se aprovecha el uso de las RNA para este tipo análisis, mediante técnicas de
aprendizaje automático, al permitir responder preguntas del tipo: ¿Qué tan probable es que bajo
las condiciones actuales un componente falle? O ¿En cuántos días el cliente volverá por más
suministro?
El éxito del análisis predictivo depende en gran medida de la calidad de los datos analizados;
así como del volumen de estos, y el proceso será muy similar sin importar la finalidad del
análisis. Los datos para los análisis predictivos deben representar un historial de comportamiento
del fenómeno bajo estudio; y un modelo bien construido permitirá obtener resultados a partir de
valores actuales y previos a que ocurra el fenómeno que se estudia.
50
Capítulo IV - Análisis y diseño -
4.1 Análisis
4.1.1 Descripción de la empresa
El software de Logística en cuestión pertenece a una empresa guatemalteca que cuenta con
una división comercial dedicada a la venta y distribución de gases para uso en el sector médico e
industrial, siendo además líder a nivel centroamericano en este rubro. Entre los gases que la
empresa distribuye se encuentran:
Gases médicos: Oxigeno médico, Helio, Óxido nitroso, Aire comprimido, Dióxido de
carbono, Nitrógeno líquido, Nitrógeno gaseoso, Hexafloruro de azufre.
Gases para uso industrial: Argón, Nitrógeno líquido, Nitrógeno gaseoso, Oxígeno
gaseoso, Hielo seco, Dióxido de carbono, Aire, Etileno, Óxido nitroso, Hidrógeno,
Metano, Hexafloruro de azufre, Helio, Acetileno.
La labor comercial de la empresa cuenta además con otras actividades económicas en las que
se incluyen una división comercial que distribuye equipos, herramientas y maquinarias de uso
industrial de marcas internacionales y de alta calidad en las siguientes categorías:
Equipo médico
Equipo de soldadura
Seguridad industrial
51
52
En la figura 11 se observa una vista pictórica de cada uno de los componentes que forman el
software de logística de la empresa como se encuentra en la actualidad, se distinguen los
siguientes componentes:
53
Equipo remoto: El equipo remoto está conformado por los recipientes contenedores del
producto, los cuales pueden ser diferentes dependiendo del tipo de producto almacenado,
cilindros para productos en estado gaseoso, o termos; para los productos en presentación
líquida y que se encuentran a muy bajas temperaturas. Los contenedores cuentan con un
equipo de medición que monitorea la cantidad de producto disponible de manera
constante, este valor es enviado al listener mediante GPRS (Servicio General de Paquetes
vía Radio –Por sus siglas en inglés), la estructura forma una red de telemetría siendo esta
la razón del nombre de Equipos remotos.
Listener: Es un servicio escrito en [Link] (versión 8.12.0) y que se ejecuta en otro
servidor. La función del listener es recibir la información de los equipos de telemetría
mediante una conexión web y una TCP/IP, también se encarga de interpretar la
información recibida para poder ser insertada en la base de datos, la información debe de
ser adecuada debido a que existen diversos tipos de equipo que envían la información en
formatos diferentes. El nombre en inglés de este componente de software es debido a su
función de “escucha” constante de los datos de entrada.
Servidor de Base de Datos (BD): Aquí se almacena toda la información sobre los
equipos y la información que es enviada por el sistema de telemetría en cada dispositivo
de almacenamiento de producto, su estructura es del tipo relacional y el sistema gestor de
la base de datos (DBMS –Por sus siglas en inglés) es PostgreSQL 10.5.
Capa de servicios: La conexión entre el Servidor de BD y el servidor web no se realiza
de manera directa, entre ellos existe un intermediario el cual es la capa de servicios. La
capa de servicios se encarga de proveer de web services que a su vez se conectan a otros
servicios y sistemas, esto debido a que su función principal es proporcionar una capa de
abstracción entre diversas tecnologías. Para el caso del software de logística, la capa de
servicios cumple funciones como el proporcionar información sobre rutas de distribución,
órdenes de venta y para el caso de este desarrollo permite la extracción de la información
de los equipos remotos y de las lecturas de nivel de producto en cada equipo de
telemetría.
Servidor Web: Aquí es donde se ejecuta el software de logística pues este es del tipo
web, todas las peticiones que realiza las ejecuta por medio de la capa de servicios. Las
tecnologías utilizadas por el software son: html5, AngularJs y Php7 integradas mediante
54
el framework de desarrollo web Laravel 5.7 que se ejecuta mediante un servidor Http
Apache ejecutándose sobre el sistema operativo Ubuntu Server 18.04.1 LTS.
Usuarios: Los usuarios finales son el personal de logística de la empresa, al ser el
software del tipo web, tienen la posibilidad de usarlo desde distintas plataformas como
computadoras y dispositivos móviles como tabletas, Smartphone y cualquier otro capaz
de ejecutar un navegador web. Los usuarios pueden utilizar el sistema para la creación de
rutas de distribución de los productos asignando las cotizaciones y órdenes de venta a
camiones y vehículos adecuados para el transporte, además poseen la opción de consultar
la información de los equipos de telemetría, información que contiene: estado general del
equipo, alertas emitidas, nivel actual de producto e información histórica de consumo.
La información vital para el análisis predictivo se encuentra en las tablas que se muestran en
el diagrama de Entidad – Relación de la figura 12, figura que muestra una toma parcial del
diagrama de la base de datos del software. El detalle de las tablas se describe a continuación:
El software está construido mediante el uso de diversas tecnologías que tienen la cualidad de
poder ser ejecutadas sobre un ambiente web y, por ende, sobre un navegador o browser, los
componentes interactúan mediante la integración de un framework de desarrollo web, en la figura
13 podemos observar una representación gráfica de la forma en que está integrada cada
tecnología.
4.2 Diseño
La solución implica el agregado de una nueva sección al software de Logística y no un
desarrollo totalmente nuevo, por lo tanto, el módulo debe apegarse al uso de las tecnologías que
en la actualidad usa el software y los componentes que se agreguen deben de respetar la
arquitectura inicial y no causar ningún conflicto con alguno de los componentes funcionales. Una
de las ventajas es que se aprovecharan componentes ya programados tal como elementos de estilo
que deben se seguir siendo los mismos ya disponibles.
4.2.1 Requerimientos
Para alcanzar el objetivo se definen una serie de requerimientos funcionales que deben
cumplirse:
Selección del cliente: Se debe poder seleccionar el cliente al cual se le realizará el
análisis predictivo, los clientes pueden ser representados mediante el código del equipo
remoto. Los clientes o equipos disponibles serán aquellos que se encuentran instalados
en Guatemala, no se considerarán los que se encuentran en los demás países de Centro
América en los que la empresa tiene operaciones de venta de gases.
Rango de tiempo configurable: El rango de fechas que se utilizarán para la obtención
de los datos usados en el entrenamiento de la Red Neuronal se deberá poder seleccionar
entre los valores de tiempo adecuados con el fin de encontrar aquellos rangos que
permitan que la RNA calcule los mejores resultados en cuanto al nivel de certeza alto y
bajo porcentaje de error.
Visualización mediante gráfica: Los resultados de la predicción deben ser visualizados
mediante una gráfica que indique la correlación entre los datos reales y los datos
calculados mediante la RNA, así como los valores de pronóstico sobre los datos que
sean actuales para la estimación del tiempo correcto para reabastecimiento de producto.
Indicación del porcentaje de certeza y/o error: Se deberá mostrar el porcentaje de
certeza de los valores calculados por la RNA o el error con el que los datos cuentan con
respecto a los valores reales de entrenamiento.
58
Una vez que el usuario seleccione un equipo, en una nueva pantalla deberá mostrar un análisis
inicial basado en la información del consumo del último mes, también se mostrará una gráfica
comparativa entre la información real y la información que la RNA calcule sobre los mismos
datos con el fin de verificar el porcentaje de error y el porcentaje de confianza de los resultados
obtenidos.
Si el pronóstico es aceptable, entonces se mostrará un botón que permita crear una cotización
con una fecha futura según sea calculada por la RNA y con un porcentaje de producto que
permita reabastecer completamente al cliente, es en ese momento donde juega un papel muy
importante la información sobre el equipo pues entre esta se encuentra los datos necesarios para
la generación de la cotización.
El pronóstico inicial podría no ser el adecuado debido a que el error calculado sea muy alto y
por lo tanto no se tenga una certeza alta mostrando un resultado poco confiable, por ello la
decisión de crear la cotización quedará en manos del usuario quien deberá apoyarse en la
información generada por la RNA y los valores del porcentaje de certeza y/o error mostrado. En
caso de no aceptar el análisis inicial, el usuario podrá cambiar el rango de tiempo sobre el que se
tomarán los datos de consumo hasta alcanzar un nivel de certeza aceptable.
59
Usuario
Software de logística
Capa de servicios
Base de datos
61
Algunos de estos actores ya fueron mencionados en la figura 1 como parte de los componentes
del software. De las distintas actividades en el proceso podemos separar una serie de ellas que
son parte central del análisis predictivo y deben ser descritas para tener en cuenta durante la
implementación del módulo.
Información Detalle
Código Ubicación ER-000649T
Cliente Hospital Privado de Especialidades Médicas,
S.A. -
Código de Transmisión 10195
Capacidad 6038 pies Cúbicos
Nivel 52%
Capacidad 6038 pies Cúbicos
Ubicación Quetzaltenango
Batería 9
Nivel de Reorden 29.81%
Nivel Crítico 10%
Especialidad Oxigeno Liquido
Fuente: (Elaboración propia)
El detalle de los webs services disponibles se encuentra en la tabla 4, la primera dirección web
permite la obtención del detalle del equipo de telemetría, como único parámetro recibe el
identificador del equipo el cual se envía como parte de la URL.
63
La segunda dirección corresponde al Web Service para la obtención del detalle de mediciones
del equipo, este Web Service no recibe ningún parámetro como parte de la URL, sin embargo, se
le deben de enviar una serie de parámetros en el cuerpo de la petición web, en la tabla 5 se
detallan los datos necesarios, su tipo y la descripción de cada uno.
Los parámetros: dateFrom y dateTo permiten configurar el rango de tiempo de los datos que
capturaremos y usaremos en el entrenamiento de la RNA para nuestro análisis predictivo. Si fuera
necesario limitar la cantidad de datos que serán recibidos, esto se realizará mediante el campo
maxNumber.
La información general sobre el equipo no forma parte de los datos de entrada para la RNA, el
entrenamiento de la red se realizará utilizando los datos de consumo del equipo por lo que es a
estos a los cuales se les aplica un proceso para hacerlos entendibles a la RNA la cual para su
funcionamiento es recomendable que le sean ingresado valor continuos comprendidos entre 1 y 0.
La información del consumo contiene únicamente:
Una vista general podría indicarnos que solamente se contará con una variable de entrada para
el entrenamiento puesto que, el nivel de producto será parte del resultado entregado por la Red
Neuronal; sin embargo, se aprovechará la información contenida en la fecha de forma tal que se
64
cuenten con 3 variables de entrada, realizando una adecuación tomando como valores
independientes de la fecha, el mes y el día de la semana en que ocurrió la lectura.
En la tabla 6 se brinda una visión sobre la forma en que se dará formato a la fecha para extraer
las tres variables con las que se dispondrán para el entrenamiento de la RNA:
Dato Variables
Fecha: 26
26 de septiembre Mes: 9
Día: 3
Fecha Es un valor numérico representativo del número del día de la lectura, estará
comprendido entre el 1 o 30 (o 31 según el mes).
Mes Es un valor numérico que representa el número de mes del año, su valor estará
comprendido entre 1 y 12. (enero 1, febrero 2, marzo 3, etc.)
Día Es una representación numérica del día se la semana, su valor será un numero entre 1
y 7. (lunes 1, martes 2, miércoles 3, etc.)
Una vez que se realice la adecuación de los datos debe ejecutarse el proceso de análisis de la
información por medio de la RNA.
Generación del pronóstico: El consumo del producto causa que los niveles disponibles
caigan poco a poco, pasando desde el estado lleno hasta llegar al punto de reorden. Es de
suponer que esto causa un descenso paulatino del nivel que tiene cierta constancia y en
algunos momentos alguna irregularidad, si graficamos este comportamiento mediante una
gráfica de puntos, se observará una sucesión de puntos a diferentes niveles, pero con una
tendencia a caer. Para este tipo de comportamiento se puede calcular una línea de
tendencia que representa una línea que, trazada entre el inicio y el final de las lecturas,
pasará muy cerca de la mayoría de las marcas. Si se calcula una línea de tendencia
entonces se podrá hacer una aproximación o pronóstico de los valores faltantes en la serie
numérica. Una RNA tiene entre sus posibilidades la realización del cálculo de esta línea
mediante un análisis conocido como regresión lineal que toma una forma tal como se ve
en la figura 16. La razón de elección de este modelo es debido a que su uso nos permite
encontrar el valor de una variable cuando otra u otras toman un valor específico de un
sistema que muestre un comportamiento decreciente o creciente, por este motivo el
análisis de los datos usando este modelo se acopla debido a que el consumo representa
una linealidad entre el uso del producto y el tiempo.
Los datos numéricos representados de forma tabular pueden causar algún tipo de confusión o
dificultad para ser interpretados. Por este motivo, la solución proporcionará una representación de
estos por medio de graficas lo que permitirá contar con una forma más visual de comparar los
resultados. El tipo de gráfico a utilizar será por medio de puntos sobre los cuales se trazará una
línea, definiendo dos tipos de gráfica:
Gráfica de análisis comparativo: En este gráfico se mostrará la información
correspondiente a dos series de datos, la primera con la información real del consumo en
el rango de tiempo analizado y la segunda correspondiente con línea de consumo
calculada sobre los mismos datos por medio de la red neuronal. Tal como se aprecia en la
figura 17, si la RNA mediante el entrenamiento logró adaptarse a un modelo cuyo
comportamiento se aproxime al real, entonces la información calculada por la RNA
deberá apegarse al modelo de regresión lineal descrito en la figura 6, por lo que la línea
que se muestre en la segunda serie de datos deberá mantenerse lo más cerca posible a la
línea de consumo marcada por los puntos de la información real con lo que podemos tener
una idea más clara sobre la certeza de los datos.
Figura 17. Ejemplo de gráfico comparativo de consumo real y calculado por la RNA.
(Elaboración propia)
67
Como parte final de un análisis y pronóstico confiable, se habilita la posibilidad de crear una
cotización para brindar la atención oportuna al cliente. La funcionalidad para crear una cotización
ya es parte del software por lo que solamente se integrará al módulo de análisis predictivo, con la
diferencia de que datos como la fecha y la cantidad de producto a despachar serán fijados en base
68
a lo pronosticado por la RNA. Al igual que con la obtención de datos para el análisis, la
generación de la cotización se realizará mediante un web service especifico que se detalla en la
tabla 7.
El parámetro que se envía por medio de la URL es el identificador del equipo remoto,
mientras que en el cuerpo de la petición es necesario enviar:
Soporte para diversos frameworks de programación web entre los que se incluye Laravel.
Soporta diversas versiones de PHP.
69
70
PhpStorm es una herramienta con una gran cantidad de herramientas integradas tal como se
ve en la imagen 19, su uso requiere del pago de una licencia, sin embargo, esto se ve solventado
gracias a que se posee una licencia de uso del tipo estudiantil.
[Link] TelemetriaController
Es una clase escrita en PHP que vista desde el lado de Lavarel cumple el papel de
Controlador. La función de esta clase es la conexión con la capa de servicios y los web services
de la tabla n.
Las variables de la clase son:
Los procesos de esta clase se ejecutan del lado del servidor web y según el modelo de
programación definido por Laravel, se pueden ejecutar sus métodos mediante una ruta basada en
una URL interna a la estructura del software. Internamente cada método crea un enlace que
apunta a otra URL externa alojada en la capa de servicios.
La razón para utilizar el formato Json para las respuestas es por la versatilidad que ofrece para
el intercambio de información entre distintas tecnologías y es de muy fácil manejo en JavaScript.
[Link] TelemetriaService
Esta clase está escrita en JavaScript, bajo el modelo del framework Angular, su función es la
creación de un servicio reutilizable desde cualquier otra clase donde se inyecte según el modelo
de programación Angular.
Las variables de la clase son:
A diferencia de la clase anterior, los procesos de esta clase se ejecutan del lado del cliente
web, es decir en el navegador. El uso de la clase TelemetriaController y TelemetriaService
agrega 2 capas de aislamiento desde el cliente web y la capa de servicios.
[Link] equipmentForecastCtrl
Clase también escrita en JavaScript, ejecuta las operaciones finales para el análisis y
presentación de los resultados. Bajo la arquitectura de Angular es una clase del tipo Controlador,
teniendo entre sus funciones enlazar los datos con la interfaz gráfica que se construye con
HTML5.
months: Número que indica el número inicial de meses que abarca el rango de datos para
el análisis.
deviceCapacity: Número que representa la capacidad de almacenamiento del equipo.
averageError: Número que indica el promedio error en los cálculos de la RNA con
respecto a los datos reales, es un valor porcentual.
acumulatedError: Número que marca el porcentaje acumulado de error en los cálculos
de la RNA.
reorderDateForecast: Fecha de reorden pronosticada.
showForecastDetails: Variable booleana que indica si se debe mostrar o no los
resultados del pronóstico.
highError: Variable booleana que indica la existencia de un error de pronóstico muy
alto.
today: Fecha del día.
dateRange: Objeto que contiene la fecha de inicio y fecha final que marca el rango de
datos para el análisis predictivo.
[Link] TensorFlow™
TensorFlow™ posee una API principal (Interfaz de programación de aplicaciones -Por sus
siglas en inglés) en Python, pero ofrece versiones para otros lenguajes de programación como
C++, Haskell, Java, Go y Rust. La integración en el módulo de análisis predictivo es gracias a
una de estas versiones específicamente para JavaScript, versión conocida como TensorFlowJs y
que es fácilmente integrada a cualquier proyecto web mediante una etiqueta en el código HTML
gracias a una etiqueta de script que permite la descarga de la librería gracias a una red de
distribución de contenidos (CDN -por sus siglas en inglés-).
El uso de un CDN permite que no sea necesario instalar ni realizar ningún procedimiento
especial para empezar a usar la librería, la cual estará disponible directamente en cualquier
archivo JavaScript del software de logística que es donde finalmente se usará.
El diseño de una RNA con TensorFlow™ no presenta ninguna dificultad, luego de realizado
el modelo generado gracias a la librería, este debe ser adecuado de acuerdo con el tipo de
información que analizará, el tipo de análisis que se requiera y el tipo de resultado que deba
generar.
Las configuraciones para la RNA pueden observarse en la tabla 1, las neuronas de entrada
están definidas considerando lo descrito en la tabla 8 donde se describe la razón por la cual se
cuenta con 3 datos de entrada.
La capa de salida es una sola neurona donde convergen los cálculos de las capas ocultas, se
usará solo una neurona debido a que la predicción es únicamente un valor que representará el
consumo del equipo en momento determinado en el futuro. La representación de la RNA
empleada se observa en la figura 23.
El entrenamiento de la RNA hace que el modelo inicial definido por las configuraciones al
modelo cambie hasta que su ajuste al modelo real, esta habilidad de la RNA es lo que conocemos
como aprendizaje. La calidad de la información es vital para el entrenamiento y por ello es
78
importante que ésta sea correcta en su estructura y adecuada a la forma de trabajo de la RNA, en
la tabla N observamos el esquema en que se presenta la información sobre los consumos de los
equipos mientras que en la tabla 9 notamos la forma en que se obtienen las variables de entrada.
En la adecuación de la información debemos considerar el tipo de dato que representan:
Información de consumo: Indica los distintos niveles de producto y como desciende día
con día, expresado en un nivel porcentual. Esta información no indica de manera directa
cuanto se consumió, nos indica un estado o cantidad disponible en un momento dado y
por ello se debe trasladar el dato a uno que nos indique cuanto del producto fue
consumido. El proceso de descenso del nivel del producto nos dice que, para cada dato, el
dato anterior debería ser superior, por lo que para conocer cuánto producto se consumió
basta con restar del valor inmediato anterior, el valor que se está analizando.
65 25 Sep 2017 –
( )
Debido a que los cálculos se realizan sobre un valor porcentual, la respuesta será un consumo
también porcentual, por lo tanto, se procedió a dividir el valor entre 100 para que el dato se
mantenga en un valor entre 0 y 1.
El valor inicial en el cálculo se descarta debido a que no existe un dato anterior con el cual
aplicar la fórmula y obtener el valor de consumo para ese punto en la información. El conjunto de
datos así obtenidos, son procesados por la clase equipmentForecastCtrl y representados en la
variable x_train_tensor.
x_train_tensor y_train_tensor
.26
. 9 .7
. 3
Figura 25. Tensores de entrada y salida para la RNA
(Elaboración propia)
80
Un elemento importante para el análisis del resultado y validación del pronóstico es el margen
de error de los cálculos. Este error indica la desviación que pueda ocurrir de los datos calculados
por la Red Neuronal tomando como referencia los datos reales, siendo esta variación un indicador
de que tan cercano o alejado está el modelo entrenado del sistema real.
La desviación en los resultados pude darse hacia el extremo inferior o superior del valor real y
la forma elegida para su representación es un valor porcentual el cual se calcula con el
procedimiento de la tabla 11 el cual da como resultado un porcentaje equivalente al margen de
error entre los datos evaluados.
81
[Link] Amcharts
Amcharts es la librería utilizada para la realización de las gráficas mostradas por el módulo,
en su sitio web se describe como “un conjunto de bibliotecas y herramientas de programación
para todas las necesidades de visualización de datos en la web” (Amcharts, 2018).
Para el uso de la librería puede optar por comprar la licencia correspondiente pero los
desarrolladores también permiten su uso en software no comercial y para evaluación de sus
funcionalidades. Amcharts posee diversas características por las cuales se eligió para mostrar de
manera gráfica la información, entre estas características están:
Es una herramienta exclusiva para su uso en entornos web debido a que está escrita en
JavaScript y la integración con el software se realiza de manera sencilla.
Configuración de los datos por medio de notación de objetos Json.
Gran variedad de tipos de gráficos entre los que se incluyen: de línea, área, columna,
barra, XY y dispersión. En la figura 26 se observa un ejemplo de una gráfica de línea
realizada con Amcharts.
Capacidad para combinar distintos tipos de gráfico.
Manejo de fácil de los ejes de tiempo y fecha.
Se pueden crear gráficas interactivas y en tiempo real.
Permite la exportar los datos en formatos de imagen como PNG y JPG además de PDF,
Excel y CSV.
Compatible para su visualización desde dispositivos móviles con pantalla táctil.
Se adapta a los cambios en el tamaño las ventanas del navegador desde el que se
visualice.
82
El menú principal permite invocar todas las funciones con las que cuenta la herramienta y tal
como se observa, entre sus funciones se encuentran no solamente las funciones de telemetría,
también se incluyen funciones para la administración y generación de rutas para la distribución
de los productos y un apartado para el seguimiento de cotizaciones.
6.1 Pruebas
Para verificar el funcionamiento del análisis predictivo se eligió una muestra de 3 equipos con
los productos: Oxigeno, Nitrógeno y Gas Carbónico en presentación líquida, en la tabla 1 se
muestra la información sobre los equipos que se utilizarán, indicando el identificador del equipo
y el producto que almacena.
Para realizar el entrenamiento de la RNA y el posterior análisis predictivo se utilizó
información de lecturas de los equipos seleccionados en un rango de 2 meses con el fin de
determinar la precisión alcanzada en dicho periodo. La parte visual se complementa con una
descripción de los gráficos obtenidos del análisis y el pronóstico correspondiente con la inclusión
del detalle de las últimas 10 lecturas con el cálculo del error acumulado y el error promedio para
determinar la precisión obtenida.
Para la gráfica de análisis, se representará en color rojo la información real de las lecturas de
los equipos de telemetría; mientras que, en la gráfica de pronóstico el color celeste representará
las últimas lecturas completando la gráfica con el color naranja para mostrar los valores
obtenidos por la RNA como del pronóstico.
87
88
La figura 33 muestra el resultado del análisis predictivo para un equipo que contiene Oxigeno
Líquido. Podemos observar que, al final de la gráfica los cálculos se separan con respecto a la
línea de consumo real, en la figura 34, se tiene la información tabulada de las ultimas 10 lecturas,
el valor calculado y el error o desviación que se tiene considerando el valor real.
89
La ponderación del error de la figura 34 nos muestra que el error acumulado llega al 94% del
cual extraemos el error promedio de estas últimas lecturas el cual, aun cuando la gráfica muestra
una desviación notable, este no supera el 9.4% y podemos establecer que la precisión es 90.6% lo
cual habilita la opción para la creación de una cotización con fecha 30 de octubre de 2018.
90
[Link] Pronóstico
La última lectura del equipo analizado ocurrió el 15 de octubre por lo que el pronóstico de la
figura 35 se anticipa 15 días al nivel de reorden del equipo dando un margen adecuado para poder
despachar el producto al cliente.
91
[Link] Pronóstico
[Link] Pronóstico
Tal como se propone, el análisis predictivo dejaría de ser parte del software de logística y
pasaría un servicio más del servidor en el que se ejecuta el listener, las modificaciones necesarias
para la implementación del modelo planteado son mínimas y todas se realizarían del lado del
servidor Node tal como se aprecia en la figura 10 que incluye los mismos elementos mostrados
en la figura 42 pero; con el agregado de una línea punteada sobre los componentes que ya no
serían necesarios o que pasan a un segundo plano.
[Link] [Link]
Asíncrono y orientado a eventos: esto quiere decir que sus funciones se ven disparadas
en basa a eventos y acciones recibidas, tal como la recepción de información de los
equipos de telemetría con la cualidad de que, es capaz de recibir múltiples peticiones sin
bloquear su funcionamiento gracias a su ejecución asíncrona que difiere de la ejecución
lineal que no permite se ejecute un proceso hasta que se complete el anterior, [Link]
puede ejecutar tareas de forma paralela y simultánea.
Alta velocidad de ejecución: Una cualidad es que, la ejecución de los programas en
[Link] no se realiza de la manera típica como se hace con JavaScript ya que su
compilación genera código de máquina nativo esto gracias a la implementación de
Chrome V8 que, aunque originalmente se ejecuta sobre el navegador, [Link] se encarga
de ejecutarlo desde el lado del servidor.
99
Esta serie de características hicieron que [Link] fuera elegido componente principal del
listener y permiten que pueda utilizarse para la automatización del proceso de análisis
predictivo.
TensorFlow™ ofrece distintas API‟s para la programación de aplicaciones, así como también
ofrece dos formas de ejecución del software que emplee sus librerías. Para [Link] también
ofrece esta posibilidad por medio de las siguientes versiones:
Librería para uso en equipo que solo cuenta con microprocesador como unidad central de
proceso.
Versión para uso en equipos que posean procesadores gráficos o GPU basados en tarjetas
gráficas NVIDIA.
El comando por ejecutar para su instalación dependerá entonces del tipo de librería que
sutilizará para la programación, siendo recomendado el uso de una GPU por estar optimizadas
para cálculos con tensores.
El uso de la librería dentro de un proyecto [Link] se muestra en la figura 44, donde se puede
observar que se realiza de manera muy similar a su versión para JavaScript presentando pequeños
cambios con respecto a la sintaxis por lo que; la configuración de una RNA y la ejecución del
análisis predictivo por medio de esta no tendría grandes cambios.
6.2.3 Requerimientos
Los requisitos propuestos son similares al módulo de análisis implementado, con el agregado
de aquellos que tienen que ver con el funcionamiento automático del sistema propuesto. Basados
en esos requisitos previos, se proponen los siguientes:
Recuperación ante fallos: Dada la naturaleza autónoma del servicio, este deberá ser
capaz de terminar sus procesos o reiniciarlos también de manear automática cuando por
algún motivo se ejecute una acción que lo lleve a un estado en el que no se llegue a una
respuesta o cuando el tiempo de ejecución sobrepase un máximo admisible.
Log de operación: Todas las operaciones realizadas por el módulo deben quedar
registradas en un log donde se indique los equipos analizados y las cotizaciones creadas.
Conclusiones
103
104
Recomendaciones
105
106
a. Mapa mental
107
108
b. Código fuente
[Link]('equipmentForecastCtrl',
function ($scope,$rootScope,$http,$routeParams, telemetriaService,localStorageService,
$location,quotationMode,customModalService,$modal,vrpService,$filter,$window,
NgTableParams,UserConfig,socket,ngAuthSettings) {
//****************************************************
//Section of neronal network config
const model = [Link]();
//config for layer
const config_hidden = {
inputShape:[3],
activation:'sigmoid',
//activation:'softmax',
units:10
}
const config_output={
units:1,
activation:'sigmoid'
//activation:'softmax'
}
//defining the hidden and output layer
const hidden = [Link](config_hidden);
const output = [Link](config_output);
//define an optimizer
const optimize=[Link](1);
//config for model
const config={
optimizer:optimize,
loss:'meanSquaredError'
}
//compiling the model
[Link](config);
[Link]('Model Successfully Compiled');
//End Neuronal Network config
$scope.x_train_tensor = [];
$scope.Y_train_tensor = [];
//*****************************************************
109
$[Link] = [];
$[Link] = [];
},],
"chartScrollbar": {
"graph": "graph_real",
"oppositeAxis": false,
"offset": 30,
"autoGridCount": true,
"scrollbarHeight": 40,
"backgroundAlpha": 0,
"selectedBackgroundAlpha": 0.2,
"selectedBackgroundColor": "#888888",
"graphFillAlpha": 0,
"graphLineAlpha":0.5,
"selectedGraphFillAlpha": 0,
"selectedGraphLineAlpha":1,
"color":"#AAAAAA"
},
"chartCursor": {
"cursorPosition": "mouse"
},
"categoryField": "date",
"categoryAxis": {
"parseDates": true,
"axisColor": "#DADADA",
"minorGridEnabled": true
},
"export": {
"enabled": true,
"fileName": "value",
"menu": [ {
"class": "export-main",
"menu": [ {
"label": "Descargar Imagen",
"menu": [ "PNG", "JPG", "SVG" ]
}, {
"label": "Descargar Archivo",
"menu": [ "CSV", "PDF" ]
}]
}]
},
})
Glosario
Aeróbico:
1. adj. Biol. Perteneciente o relativo a la aerobiosis o a los organismos aerobios. Ambientes
aeróbicos.
2. adj. Que se produce con la utilización de oxígeno libre. Ejercicios aeróbicos.
Antonomasia:
1. f. Ret. Sinécdoque consistente en emplear un nombre apelativo en lugar de uno propio, como
en el Filósofo por Aristóteles.
Artilugio:
1. m. Mecanismo, artefacto, sobre todo si es de cierta complicación.
Browser:
Es un navegador de Internet: un software que permite la visualización de los contenidos que
presenta una página web. Este tipo de programa informático dispone de las herramientas que se
necesitan para la interpretación del código de una página, que puede estar compuesto por uno o
más lenguajes de programación.
Bursátil:
1. adj. Econ. Perteneciente o relativo a la bolsa, a las operaciones que en ella se hacen y a los
valores cotizables.
Compendio:
1. m. Breve y sumaria exposición, oral o escrita, de lo más sustancial de una materia ya expuesta
latamente.
Concebir:
1. tr. Formar una idea o un designio en la mente.
2. tr. Formar la idea de algo en la mente.
DBMS:
(Data Base Management System). Son las siglas en inglés para los Sistemas de Gestión de Bases
de Datos (SGBD). Bajo este nombre se conoce a productos de fabricantes como Oracle, Sybase,
Informix, Ingres, Borland, Microsoft, IBM, etc.
Electrólisis:
1. f. Quím. Descomposición en iones de una sustancia en disolución mediante la corriente
eléctrica.
111
112
Emular:
1. tr. Imitar las acciones de otro procurando igualarlas e incluso excederlas.
ERP:
El término ERP se refiere a Enterprise Resource Planning, que significa “sistema de
planificación de recursos empresariales”. Estos programas se hacen cargo de distintas
operaciones internas de una empresa, desde producción a distribución o incluso recursos
humanos.
Erudito:
1. adj. Instruido en varias ciencias, artes y otras materias. U. t. c. s.
2. m. y f. Persona que conoce con amplitud los documentos relativos a una ciencia o arte
Framework:
Framework. En el desarrollo de Software, un framework es una estructura conceptual y
tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, en
base a la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede
incluir soporte de programas, librerías y un lenguaje interpretado entre otros programas para
ayudar a desarrollar y unir los diferentes componentes de un proyecto.
GPRS:
El servicio general de paquetes vía radio, en inglés: General Packet Radio Service (GPRS), fue
creado en la década de los 80 Una conexión GPRS está establecida por la referencia a su nombre
de punto de acceso (APN). Con GPRS se pueden utilizar servicios como Wireless Application
Protocol (WAP), servicio de mensajes cortos (SMS), Multimedia Messaging System (MMS),
Internet y para los servicios de comunicación, como el correo electrónico y la World Wide Web
(WWW).
Intrincado:
1. adj. Enredado, complicado, confuso.
Iterativo:
1. adj. Que se repite.
2. adj. Que indica repetición.
Pauta:
1. f. Instrumento o norma que sirve para gobernarse en la ejecución de algo.
2. f. Modelo o norma.
113
Primigenia, Primigenio:
1. adj. Primitivo, originario.
Primordial:
1. adj. Principal o esencial.
2. adj. Primitivo o primero.
Repercusión:
1. f. Acción y efecto de repercutir.
2. f. Circunstancia de tener mucha resonancia algo
Replicar:
1. intr. Instar o argüir contra la respuesta o argumento.
TCP/IP:
El modelo TCP/IP es usado para comunicaciones en redes y, como todo protocolo, describe un
conjunto de guías generales de operación para permitir que un equipo pueda comunicarse en una
red. TCP/IP provee conectividad de extremo a extremo especificando cómo los datos deberían ser
formateados, direccionados, transmitidos, enrutados y recibidos por el destinatario.
Ubicuidad, Ubicuo:
1. adj. Dicho principalmente de Dios: Que está presente a un mismo tiempo en todas partes.
2. adj. Dicho de una persona: Que todo lo quiere presenciar y vive en continuo movimiento.
Umbral:
1. m. Valor mínimo de una magnitud a partir del cual se produce un efecto determinado.
Web Service:
Un servicio web (en inglés, web service o web services) es una tecnología que utiliza un conjunto
de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas
aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas
sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de
ordenadores como Internet.
114
Referencias
115
116
McCulloch, W. S., & Pitts, W. H. (1943). Un calculo lógico de las ideas inmanentes en la
actividad nerviosa. Boletin de matemática Biofisica, 5, 18. Recuperado el 15 de Agosto de
2018
Microsoft Azure. (2018). Microsoft Azure. Recuperado el 17 de Octubre de 2018, de
[Link]
Mimenza, O. C. (s.f.). Psicologia y Mente. Recuperado el 15 de Agosto de 2018, de
[Link]
Montero, J. M., & Fernández Avilés, G. (s.f.). Wolters Kluwer. Recuperado el 06 de enero de
2019
Neural Network Framework. (s.f.). Neural Network Framework. Recuperado el 18 de Agosto de
2018, de [Link]
[Link]
[Link]. (2018). [Link]. Recuperado el 20 de Octubre de 2018, de [Link]
Oberloier, S. (30 de Enero de 2016). voltfolio. Recuperado el 17 de Agosto de 2018, de
[Link]
Orbe, A. (16 de Junio de 2012). Hipertextual. Recuperado el 15 de Agosto de 2018, de
[Link]
Real Academia Española. (2014). Diccionario de la lengua española. (23). Recuperado el 08 de
Mayo de 2018, de [Link]
Rosenblatt, F. (1958). The Perceptron: A probabilistic model for information storage and
organization. Psychological Review, 65(6), 386-408. Recuperado el 18 de Agosto de 2018
Rouse, M. (Diciembre de 2017). TechTarget. Recuperado el 02 de Agosto de 2018, de
[Link]
Russell, S. J., & Norvig, P. (2008). INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO
(Segunda edición ed.). (J. M. Corchado Rodríguez, F. Martín Rubio, J. M. Cadenas
Figueredo, L. D. Hernández Molinero, E. Paniagua Arís, R. Fuentetaja Pinzán, . . . R.
Rizo Aldeguer, Trads.) Madrid: PEARSON EDUCACIÓN, S.A.
Sabán, A. (28 de Diciembre de 2016). HiperTextual. Recuperado el 26 de Julio de 2018, de
[Link]
117