Sending the Free Energy Principle to the Dark Room

Fellow control theorists,

For years we have watched the Free Energy Principle absorb every objection thrown at it, the way a good attractor absorbs a disturbance. Say it predicts the wrong thing and you are told it is only a tautology. Point at the tautology and you are told it explains schizophrenia, dopamine, and the price of tea. I finally decided to stop arguing with the shield and audit the structure behind it.

The result is a new paper and a companion page. Both do the same thing, one long, one short: state the strongest possible version of FEP first — a real steelman, no straw men — and then test four faults against one hard piece of evidence each.

The four faults, in brief:

1. **The category error.** FEP encodes a *goal* as a *high-precision prediction*. But wanting and expecting can point in opposite directions, and the neurobiology agrees: motor intentions in tetraplegia persist for years, stable, unconfirmed, refusing to decay to “minimise surprise.” That is a reference signal being defended, not a prior being updated. We have known this since 1973.

2. **The Dark Room.** Take the principle at its word and the ideal environment is a silent, perfectly predictable cell — a homeostatic paradise. Biology calls it solitary confinement. Deprived of a signal to control, the nervous system does not relax into zero-error bliss; it manufactures its own hallucinations rather than accept the silence. The “Expected Free Energy” patch that supposedly fixes this is an epicycle, bolted on precisely because the base axiom points the wrong way.

3. **The unfalsifiability shield.** Two theories wearing one name: an untouchable mathematical identity when you attack the biology, a fertile empirical mechanism when you attack the maths. It is never both in the same sentence, and never the same one twice under pressure.

4. **The broken lemma.** This one is not mine — Biehl, Pollock & Kanai (Entropy, 2021) worked through the mathematics line by line and proved by counterexample that the original free energy lemma, taken at face value, is wrong, and that the Markov-blanket definitions are not even equivalent across Friston’s own papers. The universal generalisation is exactly the part that fails to generalise.

Then the part I suspect this forum will most enjoy: a full section on what would falsify *my own* critique — the one discipline the audited framework never imposes on itself. If we are going to charge FEP with dodging refutation, we cannot dodge it ourselves.

The conclusion writes itself in our vocabulary. FEP is not a theory of life waiting to be completed. It is a description of control waiting to be recognised as one. The organism does not minimise surprise. It controls perception. Powers had the loop closed while everyone else was still drawing straight lines.

Page: A Structural Audit of the Free Energy Principle — Perceptual Control Theory

Paper (V1, CC BY 4.0): The Description Dressed as a Law: A Structural Audit of the Free Energy Principle and the Case for Perceptual Control | Zenodo

I would genuinely welcome the hardest pushback this group can produce — especially on fault 4, where I want to be certain I am representing the Biehl–Pollock result precisely and not one millimetre further than it licenses. Tear into it.

Luk

