<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://benjaminhinchliff.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://benjaminhinchliff.com/" rel="alternate" type="text/html" /><updated>2026-03-17T00:00:20+00:00</updated><id>https://benjaminhinchliff.com/feed.xml</id><title type="html">Benjamin Hinchliff</title><subtitle>The personal website of Benjamin Hinchliff, and associated technical blog on miscellaneous computer science related subjects and programming projects</subtitle><entry><title type="html">How Lights Can Leak Your Wi-Fi Password: The Cybersecurity Nightmare of Smart Homes</title><link href="https://benjaminhinchliff.com/security/iot/2025/03/19/iot-security.html" rel="alternate" type="text/html" title="How Lights Can Leak Your Wi-Fi Password: The Cybersecurity Nightmare of Smart Homes" /><published>2025-03-19T22:35:20+00:00</published><updated>2025-03-19T22:35:20+00:00</updated><id>https://benjaminhinchliff.com/security/iot/2025/03/19/iot-security</id><content type="html" xml:base="https://benjaminhinchliff.com/security/iot/2025/03/19/iot-security.html"><![CDATA[<h2 id="setting-the-scene">Setting the Scene</h2>

<p>In February 2025, cybersecurity researcher Jeremiah Fowler found a
vulnerability in the smart device (IoT) provider Mars Hydro, a provider or
LED Lights for hydroponics in industry and the home. He found a database
containing 2.7 Billion (with a B) entries of tracking data, including network
names (SSIDs), passwords, and email addresses.  They were entirely unprotected,
not even by a password. This means that anyone who had a device from the company
or its subsidiaries at the time of the vulnerability is at risk of having an
attacker access their network, though they’d have to be physically near them. To
make matters worse, when those network passwords get reused on other accounts
under the same email, as is unfortunately all-too-common, it could provide
attackers access to an unknown number of other accounts.</p>

<p>Thankfully, in this case, there was somewhat of a happy ending, with Fowler
ethically disclosing the vulnerability, and ensuring it got fixed before
disclosing it to the public. However, that database was public this entire time,
and Fowler may not have been the first to discover that, just the first to share
it <a class="citation" href="#jeremiah-27-2025">(Jeremiah, 2025)</a>.</p>

<p>Even more disturbing is the fact that this case is far from the first and is far
from the worst case. Famous examples include the Mirai botnet in 2016, a
distributed botnet made up of people’s personal IoT devices large enough to take
down massive websites including Twitter (now X), Netflix, and Reddit <a class="citation" href="#njccic-mirai">(NJCCIC, n.d.)</a>, and 2019 attacks on poorly configured Ring cameras allowing
attackers to watch children in their own home <a class="citation" href="#vigdor-somebodys-2019">(Vigdor, 2019)</a>.</p>

<p>As these cases demonstrate, IoT security is in a bad state, and has been in one
for a while, <a href="https://michaelblume.tumblr.com/post/169525456166/tech-enthusiasts-everything-in-my-house-is-wired">to the point of being a common
joke</a>.
Outside the tech bubble though, the risks are less well-understood. So let’s
talk about it a bit, from first principles. We’ll cover what IoT is, how does it
relate to Smart Homes, why it’s such a problem for privacy and security, and
what you can (and can’t) do about it.</p>

<p>I’d like to be clear on the stakes up front here. You should care because the
digital security of your home is also that of your secrets, both private and
financial. For instance, if an attacker is able to hack a smart speaker (like
the popular Amazon Echo), they can order items with your money with your Amazon
account, and in the worst case they might have access to your credit card number
directly. It also means your privacy, from the history of every command said to
the smart speaker, and in the worst cast every word said in your house.</p>

<h2 id="so-what-even-is-an-iot-anyway">So What Even is an IoT Anyway?</h2>

<p>It’s a buzzword, in short. It stands for <strong>Internet of Things</strong>, which just
refers the network of devices that are able to exchange data over the internet
(typically). For the average consumer, the bit that actually matters is <strong>Smart
Home</strong> technologies, which encompass everything from those Nest home thermostats
to those fancy multicolor light-bulbs on the porch that my Dad <em>swears</em> are
important.</p>

<p>Now, in the technical sense IoT is a more broad term than Smart Home
technologies that applies to other contexts, but from a security perspective
they are more-or-less synonymous, so we’ll be treating them as such here (and if
that bothers you, you probably don’t need to be reading this) <a class="citation" href="#Lakhwani2020">(Lakhwani et al., 2020)</a>.</p>

<p>Smart Home devices are becoming incredibly popular, with a projected market
revenue of $174 Billion US dollars in 2025 and be present in some form in 78% of
households <a class="citation" href="#smart-market">(Statista, 2025)</a>.</p>

<p>This is understandable, as smart home devices are convenient. It’s nice to, for
example, turn off your lights when you’re not at home, or watch your porch when
you’re away. However, they’re often installed without a proper understanding of
their inherent risks.</p>

<h2 id="why-iot-security-is-awful-and-why-that-sucks">Why IoT Security is Awful (and Why That Sucks)</h2>

<h3 id="when-you-stare-into-the-abyss-the-abyss-stares-into-you">When You Stare Into the Abyss, the Abyss Stares Into You</h3>

<p>The fundamental problem with IoT devices is that, most of the time, a device
from outside your network needs to talk to it. Understanding why that’s a
problem requires understanding the difference between the local area network,
and the public internet.</p>

