2-Sphere, un diseño de IA con aprendizaje por cálculo predictivo

27 01 2011

p { margin-bottom: 0.21cm; }

Hola!!! He diseñado un proceso de cálculo predictivo denominado (módulo “2-Sphere”) y que representa un gran avance para el incremento de calidad y previsión sobre los datos de procesos/evaluaciones de grandes cantidades de datos.
Es ágil, veloz, consume pocos recursos, etc… y todo esto no es porque haya sido ideado por mí, jejeje, … es porque simplemente es así.
; )
Hay pruebas tangibles de su funcionamiento y se ha implantado/integrado por ejemplo en mi trabajo actual (Basilea II / implantación global del riesgo, evaluación de empresas, créditos, capital, etc… ) y ha resultado un gran éxito. Alertas sobre los datos, muy sensibles y a una gran velocidad de respuesta!
Paso a detallaros los conceptos teóricos de este avance estadístico, basado en una labor de unificar acciones de inteligencia artificial y sistemas expertos.

El foco de estudio será cualquier variable numérica que pertenezca a un origen de generación evolutivo, supuestamente con origen de alguna función temporal.


1.-  BASE TEÓRICA DEL ANALISTA EXPERTO 2-SPHERE. 

Justo al finalizar cualquier proceso de cálculo sería interesante poder validar la cuantía de cambio producida contra la función teórica ajustada con toda la historia “memorizada” de la variable estudiada.

Con este punto implementado en cualquier sistema informático/estadístico/de control, se podrán añadir las validaciones de cambios bruscos, o de masa que sean necesarias y/o deseadas.

El núcleo de cálculo para predecir la evolución de una variable dada se ha denominado núcleo 2-Sphere, por su funcionalidad de un doble entorno/disco a la hora de aplicarse.
En base a si se cumplen o no las reglas/predicciones anclaremos las medidas de alerta necesarias. En la implantación que he realizado se ha generado alertas vía mail y estadísticas según la gravedad del asunto.


Las predicciones se resumen en el uso de dos “esferas/anillos” concéntricas (2-Sphere), donde se englobarían los valores más o menos aceptados. En caso de no caer el valor en la zona esperada saltarían las alertas deseadas.
Zonas o casos:
  1. Un anillo interior o de nivel 1 (local) representa el margen más correcto de datos esperados.
  1. Un anillo secundario o de nivel 2(global) representa el margen aceptable de datos esperados.
  1. Fuera de los dos anillos se considerarán datos no esperados.
Por lo tanto, consideraremos tres niveles de alertas:
  • Un nivel de alerta bajo o nulo: caerán la mayoría de casos con menos criticidad (por ejemplo, modelos especificados con mailing de estadisticas descriptivas, etc…)
  • Un nivel de alerta medio (por ejemplo, sobrepasar anillo-1 … )
  • Un nivel de alerta alto: caerán menos casos pero los de más criticidad (por ejemplo, sobrepasar anillo-2 … )
Explicación gráfica de su uso.
El núcleo predictivo calcula un entorno local, en cuyo caso de no cumplirse podríamos alertar con un nivel medio.

El mismo proceso nos devuelve también un entorno global de aceptación, en cuyo caso de no cumplirse podríamos alertar con un nivel alto de alerta.

Se puede pensar también en incluir un nivel-bajo de alerta, donde podrían saltar estadísticas varias, media, moda, cuartiles, etc… dependiendo del modelo, tipologías varias, etc… para estos casos, habría que revisar la incorporación y viabilidad de algún entorno de validaciones poblacionales.
Adjunto un ejemplo real de la evolución de las esferas para una variable en el tiempo:

Como se puede observar,  con el tiempo, la situación tiende a estabilizarse, y se asumen ciertos cambios en la tendencia de la curva de la función que dirige la variable de estudio.

Tambien podemos observar como, en base a estos cambios (aceptados) las esferas van aumentando de grosor, ampliando el rango de valores adecuados.

En resumidas cuentas el núcleo predictivo se podría especificar como una base de datos de conocimiento y un módulo de cálculo predictivo que hace uso de esa base de datos de conocimiento y de los valores nuevos para finalmente generar resultados/alertas y actualizar la base de datos de conocimiento.
Es como un “autómata” que entrenamos para que “aprenda” y después reconozca extraños comportamientos en variables y así nos diga si pasa o no algo raro en alguna variable de algún cálculo dado. 