Hi Luk,
This is excellent. I think your strategy is well planned, and the four elements you have tackled make for a clear, readable and compelling case. My points are quite broad but I hope you find them helpful. Ultimately it’ll make a difference if you can get this published in a high impact and well read journal.

  • is there a reason why only one source of evidence is used for each element? I think the evidence for you choose is convincing and should be primary, but whether do you think of adding summaries of similar evidence or similar cases being made elsewhere? For example the research I review for the ‘prediction illusion’ article in the special issue with Henry Yin is very relevant.
  • to get an article published, the referencing needs to be comprehensive, yet the referencing for this is very brief. Journals will expect the duty of literature review to be complete. In particular, there is now a cottage industry of articles that critique FEP from various angles, and you’ll need to both justify why yours is unique and needed as well as review your conclusions as either overlapping or contrasting with theirs. Specifically I know of my article with Ty Roachford, Richard Kennaway’s article in the special issue, and Rob Dielenberg working with Madhur - who also has also gone to town on FEP several times (https://www.linkedin.com/posts/madhur-mangalam-1370271b0_pdf-the-emperors-new-pseudo-theory-how-activity-7394227803178721280-77t1). They have a preprint Rob might want to share. Then there is Kate Nave who makes a great conceptual case.
  • maybe some conclusion about why FEP might have been so influential despite being flawed, and what should be an alternative. Personally I think that science and society have never recognised the multi-layered, two-way complexity of closed loop control systems necessary to explain simple, non-conscious behaviour, so across the board ‘learning’ and ‘consciousness’ seem to be what theories attempt to explain. My case in my 2024 article is that there is a control system with a setpoint for a variable approximating to ‘surprise’ (Friston is not totally wrong) but this is a system that evolved late in the day, long after homeostasis and perceptual control, and is not about expectation, prediction or probabilities.

I hope this is helpful!
Warren

Warren — thank you, and on two counts. First for the push: your nudge is a large part of why this became a paper at all rather than a standing forum grumble about FEP. And second for reading it the way a reviewer would rather than a friend — the two structural points you raise are exactly right, and I want to be clear about how I’m taking them.

You’re right that each fault rests on a single piece of evidence, and right that the referencing is spare. Both are deliberate at this stage, because what you’re reading is the audit’s spine — the proposal, not the full article. The design is maximum falsifiability on minimum surface: one hard, load-bearing case per fault, chosen so that if any single one breaks, you can see it break cleanly. The comprehensive layer — the converging evidence, and the map of the FEP-critique literature with the overlaps and contrasts drawn out, and the argument for why this particular audit is still needed alongside the others — is precisely the full article’s job. You’ve just handed me a good part of that map, and I’m keeping it.

On your last point — why FEP has been so influential despite the flaws, and what should stand in its place — I think you’re right that the paper wants that section. My answer to the second half is the one in our shared vocabulary: not a better principle bolted on, but the recognition that what FEP describes was control all along. Powers had the loop closed while the field was still drawing straight lines.

I’ll keep chewing on fault 4 hardest — that’s the one I want represented to the millimetre and not one step further than Biehl and Pollock actually license.

Thank you again, Warren. This genuinely helped.

Luk

Fellow control theorists,

A short follow-up to the audit I posted here last week.

The proposal has gone in to Behavioral and Brain Sciences as a Target Article Proposal, under the same title. Roughly thirty days for a first response, which by academic clocks is brisk.

I want to be plain about why I’m mentioning it here rather than anywhere else. The version that went in is not the version I posted. Bruce and Dag went through it line by line, and the two places it most needed fixing were both theirs: the PCT passage now reads as it should — a negative-feedback control loop, a reference that may vary, actions that keep a perception matched to that reference rather than “holding it steady” — and the closing now names the charge in one voice, evasion of falsification through equivocation, instead of two. Kent offered his editorial eye and it’s the full article where I’ll be taking him up on it. Warren’s push on the referencing and on converging evidence is the map for the full version, if there is one. Those weren’t stylistic notes. They were the places a reviewer would have pushed, caught before they got there.

So whatever BBS decides, what went in went in as a piece of this community’s work, not one man’s. That seemed worth saying out loud.

On the outcome I’m relaxed. I know the odds at that journal, and V2 goes to Zenodo either way — extended, and with the falsification conditions for each of the four faults written out in full, which is the part I care most about getting right. If the proposal is invited to a full article, so much the better: the open commentary format is the one place this argument gets to stand or fall in front of the people with the strongest reasons to want it wrong. That is the correct venue for it, and frankly the only one I’d want.

The invitation from the original post stands, and now more than before: tear into it. Fault 4 especially. Anything you break now is something I don’t have to defend later in publi

BBS-S-26-01150 (1).pdf (272.1 KB)

c.

Luk

Hi Luk

You might not want me to be a reviewer of your BBS paper (if it gets accepted) after reading the following. But you might as well know how I feel about the relationship between FEP and PCT before recommending me as a commentator.

You said:

My answer to the first half is that FEP has been influential (in the behavioral sciences) because it is comfortably consistent with the current, prevailing “environmental control” paradigm of behavioral science. My answer to the second half is that PCT should stand in the place of FEP. Indeed, I think that FEP should be completely ignored because, as I noted in the IAPCT talk I gave last year, predictive control models like FEP are “red herrings that deflect attention from the search for the perceptual variables around which purposeful (control) behavior is organized”.

I think the most succinct comment about the relationship between FEP and PCT was given by the developer of PCT himself. In a post to CSGNet in 2011 – two years before he passed away (oh, how I miss him) – Bill Powers wrote this in response to a question from Henry Yin asking what Bill thought of a paper about FEP by Friston:

Good God. I have written about six paragraphs here, and this is all that hasn’t been deleted. I think I just have to decline to comment. There are so many things wrong with Friston’s ideas that we just have to deal with them one at a time if they come up in conversation. There’s no way I can handle this entire tub of ********. That’s an eight-letter word.
Bill

And I’ll just note that closed-loop models of behavior were being applied in the behavioral sciences, particularly in the area of “manual control”, since at least 1947 – 13 years before Bill’s first publication on PCT (in 1960). Bill’s extraordinary contribution to the study of the behavior of living systems was the recognition that what we call “behaviors” – walking, talking, playing chess, etc-- are controlled results of action: Behavior IS control. This realization led to the proper mapping of control theory to behavior. Pre-Powers applications of control theory had the reference for the desired state of a controlled variable outside the system; Bill brought it inside, leading to the realization that what was controlled were perceptual inputs, not response outputs.

Best, Rick

Rick — you’re right, and I’d rather say so plainly than manage it.

“Powers had the loop closed while the field was still drawing straight lines” is wrong, and wrong in the way that matters. Closed-loop models were in the behavioral sciences from the manual-control work of the late forties, more than a decade before 1960. Worse, in handing Powers a contribution that wasn’t his, I passed over the one that was: bringing the reference inside the system, and recognising that what is controlled is a perceptual input rather than a response output. That’s the whole hinge, and I flattened it into a slogan. It won’t survive into the article; the correction goes in with your name on it.

For the record, since it was said here and not there: the phrase was mine on this forum, not in the proposal that went to BBS. What’s under review doesn’t carry it.

I’ve been reading PCT since March. Four months is not long enough to have earned a clean record, and I’d rather be corrected in public and fix it than be careful in public and stay wrong.

Now the part where your correction has done more for the argument than I had any right to expect. If pre-Powers control theory kept the reference outside the system, then the sharpest thing that can be said about the FEP is not that it was control all along. It is that it repeats precisely that error. The FEP’s “goal” is a prior sitting inside a model of the world — not a reference the organism sets and defends. There is formal work in the active-inference literature pointing the same way, which I’m checking properly before I lean on it. So the diagnosis I should have written is this: the FEP redescribes phenomena produced by control while mis-locating the reference and misidentifying the controlled quantity. That is a good deal less generous to it than what I wrote, and it is what I actually think.

On ignoring it altogether, I’m not with you, and I’d rather be honest about the disagreement than paper over it. A framework that has become the default across neuroscience, psychiatry and machine learning doesn’t get ignored into irrelevance; it gets inherited by everything built on top of it. I notice, too, that Bill wrote six paragraphs before deleting them. Someone has to write the paragraphs he deleted — and the fact that he was answering Henry Yin at the time is not lost on me.

And yes, I still want you as a commentator, more so after this than before. A commentary arguing that the author is too generous to the FEP and that the whole exercise is a distraction is worth considerably more to me than agreement. It shows the disagreement is real and that this community isn’t a chorus. If it’s accepted, I’d be glad to have you say exactly what you’ve said here, at length, in print.

Luk

You are sure doing a great job of imitating a sycophantic AI system;-) Actually, I find it a rather pleasant experience.