<p>The local area network (LAN), or intranet, is a single, isolated network of
devices. For the average home, this would be everything that’s connected to your
Wi-Fi router. Now, everything that’s connected to that router on your network
can talk to you, and you can talk to it, so your printer, for instance can talk
to your computer and vice versa. Notably, this also means that your printer can
“initiate” conversations with your computer and vice versa as well.</p>

<p>Unfortunately for security experts, most people like to talk to devices that
aren’t already on their local network. This is where the internet comes it. The
prefix inter in internet means <em>between</em> networks. This allows
you to, for example, initiate a conversation with Google’s servers on their own
network (or in reality multiple networks, but that’s a whole other thing). Now here’s
the big difference: internet conversations can’t always be initiated by either
party.  For example, you can talk to Google’s servers because Google’s router
allows you to talk to those servers only if you’re talking to them to see the
Google website.</p>

<p>Now what does all this mean? It means that typically, you set up an internet
connection to only be one way. As in, you can talk to Google’s servers, but
Google can’t talk to you unless you talk to them first. This is a great thing
for security, because that also means that attackers can’t talk to you without
you talking to them first either.</p>

<p>IoT devices add a little wrinkle to this model, unfortunately. Let’s say you have
a set of smart lights that you can turn on and off from anywhere, even when
you’re far away connected on a different network. This means that a server needs
to be able to send a signal to your internal network with the device on it. And
because that server needs to be able to do it, now everyone else can try to as
well.  Now, how secure this is depends on how well-engineered the IoT device is,
and the device needn’t necessarily be fully exposed to the internet, instead it
could maintain a constant connection to a server for example, which is much
better.  However, there’s no way to know for sure that the server hasn’t been
hacked and that it’s not an attacker’s server mimicking the real server.  How
difficult that is for an attacker again depends on how well the device and the
server are engineered.</p>

<p>Once an attacker can talk to your IoT device, they can then attempt to control
the device, and use the device to gain access to other devices on your local
network, such as a computer (so called lateral movement). How hard this might be
is again dependent on the engineering. It could be as easy as the username and
password being “admin” or (ideally) practically impossible without knowing
secrets only the real provider should know <a class="citation" href="#fortinet-iot-vulnerabilities">(Fortinet, 2025)</a>.</p>

<p>The short version is this: when you talk to the internet, the internet can talk
to you, and it only takes one mistake for it to be able to control your device
as a result, and IoT devices always need to talk to the internet.</p>

<h3 id="security-is-expensive-and-i-like-money">Security is Expensive and I Like Money</h3>

<p>Now, this wouldn’t be a problem if the device was just engineered really well
such that none of those nasty attackers could either connect to or take over the
device. Unfortunately, good security is difficult, and difficult means
expensive.</p>

<p>It only takes one mistake for an attacker to gain access to a system, and it can
be anything from a flagrant error, like executing any code sent by an attacker
without question, to a nuanced bug that allows for arbitrary execution only if
you enter a seemingly random sequence of characters.</p>

<p>This means that cybersecurity is a constant cat and mouse game, and frankly it’s
much easier for the cat, the attacker. This means that to have even decent
security you need skilled engineers, expensive security consultants. And for
internet connected services, they need to always be there, preventing issues
from happening and fixing them when they learn about them.</p>

<p>This is a big enough problem for conventional services, but for IoT devices it’s
worse. Not only are they harder to secure since most have the inherent issue of
requiring connections from outside your local network, there are also “knockoff”
devices operated by smaller companies undercutting the competition on price.
These companies often can’t afford the kind of security resources and upkeep
necessary to protect such a vulnerable device, and most people don’t realize how
important they are when buying the device. <a class="citation" href="#xenofontos-2021">(Xenofontos et al., 2021)</a></p>

<h3 id="single-points-of-failure">Single Points of Failure</h3>

<p>The last issue smart home devices introduce is they aggregate a lot of data into
one place. For example, take the Ring doorbell camera. They have a service where
you can review the recent video feed from anywhere from their app. This means
that for all Ring cameras, there’s some server (or well realistically a
networked set of servers) that has <em>all</em> of that data together. To an attacker,
that’s called an enticing target, worth millions to the right buyer. For
instance, it has value to criminals so they can know when a valuable target
would be at home, and it’s also possible to copy keys from a video feed in some
cases.</p>

<p>Now, Ring is quite a large company, and one would hope that they’re decently
secure. However, you need to trust all the companies for any IoT device you buy
to be equally secure, and if you buy on the lower end of the market, that is
even less of a guarantee, as demonstrated by the vulnerability found by Fowler
we started with. <a class="citation" href="#xenofontos-2021">(Xenofontos et al., 2021)</a></p>

<h2 id="what-can-you-do">What Can You Do?</h2>

<h3 id="the-safest-smart-device-is-a-dumb-one">The Safest Smart Device is a Dumb One</h3>

<p>If it can’t connect to the internet, it can’t be hacked remotely, making “dumb”
devices the most secure in a technical sense in all cases.</p>

<p>I’m not going to go on a tirade and claim that you shouldn’t ever use a smart
device. I get it, they’re cool, they’re useful, they’re fun. When you do use one
though, always remember: <strong>you are taking a risk</strong>. Now, I can’t tell you
exactly how big a risk it is, nor what degree of risk is acceptable to you, but
it’s the same as whenever you get in a car, onto a plane, onto a bridge. Can you
trust those who made it, can you trust yourself, to keep you safe? And how do
you know you can trust them? The more devices you have, the bigger a risk you
are taking (the technical term would be you have a larger attack surface).</p>

