I hope this is the right section here.
Suppose there’s a simple chain of transfer functions which originate from an electrical system. I try to match an output curve to be as close to a target as possible. I’ll try to depict the system below.
The input signal is some physical quantity q, given in floating point representation in a Microcontroller. That quantity shall be transformed into a voltage v, using a digital analog converter (DAC) and an electrical circuit to amplify and shift the output levels. I also have a target value, i.e. an expected output value at a given input value. There is only one place in the µC where I can adjust parameters of a function to alter the output according to my needs.
Here is the chain of signals:
q → f(q, \theta) → g(...) → h(...) → v
q is the input signal, f is a polynomial function f=\theta_0+\theta_1q+\ldots, with adjustable parameter vector \theta. g is the transfer function of the DAC, which is mostly linear but saturates at the large and small inputs. h is the transfer function of the amplifier circuit, also mostly linear. I do not have exact information about g and h and I don’t want to model them explicitly.
I’m searching for optimal parameters \hat{\theta}, that minimize the MSE for a given input/output sequence.
This sounds like a simple calibration/optimization problem, but the key issue is that some default values for \theta are used to create measurements.
The process is:
- set \theta to some known default values \theta_\text{initial}
- set q
- measure v, which includes all the effects of f,g,h
- find an improved set of parameters \hat{\theta} that minimize the error of the whole chain ||h(g(f(q,\theta)))-v_t|| where v_t is the expected target for a given input q
Usually, I would just go with a linear or nonlinear optimization, but I’m unable to create my objective function, because I don’t know how to model the improval of a given parameter set. It’s like a chicken-egg problem, because the values I measure result from a default parameter set. And I don’t have insight into g and h, either. I was trying to split the problem or to calculate back from v to f by estimating inverse functions based on data I have but that was not successful. Therefore, I’d like to make a step back and discuss the problem with you, maybe I’m missing something very simple.
Summary:
Given:
- \theta_\text{initial}
- a list of tuples of training data (q, v_t, h(g(f(q,\theta_\text{initial})))), but no functional relationship of g,h, just the measured data
Searched:
- \hat{\theta}, an optimized version that minimizes the error of my training data
Is this a recursive problem? Can it be solved at all with the given data and information? I have a hard time to properly write down an objective function.
Thank you so much!