It took me at least 2 years to get to a point where I felt I could say I understood PCT, and this was after reading everything by Powers that I could get my hands on in the late 1970s, implementing all his suggested computer demos on my Commodore 64 computer and learning at the foot of the master himself.

You are doing great for four months but you probably have a ways to go before you really “get it”. My experience is that many people never really get PCT no matter how long they study it and the reason is not a shortage of intelligence but an excess of “agenda”.

Agendas are controlled beliefs (imagined perceptions) about “how organisms work”. Many aspects of PCT are a disturbance to those beliefs and are, therefore, consciously or unconsciously rejected. Everyone has these agendas but I hope yours don’t get in the way of learning PCT.

I understand the feeling. I went after FEP myself in the IAPCT Talk that I referred to earlier. But I think going after FEP adherents is like arguing with MAGA people here in the US. It’s useless.

The analogy works, I think, because, like MAGA, there is just nothing right about FEP. Of course, the analogy also fails in one important way: MAGA ideas actually end up hurting (or even killing) people so fighting against it is necessary (for those of us who actually care about humanity). FEP doesn’t really hurt anyone (physically) so I think ignoring is the best way to deal with it . This will give us time to show – via research and modeling – what is right about PCT.

I said:

like MAGA, there is just nothing right about FEP.

I should have said that there is nothing about FEP that is right as a model of the behavior of living systems. But since your interest in AI is in providing it with a basis for “reality testing”, FEP may be more relevant to that project than PCT.