<h3 id="bigger-is-usually-better">Bigger Is (Usually) Better</h3>

<p>Big companies have more scrutiny, more liability risk, and therefore more
security experts, and, generally speaking, better security. The flip side of
this is that smaller companies often have quite poor security <a class="citation" href="#schutz2020">(Schutz, 2020)</a>. Now, of course, this isn’t necessarily true. Ideally, look into their
history, see if they’ve had incidents before. <strong>Can you trust them?</strong></p>

<h3 id="know-what-youre-doing-or-find-someone-who-does">Know What You’re Doing (or Find Someone Who Does)</h3>

<p>Many cybersecurity issues originate with a misconfiguration during setup,
something exposed that shouldn’t be, or a default credential left unchanged. <strong>Do
you trust yourself to avoid these issues?</strong> If you’re not confident in your
ability to know about and detect these kinds of issues, consider finding someone
who is, ideally a professional. <a class="citation" href="#fortinet-iot-vulnerabilities">(Fortinet, 2025)</a>.</p>

<h3 id="keep-up-to-date">Keep Up-to-date</h3>

<p>Smart devices are only ever remotely safe when they’re constantly being
protected. At some point in almost any device’s life, no matter how well
engineered, there will be some vulnerability that needs to be fixed. You need to
make sure that you get these security updates as soon as possible. Ideally, your
device will automatically update in these cases, but at least check whether
that’s really the case. However, it should be noted that automatic updates can
also be an attack vector, do you trust them to do it securely? <a class="citation" href="#fortinet-iot-vulnerabilities">(Fortinet, 2025)</a>.</p>

<h3 id="be-aware-of-service-life">Be Aware of Service Life</h3>

<p>Someday in any connected device’s life, the updates will stop, and your device
will no longer be protected by a small army of talented experts. Eventually,
some vulnerability will be found, no one will be there to fix it, and any nerdy
high schooler (or a state actor from Russia) will be able to hack into your
network. <strong>Every moment you keep it running past it’s service life increases
that risk</strong>. So you need to replace that device with a newer one, one that’s
protected, get rid of it, and it’s associated risk, or never connect it to the
internet again, so an attacker can never connect to it. <a class="citation" href="#fortinet-iot-vulnerabilities">(Fortinet, 2025)</a>.</p>

<h2 id="harm-to-society">Harm to Society</h2>

<p>It should be noted that while I’ve chosen to focus largely on individual harms,
but vulnerable smart devices have a variety of large-scale implications on a
larger scale.</p>

<h3 id="botnets-and-ddos-attacks">Botnets and DDoS Attacks</h3>

<p>As alluded to earlier, one of the big uses from the perspective of an attacker
for IoT devices is to build what are called botnets. These are massive networks
of hacked devices that can be controlled by an attacker. Most of the time, these
are used in distributed denial of service, or DDoS, attacks. These are attacks
that attempt to disable pieces of infrastructure, such as a website, by
overwhelming it with so many connections it cannot hope to keep up. This was/is
the application for the Mirai botnet mentioned earlier. While on an individual
level, the change in traffic is fairly minimal, the harm to our shared
infrastructure as a whole by these kinds of systems is massive. <a class="citation" href="#fortinet-iot-vulnerabilities">(Fortinet, 2025)</a>.</p>

<h3 id="disproportionate-risk">Disproportionate Risk</h3>

<p>One thing that you’ve likely picked up on by now is that cheap smart home stuff
can be more than simply bad, it can be dangerous. However, not everyone can
afford the top-of-the-line gear. For example, it’s not feasible for someone who
lives paycheck to paycheck to buy an expensive pet camera just to keep an eye on
their cat while they’re at work.</p>

<p>This points to a need for better security regulation for these devices. Think of
it like regulating pharmaceuticals. In the developed world, you can go buy
generic drugs and know you (probably) won’t die because of great regulation by
the FDA.  While the scale of harm for failure is more extreme in that case, I
think it’s clear that a great deal of less concrete harm is being done by the
current state of security regulation for smart devices. While the right level of
regulation is arguable, I would contend that right now we’re solidly in the
realm of not enough (though that’s a whole different discussion). <a class="citation" href="#xenofontos-2021">(Xenofontos et al., 2021)</a></p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>The world is a safe place, and sadly, neither is the internet. Smart home
devices are an attack vector to those who want to harm you, and often don’t have
the security to match up to that. I hope this serves as a primer on some of the
risks, but this is not a definitive guide. If you take one thing away from this
remember to always ask yourself: <strong>Can you trust them?</strong></p>

<h2 id="references">References</h2>

<ol class="bibliography"><li><span id="jeremiah-27-2025">Jeremiah, F. (2025). 2.7 Billion Records Exposed in IoT Devices Data Breach. <i>VpnMentor</i>. https://www.vpnmentor.com/news/report-marshydro-breach/</span></li>
<li><span id="njccic-mirai">NJCCIC. <i>Mirai Threat Profile</i>. Retrieved March 19, 2025, from https://www.cyber.nj.gov/threat-landscape/malware/botnets/mirai</span></li>
<li><span id="vigdor-somebodys-2019">Vigdor, N. (2019). Somebody’s Watching: Hackers Breach Ring Home Security Cameras. <i>The New York Times</i>. https://www.nytimes.com/2019/12/15/us/Hacked-ring-home-security-cameras.html</span></li>
<li><span id="Lakhwani2020">Lakhwani, K., Gianey, H. K., Wireko, J. K., &amp; Hiran, K. K. (2020). <i>Internet of Things (IoT) : Principles, Paradigms and Applications of IoT</i>. BPB Publications. https://proxy.library.cornell.edu/sso/skillport?context=151247</span></li>
<li><span id="smart-market">Statista. (2025). Smart Home - Worldwide. In <i>Statista</i>. https://www.statista.com/outlook/cmo/smart-home/worldwide</span></li>
<li><span id="fortinet-iot-vulnerabilities">Fortinet. (2025). <i>Top IoT Device Vulnerabilities: How To Secure IoT Devices</i>. https://www.fortinet.com/resources/cyberglossary/iot-device-vulnerabilities</span></li>
<li><span id="xenofontos-2021">Xenofontos, C., Zografopoulos, I., Konstantinou, C., Jolfaei, A., Khan, M. K., &amp; Choo, K.-K. R. (2021). Consumer, Commercial and Industrial IoT (In)Security: Attack Taxonomy
                  and Case Studies. <i>CoRR</i>, <i>abs/2105.06612</i>. https://arxiv.org/abs/2105.06612</span></li>
<li><span id="schutz2020">Schutz, M. (2020). <i>38% of Surveyed Small Businesses Budget Less than $1000 a Year Toward Cybersecurity</i>. https://pktech.net/blog/2020/09/38-of-surveyed-small-businesses-budget-less-than-1000-a-year-toward-cybersecurity</span></li></ol>

<!-- LocalWords: cybersecurity jeremiah njccic mirai vigdor somebodys Mirai IoT SSIDs Reddit 
 -->]]></content><author><name></name></author><category term="security" /><category term="IoT" /><summary type="html"><![CDATA[Setting the Scene]]></summary></entry><entry><title type="html">Neurosymbolic AI: Categories and Case Studies</title><link href="https://benjaminhinchliff.com/programming/artificial-intelligence/2025/02/20/neurosymbolic-ai.html" rel="alternate" type="text/html" title="Neurosymbolic AI: Categories and Case Studies" /><published>2025-02-20T23:30:20+00:00</published><updated>2025-02-20T23:30:20+00:00</updated><id>https://benjaminhinchliff.com/programming/artificial-intelligence/2025/02/20/neurosymbolic-ai</id><content type="html" xml:base="https://benjaminhinchliff.com/programming/artificial-intelligence/2025/02/20/neurosymbolic-ai.html"><![CDATA[<h2 id="what-and-why-is-neuro-symbolic-ai">What and Why is Neuro-symbolic AI?</h2>

<p>One of the common sources of confusion when it comes to Neuro-symbolic AI is
precisely what it means. This is an understandable confusion because the term
itself is extremely broad, and often carries associations that can cause
confusion. This isn’t helped with the increasing popularity of neuro-symbolic
approaches in fields that come into vogue with the public conciousness, causing
laypeople (and the entire marketing department) to use the term in ways that
don’t fit with the generally established meaning in literature.</p>

<p>At its core though, the idea is very simple. Neuro-symbolic AI systems describe
artificial intelligence systems that combine both neural and symbolic techniques
for a single application. Neural techniques, in the context, refer to
connectionist approaches to AI, the most prominent being Deep Neural Networks.
Symbolic techniques refer to more “traditional” techniques and approaches to
AI, these are your chess engines, your reasoning systems, etc. Commonly referred
to as rule-based or expert systems, this describes systems where a predefined
set of logical rules and mechanisms operates in a deterministic and easily
understood way on the problem domain <a class="citation" href="#bhuyan_neuro-symbolic_2024">(Bhuyan et al., 2024)</a>. Each
of these techniques come with their own drawbacks, which quickly became obvious
as the fields developed.</p>

<p>Symbolic AI systems were far and away first on the scene, arguably developing
even before computers themselves. Of particular interest were applying these
techniques to games, since computer scientists have the tendency to also be
massive nerds. And their efforts, notably, were met with great initial success.
For a small example, take the game of Tic-tac-toe. In the modern day, a novice
programmer can create a bot for it using a simple algorithm called Minimax and
in so doing create perfect play, such that it will only ever win or draw. This
is done by searching through all the moves you could do, and then all the ones
your opponent can do, all the way until the end of the game. Then, all you need
to do is have the bot choose the moves that are best for it assuming its
opponent also played optimally.</p>

<p>This represents a simple example of one of the most powerful early techniques
for systems in the field of AI, search algorithms. Other powerful techniques
along the same problem domain include reasoning systems, largely based around
first-order logic, and knowledge graphs that attempts to represent knowledge as
a web of connected nodes.</p>

<p>All these techniques are met with a fundamental problem, however. To make a
symbolic system, one needs to understand the problem and then find a way to
encode the problem into a computer program. However, in the real world, a lot of
the most interesting and difficult problems are also the ones least
well-understood. Here, we find salvation in statistics. Statistics reframes the
problem, instead of trying to create rules to apply onto the world, it seeks to
find trends in the world and predict them, without necessarily needing to
understand the trends themselves. Statistics, as described here, includes
traditional techniques such as regression and significance tests, but also
includes the now powerful subfield of Machine Learning. Machine Learning is
simply the application of powerful statistical techniques to attempt to predict
trends in often very complex and high-dimensional data.</p>

<p>However, because this data is often very complex, so too do our models become
equally complex. As a result, machine learning techniques, especially
connectionist approaches based on simulated “neurons”, become virtually
inscrutable, with even their own creators unable to fully explain their
behavior.</p>

<p>Seeing this, wouldn’t it be nice if we could build systems that incorporated
the benefits of both symbolic and neural techniques? This is the goal of
Neuro-symbolic AI, however actually combining these two disparate systems proves
difficult.</p>

<h2 id="types-of-neuro-symbolic-ai">Types of Neuro-symbolic AI</h2>

<p>When it comes to actually combining these two techniques many different
approaches have been applied. However, these approaches can be categorized into
a number of broad trends in application. Notably, these categories are very
malleable and a single model can and often do fall into multiple categories. The
following is the categorization of Henry Kautz, as presented during AAAI 2020 <a class="citation" href="#kautz_third_2020">(Kautz, 2020; Sarker et al., 2021)</a>.</p>

<h3 id="symbolic-neuro-symbolic">Symbolic Neuro Symbolic</h3>

<p>Symbolic Neuro Symbolic describes techniques where symbolic operations happen to
the inputs and outputs of a network, with the network acting to transform the
input into the output before further processing. This describes a whole host of
techniques, and in fact most machine learning. Of partiucalar note, this is the
cateogization that most LLMs fall into, at least intrinsically, since their
inputs and outputs typically have symbolic operations performed on them, with
everything from tokenisation, part of speech analysis, and more, not to mention
(arguably) attention itself.</p>

<h3 id="symbolicneuro">Symbolic[Neuro]</h3>

<p>Symbolic[Neuro] systems are systems where neural techniques are integrated as
subcomponent of an overarching neural technique. This is probably most easily
understood by one of the most famous examples, AlphaGo.</p>

<h4 id="alphago">AlphaGo</h4>

<p>AlphaGo, for those who don’t know already, is a landmark technique for playing
the game of Go. Oversimplifying, Go is a game where two players alternately
place stones on a board, and stones that are fully surrounded are able to be
captured. From a Machine Learning perspective, Go is a difficult game it has a
few properties that make it difficult to use search techniques. Namely, it has a
high branching factor, that is there are many potential moves for most boards,
the games are long, taking many more turns than a game like chess, and winning
strategies can be difficult to evaluate, requiring a lot of planning into the
future. This leads to computational problems with most search techniques,
including advanced ones like Monte-carlo Tree Search (MCTS). AlphaGo solves this
by augmenting the MCTS algorithm with deep learning networks in what’s called
the policy and value functions, functions that are used by the algorithm to
evaluate which moves to search next and how good those moves are likely to be.
This allowed the system to perform very well on this problem, and continues to
be applied to many games nowadays <a class="citation" href="#Silver2016">(Silver et al., 2016)</a>.</p>

<h3 id="neurosymbolic">Neuro[Symbolic]</h3>

<p>Neuro[Symbolic] is more-or-less the inverse of Symbolic[Neuro] techniques.
Instead of integrating a neural component into a symbolic system, it’s
integrating a symbolic component into a system that is otherwise entirely
neural. There are many applications for such systems, but an example would be
plugins to LLM systems. Concretely, it might be an LLM, a neural system, when
told to solve complex math equations, calling Wolfram Alpha, a symbolic system,
to help it produce clear and correct mathematical results.</p>

<h3 id="neuro--symbolic">Neuro → Symbolic</h3>

<p>Neuro → Symbolic is a pretty straightforward “cascading” system. The result of a
neural network is fed into a symbolic system as a whole to produce a final
result. This is common in architectures that need to interpret complex input
that requires connectionist systems, but look to turn that into a symbolic
representation more useful for computers. This is common in natural language
processing, as well as many other fields.</p>

<h3 id="neuro--compilesymbolic">Neuro ∪ compile(Symbolic)</h3>

<p>Neuro ∪ compile(Symbolic) is the hardest to explain. The idea is to “compile”
symbolic rules into a neural network, but not actually constrain the network
itself. An example of this would be using a neural network to solve math
equations, such as in Lample and Carton, where they use deep learning to solve
complex math equations in a way that performs better than symbolic systems (of
the time) on some instances <a class="citation" href="#Lample2020Deep">(Lample &amp; Charton, 2020)</a>.</p>

<h2 id="trends-in-neuro-symbolic-application">Trends in Neuro-symbolic Application</h2>

<p>There are a variety of different fields where Neuro-symbolic systems are used to
great effect. Of particular note are the following.</p>

<h3 id="explainable-ai-systems">Explainable AI Systems</h3>

<p>Earlier, we discussed one of the disadvantages of Symbolic AI system being the
fact that they require a human to be able to understand or model the problem in
order to be created. While normally a downside, the flip-side of this is that,
typically, symbolic AI systems are much easier for people to understand the
final result of such a system. After all, we work with symbolic systems all the
time, such as in math, just fine.</p>

<p>However, it should be noted that this isn’t a universal truth. Symbolic systems
are <em>typically</em> more explainable but often face issues being difficult to
explain at scale. For example, you as a human may be able to intellectually
understand what the earlier mentioned mini-max tic-tac-toe algorithm is doing at
any given step, but it’s difficult to know <em>exactly</em> what is actually happening
with it because of how many branches a game can take. This problem only gets
worse in more complex environments, such as in chess, and with more complex
techniques, like adding Alpha-Beta pruning or approximations like in Monte-Carlo
techniques.</p>

<p>This can be improved by developing ways to visualize symbolic systems, or
strip down complex systems into more understandable chunks. A good example of
this would be in KG-LLM systems, systems were a symbolic representation of
facts, called a Knowledge Graph, is added to a large language model to so that
it is able to answer factual questions by drawing on facts from the knowledge
base. Obviously, for any non-trivial example, the number of facts a user might
ask about is too massive for a human to easily interpret. However, we can
visualize just the facts the model queries for a given prompt, and in the
process get an idea of where the LLM is getting its information from (and if its
getting it from the correct places).</p>

<h3 id="robustness-in-systems">Robustness In Systems</h3>

<p>Another area where neuro-symbolic systems do well is systems where a neural
solution is required but alone can learn the wrong patterns or be overly
fragile. We saw this earlier with KG-LLMs: LLMs are already great on their own
at answering queries but they lack an understanding of truth. In their training
dataset, there are certainly cases of misinformation, both outright and
unintentional. The LLM has no intrinsic way to distinguish truth and lies, and
so if we want more robust query answers, such as is required in many domains, it
needs to be augmented with a real base of knowledge it can reference.</p>

<p>This links back to the earlier point about explain ability in neuro-symbolic
systems. A system that can be explained is going to inherently be more robust
for the simple fact that a human can understand more about the process that went
into it and is more able to detect mistakes, and it makes it easier to build
automated systems to do the same.</p>

<h3 id="expert-systems">Expert Systems</h3>

<p>Lastly neuro-symbolic systems are practically required for most expert systems,
systems that aims to emulate the decision making of a human expert. This could
be, for example, a medical system that aims to give basic first-aid advice in an
emergency. Once again, for such systems a level of robustness and explainability
in the event of failure (for lawsuits) is required.</p>

<h2 id="specific-applications">Specific Applications</h2>

<p>Now that we’ve covered the theoreticals, the what and why, I think the merits of
neuro-symbolic systems are best understood by seeing them in their latest
real-world use.</p>

<h3 id="neural-formal-verification-xie-et-al-2022">Neural Formal Verification <a class="citation" href="#xie_neuro-symbolic_2022">(Xie et al., 2022)</a></h3>

<p>The first application we’ll be discussing is a neuro-symbolic system applied to
formal verification of neural systems, and building a language to formalize the
process.</p>

<p>The broad idea of verification in this context is to ensure that a system will
perform as expected, and that for all inputs it gives the expected output. As
you’re probably aware, this can be particularly tricky with neural systems
because they may learn patterns in the training data that aren’t real patters or
reproduce undesirable biases also present in the training set.</p>

<h4 id="principles-and-techniques">Principles and Techniques</h4>

<p>First, we should lay some groundwork. After all, formal verification has been
around a while and comes in many different forms.</p>

<p>Let’s take a simple example of a system we might want to verify a property of.
Let’s say we were constructing a system for determining loan amounts to
customers at a bank, and we want to ensure that our fancy new system doesn’t
have any overt racial bias.</p>

<p>Another way to put it, we want our system to ensure that the input feature of
race has not effect on the output for all examples. This is a fairly simple
property that we can now write as a formal equation:</p>

\[x_i \ne x_i' \wedge \bigwedge_{j \ne i} x_j = x_j' \implies
    f(\overrightarrow{x}) = f(\overrightarrow{x}')\]

<p>In this context, $x$ and $x’$ are arrays of all the input features that may or
may not correspond to the same input data, indexed by $i$ and $j$, respectively.
These serve as input to a neural system, the function $f$. As can be seen, this
ensures that for two of the same feature in two different records, identical
save for the feature of interest, that the inputs must be identical. In our
example, the feature $i$ would be race, and so for any two inputs identical save
for the race of the person being evaluated the result should be identical.</p>

<p>Note that this is, intentionally, somewhat of a toy example. for the sake of
simplicity, we are intentionally ignoring the complexities of such a system in
the real world, such as confounding variables and multicollinearity.</p>

<p>So, now we have something really quite cool! However, we quickly run into issues
if we care about properties that are harder to represent in formal notation. To
demonstrate this, let’s introduce a new example.</p>

<h4 id="more-complex-examples">More Complex Examples</h4>

<p>Let’s say we’re a cool new company developing a system for a self-driving car,
and we think it would be good if we ensured that our car stopped at stop signs.
This is something I’ve been told it is good for cars to do.</p>

<p>One thing we might want to ensure in the process might be the statement
“whenever a stop sign is in view, the car should be slowing down”. Okay, now how
might we write that in formal notation? Instantly we run into a problem because
a ton of things in that statement are difficult to concretely define. What is a
stop sign? How can I find a stop sign in view?</p>

<p>These kinds of questions are exactly the kinds of ones a neural system is
well-suited to solve. So the idea the author build on is, what if we applied a
neural network to solve these definitional problems, and then using that network
made assertions about the behavior of our larger car network?</p>

<p>To that end, let’s presuppose we have a neural system $g$ that finds when stop
signs are in view. Now, it’s trivial to encode our property. For a given set of
inputs $\overrightarrow{x}$:</p>

\[g(\overrightarrow{x}) = \text{"yes"} \implies f(\overrightarrow{x}) =
    \text{"deccelerate"}\]

<h4 id="their-framework">Their Framework</h4>

<p>Now that we’ve laid the groundwork, we can talk about the language the authors’
define, called Neuro-symbolic Assertion Language, or NeSEAL. It’s basically the
same kinds of things we’ve been writing already, just a little more formal,
limited, and explicit.</p>

<p>Formally, the language is a fragment of first-order logic, but removing
quantifiers. That is, it’s basically the same logical statements we’ve been
making already but the syntax is a little different to be a bit more explicit.
Let’s take our example. In NeSEAL, it would be written as:</p>

\[\begin{gather*}
    \{\overrightarrow{x_1} = \overrightarrow{x_2}\} \\
    y_1 \leftarrow f(\overrightarrow{x_1}) \wedge y_2 \leftarrow g(\overrightarrow{x_2}) \\
    \{y_2 = \text{yes} \rightarrow y_1 = \text{decelerate}\}
\end{gather*}\]

<p>You can see that the bones of our same statement are still here. First, we
create two input variables $x_1$ and $x_2$, which we then assert are equal.
Then, we feed these inputs into two functions: $f$ and $g$. In this context, $f$
is our self-driving car function, and $g$ is the stop sign detecting network. We
assign the results to two variables $y_1$ and $y_2$ and ensure that they both
succeed with the $\wedge$ clause. Lastly, we assert the property itself, if the
$g$ network is currently detecting a stop sign it must imply that the
self-driving car is decelerating.</p>

<h4 id="limitations">Limitations</h4>

<p>So, this is a cool application of neuro-symbolic systems and it’s quite well
though-out. However, it does have some practical limitations, with two being
immediately obvious to me.</p>

<p>First, it obviously still relies on <em>a</em> neural network being correct, even if it
isn’t the same neural network. In this context, if $g$ doesn’t detect a stop
sign, the verification can have a false positive and the car might not stop at a
stop sign when it really should. However, it should be noted that this is
obviously better than the alternative, that being no checks on the system.
Ideally, I could see this working quite well if $f$ and $g$ were reasonably
independent, such as having different training data and architectures, in the
hope that they’d have different failure modes.</p>

<p>Second, it still requires hard-coded properties. This may seem trivial, but for
a complex system determining all the validation rules can be very complicated.
If you’d like to experience that I recommended trying to formally verify PLC
programs it’s very… <em>fun</em>.</p>

<h3 id="towards-neuro-symbolic-video-understanding-choi-et-al-2025">Towards Neuro-symbolic Video Understanding <a class="citation" href="#choi_towards_2025">(Choi et al., 2025)</a></h3>

<p>Moving on from verification now to computer understanding, let’s talk about one
more neuro-symbolic system. Our next system focuses on creating a neuro-symbolic
system to better understand videos.</p>

<h4 id="the-problem">The Problem</h4>

<p>To first introduce the problem: let’s say that you’re a user and you want to
query an AI system for various information about a video. For a simple example,
let’s say you want to find the timestamp in the movie <em>Titanic</em> where the famous
“I’m Flying” scene happens.</p>

<p>Simple examples like this can already be done quite well by existing systems
that look a video frames and break down their content, which then can be
searched. However, this simple approach starts to break down when we start to
introduce problems that require a higher degree of temporal understanding. For
instance, let’s say we wanted to find the scenes between two major events such
as the scenes between the I’m flying scene and the nude drawing scene again the
<em>Titanic</em>. This requires a higher degreee of temporal understanding, which many
approaches can struggle with.</p>

<p>The authors attribute these difficulties to trying to use a single model for
both single-frame features and inter-frame relationships, or more generally
spatial and temporal data. To solve this, the authors create a system grounded
in temporal logic that are used to query probabilistic automata representing
relationships between key frames in the video.</p>

<h4 id="background">Background</h4>

<p>That was a lot of terms to drop, so let’s lay some groundwork before we get into
the weeds.</p>

<h5 id="temporal-logic"><em>Temporal Logic</em></h5>

<p>First, just what is temporal logic? Temporal logic is a superset of first-order
logic that adds additional quantifiers to assert temporal relationships for
variables. Now, for the uninitiated, first-order logic is itself a superset of
propositional logic, which is just simple statements about variables, this and
that must be true, this and that, that kind of thing. First-order logic extends
that by adding quantifiers, like this must be true for all instances of this
thing, and functions. Temporal logic further extends that by adding even more
quantifiers!</p>

<p>To give a few examples:</p>
<ul>
  <li>Always (◻) - the predicate must always exist temporally</li>
  <li>Eventually/Exist (♦) - the predicate must eventually be true temporally</li>
  <li>Next (X) - two terms must come sequentially, this then that</li>
  <li>Until (U) - similar to next but just to assert that this doesn’t exist until
something else exists</li>
</ul>

<p>For a more complete introduction, feel free to peruse the temporal logic
<a href="https://en.wikipedia.org/wiki/Temporal_logic">wikipedia page</a>.</p>

<h5 id="probabilistic-automata-model-checking"><em>Probabilistic Automata Model Checking</em></h5>

<p>Next, I should quickly introduce probabilistic automata. Probabilistic automata
are similar to other types of automata you might be familiar with from
introductory theoretical computing, such as finite state automata, with the
twist being the transition from one state to the next for a given input isn’t
deterministic, there’s instead a probability of each potential branch. They’re
used in this context due to the uncertain nature of understanding the
progression of scenes and events.</p>

<p>For our discussion here, though, one main property is relavent: one can ensure
that a probabilistic automata is entailed by a temporal logic statement. This is
critical to how queries are built in the system.</p>

<h5 id="their-solution">Their Solution</h5>

<p>With that out of the way, let’s look at a figure from the paper showing an
example run by their system.</p>

<p><img src="/assets/model-arch.png" alt="Example run" /></p>

<p>As you can see in the diagram, everything begins with finding the content of a
single frame. With their system, this can be done with any off-the-shelf
neuro-perception model, in their example they show YOLOv8 and CLIP, which are
able to extract wha they call “atomic propositions” from the scene. Things like
“man hugging woman” or “ship on the sea”, for a given scene.</p>

<p>These atomic propositions are then fed into the frame validation system, which
attempts to extract frames that might be relevant to the prompt, to reduce the
search space. It also attempts to assemble the scenes into a probabilistic
automata.</p>

<p>Lastly, there’s the stage where this automata is searched for the user’s query.
Another network is used to construct a temporal logic specification from the
user’s query, and then query can be used to search the automata for where it
might be entailed.</p>

<p>Using all this, they were able to build a system more able to query videos with
higher accuracy, seeing between a 9 to 15 percent improvement as compared to the
SOTA models of the time.</p>

<p><img src="/assets/model-perform.png" alt="Performance" /></p>

<p>As can be seen in the table, they benchmark their model using a variety of
different recognition front-ends and on multiple different datasets and
benchmark. They found that a masked R-CNN performs best on most benchmarks with
their system. They then compare with state-of-the-art models of the time, namely
the GPT models up to GPT-4, since the paper was being written before GPT-4o was
released. As can be seen from the box-and-whisker plots, their model performs
best on all datasets, by either a narrow or often quite significant margin.</p>

<h2 id="wrapping-up">Wrapping Up</h2>

<p>These examples show the promise of neuro-symbolic systems, but also some of
their pitfalls. They can improve things, but often end up being more complex and
hard-to-maintain as a result. Still, they are often a good option and should be
considered for an application.</p>

<h2 id="references">References</h2>

<ol class="bibliography"><li><span id="bhuyan_neuro-symbolic_2024">Bhuyan, B. P., Ramdane-Cherif, A., Tomar, R., &amp; Singh, T. P. (2024). Neuro-symbolic artificial intelligence: a survey. <i>Neural Computing and Applications</i>, <i>36</i>(21), 12809–12844. https://doi.org/10.1007/s00521-024-09960-z</span></li>
<li><span id="kautz_third_2020">Kautz, H. A. (2020). The third AI summer: AAAI Robert S. Engelmore Memorial Lecture. <i>AI Magazine</i>, <i>43</i>(1), 105–125. https://doi.org/https://doi.org/10.1002/aaai.12036</span></li>
<li><span id="sarker_neuro-symbolic_2021">Sarker, M. K., Zhou, L., Eberhart, A., &amp; Hitzler, P. (2021). <i>Neuro-Symbolic Artificial Intelligence: Current Trends</i>. arXiv. https://doi.org/10.48550/arXiv.2105.05330</span></li>
<li><span id="Silver2016">Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., van den Driessche, G., Schrittwieser, J., Antonoglou, I., Panneershelvam, V., Lanctot, M., Dieleman, S., Grewe, D., Nham, J., Kalchbrenner, N., Sutskever, I., Lillicrap, T., Leach, M., Kavukcuoglu, K., Graepel, T., &amp; Hassabis, D. (2016). Mastering the game of Go with deep neural networks and tree search. <i>Nature</i>, <i>529</i>(7587), 484–489. https://doi.org/10.1038/nature16961</span></li>
<li><span id="Lample2020Deep">Lample, G., &amp; Charton, F. (2020). Deep Learning For Symbolic Mathematics. <i>International Conference on Learning Representations</i>. https://openreview.net/forum?id=S1eZYeHFDS</span></li>
<li><span id="xie_neuro-symbolic_2022">Xie, X., Kersting, K., &amp; Neider, D. (2022). <i>Neuro-Symbolic Verification of Deep Neural Networks</i>. arXiv. https://doi.org/10.48550/arXiv.2203.00938</span></li>
<li><span id="choi_towards_2025">Choi, M., Goel, H., Omama, M., Yang, Y., Shah, S., &amp; Chinchali, S. (2025). Towards Neuro-Symbolic Video Understanding. In A. Leonardis, E. Ricci, S. Roth, O. Russakovsky, T. Sattler, &amp; G. Varol (Eds.), <i>Computer Vision – ECCV 2024</i> (pp. 220–236). Springer Nature Switzerland. https://doi.org/10.1007/978-3-031-73229-4_13</span></li></ol>

<!--  LocalWords:  neuro multicollinearity automata superset
 -->]]></content><author><name></name></author><category term="programming" /><category term="artificial-intelligence" /><summary type="html"><![CDATA[What and Why is Neuro-symbolic AI?]]></summary></entry></feed>