También se puede incluir la posibilidad de manipular los datos de la BBDD de forma supervisada, mediante transaccionales por ejemplo. Mínimo serán necesarios unos mecanismos de rollback de 1 a N estados atrás (queda concretar la profundidad de dicha restauración, solo limitado por los recursos).

Algo así como unos procesos de supervisión para los 3 casos de alerta GRAVE que se nos puedan dar:


Caso 1) – el modelo matemático en el que se basa una variable ha cambiado radicalmente. ACCION: “reseteo” de la memoria para esa variable y los casos que estén impactados.

Caso 2) – Solo algunos casos responden a alguna medida de cambio GRAVE. No tenemos más información para poder conocer si es ERROR o no de toma de datos. ACCION: se sigue adelante.

Caso 3) – Hay casos de ERROR de toma de datos o de proceso. ACCIÓN: se anula el último aprendizaje de los casos afectados.


El diagrama E-R de la BBDD de conocimiento para 2-Sphere es el siguiente:

De este modo, podríamos considerar la entidad(tabla) de conocimiento como un cubo 3D (OLAP) donde el alto y ancho se definen como una malla de variables por persona y el largo serían las versiones de referencia, y la más cercana siempre se considerará como la última válida.

 

Así, de forma supervisada podremos volver a una situación previa en la base de datos de conocimiento (por ejemplo, en un supuesto mal uso de algun ratio o variable, etc…) eliminando versiones “sucias” por errores de datos, etc…(tal y como hemos comentado anteriormente).
Para habilitar esta posibilidad será necesario un transaccional (o servicio alternativo) que facilite trabajar con la BBDD de conocimiento directamente.
Añadido a esta necesidad está la posibilidad de incluir consultas y mantenimiento de dicha tabla via este mismo transaccional/pantalla.
2.-  BASE PRÁCTICA DEL ANALISTA EXPERTO 2-SPHERE. 

Sea x la clave de trabajo identificada con los siguientes valores:
–          modelo, nos determina el cubo OLAP de la BBDD de conocimiento
–          fecha de referencia, nos determina la malla dentro de un cubo dado
–          persona, nos determina la fila dentro de una malla
–          variable/parámetro, nos determina la columna dentro de una malla
Y sea f(x) la función que sea aplicada a los valores de una variable x.  
Con este sistema y el software adecuado, en base a un nuevo valor f(xi) de entrada para una clave de trabajo determinada, obtendremos como salida si pertenece a la esfera interior (1), a la esfera exterior (2) o a ninguna (0).

Por ejemplo,
Si procesamos esta serie:

Y tenemos a evaluar el nuevo valor i=7, con F(7) = 8
¿Como de bueno es este valor para nuestro sistema?
Para este tipo de cuestiones nos será de gran utilidad este sistema de predicción.
Recordemos que, para un modelo particular, solo necesitamos la última malla 2D del cubo, lo más reciente.
Esto nos deja un campo de trabajo más reducido, con lo que los recursos y tiempos empleados en la predicción serán menores.
Las 2 esferas de predicción a calcular se definen con 4 valores-marco, las cotas inferiores y superiores marcadas en rojo en el siguiente dibujo.

 
Se denominan MIN_GRAVE, MAX_GRAVE, MIN_leve y MAX_leve.


 

Cada una de estas cotas se calculan únicamente en base a 5 elementos, el máximo y mínimo global de la muestra, el valor predicho por la tangente “impulsada”, y los valores máximo y mínimo locales calculados en base a la desviación estándar con respecto a la media aritmética de la muestra.

Estos 5 valores conforman el núcleo predictivo y para poder calcularlos son necesarios estos cálculos previos para cada previsión.

Estos 2 factores son de índole descriptiva, es decir, se basan en parámetros de estadística descriptiva como son la media y la desviación típica/estándar de la muestra. Como nuestro objetivo es que la predicción sea rápida y eficiente, será necesario trabajar con el menor número de recursos posible, solo una malla, de modo que para calcular la media de los valores y el desvío estándar, no tenemos disponible toda la muestra, iremos reevaluando dichos cálculos en cada iteración.

Usaremos la media de valores o esperanza.
p { margin-bottom: 0.21cm; }
p { margin-bottom: 0.21cm; }
me = 1/n * ∑ ( x) = E(x)    (1)

También usaremos la desviación estándar (б), para toda una muestra se define así:

(2)

O lo que es lo mismo, la raiz cuadrada de la varianza muestral (S2).

