Could someone here enlighten me what a nonlinear system in this context is, or rather what it is not?
What I mean is: If I give you an arbitrary black box that computes outputs based on inputs I could make it arbitrarily hard to find any relationship whatsoever between input and output. Say I take the input, an internal hidden variable of some kilobytes and return some hash of the two. There's (nearly) certainly no way to learn anything meaningful about my internal variable by just observing input and output. So what's the limitation in the context of this paper? Differentiable functions?
The term nonlinear system here must be understood from the point of view of control engineering.
In control theory, a system is usually described in a white-box manner by a differential equation and an observation equation:
dx/dt = f(x, u, t)
y = h(x, u, t)
x is a vector of the so called state-variables, while y is the output vectors which usually represents what we can measure about the system, u is a function which represents the inputs to the system, and t is the time.
A very useful and simple modeling tool is that of linear time-invariant systems (LTI), where the above equations are specifically
dx/dt = Ax+Bu
y = Cx+Du
where (A,B,C,D) are matrices. Every bit of theory is known about LTI systems: how to control them, global properties, etc.
Nonlinear systems are, loosely speaking, dynamical systems which are not linear in the above sense. Depending on the specific nonlinear system form, much less can be said than the linear system case.
sha256sum is not a continuous function. These functions should be continuous.
Usually there are light restrictions on these functions to avoid what you are trying to do. Lyapunov bounded, C2 continuous, ...
Control engineers could use a piecewise approximation of an observer or controller, or use non-linear methods (like reinforcement learning, model predictive control, LQR, ...)
...nothing? Why makes you think they should be able to say anything?
I'm so perplexed by your question... you seem already quite familiar with ordinary differential equations and state-space models... which are concerned with the observability of continuous-time models, right? And yet you pose a counterexample using a cryptographic hash function, which is a (very!) discrete function, and one that is specifically designed to be unobservable? Isn't that even more jarring than asking physicists to predict human life expectancy from the Standard Model? What makes you think the answer might be anything other than "no prediction"...?
I did not expect a positive answer here. I wanted to know what the implicit constraints are so I chose an example that was obviously impossible.
I worked across domains for a while (CS, simulation, mathematics) and one thing that was really problematic was that people from one domain used a lot of implicit constraints that the other partners weren't aware of. This then led to incorrect software and weird simulation results.
Sometimes someone asks a question in earnest. They really don’t know, and want to know more. They aren’t trying to score points or win a debate or strike a rhetorical victory.
I had just the same question as the commenter. I just don’t know much about this topic, and think that this question and its answers really helped my understanding.
I think you might also be confused about the difference between system identification and observability.
The problem of constructing a model of a system's dynamics is system identification [0].
A state observer [1] tries to determine the internal state of the system given measurements of a system's inputs outputs and a model of its dynamics. The system is observable [2] if the state observer can fully reconstruct the internal state. One motivation for checking whether a system is observable is to determine whether a given combination of sensors (corresponding to a particular set of outputs) is sufficient to for the internal state to be determined, or whether more should be added.
The state observer of a process is another dynamical system whose inputs are the process input and process output, and whose output is an estimate of the process' internal state; if the system is observable, then this estimate converges to the true state over time. This whole formalism doesn't really apply to something like your example, which has no dynamics.
If you have the code for the hash function in your example, then determining the values that its internal variables take for an arbitrary input is trivial; if you don't then it is very difficult. In either case, your problem is different to the problem of observabilty in control theory.
Observability is interested in asking if you, as an external observer, are given a set of inputs and measurements are you able to recover the initial state of the system?
While identiability typically is just a person running an experiment and saying "hey look these state values are unable to be recovered / estimated when I ran the algorithm". This is why I never understood why this analysis was very helpful as it isn't very useful outside of the specific experiment / motion / inputs used.
For example from [1] has these reasonably straightforward definitions.
Observability is a structural property of a control system dened as the possibility to deduce the state of the system from observing its input-output behaviour
Identiability is the possibility to identify the parameters of a control system from its input-output behaviour.
Parameter identiability is a special case of the observability problem.
Yes: both observability and parameter identifiability assume knowledge of the model structure; system identification includes methods for choosing a model structure for a black-box system.
> This is why I never understood why this analysis was very helpful
If a system is not identifiable/observable, there may be multiple values for the parameters/state (respectively) that are consistent with observations; if you try to infer these without checking for identifiability/observability, you may obtain values that are consistent with observations but very different to the true values, which can result in serious errors when you try to do something using them.
> it isn't very useful outside of the specific experiment / motion / inputs used
There are cases where some parameters cannot be identified regardless of what inputs are provided to the system. For example, when you write down the differential equations governing the system in a particular way, you might see that two parameters (k1 and k2) always appear together as a product (k1 * k2), never independently - so their individual values are not identifiable, though (k1 * k2) is; this could be fixed by re-parametrising, by replacing k1 * k2 by k3.
Also, some parameters have very little effect on the behaviour of a system, so are weakly constrained by observations ("sloppiness"), whilst others are more tightly constrained - it can useful to know which are which.
Sibling comment is very helpful in terms of what linear is. In terms of the abstract, your system isn't "observable" as even with all the inputs and outputs in a given time period, and knowledge of the hash functions, you still won't be able to work out the internal state. If you had all the inputs since it started you could (assuming it was deterministic and so on) but thats "less observable" in some sense as you need potentially unbounded information. While linear systems are tractable, some nonlinear systems could be tractable too. Software is interesting from this point of view as while its clearly nonlinear, we can create mechanisms to expose otherwise hidden internal state and to control it, although there is generally such a large number of internal states that this is difficult.
I don't really agree - the xkcd cartoon is about physicists naively going from real-world phenomena to mathematical models, without understanding what is important or already known about the problem domain.
In his case, a physicist is looking at a problem that already has a standard mathematical formalism in control theory, and is suggesting new theoretical approaches to apply to it that he claims provides additional insights.
And, whereas in the cartoon the physicist says, "why does <your field> need a whole journal, anyway", the author of this monograph publishes in existing control theory journals (e.g., [1] in IEEE Transactions on Automatic Control).
I made the remark based on "Its natural audience would be control theorists, but they may find the level of abstraction very challenging" which sounds a bit condescending even if true.
Agreed, but note (afaik) group theory is not usually applied in Control Theory, so it does seem it would be a challenge to someone in the field (maybe just a helpful disclaimer).
From a quick skim, it certainly looks like advanced mathematics is at use, but control theorists that deal with nonlinear systems have been using this kind of formalism already. Lie groups are even used in robotics to write down kinematics of serial chains.
I would counter that a minority of control engineers are using Lie groups and that a lot of people who have got by with linear methods so far might end up needing the conclusions in this book.
One of the key publications related to the book, "Nonlinear Unknown Input Observability: Extension of the Observability Rank Condition" (IEEE paywall):
Lie groups were well understood for estimation problems, which also are very concerned with observability. In fact, applying standard control theory 'through' an observable system is no giant achievement.
In 2010-2015 a hit topic was 'consistency' which was shown to be related to observability by using something that seems to be quite similar (based on keyword matching alone).
Roumeliotis and Gao did a lot of work here. It's old news. I'm surprised it didn't translate back to control theory, but it probably did.
The writing of the abstract actually treats observability in that context, with monocular cameras on drones and all that. And it wouldn't suprise me if there was a little bit of XKCD factor going on. https://xkcd.com/793. I mean, 'developed by the author' might be a bit strong.
But I haven't read the article yet so those are first impressions.
My understanding is is that group invariance is just another perspective to look at the original non-linear system transformations as compared to the more traditional "on-manifold".
Really it seems like an easier way to derive a system which the observable properties of the system are well defined as compared to worrying about ensuring observability (and unobservability) properties hold through the non-linear linearization process.
There are quite a few groups that use "invariant filters" in robotics (eg [1]), but I always wonder if this could not be addressed through more traditional means (i.e. designing a better state representations or correcting gains in unobservable directions).
Roumeliotis is referring to Stergios [2] or another scholar? Could you provide full names?
Considering that probably the entire HN community has never even heard about control theory before, let alone have the background to understand the abstract of the book, how did this submission receive almost 100 points? Do fancy-looking titles get the most attention?
Same with any math-heavy submission. Do the submitters really expect the average DevOps person, which probably makes up something like 90% of HN, be able to understand and comment on such advanced subjects?
These are legitimate questions and by no means do I intend to foster a gatekeeping mentality.
It really only takes a couple-few math wizards seeing a thing to vote it onto the front page for a bit, where other math wizards have a good chance of seeing it and upvoting it further. Notice that 100 upvotes only requires 100 wizards amongst the HN population.
I also agree with others that the assumptions about 'mostly devops' may well be very wrong. Control theory should be at least somewhat familiar to anyone who's worked in robotics and/or aviation, as well. A whoooole lot of people dabble in robotics during undergrad, and many older software engineers get into drones (like the author of the monograph!) or flying.
You are making heavy assumptions on the composition and math literacy of the HN community, the idea of people not upvoting things they don't fully understand and the difficulty of control theory.
I've had this stuff in uni, forgot most of it, and re-learned it during my current studies via thinking about optimization of neural networks and I think both our understanding of things and pedagogy are improving to the point that it's not unreasonable to expect tech-interested recent high school grads to have an intuition, if not a formal understanding of control theory.
3B1B might be the most "to blame" for this, but also just the proliferation of tutorials, making etc. PID controllers are not very complicated, people dig into robotics on their own and find PID might not be enough
=> voila, they self teach observability, controllability, lie algebras etc.
I'm a control theorist with an engineering physics background and although I don't have a strong foundation in manifolds and Lie groups, it's a subject I've been interested in for other reasons. A book that looks to apply one to the other, in pursuit of a challenging yet practical controls problem, might be both a fascinating read in and of itself, and a useful introduction to the topic aimed at someone with my background. I'm considering buying the book and I upvoted in part because I'm curious to see what further discussion is fostered on this subject.
31 comments
[ 3.6 ms ] story [ 81.3 ms ] threadWhat I mean is: If I give you an arbitrary black box that computes outputs based on inputs I could make it arbitrarily hard to find any relationship whatsoever between input and output. Say I take the input, an internal hidden variable of some kilobytes and return some hash of the two. There's (nearly) certainly no way to learn anything meaningful about my internal variable by just observing input and output. So what's the limitation in the context of this paper? Differentiable functions?
y = h(x, u, t)
x is a vector of the so called state-variables, while y is the output vectors which usually represents what we can measure about the system, u is a function which represents the inputs to the system, and t is the time.
A very useful and simple modeling tool is that of linear time-invariant systems (LTI), where the above equations are specifically
dx/dt = Ax+Bu
y = Cx+Du
where (A,B,C,D) are matrices. Every bit of theory is known about LTI systems: how to control them, global properties, etc. Nonlinear systems are, loosely speaking, dynamical systems which are not linear in the above sense. Depending on the specific nonlinear system form, much less can be said than the linear system case.
So in my example, if x was a (largish) time constant integer (f(x,u,t) = 0) and the observation function was
h(x,u,t) = sha256sum(x,u)
What could a control theorist tell about that (nonlinear) system?
Usually there are light restrictions on these functions to avoid what you are trying to do. Lyapunov bounded, C2 continuous, ...
Control engineers could use a piecewise approximation of an observer or controller, or use non-linear methods (like reinforcement learning, model predictive control, LQR, ...)
I'm so perplexed by your question... you seem already quite familiar with ordinary differential equations and state-space models... which are concerned with the observability of continuous-time models, right? And yet you pose a counterexample using a cryptographic hash function, which is a (very!) discrete function, and one that is specifically designed to be unobservable? Isn't that even more jarring than asking physicists to predict human life expectancy from the Standard Model? What makes you think the answer might be anything other than "no prediction"...?
I worked across domains for a while (CS, simulation, mathematics) and one thing that was really problematic was that people from one domain used a lot of implicit constraints that the other partners weren't aware of. This then led to incorrect software and weird simulation results.
I had just the same question as the commenter. I just don’t know much about this topic, and think that this question and its answers really helped my understanding.
The problem of constructing a model of a system's dynamics is system identification [0].
A state observer [1] tries to determine the internal state of the system given measurements of a system's inputs outputs and a model of its dynamics. The system is observable [2] if the state observer can fully reconstruct the internal state. One motivation for checking whether a system is observable is to determine whether a given combination of sensors (corresponding to a particular set of outputs) is sufficient to for the internal state to be determined, or whether more should be added.
The state observer of a process is another dynamical system whose inputs are the process input and process output, and whose output is an estimate of the process' internal state; if the system is observable, then this estimate converges to the true state over time. This whole formalism doesn't really apply to something like your example, which has no dynamics.
If you have the code for the hash function in your example, then determining the values that its internal variables take for an arbitrary input is trivial; if you don't then it is very difficult. In either case, your problem is different to the problem of observabilty in control theory.
[0]: https://en.wikipedia.org/wiki/System_identification
[1]: https://en.wikipedia.org/wiki/State_observer
[2]: https://en.wikipedia.org/wiki/Observability
While identiability typically is just a person running an experiment and saying "hey look these state values are unable to be recovered / estimated when I ran the algorithm". This is why I never understood why this analysis was very helpful as it isn't very useful outside of the specific experiment / motion / inputs used.
For example from [1] has these reasonably straightforward definitions.
[1] http://www.math.chalmers.se/Math/Research/Preprints/Doctoral...> This is why I never understood why this analysis was very helpful
If a system is not identifiable/observable, there may be multiple values for the parameters/state (respectively) that are consistent with observations; if you try to infer these without checking for identifiability/observability, you may obtain values that are consistent with observations but very different to the true values, which can result in serious errors when you try to do something using them.
> it isn't very useful outside of the specific experiment / motion / inputs used
There are cases where some parameters cannot be identified regardless of what inputs are provided to the system. For example, when you write down the differential equations governing the system in a particular way, you might see that two parameters (k1 and k2) always appear together as a product (k1 * k2), never independently - so their individual values are not identifiable, though (k1 * k2) is; this could be fixed by re-parametrising, by replacing k1 * k2 by k3.
Also, some parameters have very little effect on the behaviour of a system, so are weakly constrained by observations ("sloppiness"), whilst others are more tightly constrained - it can useful to know which are which.
In his case, a physicist is looking at a problem that already has a standard mathematical formalism in control theory, and is suggesting new theoretical approaches to apply to it that he claims provides additional insights.
And, whereas in the cartoon the physicist says, "why does <your field> need a whole journal, anyway", the author of this monograph publishes in existing control theory journals (e.g., [1] in IEEE Transactions on Automatic Control).
[1]: https://dx.doi.org/10.1109/TAC.2018.2798806
I made the remark based on "Its natural audience would be control theorists, but they may find the level of abstraction very challenging" which sounds a bit condescending even if true.
https://ieeexplore.ieee.org/document/8270358
In 2010-2015 a hit topic was 'consistency' which was shown to be related to observability by using something that seems to be quite similar (based on keyword matching alone).
Roumeliotis and Gao did a lot of work here. It's old news. I'm surprised it didn't translate back to control theory, but it probably did.
The writing of the abstract actually treats observability in that context, with monocular cameras on drones and all that. And it wouldn't suprise me if there was a little bit of XKCD factor going on. https://xkcd.com/793. I mean, 'developed by the author' might be a bit strong.
But I haven't read the article yet so those are first impressions.
Really it seems like an easier way to derive a system which the observable properties of the system are well defined as compared to worrying about ensuring observability (and unobservability) properties hold through the non-linear linearization process.
There are quite a few groups that use "invariant filters" in robotics (eg [1]), but I always wonder if this could not be addressed through more traditional means (i.e. designing a better state representations or correcting gains in unobservable directions).
Roumeliotis is referring to Stergios [2] or another scholar? Could you provide full names?
[1] https://arxiv.org/abs/1805.10410
[2] https://scholar.google.com/citations?user=c5HeXxsAAAAJ&hl=en...
Considering that probably the entire HN community has never even heard about control theory before, let alone have the background to understand the abstract of the book, how did this submission receive almost 100 points? Do fancy-looking titles get the most attention?
Same with any math-heavy submission. Do the submitters really expect the average DevOps person, which probably makes up something like 90% of HN, be able to understand and comment on such advanced subjects?
These are legitimate questions and by no means do I intend to foster a gatekeeping mentality.
Consider that the audience here is mostly tech-literate, not STEM wizards. Which is why it’s baffling seeing exotic math words on the frontpage.
I also agree with others that the assumptions about 'mostly devops' may well be very wrong. Control theory should be at least somewhat familiar to anyone who's worked in robotics and/or aviation, as well. A whoooole lot of people dabble in robotics during undergrad, and many older software engineers get into drones (like the author of the monograph!) or flying.
I've had this stuff in uni, forgot most of it, and re-learned it during my current studies via thinking about optimization of neural networks and I think both our understanding of things and pedagogy are improving to the point that it's not unreasonable to expect tech-interested recent high school grads to have an intuition, if not a formal understanding of control theory.
3B1B might be the most "to blame" for this, but also just the proliferation of tutorials, making etc. PID controllers are not very complicated, people dig into robotics on their own and find PID might not be enough => voila, they self teach observability, controllability, lie algebras etc.
HN folks love them some group theory (i.e. Haskell).
So it makes totally sense for me.