Bayes theorem, which is the basis of FEP, is all about determining the probability, P(), that evidence, E, which in this case is perception, reflects reality, R, which is “on the other side” of perception, so to speak. FEP provides a method for increasing P(R|E) given Bayes’ theorem:

      P(R|E) = [P(E|R) * P(R) ]/ P(E)

PCT explains, at least in principle, how this Baysean decision making is done by organisms (such as humans) who are able to control perceptions of logical relationships, programs and principles (among other types of percpetions). So while FEP is an incorrect model of behavior, the behavior of doing FEP modeling can be explained by PCT, as can the behavior of doing PCT – and MAGA – for that matter.

Luk,

I come from a modelling perspective. That is, to show that PCT models can solve applications in a simpler and more elegant way than RL, for example.

I have yet to see FEP being successfully applied to actual problems, though that might be my lack of knowledge. Are you aware of examples of FEP being applied? I recall a paper mentioning the Mountain Car problem, but I never came across an implementation.

Regards,
Rupert

Rupert,

Your recollection is right, and the paper is worth naming precisely because of its title: Friston, Daunizeau & Kiebel (2009), “Reinforcement Learning or Active Inference?”, PLoS ONE 4(7):e6421. Mountain car, solved without reward or value functions, pitched explicitly as the alternative to RL. So the comparison you’re making has been on the table from the FEP side for seventeen years.

And the honest answer to your question is yes — implementations exist, more than the reputation suggests. It’s worth being accurate about this, because “nobody has ever implemented it” is the one criticism that would get me dismissed on the spot.

There’s tooling: pymdp (Heins et al., JOSS 7(73):4098, 2022) for discrete POMDPs, cpp-aif (Gregoretti et al., Neurocomputing 568:127065, 2024), RxInfer.jl (Bagaev et al., JOSS 8(84):5161, 2023). And there is real robotics on real hardware — Pezzato, Ferrari & Hernández Corbato, “A Novel Adaptive Controller for Robot Manipulators Based on Active Inference”, IEEE RA-L 5(2):2973–2980 (2020), running on a 7-DOF Franka Emika Panda with the code on GitHub; Meo et al., IEEE TCDS 15(1):32–41 (2023), a multisensory torque controller benchmarked against MPC and impedance control; and fault-tolerant variants from Baioumy and colleagues.

So the answer isn’t “vaporware.” It’s something more interesting, and it’s why I think you’re asking exactly the right question from exactly the right direction.

Read those manipulator papers closely and notice what the controller actually is. The active inference controller works by feeding the target into the state estimator, so that what the system “believes” about its own joint configuration is deliberately pulled toward where you want the arm to be. The authors call the result a biased belief, and they are candid about the cost: because tuning the controller and tuning the state estimator are the same operation, there is no principled way to tune it, and small parameter changes can destabilise the loop. That is stated by the people building it, in the papers reporting that it works.