(3)

Esta expresión no podríamos reevaluarla de forma iterativa sin tener en mano toda la muestra previamente. Para salvar este obstáculo, suplantamos la sumatoria de desviaciones por una diferencia de sumatorias, de este modo:
Partiendo de la definición (3)
S2 = 1/n * ∑ ( x – me )2
S2 = 1/n * ∑ ( x2 + me 2 – 2 x me )
Aplicamos la sumatoria y la división a los elementos y nos queda,
S2 = 1/n * ( ( x2) + n*me 2 – 2 * ( x )* me )
S2 = ( 1/n *∑ ( x2) ) + n*me 2 – 2 * ( 1/n *∑ ( x) ) * me
Teniendo en cuenta la definición de la esperanza (1), simplificamos la notación
S2 = E( x2) + me 2 – 2 * E( x )*me
S2 = E( x2) + me 2 – 2 * me * me
S2 = E( x2) + me 2– 2*me2
Finalmente nos queda la expresión de la varianza así,
S2 = E( x2) – me 2
Y finalmente tendremos la desviación típica, aplicando (2) p { margin-bottom: 0.21cm; }
б = S2

Como se puede ver, con sólo tener la suma total de cuadrados, la suma total de valores y el conteo de casos tratados podemos calcular la media y desviación de la muestra.

Estos 2 factores se definen como el rango de valores aceptados de la muestra. Esto es, el marco o entorno de valores recibidos hasta el momento.

Solo nos será necesario tener el máximo (M) y mínimo (m) de los valores recibidos.
M = MAX (yi)
m = min (yi)

El último componente del núcleo predictivo es el valor de predicción, basado en una función de ajuste lineal usando tangentes y un factor de impulso histórico (β), el cual se decrementa en cada paso para de este modo simbolizar el efecto global de todos los valores de la muestra como una combinación de los mismos, donde los valores más antigüos “impulsarán” menos la estimación que los valores más actuales.

La ecuación generalmente usada para la línea recta es (1)
y = m*x + b
donde el valor Y dependiente es función de los valores X independientes. Los valores m son coeficientes (pendiente)que corresponden a cada valor X, y b es un valor constante (intercepción y).
Pendiente (m):
la pendiente de una línea, frecuentemente indicada por m, se calcula con dos puntos de la línea,
(x1, y1) y (x2, y2).
quedando definida así m = (y2y1)/( x2x1) = Δy / Δx
Intercepción Y (b):
La intercepción Y de una línea, frecuentemente indicada por b, es el valor de Y en el punto en que la línea cruza el eje X. Para nuestro problema, podemos resumir el punto de anclaje como el último recibido en la muestra,
b = y1 (2)
Así que si Interpretamos (1), simplificando con las definiciones (2)
y = m*x + b
y = ( Δy / Δx ) * Δx + y1 (3)
y = Δy + y1
En nuestro estimador, la pendiente m la vamos a “impulsar”, como decíamos, con un factor generalizado para reproducir el efecto global de todos los elementos de la muestra.
El último impulso es precisamente la pendiente m y la denotamos como Δy
Y al añadido histórico de los “impulsos” previos como β
desde (3) finalmente nos quedaría entonces algo así
y2 = ( Δy + β ) * Δx + y1
El añadido de “impulso” (β) representa un desvío en la coordenada y provocado por el efecto global acumulado de todos los cambios de pendiente anteriores.
β 1 = 0
β 2 = ( (Δy 2Δy 1 ) * 1 + β 1 * 1 ) / 2 = ( (Δy 2Δy 1 ) * 1 + 0 ) / 2
β 3 = ( (Δy 3 Δy 2 ) * 2 + β 2 * 2 ) / 3 = ( (Δy 2Δy 1 ) * 2 + (Δy 2Δy 1 ) * 1 + 0) / 3
.
β n = ∑ ((Δy i Δy i-1 ) * (i-1)) / ∑ (i)
Finalmente, el valor estimado con nuestro núcleo será el ajustado por esta curva:
P = (Δy+β)*Δx + y1


La
esfera interior (nivel-1) podemos calcularla con la siguiente formulación:

[ me – б , me + б ]
Indicar que si se permiten valores muy irregulares en la muestra, esta media me y desviación б no serán representativas y por lo tanto el anillo-1 no será eficiente para la estimación.

La esfera exterior (nivel-2) quedará definida con esta formulación:

