Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción a la Inteligencia Artificial y el BigData en el ámbito de la VoIP

307 views

Published on

Explicación sobre qué es la Inteligencia Artificial, cuales son los modelos matemáticos utilizados y algunos ejemplos de utilización que pueden ayudar a su uso en el ámbito de la VoIP, Linux y otros sistemas.
Esta conferencia se impartió en el evento VoIP2DAY 2018

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introducción a la Inteligencia Artificial y el BigData en el ámbito de la VoIP

  1. 1. Elio Rojano - elio@sinologic.net Inteligencia Artificial y BigData en VoIP Elio Rojano http://sinologic.net/
  2. 2. Elio Rojano - elio@sinologic.net [Introducción]
  3. 3. Elio Rojano - elio@sinologic.net { name: "Elio Rojano", email: “elio@sinologic.net”, web: "https://www.sinologic.net/", work: "http://VOZ.com", twitter: "https://twitter.com/hellc2", linkedin: "https://www.linkedin.com/in/rojano/", interests: [ “VoIP", "WebRTC", "SIP", "Development", "Javascript", "PHP", "Python", "Linux", "OpenSource" ], keynotes: "https://www.sinologic.net/portfolio" } Quién soy
  4. 4. Elio Rojano - elio@sinologic.net Interés en la IA y la VoIP Curiosidad sobre IA Conceptos matemáticos Datos + Curiosidad sobre VoIP Las llamadas generan datos La gente hacen llamadas +
  5. 5. Elio Rojano - elio@sinologic.net Dónde está la IA Inteligencia
 Artificial Informática Matemática
  6. 6. Elio Rojano - elio@sinologic.net ¿Qué tal las matemáticas?
  7. 7. Elio Rojano - elio@sinologic.net Al comienzo, bastante frustrante
  8. 8. Elio Rojano - elio@sinologic.net ¿Por qué interesa la IA?
  9. 9. Elio Rojano - elio@sinologic.net - Prever posibles datos y acelerar el trabajo más tedioso - Hacer automáticamente el trabajo más tedioso - Ser más prácticos en la obtención de objetivos - Porque es un reto… - Enseñar al sistema lo que nos gusta y que nos ofrezca lo que podemos desear ¿Por qué interesa la IA?
  10. 10. Elio Rojano - elio@sinologic.net …aunque no siempre aciertan… WTF!
  11. 11. Elio Rojano - elio@sinologic.net Atención Procesamiento de datos
 está muy cerca, es muy parecido, pero no es Inteligencia Artificial
  12. 12. Elio Rojano - elio@sinologic.net Inconvenientes
  13. 13. Elio Rojano - elio@sinologic.net Inconvenientes
  14. 14. Elio Rojano - elio@sinologic.net 2 1 3 Inconvenientes ????
  15. 15. Elio Rojano - elio@sinologic.net 1º. Lisp 2º. R 3º. Java 4º. Python 5º. Javascript 6º. PHP Inconvenientes
  16. 16. Elio Rojano - elio@sinologic.net Inconvenientes
  17. 17. Elio Rojano - elio@sinologic.net Correlación no implica causalidad Número de ahogados por caídas en piscina en relación con películas de Nicolas Cage
  18. 18. Elio Rojano - elio@sinologic.net [Empecemos]
  19. 19. Elio Rojano - elio@sinologic.net Qué es la IA Entrada Salida Entrada Salida Entrada Salida Entrada Salida Entrada ?
  20. 20. Elio Rojano - elio@sinologic.net Qué es la IA Entrada Modelo matemático ? Salida Probabilidad de acierto: X%
  21. 21. Elio Rojano - elio@sinologic.net Ejemplo 30 135 53 138 61 160 50 155 100 ? Entradas Salidas
  22. 22. Elio Rojano - elio@sinologic.net Ejemplo
  23. 23. Elio Rojano - elio@sinologic.net Ejemplo
  24. 24. Elio Rojano - elio@sinologic.net Ejemplo
  25. 25. Elio Rojano - elio@sinologic.net El objetivo es desarrollar un modelo que nos permita prever los valores que nos interesa obtener de forma automática. Nos basamos en datos antiguos para obtener información automática. Los datos suficientemente claros
  26. 26. Elio Rojano - elio@sinologic.net Matemáticamente definidos, mejor dicho. Se basa en conceptos muy definidos Todo debe ser pasado a valores numéricos Una imagen, un texto, todo debe ser numerado pixel a pixel para poder ser procesado 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 255
 255 255
 190
 25 255
 190
 25 255
 128
 25 255
 90
 0 255
 90
 0 255
 90
 0 10111100101010010111010010101010 10101010101010101110101111101010 10010001011101001011010101010101 0101010111010101101010110101011011101101011101 1011011010101101010110101101010010011010010110
 1101110100101001000011100010110101011011011010001001010101011010010111011101001010010
 0011100010110101011011011010001001010101011010010111011101001010010000111000101101010 1101101101000100101010101101001010011100010110101011011011010001001010101011010010111 01110001110001011010101101101101000100101010101101001011101110001110001011010101101101 10100010010101010110100101110111000111000101101010110110110100010010101010110100101110111000111000101101010110110110100010010101010110100101110111 00011100010110101011011101000100101010101101001011101110001110001011010101101101101000100101010101101001011101110001110001011010101101101101000100 10101010110100101110110100010010101010110100101110111000111000101101010110110110100010010101010110100101110111000111000101101010110110110100010010 10101011010010111011010001001010101011010010111011100011100010110101011011011010001001010101011010010111011100011100010110101011011011010001001010 10101101001011101101000100101010101101001011101110001110001011010101101101101000100101010101101001011101110001110001011010101101101101000100101010 10110100101110110100010010101010110100101110111000111000101101010110110110100010010101010110100101110111000111000101101010110110110100010010101010 1101001011101101000100101010101101001011101110001110001011010101101101101000100101010101101001011101110001110001011010
 1010001001010101011010010111011100011100010110101011011011010001001010101
 101000100101010101101001011101110001110001
 10100010010101010110
  27. 27. Elio Rojano - elio@sinologic.net [Tipos de IA]
  28. 28. Elio Rojano - elio@sinologic.net Tipos de IA Estadística / Probabilidad Redes Neuronales Machine Learning* Deep Learning Linear Polinómica (SVR) Vectorial Random Forest K-Nearest Neighbors SVM Naive Bayes Redes Bayesianas Logarítmica Predicción Clasificación Toma de decisiones Regresión
  29. 29. Elio Rojano - elio@sinologic.net Existen otras clasificaciones… http://peekaboo-vision.blogspot.com/2013/01/machine-learning-cheat-sheet-for-scikit.html
  30. 30. Elio Rojano - elio@sinologic.net [Probabilidad y Estadística]
  31. 31. Elio Rojano - elio@sinologic.net Detección de anomalías Probabilidad y Estadística
  32. 32. Elio Rojano - elio@sinologic.net Demo Anaconda es un distribución libre y abierta de los lenguajes Python y R, utilizada en ciencia de datos, y aprendizaje automático (machine learning). Esto incluye procesamiento de grandes volúmenes de información, análisis predictivo y cómputos científicos. Está orientado a simplificar el despliegue y administración de los paquetes de software.   Las diferentes versiones de los paquetes se administran mediante el sistema de administración del paquete conda, el cual lo hace bastante sencillo de instalar, correr, y actualizar software de ciencia de datos y aprendizaje automático como ser Scikit-team, TensorFlow y SciPy.3 La distribución Anaconda es utilizada por 6 millones de usuarios e incluye más de 250 paquetes de ciencia de datos válidos para Windows, Linux y MacOS. 
 Más información: https://www.anaconda.com
  33. 33. Elio Rojano - elio@sinologic.net Demo
  34. 34. Elio Rojano - elio@sinologic.net Demo
  35. 35. Elio Rojano - elio@sinologic.net Demo
  36. 36. Elio Rojano - elio@sinologic.net Demo http://sukiweb.net/archivos/2018/03/04/deteccion-de-anomalias-con-python-pandas/
  37. 37. Elio Rojano - elio@sinologic.net Regresiones
  38. 38. Elio Rojano - elio@sinologic.net Regresiones
  39. 39. Elio Rojano - elio@sinologic.net Toma de decisiones
  40. 40. Elio Rojano - elio@sinologic.net Toma de decisiones Redes Bayesianas
  41. 41. Elio Rojano - elio@sinologic.net Clasificación
  42. 42. Elio Rojano - elio@sinologic.net Clasificación
  43. 43. Elio Rojano - elio@sinologic.net Clasificación Naive Bayes Cálculo de la probabilidad de que un mensaje que contiene una palabra dada es spam
 
 Combinaciones de probabilides individuales
 
 Heurística ¿Te suena SpamAssassin?
  44. 44. Elio Rojano - elio@sinologic.net Predicción
  45. 45. Elio Rojano - elio@sinologic.net Predicción Machine Learning
  46. 46. Elio Rojano - elio@sinologic.net Predicción Arte ?Literatura ?
  47. 47. Elio Rojano - elio@sinologic.net Predicción
  48. 48. Elio Rojano - elio@sinologic.net [BigData]
  49. 49. Elio Rojano - elio@sinologic.net Machine Learning necesita datos
  50. 50. Elio Rojano - elio@sinologic.net Cuantos más ejemplos le enseñemos al modelo, más acertada será la predicción. ¿Cuantos datos?
  51. 51. Elio Rojano - elio@sinologic.net ¿Cuantos datos? MySQL no es muy práctico aquí: the data cache stored in RAM can grow very large and be subjected to thousands or even millions of requests per second. Hacen falta motores muy orientado a la entrega rápida de datos con muy bajo consumo y posibilidad de redundancia, escalabilidad y distribución Volumen Variedad Velocidad Veracidad Variabilidad Valor
  52. 52. Elio Rojano - elio@sinologic.net Bases de datos BigData hay muchas
  53. 53. Elio Rojano - elio@sinologic.net ¿Mi es compatible con eso? Todos los motores disponen de sistemas para insertar datos de una forma fácil y cómoda. Asterisk no tiene un módulo para enviar datos a la base de datos, pero podemos implementarlo muy fácilmente.
  54. 54. Elio Rojano - elio@sinologic.net Ejemplo #!/usr/bin/env node var MongoClient = require('mongodb').MongoClient;
 var ami = require('asterisk-manager')(5038,'localhost','amiuser','amip4ssw0rd',true); var url = “mongodb://localhost:27017/"; ami.on('cdr', function(evt) {
 MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("cdr"); myobj = { date: evt.starttime, src: evt.source, dst: evt.destination, res: evt.disposition, time: parseInt(evt.billableseconds), }; dbo.collection('cdr').insertOne(myobj, function(err, res) { if (err) throw err; db.close(); }); }); }); });
  55. 55. Elio Rojano - elio@sinologic.net [Revolucion de la IA] Machine Learning Deep Learning
  56. 56. Elio Rojano - elio@sinologic.net ¿Por qué ahora está en auge? Nuevos procesadores hacen millones de pruebas por segundo.
  57. 57. Elio Rojano - elio@sinologic.net ¿Por qué ahora está en auge? Nuevas librerías y herramientas facilitan su accesibilidad.
  58. 58. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning Inteligencia
 Artificial Machine
 Learning Deep
 Learning Técnica que permite a un sistema 
 IMITAR
 el comportamiento humano Técnica que permite a un sistema 
 MEJORAR
 en base a la experiencia Técnica que permite a un sistema 
 PERFECCIONAR
 en base a su propia experiencia
  59. 59. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  60. 60. Elio Rojano - elio@sinologic.net DEMO TensorFlow es una biblioteca de código abierto para aprendizaje automático a través de un rango de tareas, y desarrollado por Google para satisfacer sus necesidades de sistemas capaces de construir y entrenar redes neuronales para detectar y descifrar patrones y correlaciones, análogos al aprendizaje y razonamiento usados por los humanos. Todos los productos de Google utilizan alguna característica de Inteligencia Artificial. TensorFlow está originalmente desarrollado en Python, aunque hay una versión para Javascript. https://www.tensorflow.org
  61. 61. Elio Rojano - elio@sinologic.net DEMO<html> <head> <!-- Load TensorFlow.js --> <!-- Get latest version at https://github.com/tensorflow/tfjs --> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.2"> </script> <style>body{ font-size: 50px; }</style> </head> <body> <div id="output_field"></div> </body> <script> async function learnLinear(){ const model = tf.sequential(); model.add(tf.layers.dense({units: 1, inputShape: [1]})); model.compile({ loss: 'meanSquaredError', optimizer: 'sgd' }); const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]); const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7 ], [6, 1]); await model.fit(xs, ys, {epochs: 500}); document.getElementById('output_field').innerText = model.predict(tf.tensor2d([10], [1, 1])); } learnLinear(); </script> <html> Entrenamiento… Solicitamos una predicción…
  62. 62. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning Reconocimiento de patrones + tensorflow.org keras.io
  63. 63. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  64. 64. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  65. 65. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  66. 66. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  67. 67. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  68. 68. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  69. 69. Elio Rojano - elio@sinologic.net Machine Learning vs Deep Learning
  70. 70. Elio Rojano - elio@sinologic.net [WebRTC e IA]
  71. 71. Elio Rojano - elio@sinologic.net Gracias al WebRTC y la IA podemos hacer cosas como: • Reconocimiento de imágenes (MobileNet) • Reconocimiento del estado de ánimo • Reconocimiento del número de personas • Reconocimiento de qué están haciendo esas personas • Filtrar el audio para obtener una mejora en la calidad de la voz • … WebRTC
  72. 72. Elio Rojano - elio@sinologic.net Demo
  73. 73. Elio Rojano - elio@sinologic.net https://github.com/tensorflow/tfjs-models/tree/master/posenet Demo
  74. 74. Elio Rojano - elio@sinologic.net [Otros usos]
  75. 75. Elio Rojano - elio@sinologic.net - Detección de anomalías en parámetros de sistemas, (procesador, memoria, hilos, procesos, etc.) - Predicción de incidencias del sistema en base a sus parámetros. - Creación de bots conversacionales de ayuda. - Identificación de la persona que habla mediante “Voice ID Fingerprint”. - Aceleración en la gestión de incidencias de equipos de Help Desk. - Ajuste de los parámetros de búsqueda de posibles leads en base a las ventas logradas. - Mejora sustancial de los sistemas de reconocimiento de voz. - … Otros usos
  76. 76. Elio Rojano - elio@sinologic.net Un futuro muy presente… Google Duplex HSBC Voice ID
  77. 77. Elio Rojano - elio@sinologic.net ¿Preguntas?
  78. 78. Elio Rojano - elio@sinologic.net - a Rosa y Pablo por su paciencia y apoyo.
 - a Guillermo Ruiz por su apoyo y recomendaciones. - a David Martín (Suki) por sus ejemplos y tutoriales. - a todos los que publican libremente su trabajo para enseñarnos cómo se hacen las cosas. - a la organización del VoIP2DAY por invitarme a este evento. - a VOZ.com por apoyarme con estos y otros proyectos. - a los lectores y patrocinadores de Sinologic.net.
 - y especialmente a… Agradecimientos
  79. 79. Elio Rojano - elio@sinologic.net … a Daniel Maestre
  80. 80. Elio Rojano - elio@sinologic.net Gracias!

×