viernes, 26 de abril de 2019

Una panorámica de la tecnología de vehículo autónomo con Shaoshan Liu y su equipo

Sus autores afirman que 'Creating autonomous vehicle systems' es la primera visión técnica completa del mundo de la conducción autónoma y puede que estén en lo cierto puesto que, cuando buscaba una referencia biblográfica para introducirme en el tema, éste era casi el único libro que aparecía. Lo cierto es que 'Creating autonomous vehicle systems' es un libro muy completo que nos presenta la conducción autónoma desde todas las perspectivas técnicas posibles y que nos permite alcanzar una muy buena idea del estado del arte tecnológico en este campo.

El libro no es del todo sencillo pero de todas formas, el contenido está descrito en un nivel intermedio, al alcance, si no de todo tipo de audiencias, sí al menos de lectores técnicos de nivel medio.

La obra se estructura en nueve capítulos como sigue:
  • 'Introduction to autonomous driving:' proporciona una visión de alto nivel de las tecnologías incluidas en el estado del arte actual de los vehículos autónomos e introduce una arquitectura sencilla que es importante, aparte de como esquema conceptual, porque guía la estructuración de lo que resta del libro. En esa arquitectura se habla de tres bloques: los algoritmos, los sistemas cliente (que vienen a ser el entorno de ejecución hardware y software) y la plataforma en la nube usada para tareas offline. Dentro de los algoritmos distingue entre aquellos dedicados a la sensorización y localización, los de percepción y los de decisión. Y luego hace un recorrido breve por cada una de las tecnlogías

  • 'Autonomous Vehicle Localization:' Comienza con los algoritmos en su faceta de localización que, lógica aparte, incluye también información sobre los sensores y sistemas de localización. Se habla de los sistemas de satélite GNSS ('Global Navigation Satellite Systems') que incluyen al GPS, los sistemas de enriquecimiento o aumento de los sistemas de satelite (SBAS 'Sattelite-Based Augmentation Systems'), el RTK ('Real Time Kinematics and differential GPS'), PPP ('Precise Point Positioning'), sistemas de navegación inerciales (INS, 'Inertial Navigation System') y su integración con la localización por satélite, LiDAR y Mapas de Alta definición (HD-Maps) y cómo colaboran LiDAR y HD-Maps, la odometría visual, la odometría en las ruedas y unas consideraciones finales sobre la fusión de las diferentes técnicas y ejemplos reales de uso de estas tecnologías en vehículos concretos.

  • 'Perception in Autonomous Driving:' Ataca ahora el segundo grupo de algoritmos, la percepción, que tiene como objetivo que el vehículo entienda el entorno a partir de la información en bruto proporcionada por los sensores. Se comentan diferentes aspectos como la detección, es decir, la identificación de objetos como otros vehículos, peatones u obstáculos, de la segmentación que es un enriquecimiento semántico de la detección, la profundidad, los flujos ópticos y de escena y la monitorización o 'tracking'.

  • 'Deep Learning in Autonomous Driving Perception:' expone el caso particular del uso de deep learning para la percepción. Primero explica en qué consisten las redes neuronales de convolución para luego ver las arquitecturas y usos en detección, en segmentación semántica y en flujo óptico.

  • 'Prediction and routing:' Pasamos, dentro de los algoritmos de decisión y control a hablar de la predicción y el enrutamiento, La predicción se encarga de predecir el comportamiento futuro de los objetos que rodean al vehículo mientras que el enrutamiento indica al vehículo cómo alcanzar su destino siguiendo una secuencia de calles en un mapa de alta definición. Se habla primero de los grandes rasgos de arquitectura y luego se habla de la predicción de tráfico o de la generación de la trayectoria del vehículo y se comentan algunos de los algoritmos más utilizados.

  • 'Decision, Planning and Control:' sigue con los algoritmos de decisión y control abordando ahora la decisión de comportamiento, la planificación del movimiento y el control de realimentación. En el ámbito de la decisión se comenta el modelo de Markov y el enfoque de 'divide y vencerás' basado en escenarios. Igualmente se ven los algoritmos más importantes en planificación del movimiento y en control.

  • 'Reinforcement Learning-based Planning and Control:' Se centra en el uso específico del aprendizaje por refuerzo en el ámbito de la planificación y el control. Tras explicar en qué consiste el aprendizaje por refuerzo, dando detalles de casos como el Q-Learning, se analiza su uso en el caso de la planificación y el control en conducción autónoma.

  • 'Client Systems for Autonomous Driving:' Comienza describiendo el sistema operativo para la conducción autónoma y, en concreto, el Robotic Operating System (ROS) para saltar luego a las plataformas de computación existentes incluyendo soluciones basadas en GPU, en DSP, en FPGA o en ASICs.

  • 'Cloud Platform for Autonomous Driving:' finaliza con la plataforma en la nube y habla de temas como el almacenamiento distribuido, la simulación, el entrenamiento de los modelos o la generación de mapas de alta fidelidad.

'Creating autonomous vehicle systems' es, en fin, un muy buen libro. que expone de una forma rigurosa y realista el estado del arte de los vehículos autónomos.

Shaoshan Liu

(Fuente: Traducción y ligera elaboración propia de su perfil en LinkedIn)

Shaosan Liu
Saoshan Liu es Presidente y co-fundador de PerceptIn, trayendo consigo más de diez años de experiencia en conducción autónoma y sistemas distribuidos. PerceptIn es una compañía de inteligencia visual enfocada a hacer soluciones integradas de hardware y software para sistemas robóticos autónomos.

Antes de fundar PerceptIn en 2016, era el líder en Baidu USA de los equipos de conducción autónoma y de infraestructura deep learning. Antes de unirse a Baidu, Liu estuvo trabajando en Big Data en LinkedIn y fue también miembro fundador PMC del mundialmente reconocido proyecto open source Alluxio. Y con anterioridad a unirse a LinkedIn perteneció a los equipos de kernel Windows, el de sistemas empotrados en Microsoft, el equipo de investigación sobre GPU en INRIA y los sistemas de ejecución en Intel Research.

El doctor Liu tiene un doctorado y un grado en ingeniería de la computación por la Universidad de California. Fue el autor principal delo libro 'Creating Autonomous Vehicle Systems', la primera visión global técnica de la conducción autónoma. Tiene más de 40 publicaciones y más de 100 patentes en computación distribuida así como sistemas de conducción autónoma.

Es Co-fundador de IEEE Special Technical Community on Autonomous Driving Technologies, miembro senior del IEEE, Distinguished Visitor de la IEEE Computer Society y Distinguished Speaker de la ACM.

Puedes saber más del autor visitando su perfil en LinkedIn.

Jean-Luc Gaudiot

(Fuente: Traducción y ligera elaboración propia de su biografía en la IEEE Computer Society)

Jean-Luc Gaudiot
Jean-Luc Gaudiot, es profesor de ingeniería eléctrica y ciencias de la computación en la Universidad de California en Irvine, y ha prestado servicio durante muchos años en varias oficinas de la IEEE Computer Society. Actualmente es Vicepresidente para publicaciones y está en el Comité de Gobierno. En 2013 fue Vicepresidente para actividades educativas. Fue el primer editor jefe de IEEE Computer Architecture Letters e IEEE Transactions on Computers, presidente del IEEE Computer Society Technical Committee on Computer Architecture durante dos mandatos y presidente general de muchas conferencias relevantes. Gaudiot es miembro de la Computer Society Golden Core y fellow de IEEE y de AAAS.

Antes de unirse a la Universidad de California en Irvine en 2002, fue presidente de departamento durante seis años y profesor de Ingeniería Eléctrica en la University of Southern California. Su experiencia industrial incluye ingeniería de software en Teledyne Controls y el diseño de arquitecturas de procesamiento innovadoras en TRW. Tiene más de 250 publicaciones en el campo de la arquitectura de computadores y es doctor en ciencias de la computación por la University of California, Los Angeles.

Puedes saber más del autor visitando su perfil en LinkedIn.

Ficha técnica:

AUTOR: Saoshan Liu, Liyun Li, Jie Tang, Shuang Wu y Jean-Luc Gaudiot.
AÑO: 2018
ISBN: N/A
PAGINAS: 191

Artículos de este blog relacionados

miércoles, 24 de abril de 2019

Cuatro razones para usar Screen Scraping en lugar de un API


Uno de los  mecanismos más característicos que incluyen todas o la mayor parte de las soluciones de Automatización Robótica de Procesos para interaccionar con aplicaciones existentes, ya sean éstas aplicaciones corporativas o aplicaciones de terceros, típicamente en la web, es el Screen Scraping, es decir, la obtención de datos a partir de las propias pantallas de las aplicaciones con las que se necesita interactuar.

Es éste un mecanismo en cierto sentido atípico en la disciplina de integración de sistemas. Estamos acostumbrados a la integración de aplicaciones a partir de API ('Application Programmatic Interface') ofrecidos como servicios. Y desde hace años se propone SOA ('Service Oriented Architecture') como la mejor forma de estructurar la integración entre sistemas. Y SOA, propone, precisamente, la creación de esos servicios y esas APIs.

¿Entonces? ¿Por qué usar Screen Scraping? ¿No es ese mecanismo una suerte de rodeo a las buenas prácticas de arquitecturas¿ ¿No es casi, casi, una 'chapucita'?

Bueno, si y no.

Hay que dejarlo claro: desde un punto de vista de arquitectura de sistemas es claramente preferible, muy preferible, la integración a través de APIs y, si es posible, con arquitectura SOA. Sin embargo, a nivel práctico, cuando añadimos consideraciones de naturaleza temporal, presupuestaria y otras, hay ocasiones en que puede tener sentido, lo tiene de hecho, usar un método más relajado como es screen scraping, una de cuyas virtudes, probablemente la principal, y que traslada como propuesta de valor a RPA, es que no necesita modificar en absoluto la aplicación con que se integra, no pide ningún desarrollo concreto... ni siquiera la existencia de un API.

He iniciado la lectura del libro 'Web Scraping with Python' de Ryan Mitchell y en él, tras reconocer que las APIs son el mecanismo preferente de integración, la autora aporta cuatro razones, o cuatro situaciones en que se justifica utilizar Screen Scraping (en su caso,Web Scraping, es decir, la variante del Screen Scraping que se centra en pantallas Web). Son estas:

  • Cuando lo que se quiere es recopilar conjuntos finitos de datos de una larga serie de aplicaciones web sin que exista un API coherente en todas ellas.

  • Cuando los datos que se quieren recoger son de poco volumen y no muy habituales, por lo que las aplicaciones no disponen de un API para ello (y, añado yo, no vale la pena desarrollarla)

  • La fuente ni dispone, por alguna razón, de la infraestructura o capacidad técnica (o, añado yo, temporal o presupuestaria) para desarrollar un API.

  • Los datos a los que queremos acceder son valiosos o están protegidos y no se prevé distribuirlos de forma amplia.

Creo que, quizá, se podría añadir alguna situación más, pero la idea básica es bastante clara: en general es preferible usar APIs, pero Screen Scraping puede ser una alternativa razonable cuando, por un lado, no existe ese API y, por otro, no vale la pena desarrollarlo.

lunes, 22 de abril de 2019

Los diez elementos de un sistema OCR (Optical Character Recognition)


Aunque OCR ('Optical Character Recognition') es una tecnología en apariencia bastante antigua, está ganando cierta actualidad hoy en día en círculos especializados gracias, por un lado, a las aportaciones que recibe procedentes de los avances en Inteligencia Artificial y, por otro, a su inclusión como elemento importante de soluciones de Automatización Robótica de Procesos (RPA, 'Robotic Process Automation') o de Captura Inteligente ('Intelligent Capture').

Por eso me ha interesado revisar sus fundamentos y actualidad tecnológica para lo cual estoy leyendo el libro 'Optical Character Recognition Systems for Different Languages with Soft Computing' de Arindam Chaudhuri, Krupa Mandaviya, Pratixa Badelia y Soumya K Ghosh, uno de los pocos documentos en formato libro que parecen estar disponibles.

Aunque el libro se concentra en avances en lo que denomina 'soft computing' y que se centran en la aportación de conceptos de conjuntos difusos ('fuzzy') en los algoritmos y los resultados al aplicarlo en diversos idiomas, tiene un segundo capítulo muy interesante por la perspectiva que aporta respecto a la tecnología de OCR, que es justo lo que estaba buscando.

En concreto, los autores estructuran las tecnologías de OCR en diez pasos o elementos que se desarrollan de forma secuencial y que permiten, me parece, tener un buen marco conceptual y tecnológico. Estos son esos diez elementos:

  • Entrada de texto: Se trata simplemente, de disponer del texto en algún formato, pensemos, por ejemplo, en un texto en papel o un correo electrónico. 

  • Escaneado óptico: Ese texto, cuando es necesario, se pasa por un escáner óptico que traduce el formato analógico original en un formato digital sobre el que empezar a trabajar.

  • Segmentación de localizaciones: Este paso, primero plenamente algorítmico, intenta detectar los elementos constituyentes de una imagen y separar las partes de datos y documentos de las que recogen imágenes o figuras. Como ejemplo, los autores nos mencionan, en el caso de un correo electrónico, el separar el texto de elementos como el logo de la compañía o sellos diversos.  En este paso, además, y ya para los textos, estos se separan en letras y palabras, operando la mayor parte de los algoritmos a nivel de letra.

  • Pre-procesado: Realiza una preparación de los datos en bruto, antes de someterlo a los siguientes análisis. Así, por ejemplo, se aplica el 'smoothing' (suavizado) para eliminar ruido y defectos del escaneado. En este proceso se produce tanto el rellenado de pequeños gaps o agujeros que puedan haber quedado ('filling') como el adelgazamiento ('thinning') de algunas líneas. En el filtrado se suelen utilizar algoritmos de filtrado por convolución con diferentes máscaras. Otra técnica que se aplica en paralelo es la normalización mediante la cual se intenta conseguir caracteres de igual tamaño, inclinación y rotación. Para conseguir lo que se denomina una línea base (es decir, la línea en que virtualmente se 'apoyan' los caracteres de una línea de texto), se aplican algoritmos como 'nearest neighbor clustering', correlación cruzada entre líneas o la transformada de Hough. Para normalizar la inclinación se puede utilizar una variante de la transformada de Hough  Otros algoritmos y técnicas se aplican también para el escalado y normalización del tamaño de los caracteres o para la suavización ('smoothing') de contornos. Para hacer más fácil el tratamiento posterior se suele intentar un formato de tipo blanco o negro mediante el 'umbralizado' ('thesholding') donde da buenos resultados el método adaptativo local de Niblack. Para el adelgazamiento ('thinning') de líneas existen diversos algoritmos, algunos que actúan a nivel de píxel y otros en entornos más amplios. 

  • Segmentación: Una vez que el prepocesado nos proporciona unas imágenes del texto limpias, comprimidas, con bajo ruido y normalizadas, la segmentación trata de separar la imagen del texto en sus componentes. Para ello existen estrategias explícitas, implícitas y mixtas. En las explícitas se trabaja en propiedades a nivel carácter pero sin información de formas o clases específicas y se emplean tecnologías de análisis de disección ('dissection analysis'). Las implícitas, por su parte, se basan en el reconocimiento es decir, sí que trabaja con clases predefinidas y busca reconocer esas clases en el texto. Para ello utilizan algoritmos bien de proceso de búsqueda o bien de segmentación de características de las imágenes.  En este segundo caso se utilizan, Modelos Ocultos de Markov ('Hidden Markov Models') y otros algoritmos no de Markov reutilizando técnicas procedentes de la identificación de objetos ocultos en visión artificial. Las estrategias mixtas, evidentemente, combinan las técnicas anteriores y suelen proporcionar los mejores resultados.

  • Representación: La representación genera la información que se utilizará en el reconocimiento. En los casos más sencillos son simples niveles de gris o binarios. Existen tres tipos de métodos: transformadas globales y expansión en series ('global transformation and series expansion'), representación estadística y representación topológica/geométrica. Las primeras se basan en el hecho de que una señal continua se puede representar como una serie infinita de otras señales más sencillas. y utilizan técnicas como la transformada de Fourier, la transformada de Gabor, wavelets, momentos o la expansión de Karhunen Loeve. La representación estadística utiliza distribuciones estadísticas de diversos aspectos y se centra en características como las densidad de zonas, cruces y distancias o proyecciones. Finalmente, en las representaciones geométricas y topológicas se representan algunas propiedades de los caracteres con alta tolerancia a la distorsión y variaciones de estilo.  

  • Extracción de características: Su misión es capturar las características principales de los símbolos y realizar una clasificación. Para la extracción de características se utilizan técnicas de distribución de puntos, transformadas y expansión en series y análisis estructural. En clasificación se puede realizar mediante dos enfoques: decisión teórica, en que se emplea un vector de características para representar a un carácter y se emplean algoritmos como clasificadores de distancia, clasificadores estadísticos o redes neuronales) o métodos estructurales en que los métodos dominantes son los análisis sintácticos.  

  • Entrenamiento y reconocimiento: OCR usa ampliamente tecnología de reconocimiento de patrones ('pattern matching'), existiendo cuatro enfoques: correspondencia de plantillas ('template matching'), técnicas estadísticas, técnicas estructurales y redes neuronales, técnicas no necesariamente disjuntas ni independientes. En la correspondencia de plantillas se busca el grado de proximidad de un vectores de características entre lo que tenemos en el texto objeto de análisis y prototipos o plantillas y se presentan en variantes que buscan la correspondencia directa ('direct matching'), plantillas deformables y encaje elástico ('deformable templates and elastic matching') o correspondencia por relajación ('relaxation matching'). Las técnicas estadísticas emplean algoritmos que maximizan la probabilidad de que un patrón observado se corresponda con un modelo y emplean técnicas como análisis de clusters, modelos ocultos de Markov, razonamiento sobre conjuntos difusos, etc. Las técnicas estructurales utilizan descripciones recursivas en patrones cada vez más sencillas existiendo enfoques gramaticales y gráficos. Finalmente, las redes neuronales utilizan el enfoque conexionista empleando arquitecturas de redes como, por ejemplo, el perceptrón multicapa, o los mapas auto-organizativos de Kohonen.

  • Post-procesado: Un tratamiento final destinado a temas como agrupación (en palabras, números, etc) o detección y eliminación de errores y se apoyan con frecuencia en reglas sintácticas y diccionarios.

  • Salida de texto: Simplemente, la presentación del texto en el dispositivo o medio digital objetivo.