[ minimo ( me – б ; me + б ; M ; m ; P ) , máximo ( me – б ; me + б ; M ; m ; P ) ]
Indicar, al igual que con la media, que si se permiten valores muy irregulares en la muestra, los valores de M y m no serán representativos y por lo tanto el anillo-2 no será útil para la estimación.
También se verá afectada la estimación P si hay valores irregulares en la muestra, ya que “impulsarán” de forma indebida su valoración.
Con el sistema implantado y funcionando, la respuesta a la pregunta que planteábamos al principio del diseño,
Si procesamos esta serie:

el nuevo valor i=7, con F(7) = 8 ¿Como de bueno es este valor para nuestro sistema? “
Con el sistema alimentado con dicha serie, tendríamos este modelo predictivo,


MIN GRAVE
MAX GRAVE
MIN leve MAX leve
0,000000
6,000000
0,792175
4,207825


Por lo tanto, el valor de 8 no entraría ni en la esfera-1 ni en la 2, y debería saltar alguna alerta de gravedad alta.

Resumiendo, el diseño del sistema comprende estos dos elementos:
  1. Núcleo de predicción.
  1. BBDD. de conocimiento.
Los requerimientos para cada elemento se enumaran así:
Cualquier programa de estimación/validación necesitará informar al módulo de predicción (módulo ambivalente por defecto):
– la clave de acceso a la BBDD. de conocimiento
–          modelo, nos determina el cubo OLAP de la BBDD de conocimiento
–          fecha de referencia, nos determina la malla dentro de un cubo dado
–          persona, nos determina la fila dentro de una malla
–          variable/parámetro, nos determina la columna dentro de una malla
     –           el valor a evaluar
Se generará a la salida el mismo registro de entrada pero con la esfera de pertenencia (1,2,0), y anexo un nuevo registro para almacenar en la BBDD de conocimiento. Por defecto, se establece que cada valor chequeado ha entrado o se ha usado en una evaluación de rating y por ello se considerará válido para la adaptación. Para eliminar posibles casos irregulares de cambio se deberá habilitar un transaccional o mecanismo de rollback de determinadas celdas deseadas de la malla.
Internamente, el núcleo de predicción seguirá estos pasos:
–          Accederá a la BBDD de conocimiento por clave (modelo, fecha, persona, variable)
–          Recuperará los valores de los marcos/esferas (max_local, min_local, MAX, MIN)
–          Teniendo como referencia el nuevo valor a validar (x2, y2) y la situación de la malla anterior, realizará la asignación de esfera.
–          Actualizará valores de la celda en la malla de conocimiento en base al nuevo valor ( x2, y2, suma_total, num_elementos, suma_total_cuadrados, beta_β, MAX, MIN )
–          Devolverá la asignación y el nuevo registro con las nuevos estadísticos de esa clave.
La BBDD de conocimiento podemos comenzar a trabajar con ficheros generacionales (GDG) que mantengan la estructura necesaria para posteriormente, cuando tengamos la tabla y relaciones necesarias creadas, implantar las cargas y descargas de las mismas para tener finalmente todo enlazado.
Hasta que no se tenga la BBDD de conocimiento en DB2 no podremos montar aplicaciones transaccionales de consulta/mantenimiento (inserts, updates, hacer backups o rollbacks de items, etc… )
Sean ficheros o tablas, la estructura necesaria es la siguiente:
–          modelo, nos determina el cubo en la BBDD de conocimiento
–          fecha de referencia, nos determina la malla dentro de un cubo dado
–          persona, nos determina la fila dentro de una malla
–          variable/parámetro,  nos determina la columna dentro de una malla
–          x2 , ultima fecha recibida
–          y2 , ultimo valor recibido
–          suma_total, suma de todos los valores recibidos
–          num_elementos,  numero de items recibidos
–          suma_total_cuadrados , suma de todos los valores recibidos al cuadrado
–          beta_β, impulso hasta el momento
Para resumir, finalmente este sistema nos permite tener una visión muy rápida y sensible de como ha ido el proceso. 

IMPORTANTE: no olvidar que aun siendo un sistema inteligente con auto-aprendizaje, etc… merece la pena una supervisión periódica para indicarle si está bien o no su evaluación, es algo así como darle o no un caramelo por lo bien que lo ha hecho, reconducirlo a la forma correcta de evaluación. Si no, podemos encontrarnos con que el sistema se ha desfasado perdiendo su eficiacia.



Alé.


Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: