Previsão de sinal de caixa preta

7

Eu tenho uma caixa preta stateful com quatro entradas com valor real e uma saída com valor real. Meu problema é prever a saída a cada momento, dada a sequência de entradas vista até aquele momento. Durante uma fase de aprendizado, posso variar as entradas da maneira que desejar e observar a saída. Há um pouco de barulho, é claro, e a caixa preta não parece ser completamente determinística.

Especificamente, estou modelando um disco rígido e quero prever o tempo de acesso da última solicitação, considerando todas as solicitações anteriores. No entanto, quero uma abordagem de caixa preta, devido à complexidade de modelos explícitos e porque quero que isso funcione para outros dispositivos semelhantes, como SSDs.

Algumas pessoas sugeriram que o processamento do sinal pode ser apropriado para analisar as seqüências de valores de entrada e saída.

Há alguma idéia do processamento de sinal que possa me ajudar a prever a saída ou a caracterizar a entrada?

Adam Crume
fonte

Respostas:

2

Geralmente, para sistemas não lineares, não existem ferramentas com garantia de funcionamento. Você precisa saber algo sobre a natureza da caixa. Se você pode modelá-lo com um sistema com parâmetros desconhecidos, "aprender" observando os relacionamentos de entrada e saída pode ajudá-lo a estimar esses parâmetros, mas duvido que você possa "aprender" cegamente o modelo do sistema, especialmente se ele tiver memória / estados. Dito isto, um método mais ou menos genérico de estimar sistemas não lineares até um grau polinomial está usando os kernels Volterra com algum tipo de método de descida de gradiente para minimizar o erro recursivo . Métodos como LMS e RLS são amplamente utilizados.

Os kernels Volterra ajudam a estimar um sistema da forma

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

Uma maneira de observar o sistema a seguir é notar sua semelhança com a convolução com a adição de termos não lineares emx. Observe, no entanto, que se a não linearidade do seu sistema não puder ser modelada com um polinômio (exponencial, logarítmico e muitas outras funções), isso exigirá complexidade infinita para estimar seu sistema corretamente.

Não há muitos artigos sobre o tópico disponíveis on-line gratuitamente, mas você pode ver este e este para ter uma idéia do que se trata.

Phonon
fonte
Isso é certamente interessante, mas eu tenho um vetor de entrada a cada etapa do tempo, e isso parece funcionar apenas com escalares.
Adam Crume
Tenho certeza que você pode encontrar uma representação em espaço de estado da equação acima. Isso lidará com várias entradas com bastante facilidade.
Phonon
Depois de olhar por um tempo, acho que fiz algo semelhante. Eu construí um polinômio a partir de x1 (t), x2 (t), ..., x1 (t-1), x2 (t-1), ... e tentei aprender os coeficientes usando a descida gradiente. O problema é que apenas uma ordem de quatro polinômios, olhando para trás em duas etapas, requer algo como mil parâmetros.
precisa saber é o seguinte
@AdamCrume Indeed. Esses problemas são muito exigentes em termos de computação e muitos trabalhos publicados sobre esse assunto realmente tratam da otimização de algoritmos, e sim de novas maneiras de abordar os problemas.
Phonon
1

Se sua caixa é (principalmente) linear, esse é um problema muito simples, se é principalmente não linear que pode ser arbitrariamente complicado. Se assumirmos linearidade, a simples superposição vale. Você pode medir a função de transferência de cada entrada para a saída (enquanto as outras entradas são zero) e depois calcular a saída como a soma das respostas individuais da entrada. No domínio da frequência, escreveríamos

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

onde Y (w) é o espectro de saída, Xn é o espectro de entrada da entrada "n" e Hn a função de transferência da entrada "n" para a saída. No domínio do tempo, seria

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

onde '**' é o operador de convolução, y (t) é o seu sinal de saída, xn (t) os sinais de entrada e hn (t) as respostas de impulso da entrada n à saída. As duas equações são basicamente as transformadas de Fourier uma da outra.

Hilmar
fonte
Infelizmente, não é linear.
Adam Crume