I took control theory in my undergrad EE degree and did fun project of making a analog PID control from scratch using OpAmps, potentiometers for setting weights for P,I&D signals as well as input and output sensing, a motor for output which positioned a stick to point in the direction of the input dial. Was great to see how it responded when changing or disabling P,I or D.
I only have a basic understanding of machine learning however, but am I completely wrong in seeing a lot of overlap in control theory? Seems like a ML model is like a bunch of controllers (not necessarily PID, or even linear) in parallel with a weight and a bunch of outputs in parallel and the difference between your desired output and the input is your error signal.
Kinda-sorta. ML is a bit more about optimisation theory, not control, but there's a lot of overlap: you can consider controllers to be optimisers, and optimisers can be used in control (a sub-field called optimal control). One big constraint in control is it has to be causal, i.e. it only sees part of the function it is trying to optimise (the part that is in the past) and only has the ability to influence part of the input in the system it is optimising (the part in the future). Control also has a huge amount of overlap with signal processing, both analog and digital (most of the math is basically the same).
Both act as forms of constraint solving or constraint optimization. A lot of problems can be solved in terms of constraints filtering a large solution set; control theory happens to be an elegant way of describing certain kinds of solutions using analog feedback, and solvers that can divide and conquer and employ heuristical prioritization produce classic AI algorithms like A*, while more brute-force approaches tend to resemble ML in relying on "parallel number crunch".
I only have a basic understanding of machine learning however, but am I completely wrong in seeing a lot of overlap in control theory? Seems like a ML model is like a bunch of controllers (not necessarily PID, or even linear) in parallel with a weight and a bunch of outputs in parallel and the difference between your desired output and the input is your error signal.