Predicción de señal de caja negra

7

Tengo una caja negra con estado con cuatro entradas de valor real y una salida de valor real. Mi problema es predecir la salida en cada momento, dada la secuencia de entradas vistas hasta ese punto. Durante una fase de aprendizaje, puedo variar las entradas como quiera y observar la salida. Hay un poco de ruido, por supuesto, y la caja negra no parece ser completamente determinista.

Específicamente, estoy modelando un disco duro, y quiero predecir el tiempo de acceso de la última solicitud dada todas las solicitudes anteriores. Sin embargo, quiero un enfoque más de caja negra, debido a la complejidad de los modelos explícitos, y porque quiero que funcione para otros dispositivos similares, como los SSD.

Un par de personas han sugerido que el procesamiento de la señal podría ser apropiado para analizar las secuencias de los valores de entrada y salida.

¿Hay alguna idea del procesamiento de señales que pueda ayudarme a predecir la salida o caracterizar la entrada?

Adam Crume
fuente

Respuestas:

2

En general, para los sistemas no lineales no hay herramientas que garanticen su funcionamiento. Necesita saber algo sobre la naturaleza de la caja. Si puede modelarlo con un sistema con parámetros desconocidos, el "aprendizaje" al observar las relaciones de entrada-salida puede ayudarlo a estimar esos parámetros, pero dudo que pueda "aprender" ciegamente el modelo del sistema, especialmente si tiene memoria / estados. Dicho esto, un método más o menos genérico para estimar sistemas no lineales hasta un grado polinomial es usar núcleos Volterra con algún tipo de método de descenso de gradiente para minimizar el error recursivo . Métodos como LMS y RLS son ampliamente utilizados.

Los núcleos de Volterra lo ayudan a estimar un sistema de la forma

y(t)=k0+n=1kn(t1,t2,,tn)x(tt1)x(tt2)x(ttn)dt1dt2dtn

Una forma de ver el siguiente sistema es notar su similitud con la convolución con la adición de términos no lineales en . Sin embargo, tenga en cuenta que si la no linealidad de su sistema no se puede modelar con un polinomio (exponencial, logarítmico y muchas otras funciones), esto requerirá una complejidad infinita para estimar su sistema correctamente.x

No hay muchos documentos sobre el tema disponibles en línea de forma gratuita, pero puede consultar este y este para tener una idea de lo que se trata.

Phonon
fuente
Eso es ciertamente interesante, pero tengo un vector de entrada en cada paso de tiempo, y parece que solo funciona con escalares.
Adam Crume
Estoy seguro de que puedes encontrar una representación en el espacio de estado de la ecuación anterior. Eso tratará con múltiples entradas con bastante facilidad.
Phonon
Después de mirarlo por un tiempo, creo que hice algo similar. Construí un polinomio a partir de x1 (t), x2 (t), ..., x1 (t-1), x2 (t-1), ... y traté de aprender los coeficientes usando el gradiente de descenso. El problema es que solo un orden de cuatro polinomios mirando hacia atrás dos pasos de tiempo requiere algo así como mil parámetros.
Adam Crume
@AdamCrume De hecho. Estos problemas son muy exigentes desde el punto de vista computacional y muchos artículos publicados sobre este tema en realidad tratan de la optimización de algoritmos en lugar de nuevas formas de abordar los problemas.
Phonon
1

Si su caja es (en su mayoría) lineal, ese es un problema muy simple, si es principalmente no lineal, puede complicarse arbitrariamente. Si suponemos linealidad, entonces se mantiene la superposición simple. Puede medir la función de transferencia de cada entrada a la salida (mientras que las otras entradas son cero) y luego calcular la salida como la suma de las respuestas de entrada individuales. En el dominio de frecuencia escribiríamos

Y(w) = X1(w)*H1(w) + X2(w)*H2(w) + X3(w)*H3(w) + X4(w)*H4(w); 

donde Y (w) es el espectro de salida, Xn es el espectro de entrada para la entrada "n" y Hn la función de transferencia desde la entrada "n" a la salida. En el dominio del tiempo sería

y(t) = x1(t)**h1(t) +  ... + x4(t)**h4(t);

donde '**' es el operador de convolución, y (t) es su señal de salida, xn (t) las señales de entrada y hn (t) las respuestas de impulso de la entrada n a la salida. Las dos ecuaciones son básicamente las transformadas de Fourier entre sí.

Hilmar
fuente
Lamentablemente, no es lineal.
Adam Crume