domingo, 24 de julio de 2016

Definiciones y Conceptos


Para comprender todo el proceso de pruebas que vamos a seguir se hace necesario comenzar fijando una serie de conceptos y definiciones que arrastraremos durante todo el desarrollo.


Con el fin de que sea comprensible para todos los lectores no nos ceñiremos a la notación matemática sino que los explicaremos en un lenguaje más coloquial. Enmarcaremos de esta forma todo el lenguaje y los análisis y validaciones a realizar.

Conocimiento

Es todo aquello que permite inferir un resultado esperado a partir de una situación.

Inferencia

Es el proceso de aplicar un conocimiento para obtener un resultado (deductiva) o un nuevo conocimiento (inductiva).

Aprendizaje

Es el proceso mediante el cual a partir de unos datos de partida o entradas se genera un conocimiento, el cual nos permite obtener soluciones para distintos problemas.
Existen dos tipos de aprendizaje:

  • Supervisado: aquel que parte de unos datos históricos conocidos para generar un conocimiento. 
  • No supervisado: parte de un conjunto de datos e intenta descubrir nuevas relaciones o características de estos datos no detectadas a hasta este momento. 

Dominio

Todo el conjunto de individuos, entidades y sucesos que componen nuestro ámbito de actuación. Es un subconjunto del mundo real.

Instancia o Suceso

Es un elemento concreto del dominio. Digamos que para un dominio X, una instancia es un elemento x Ꞓ X.

Atributos

Toda instancia debe estar definida por unas características (definición y valor) para que pueda ser tratado en el mundo computacional. A cada uno de estos pares (clave, valor) asociados a una instancia en un momento dado se le denomina atributo de la instancia. Todos los atributos de una instancia, establecidos en forma matemática, determinan un vector de la forma (a1,a2,a3, … an) por lo que podremos considerar que las instancias de un dominio son los vectores válidos del dominio.

Atributos de entrada

Son aquellos atributos que conocemos, para una entidad de un dominio, y son utilizados como base para la resolución de un problema concreto.

Atributos objetivo

Son aquellos atributos cuyo valor queremos descubrir por medio del proceso de inferencia. Son el resultado de los procesos de inferencia deductiva, en los cuales consultamos a nuestra base de conocimiento, esperando a cambio una predicción.

Modelo

Es una función h(x) que, a partir de un conjunto de instancias caracterizadas por unos atributos de entrada (Escenario) predice o descubre, de forma automática, qué valor tomarán los atributos objetivo. Descubrir y almacenar estos modelos h(x), para su posterior uso, es el objetivo de la inferencia inductiva o generación de conocimiento.

Rendimiento de un modelo

Indica la calidad de las predicciones de un modelo, esto es, cómo de buenas o malas se espera que sean estas predicciones. A modo de ejemplo, si un modelo tiene un 0.63 de rendimiento debemos esperar una tasa de acierto del 63% en sus predicciones y decidir si realmente ese valor es adecuado para resolver nuestro problema.

Intervalo de confianza

Es el umbral dentro del cual podemos considerar que el resultado de la predicción generada por el modelo es válido.

Conjunto de Aprendizaje

Para aprendizajes supervisados, el Conjunto de Aprendizaje es el conjunto de instancias que utilizaremos para el proceso de inferencia. Esto es, el conjunto de datos históricos.
Normalmente durante este proceso los datos históricos se dividen en dos: un conjunto de datos o vectores usados para el aprendizaje (Training Set) normalmente definidos como el 75% del conjunto de aprendizaje y un conjunto de datos para la validación posterior de los resultados del modelo (25%).

Overfitting

Es la pesadilla de los modelos de aprendizaje automáticos. El overfitting es una característica que se da cuando un modelo h(x) tiene un rendimiento superior a otro h´(x) para el Training Set pero tiene un rendimiento más pobre para el dominio completo (atributos objetivo conocidos y desconocidos), esto es, en el mundo real fuera del laboratorio.

Algoritmos

Son la base de la generación de conocimiento y son las distintas técnicas a aplicar para generar conocimiento, esto es, modelos. Los clasificaremos en tres tipos:
  • Clasificación: orientados a segmentar las instancias de un dominio en un conjunto de segmentos preestablecidos. 
  • Regresión: orientados a predecir el valor numérico esperado para un atributo objetivo. 
  • Clustering: en la línea del algoritmo de clasificación, pero orientado a detectar similaridades dentro del conjunto de instancias del dominio y, por tanto, no trabaja con un conjunto predefinido de segmentos sino que genera los distintos segmentos para detectar la mejor distribución de estos. 

Conforme avancemos introduciremos nuevos conceptos orientados definir y usar algoritmos concretos dentro de cada una de los tipologías y, más tarde, entraremos en el mundo del Deep Learning.

martes, 12 de julio de 2016

DayF (Decisions at your Fingertips)


Modelado y Análisis de Flujos Dinámicos de Información. Necesidades y Demandas del Usuario.


El estado actual del arte y la proliferación de plataformas Data-Driven han generado una creciente necesidad de información para la toma de decisiones. Esto ha supuesto la aparición en escena de nuevos roles especializados necesarios para el proceso de predicción y simulación, como el Data Scientist pero, realmente ¿qué papel juega el Experto de Dominio?.

Sin duda este perfil es el más adecuado para realizar los modelados y la caracterización de los análisis pero, ¿es necesario adquirir las competencias de un científico de datos para que realice sus propios modelos?.  

Actualmente sí.

Aun cuando una organización pueda permitirse un departamento de Científicos de Datos el GAP existente entre la nueva necesidad, en un sistema dinámico Real Time, y el feedback asociado a dicha necesidad es inevitable.

Si, adicionalmente, le unimos un entorno cambiante y realimentado de forma dinámica, como pueden ser los sistemas de generación energética, los sistemas de abastecimiento, cadenas de producción en base a demanda o incluso la regulación automática de semáforos en base al tráfico, donde las decisiones automáticas tienen que ser fiables e incluir predicciones de comportamiento del sistema en los tramos y componentes vecinos, los sistemas de apoyo a la decisión son planteados como productos llave en mano, con unos costes de implantación, mantenimiento y evolución altos y recurrentes, o como características adicionales desarrolladas sobre productos de base, orientados a otras funciones, como los Scadas o los BI, soluciones que, por otro lado, nunca llegan a cubrir las expectativas.

Las cuestiones por tanto son:
  •          ¿Es posible realizar un producto para la toma de decisiones predictiva y automática partiendo de una topología de red, una caracterización de los elementos, una algorítmica adecuada y existente y unas series históricas de datos?
  •          ¿Es posible generar el producto de forma que sea user-friendly y con una curva de aprendizaje adecuada?
  •          ¿Es posible abstraer al usuario de la complejidad matemática de los modelos y meta-modelos?
  •          ¿Es posible modificar la topología, caracterización de los componentes o inclusión de nueva algorítmica y que el modelo simulado se reajuste automáticamente a su comportamiento óptimo en tiempo y forma?
Y una cuestión adicional: ¿es posible llevarlo a mercado en un modelo Open Source y sus variantes y tener acceso a la financiación necesaria para desarrollarlo?

Sin duda la siguiente evolución del Machine Learning y la cuarta revolución industrial tendrán que resolver estos aspectos.

En los próximos meses analizaremos esta problemática intentando dar solución, en forma de producto, a este comportamiento al que denominaremos data-flow-driven.


La iniciativa DayF (Decisions at your Fingertips) se pone en marcha.


domingo, 10 de julio de 2016

Once upon a Time ... 


“Hay 3 tipos de personas en el mundo: los inamovibles, los movibles y los que se mueven” 
Benjamin Franklin

Tras 6 años en la dirección de una organización se hace casi necesario dar el salto y empezar una nueva etapa profesional más enfocada en la tecnología y en el desarrollo de negocio desde la base, más cerca del barro, desde cero. 

Fiel a mis convicciones no creo en el negro, ni en el blanco, más bien en los grises, creo en las alternancias y el sentido común, y que para avanzar no siempre hay que subir, bajando muchas veces, consigues mas velocidad e impulso. 


Durante esta nueva etapa voy a centrarme en trasladar mi conocimiento a la creación de un producto innovador en modalidad Open Source, en las Áreas de Modelado de Sistemas Continuos y su adaptación al mundo Big Data & Analytics, intentando trasladar todo lo aprendido en estos años, el conocimiento del cliente, de los proyectos, sus problemas y sus soluciones y , sobre todo, de como hacer que la tecnología sea un medio real para progresar, al alcance de todos, para crear nuevos conocimientos y valor siendo capaces de explotar, en todo su potencial, estos avances.


Durante los próximos 6 meses y con la inestimable ayuda de la EOI, a través de su programa Go2Work, validaremos como es de fácil o difícil en España trasladar una idea innovadora (contrastando si realmente es una idea innovadora) a la realidad.

Durante este periodo realizaremos las siguientes validaciones y preparaciones para conseguir que la idea tenga acceso a las fuentes de financiación público/privadas necesarias en condiciones óptimas, tanto de definición y validación de  viabilidad del producto, como de Valor de Negocio. 


Validaremos hasta donde se puede llegar una idea partiendo de cero; cero personal, cero recursos económicos.



  • Estudio de Viabilidad el Producto
  • Definición de Mercado y estrategias de acceso al Mercado
  • Definición de la experiencia de Cliente y Usuario
  • Estrategia y Consecución de Alianzas
  • Definición, Estrategia y Adquisición de equipo
  • Plan de Marketing
  • Plan Financiero
  • Preparación de Papers y Presentaciones
  • Análisis de canales de financiación
  • Preparación para acceso a financiación.
  • Consitución de la Sociedad


Pero por supuesto esto no es lo más importante para este Blog, que se pretende llamar Tecnológico. Durante este periodo también tendremos que realizar demostraciones e investigaciones técnicas de forma que consigamos nuestros objetivos.  Serán muchas horas de trabajo y esfuerzo, muchos cabezazos pero también muchas alegrías que, partiendo de una visión e ideas generales, tendrán que ir profundizando en las técnicas y el stack tecnológico para definir, demostrar y validar los principios básicos de nuestro producto.

¿Merecerá la pena? Seguro...... y con vuestra ayuda más!