Which is to say: the goal has been smuggled into the perceptual estimate, and the engineering consequence of doing that is instability and unprincipled tuning. From where I sit that is not a bug in one implementation. It is the wanting/expecting collapse arriving as a control problem, and it is the clearest evidence I have found that the distinction is not merely philosophical.

The second thing worth noticing is what they benchmark against: PID, impedance control, MPC. Sometimes they win on adaptation and noise rejection, sometimes not. I have not found a single comparison against a perceptual control model — not in the applications literature, not anywhere. That gap is one of the claims in the paper I’m writing, and it is stated so that someone can prove me wrong by producing the comparison.

Which brings me to why your question is the most useful one in this thread. The FEP manipulator work publishes code, hardware and benchmarks. That makes it a target you can actually shoot at. If a PCT controller matches those results on the same Panda tasks with fewer moving parts and a tuning procedure that a control engineer would recognise as sane, that is a demonstration, not an argument — and it is the kind of thing no amount of writing from me can substitute for.

If that interests you, I’d be glad to dig up the specific tasks and metrics they report so it’s a like-for-like target rather than a moving one.

Luk

1 Like

I don’t know if it counts as an “implementation” of an FEP control system but a paper by Baltieri, M., Buckley, C. L. , & Bruineberg, J (2020) entitled “Predictions in the eye of the beholder: an active inference account of Watt governors” describes what they admit is basically a “metaphorical” FEP analysis of a Watt governor (a speed control system). They also do a “conventional” analysis of the Watt governor. I think both analyses are inconsistent with PCT since they come to what I think is an incorrect identification of what in PCT is the governor’s controlled perceptual variable and reference signal. I’d be interested in what others think of it.

Best, Rick

PS: There was apparently already a discussion of the Baltieri et al paper here on this forum. I think my conclusion that g is the reference and centifugale force is the controlled perceptual variable is wrong. But not that far wrong. Someone who knows physics better than I do should check this out but I think the reference is the variable “spring constant” force, S.F, of the spring that is lifted or lowered by the centrifugal force, C.F, of the spinning fly balls. S.F, which corresponds to the perceptual signal that is the analog of engine speed. S.F can be varied by varying the length (compression) of the spring,thus changing the C.F (and hence, the speed of the engine) required for the system to reach equilibrium, which happens when C.F = S.F.

Seconding Rick, engine speed ω is the controlled variable, the centrifugal force on the fly-balls is, C.F ∝ ω², is the perceptual signal (the internal analog of speed or angular velocity) and the spring force S.F, set by spring compression, is the reference, the adjustable speed set-point.

The comparison is physically instantiated at the sleeve, where C.F acts against S.F, and equilibrium is C.F = S.F: perception matched to reference. So the one thing to fix in the S.F isn’t “the perceptual signal that is the analog of engine speed.” That analog is C.F. and S.F is the reference, compressing the spring is literally moving the set-point.

And that’s why both of Baltieri et al.'s readings misidentify the pair. Active inference has no slot for a reference that isn’t a belief, so the spring’s role, an independent, externally adjustable set-point may gets reabsorbed as an “expected” ball-height prior. The misidentification isn’t carelessness, it’s forced, i.e. it’s the wanting/expecting collapse, surfacing in the one system where the reference is a physical thing you can turn with a screw, and which has no prior over sensory states.

Rick please correct me if I am wrong?

Hi Luk,

I talk about the PCT solution to the Mountain Car problem here from 20:44,

It would be interesting to compare with the FEP implementation. I will get my AI agents on it. Though if you have any insight to help understand what they were doing that would be most welcome.

1 Like

Thanks for the second and for stating the conclusion so succinctly!

As far as I’m concerned, your analysis is the “counter-roll” reference for the correctness of mine (since I don’t have anywhere near your math and physics skills). So, thanks again for the reassuring confirmation of my conclusion.

Rupert,

Apologies for the slow reply — work piled up and this deserved a proper answer rather than a quick one.

I’ve been through what I have, and there is one thing about their implementation that I think changes how you’d approach the comparison. Before that, a provenance note: the 2009 PLoS ONE paper itself is not in front of me. What follows is from Friston’s 2010 review in Nature Reviews Neuroscience, which reproduces the same task in its Figure 3 and the surrounding text (pp. 134-137). Anything I mark as unavailable may well be in the 2009 paper’s supplementary material, which I haven’t got.

**The task.** Their mountain car is not quite the textbook one, and this matters before any comparison. The landscape has its minimum at x = -0.5 and the target at x = 1. The equations of motion, as printed in the figure, are position and velocity with acceleration given by the negative gradient of the potential, minus a friction term of one eighth of velocity, plus action passed through a squashing function bounded to plus or minus one. That bound is the whole difficulty: at x = 0 the force on the car cannot be overcome, so the only route to the target is to start up the left hill first and carry momentum across. If your version used the standard Sutton and Barto dynamics, the two tasks are not identical, and the friction coefficient and squashing bound are where they’d differ.

**Now the part I’d want to know if I were reimplementing it.** The agent has no goal state for x = 1. Nothing in it represents “get to the top” as a target to be reached.

What it has instead is a cost function over position which enters the model as an expectation about *friction*. In their words, the cost function acts like negative friction, so that where friction is expected to be negative the car expects to go faster. They are explicit that this expectation is false — in the real world, they note, friction is constant, but the car expects it to vary with position. Action then makes the expectation true. When the car reaches the target, expected friction rises sharply, which is what keeps it from rolling back down.

So the goal is encoded as a counterfactual belief about a physical parameter of the environment, and the behaviour is the agent acting to make that belief correct. That is a very different object from a reference signal, and it’s why I think the comparison is worth running carefully rather than quickly: the two solutions may reach the same place while representing the objective in categorically different ways, and that difference is more interesting than the trajectories.

It is also, I now realise, the same move as the manipulator controllers I mentioned — where the target is fed into the state estimator and the authors call the result a biased belief. Here it goes into the expected dynamics instead. Same smuggling, different compartment, eleven years apart.

**Three things that bear directly on your comparison.**

First, everything was specified. There is no learning during the task — no parameter estimation, no adaptation. Belief updating happens over dynamic states online, but the generative model, the priors and the cost function were all written by the authors. Your hierarchy was evolved. Those are not the same achievement, and a comparison that only reports task performance will miss the more significant difference. If it were mine to design, I’d separate three things: what the designer supplied, what the system found for itself, and what it achieved on the task.

Second, there are no benchmark numbers. I could find no trials-to-solution, no time-to-goal, no success rate, no variance across runs. What is reported is a trajectory and a qualitative description of it. So a like-for-like comparison has no existing figures to match against, and you would be defining the metrics yourself — which is more work, but also means you get to define them sensibly.

Third, this is the continuous-time formulation, not the modern one. There is no rollout over future policies and no expected free energy over a horizon; the agent minimises a free energy functional over generalised coordinates of motion at each instant. Comparing against it is therefore comparing against the 2009 machinery rather than against active inference as it is now practised, and I think that should be said explicitly in any write-up, in fairness to both sides.

**What I could not get.** The parameter values, the integration step, the precisions and the likelihood mapping are all referred to a supplementary box which I don’t have. If you want to reimplement it faithfully rather than approximately, the 2009 paper plus its supplementary material is the thing to obtain — and I’d be glad to know what’s in it if you get there first.

I’ll watch what your agents turn up with real interest. If a control solution matches that behaviour with a stated tuning procedure and fewer supplied assumptions, that is worth considerably more than anything I can argue in prose.

Luk

Well, my agents installed the RxInfer.jl environment. But failed when asked to run the MountainCar. I checked the paper and the repo, but neither mention MountainCar.