El listado anterior nos permite disponer de un marco de referencia para encuadrar las tecnologías y algoritmos implicados en OCR. Y también nos permite comprender hasta qué punto este tipo de soluciones, a pesar de que en cierto sentido nos hayamos acostumbrado a ellas como algo casi natural, son muy complejas y sofisticadas y con gran variedad de técnicas y algoritmos en competencia y evolución. No se trata, pues, de un campo completamente maduro y estático, sino una tecnología en evolución aunque, con frecuencia, no la percibamos de forma independiente sino integrada en soluciones más amplias.


miércoles, 17 de abril de 2019

El renacimiento de 'nuevas' tecnologías


Un breve post para transmitir una reflexión que me ha surgido hoy. No llega, en realidad, casi ni al nivel de una reflexión sino, más bien, una impresión, una sensación, algo que, simplemente, me apetece comentar.

Me encuentro leyendo el libro 'Optical Character Recognition Systems for Different Languages with Soft Computing' intentando conocer mejor las técnicas que se emplean en el reconocimiento óptico de caracteres, una de las tecnologías que se integran habitualmente dentro de las modernas soluciones de RPA ('Robotic Process Automation').

En cierto sentido, investigar sobre OCR ('Optical Character Recognition') es ya un retorno al pasado, a unas tecnologías con las que trabajé hace ya más de 25 años. Pero, además, al leer el detalle de los algoritmos utilizados, me encontré con alguna otra 'vieja amiga' como, por ejemplo, elementos de lógica difusa ('fuzzy`) de los que casi no había vuelto a oír hablar desde hace muchos años.

Tendemos, y con cierta lógica, a asociar tecnología con innovación, modernidad, novedad. Pero lo cierto es que, a veces, tecnologías ya con larga historia, el algún caso tecnologías casi muertas, alcanzan de repente notoriedad y uso. Quizá porque la evolución en las capacidades de computación las convierten en viables, quizá porque se les encuentra una aplicación práctica y comercial de la que antes carecían.

De modo muy claro, ese renacimiento afecta a todo el campo de la Inteligencia Artificial, que lleva ya  muchas décadas entre nosotros pero que, tras pasar dos severos inviernos, ahora no solo ha resurgido y ha encontrado muchísimos campos de aplicación sino que parece que no puede existir foro sobre tecnología e incluso de divulgación en que no se la menciones.

El propio OCR incluye en su seno elementos de Inteligencia Artificial y en parte eso justifica su resurgimiento.

Sea como fuere, parece que, especialmente en lo que que en lo que a algoritmos se refiere, asistimos a un interesante y casi 'vintage' renacimiento de 'nuevas tecnologías' (¿nuevas?)

viernes, 12 de abril de 2019

25 tipos psicológicos empresariales con Javier Cantera

'El síndrome de Homer Simpson y otros perfiles psicológicos en la empresa' es un recorrido por 25 tipos psicológicos, por 25 conjuntos de comportamientos, que caracterizan prototipos más o menos habituales en el mundo de la empresa.

Comienza el libro con una breve prefacio seguido de una introducción, 'Introducción. Cuando la palabra síndrome es un signo en sí mismo' donde se explica el concepto de síndrome y su utilidad.

A continuación acomete la descripción de los 25 síndromes que conforman el tratado. Por cada síndrome, que suele venir titulado con el nombre de un personaje famoso que lo representa o ejemplifica, el autor sigue una estructura muy similar: empieza por un resumen ejecutivo de lo más importante que se ve en las siguientes páginas, luego ataca el cuerpo principal de la disertación con una explicación del síndrome en sí mismo y, con frecuencia, ideas sobre cómo superarlo o gestionarlo. Y finaliza con tres elementos: una pregunta poderosa, una idea útil para la persona y una idea útil para la empresa.

Con ese esquema, se acometen los siguientes síndromes/capítulos:
  • El síndrome Homer Simpson: insatisfacción, escaqueo y sobrepeso
  • El síndrome Punset: la obsesión de explicarte la crisis
  • El síndrome Tintín: el optimismo inteligente
  • El síndrome Walter Milly: saber soñar para ser productivo
  • El síndrome Trithemius: El arte de aceptar a cambiar
  • Síndrome Frankenstein: de los empleados zombis a la regeneración
  • El síndrome del carril izquierdo: carreras directivas con templanza
  • Síndrome fomo: la tiranía de estar estresado
  • Síndrome Mafalda: ¿Cuésta tanto que los directivos sueñen?
  • Síndrome Príncipe Carlos: los eternos candidatos
  • Síndrome Obélix: de feedback negativo y selfis
  • Síndrome George Clooney talentos diversos y comprometidos
  • Síndrome Obama: del podemos al hacemos
  • El síndrome Sísifo: el volver a empezar continuo
  • El doctor 'House' de los directivos precavidos
  • El síndrome Nicolás: no hay edad para innovar o emprender
  • El síndrome de Grey: la emoción del control
  • El síndrome Fernando Alonso: el arte de elegir la empresa y equipo
  • El síndrome de la abeja reina: la paradoja del talento diverso
  • El síndrome de Sheldon Cooper: O cómo saber dar feedback
  • Síndrome Alexis Tsipras: negociar desde la desconfianza
  • Síndrome Donald Trump: liderazgo auténtico o 'autenticida'
  • Síndrome del knowmads: en tiempos de trabajo continuo
  • Síndrome del quinto beatle: O como irse a destiempo
  • (24+1) O 25. El síndrome de no tener ningún síndrome
Y finaliza con un breve capítulo de cierre, 'Conclusión: persona sana para ser un profesional productivo', en el que apuesta por la autenticidad, la humildad y la bondad.

A pesar de lo que la mención a Homer Simpson en el título pueda sugerir, 'El síndrome de Homer Simpson y otros perfiles psicológicos en la empresa' es un libro serio, aunque divulgativo y pedagógico. Un libro que aunque pueda ser de utilidad para profesionales de la psicología y los recursos humanos, se me antoja más dirigido a las personas individuales, a aquellos profesionales que quieren conocerse, gestionarse, aceptarse y, si es posible, mejorarse.

Javier Cantera

(Fuente: biografía en su página oficial).

Javier Cantera
Licenciado en Psicología y Derecho. Es palentino y apasionado por el arte, Tintín, la lectura, la escritura y la familia.

Es además Master en Dirección de Personal por ICADE; Master en Dirección de RR.HH por IE; Master en Dirección de Empresas por el IESE. Ha colaborado como docente en numerosas Escuelas de Negocios y Universidades.Es autor de diversos libros y artículos relacionados con el talento, la gestión de personas, el coaching y las estrategias RR.HH.

Su experiencia profesional se ha desarrollado en el ámbito de los recursos humanos en Telefónica, Enagas, Schweppes, Repsol.

Actualmente es Presidente del Grupo BLC y de la Fundación Personas y Empresas.

Puedes saber más de la autora visitando su página oficial o seguirle en twitter donde se identifica como @canteraleonardo.

Ficha técnica:

AUTOR: Javier Cantera.
EDITORIAL: Almuzara
AÑO: 2017
ISBN: 978-8417044190
PAGINAS: 190


miércoles, 10 de abril de 2019

Machine Learning: el collar y el perro


Que la Inteligencia Artificial, a pesar de estar tan de rabiosa actualidad, es en realidad una disciplina antigua, es bastante conocido.

Que el Machine Learning, que no deja de ser, probablemente, el segmento de la Inteligencia Artificial con más desarrollo y fruto últimamente, es también una disciplina de orígenes antiguos, quizá no sea tan conocido.

Y sin embargo, entre los algoritmos que se entienden como constituyentes del Machine Learning, los hay casi ancianos... y procedentes de disciplinas que ni sabían de la existencia del Machine Learning, ni les importaba...

Creo que la regresión lineal la estudié por primera vez en bachillerato (el famoso BUP ya desaparecido hace muchísimos años), De los Modelos Autorregresivos de Media Móvil (ARMA y ARIMA) tuve noticia en algún curso que no recuerdo bien de la carrera. De Bayes ya ni hablemos. Y, sin embargo, en tratados muy modernos sobre inteligencia artificial y machine learning me los encuentro con frecuencia...porque se incluyen, probablemente con justicia, dentro del campo del Machine Learning.

Hoy estaba leyendo el libro 'Process Mining. Data Science in Action' de Wil van der Aalst y en concreto me leí el capítulo que titula, simplemente 'Data Mining'. Un capítulo que todavía está entre los que sirven de preámbulo al Process mining propiamente dicho. De hecho el autor ve al Data Mining como un precursor o antecedente del Process Mining. 

Hacía bastante que no oía mencionar el término 'Data mining', tan de moda hace ¿cuánto? ¿quince años? ¿veinte años? Y, sin embargo, entre los algoritmos que desgrana, con bastante brillantez por cierto, a lo largo del capítulo aparecen 'amigos' como los modelos de clasificación y de regresión, el aprendizaje no supervisado y los algoritmos de clustering como K-means clustering, los árboles de decisión e, incluso, hay alguna referencia aunque tímida a las redes neuronales...

¿Qué pasa aquí?

¿Es que no hay nada nuevo en el Machine Learning? ¿Es esto del Machine Learning puro marketing, simplemente, el mismo perro con distinto collar?

Bueno, sí y no...

Lo cierto es que, en efecto, muchos de los algoritmos que se consideran constituyentes del machine learning son ya casi venerables ancianos. Pero también es cierto que, gracias a las nuevas e ingentes disponibilidades de datos y las capacidades de computación, pueden alcanzarse nuevas cotas antes vedadas y es cierto también que han aparecido importantísimas novedades en los últimos años como las redes neuronales de convolución o el deep learning. Es cierto, sobre todo, que se ha encontrado la forma de que esos algoritmos produzcan resultados prácticos muy valiosos, muy utilizables, perfectamente comercializables y  espectaculares.

En el Machine Learning hay mucho de antiguo, pero también mucho de nuevo.

Si, en la jauría del Machine Learning hay perros que sólo han cambiado de collar, pero también hay nuevos y valiosos ejemplares.

Y en cualquier caso, ¿a quién le importa el collar si el perro es útil, es fiel y es amigo?


lunes, 8 de abril de 2019

Objetivos y limitaciones del modelado de procesos de negocio


Una de las actividades habituales cuando se están gestionando procesos de negocio es su modelado. ¿Qué es eso de modelar un proceso de negocio? Sin pretender la definición definitiva, sino sólo una aproximación suficiente podemos decir que modelar un proceso de negocio es expresar en un lenguaje formal la estructura de ese proceso. El resultado suele ser in gráfico más o menos anotado y las notación más popular sería probablemente BPMN ('Business Process Modelling and Notacion') del OMG ('Object Management Group').

Este modelado se suele producir en dos momentos, o fases. En primer lugar durante el descubrimiento o levantamiento del proceso AS-IS, es decir, tal cual es en el momento inicial. Y luego, tras el rediseño del mismo o proceso TO-BE, antes de iniciar una transformación o mejora del mismo, como medio de expresar el proceso objetivo.

Objetivos y beneficios del modelado


Cuando alguien ajeno al mundo de la gestión de procesos ve un modelo de proceso puede parecerle un ejercicio algo teórico y, quizás, incluso inútil. Estoy convencido de que no es así...siempre que se haga con rigor y con la voluntad cierta de emplearlo en un análisis, mejora y/o automatización posterior. Hace ya algún tiempo publiqué el post '¿Qué es y para qué vale modelar un proceso de negocio?' en que razonaba, con mi propia cabeza y experiencia, algunos de los beneficios de un modelado de procesos.

Pero, en esta ocasión, quiero reflejar lo que Wil van der Aalst indica en su libro 'Process Mining. Data science in action'.

Según van der Aalst, estos son los usos que se da a un modelo de proceso y por tanto, de alguna forma, su utilidad:

  • Análisis (insight) el modelar un proceso de negocio obliga a pensar en él, entenderlo y contemplarlo bajo diferentes perspectivas

  • Discusión con base en los modelos de procesos, los diferentes 'stakeholders' involucrados, pueden debatir sus opiniones y puntos de vista.

  • Documentación los procesos quedan registrados y se pueden usar a efectos de formación o certificación (por ejemplo, en ISO 9000)

  • Verificación los modelos pueden usarse para detectar errores en sistemas o procedimientos

  • Análisis de prestaciones y rendimiento con técnicas como la simulación que pueden permitir entender los factores que influyen en tiempos de respuesta, niveles de servicio, etc

  • Animación ya que los usuarios pueden llevar a cabo escenarios y proporcionar feedback a los diseñadores.

  • Especificación los modelos pueden usarse como una suerte de contrato entre los usuarios/negocio y los desarrolladores para todos aquellos sistemas que automatizan de alguna forma procesos de negocio.

  • Configuración los modelos se pueden usar para configurar un sistema

Limitaciones del modelado de procesos


Sin embargo, este autor, que aboga firmemente, como se pude imaginar, por el process mining, es decir, un descubrimiento de procesos más basado en evidencias que en el trabajo con expertos., identifica alguna limitación en el modelado de procesos. 

El autor nos recuerda la distinción entre modelos informales, más usados a nivel de debate y documentación, mientras que los formales, siempre en la opinión de van der Aalst se usan orientados a su automatización en un sistema.

El principal problema de los modelos informales es que tienden a ser visiones idealizadas de la realidad, pero algo desconectados de los detalles de esta y de la práctica en el día  a día. Unos procesos idealizados impiden su uso para la toma de decisiones o para la simulación.

Esta desconexión entre el modelo de proceso y la realidad se manifiesta, en mi experiencia, en otro modo que es la desactualización de los modelos. Modelos de procesos que en un momento del tiempo, quizá ligado a una actividad de reingeniería, de mejora o de certificación, fueron correctos, se dejan al margen de la operativa diaria y los procesos reales poco a poco se van separando del modelo. Eso redunda en que el modelo pierde utilidad pero, además, puede ser un claro síntoma de una gestión de procesos deficiente, puede que incluso inexistente.


Conclusiones


La conclusión de Wil van der Aalst es, lógicamente, apostar por un modelado basado en evidencias, es decir, por el Process Mining.

Mis conclusiones particulares es que, como en muchas otras situaciones de gestión empresarial en que se usan formalismos o modelos, éstos se deben aplicar con persistencia y rigor. Los modelos ayudan a estructurar y comunicar el pensamiento. Pero lo importante es el pensamiento en sí. Deberían usarse los modelos pero, si al final, por inmadurez o falta de rigor se es incapaz de usarlos correctamente y de forma persistente en el tiempo...pues casi mejor dejar de utilizarlos. Pero, claro, yo apuesto por la madurez y el rigor...y, por tanto, por seguir modelando...

viernes, 5 de abril de 2019

Un poco de Robotic Process Automation en Blue Prism con Lim Mei Ying

'Robotic Process Automation with Blue Prism: A Quick Start Guide' es exactamente lo que su título promete: un libro austero que, simplemente, se dedica a explicar unos conceptos básicos acerca de RPA y, sobre todo, muestra el manejo a nivel principiante de los distintos conceptos en la herramienta Blue Prism.


El libro se estructura en once capítulos como sigue:
  • 'The case for Robotic Process Automation': Capítulo introductiorio con conceptos básicos donde explica lo que es Robotic Process Automation, los procesos más adecuados para emplearlo, cómo calcular ahorros de tiempo y el documento PDD de definición de una automatización

  • 'Building the First Blue Prism Process': Comienza ya con la herramienta Blue Prism y empieza explicando la arquitectura de alto nivel, cómo arrancar la aplicación cliente, cómo crear un proceso y algunas funciones básicas de Blue Prim Process Studio como añadir y editar Páginas, nombrar procesos y ejecutarlos directamente o paso a paso.

  • 'Pages, Data items, Blocks, Collections and Loops': Explica el significado y manejo de los elementos básicos de un proceso en Blue Prism: Páginas (incluyendo entradas y salidas y paso de información entre páginas, Elementos de Datos (tipos, manejo y visibilidad), Bloques, Colecciones y Bucles. Además cuenta cómo validar la no existencia de errores.

  • 'Actions, Decisiones, Choices': Sigue adelante con nuevos elementos de un proceso y en este caso habla de Acciones, Decisiones, Opciones y Cálculos.

  • 'Implementing Business Objects': Nos habla del importante concepto de Objeto de Negocio en Blue Prism (un objeto que modela una aplicación con la que interacciona un robot) y cómo crearlos, organizarlos y publicarlos.

  • 'Spying Elements': Habla del mecanismo de 'espiado' por el cual se muestra a un robot cómo localizar elementos en pantallas como botones, enlaces o cuadros de texto. Se centra sobre todo en el caso de páginas web pero también explica el resto de alternativas.

  • 'Write, Wait and Read': Tras saber cómo obtener información de pantallas ahora nos enfocamos más a la interacción en forma de escritura, espera y lectura y asi se muestra cómo escribir en un cuadro de texto, cómo simular un click de ratón, cómo esperar a que aparezca un elemento de pantalla, etc.

  • 'Working With Excel': Se trata el caso concreto de trabajo con hojas excel.

  • 'Sending and Receiving Emails': Se muestra cómo trabajar con el correo electrónico (envío, formateado, gestión de anexos, recepción, etc)

  • 'Control Rooom and Work Queues': Explica Control Room, la herramienta de operación de robots de Blue Prism, cómo se sube un proceso a la herramienta cómo se arranca un robot tanto de forma manual como planificada, el manejo de colas, etc

  • 'Exception Handling': Finaliza explicando el concepto de excepción y cómo se manejan en Blue Prism así como la forma de hacer una depuración desde la 'Control Room' y cómo se gestionan los logs y se buscan los errores aparecidos.

'Robotic Process Automation with Blue Prism: A Quick Start Guide' es un libro austero, que cumple razonablemente bien su misión, sin alardes pero con corrección, y que permite ese primer acercamiento a RPA (ya que todas las herramientas ofrecen funcionalidades muy parecidas) y en concreto a Blue Prism.

Lim Mei Ying

(Fuente: Traducción y ligera elaboración propia de su perfil en LinkedIn)

Lim Mei Ying
Jefe de proyecto IT con experiencia de más de siete años en la dirección de innovación, cumplimiento de hitos, programación y gestión de problemas. Con gran capacidad para analizar problemas, desarrollar y simplificar procedimientos y encontrar soluciones innovadoras.

Miembro fundador del equipo Robotic Process Automation COE team en GI. Consiguió automatizar tareas burocráticas y repetitivas de forma rápida y coste-efectiva.

Comenzó como jefe de proyecto en procesos del área financiera incluyendo auto-tracker, gestión de efectivo, pago de intereses y muchos más. Luego pasó a dirigir la automatización para los departamentos de infraestructuras y recursos humanos y entregó más de 80 procesos a través de todo el ciclo de desarrollo de sistemas.

Interaccionó con los usuarios de negocio y realizó el análisis de negocio para identificar oportunidades de automatización.

Adquirió un conocimiento profundo de Blue Prism.

Trabajó en equipos multidisciplinares e interactuó con usuarios de negocio y TI para operativizar el modelo operativo RPA objetivo que mantiene a los robots en funcionamiento con una estrecha monitorización y planes de mantenimiento y despliegue.
Puedes saber más de la autora visitando su perfil en LinkedIn.

Ficha técnica:

AUTOR: Lim Mei Ying.
EDITORIAL: Packt
AÑO: 2018
ISBN: 978-1789610444
PAGINAS: 232

Artículos de este blog relacionados

jueves, 4 de abril de 2019

Tres tipos de Process Mining


Estoy profundizando en el conocimiento del llamado Process Mining, una disciplina que intenta obtener conocimiento sobre procesos de negocio a partir de la información contenida en los 'logs' de los sistemas que de una forma u otra intervienen en esos procesos.

La primera vez que oí hablar del Process Mining fue en el contexto de lo que en metodologías BPM ('Business Process Management') se denomina el 'descubrimiento' del proceso, es decir el conocimiento inicial de ese proceso: las tareas que lo conforman, cómo se relacionan entre sí, quién las ejecuta, las decisiones que se producen, las excepciones...

Debo confesar que, a bote pronto, y aunque he preferido 'congelar' mis impresiones iniciales a la espera de un conocimiento más detallado, ese planteamiento me causaba un cierto escepticismo, no tanto a nivel teórico, sino acerca de su aplicación real en empresas reales con procesos reales y sistemas reales.

Escepticismo sobre si los sistemas en empresas reales contienen, y de forma accesible, la información necesaria y suficiente para generar un modelo. Escepticismo sobre si se puede realmente construir un modelo de proceso de forma tan automática como el Process Mining parece prometer. Y escepticismo sobre si, suponiendo que la respuesta a los dos puntos anteriores es afirmativa, si a pesar de todo esa forma de operar es realmente más eficiente y más eficaz que el modelado tradicional apoyado en elicitación de conocimiento a partir de documentación y sobre todo, interacción con expertos del negocio.

Y, más bien, me he quedado, de forma provisional, con la idea de que el Process Mining podría usarse combinado con el modelado tradicional sobre todo para descubrir excepciones, variantes o incluso malas praxis que no están en la mente de los expertos de negocio. 

Leyendo ahora 'Process Mining. Data Science in action' de Wil van der Aalst veo que este autor identifica tres áreas de aplicación del process mining, a saber:

  • Descubrimiento: Consiste, como hemos mencionado, en generar un modelo de proceso de negocio a partir de la información de los logs, es decir, se corresponde con mi conocimiento inicial acerca de la naturaleza del Process Mining. Se trata, quizá, del uso más 'espectacular' del process mining pero sobre el que, como también he expresado, mantengo una cierta reserva preventiva.

  • Cumplimiento: Se trata de comparar el modelo teórico de proceso con lo que realmente está sucediendo, obteniéndose la información sobre la realidad a partir de esos logs y, eventualmente, tomar las medidas correctoras oportunas.

  • Enriquecimiento: Es decir, usar la información sobre la ejecución real del proceso (de nuevo, contenida en los logs) para generar ideas sobre su mejora y enriquecimiento.

Los dos últimos usos, 'Cumplimiento' y 'Enriquecimiento' me parecen muy claros y factibles. Sobre el 'Descubrimiento', espero obtener más información próximamente que me confirme o haga cambiar de opinión y supongo que algún rastro dejaré en este blog sobre mis avances y conclusiones.


lunes, 1 de abril de 2019

Sobre la definición de Inteligencia Artificial y sobre su misterio


No conozco ninguna definición de inteligencia artificial que me convenza del todo. A lo mejor es imposible encontrarla porque, en el fondo, la Inteligencia Artificial no es realmente una tecnología sino un conjunto bastante heterogéneo de tecnologías, en general del campo de la algoritmia y del software.

Además, me temo que la Inteligencia Artificial esté rodeada de demasiada fantasía y ciencia-ficción como para ayudar en esta difícil tarea del rigor y el realismo.

Apelar hoy en día al test de Turing me parece que no tiene más interés que el histórico, pero no nos ayuda a definir Inteligencia Artificial moderna. Hoy en día muchísimos programas, muchísimos algoritmos, pueden exhibir un comportamiento inteligente que, de no saber que está siendo ejecutado por una máquina, nos podría parecer completamente humano y que, sin embargo, son tan claros y deterministas que no parecen encajar bien en el término Inteligencia Artificial.

Algunos elementos de los algoritmos de la inteligencia artificial nos acercan a entenderla: la capacidad para abstraer, obtener generalizaciones, la capacidad para aprender y adaptarse o una cierta autonomía en su comportamiento...

Pero, al final, a la Inteligencia Artificial le aplica la paradoja que ya recogíamos en este blog en el post titulado 'La paradoja de la Inteligencia Artificial':

the field of AI suffers from an unusual deficiency - once a particular problem is considered solved, it often is no longer considered AI.

En efecto, parece que a la Inteligencia Artificial le debe acompañar un cierto misterio para que la consideremos como tal. Una vez que el algoritmo es plenamente entendido, deja de ser Inteligencia Artificial o nos parece menos Inteligencia Artificial.

No es esa tampoco una observación completamente rigurosa, pero algo nos ayuda a entender la naturaleza de esta disciplina. Y resulta que esa apelación al misterio debe de ser relativamente común porque, de hecho, leyendo recientemente a  José Ignacio Latorre en su libro 'Ética para máquinas' me encuentro esta frase:

Me gustaría usar la expresión inteligencia artificial cuando el algoritmo es capaz de resolver un problema de una forma que los humanos somos incapaces de comprender.

que abunda sobre la misma idea: si entendemos bien el algoritmo, deja de ser Inteligencia Artificial. No todo el mundo estaría de acuerdo en ello. De hecho, se suele considerar el Machine Learning como un subconjunto de la Inteligencia Artificial y, sin embargo, se incluyen dentro de Machine Learning algunos algoritmos bastante comprensibles y deterministas.

O sea, que al final, sigue sin haber acuerdo pero me quedo con esa apelación al misterio para entender la Inteligencia Artificial ya que, a falta de una definición rigurosa, me gusta quedarme, al menos, con una romántica. 

Artículos de este blog relacionados