- Even though symbolic reasoning, machine learning,
and artificial neural networks are all very different,
they're still considered part of AI.
That means if you're starting an AI project,
you might have to figure out
which one of these approaches works best.
Symbolic reasoning can perform well
if you have an abstract problem,
but also know the steps to find a solution.
Machine learning is useful
when you have to tinker to get the solution.
You don't really know the steps
and you have to look for larger patterns
to come up with the likeliest answer.
This approach requires several iterations
to arrive at a conclusion.
Some researchers even mix these two approaches.
They use symbolic reasoning to come up with some constraints
and then use machine learning
to experiment with different answers.
When you start your project,
you'll have to decide which approach would work best.
You might even try to balance the two.
Think of it this way.
Let's take something like a ceiling fan.
Kids and adults alike can easily recognize one.
Even though there are many different types,
they usually follow a similar pattern.
There are two or more blades
spinning on the ceiling as a way to increase air flow.
Now let's imagine you want to create
an artificial intelligent program
that could identify a ceiling fan.
You could try to use symbolic reasoning.
This is much closer to how most humans
would perceive the fan.
It relies on human experts to fully describe the fan.
An expert would plug in some of the key attributes.
If it's on the ceiling,
then it's much more likely to be a ceiling fan.
You could also plug in
some of the names of the top manufacturers.
Something like if it's on the ceiling
and it has this symbol on it that says American Fans,
then it's much more likely to be a ceiling fan.
You could go through it this way step by step,
hard coding most of the reasoning.
The second option you could try
is to use a deep learning artificial neural network.
With this approach,
you want to pump as much data as you can through the network.
First, you can train the machine to recognize fans
through images or videos of fans.
Then you could attach a sensor
to detect changes in wind speed.
That way, the machine could detect
the patterns of air moving through the room.
You could also feed in
terabytes of audio data into the network
so the machine could recognize the whooshing of moving air
or the hum of the motor.
You'll have your neural network process all this data.
Then it will create a model you can use
to make an accurate guess
about whether or not you're looking at a ceiling fan.
Each of these approaches
has its own advantages and disadvantages.
Symbolic reasoning might work for most ceiling fans.
Chances are if it's on the ceiling
and it has two or more blades,
then it's a ceiling fan.
But if it's misidentified or strangely designed,
then you won't get any type of answer.
Machine learning also has its advantages.
It could zero in on the perfect pattern.
It will process a mixture of images,
sounds, and wind movements.
Once you fed it enough data,
the artificial neural network
would probably be able to identify ceiling fans
better than most humans.
It also has the advantage of not relying
on the human-friendly data.
If it's using sounds and wind motions,
then it will have extra abilities
beyond what humans can perceive.
For one, you'll be able to identify ceiling fans
24 hours a day and even in complete darkness.
You should also keep in mind that symbolic reasoning
would be the only approach
if you don't have massive amounts of data.
It's the only approach you can take
when you don't have images, sounds, and wind speeds.
Even for this relatively simple AI program,
you can see how you might have
two entirely different challenges.
You might have one program using symbolic reasoning
that took a long time to set up,
but doesn't rely on outside data
or you could have another program
that relies on terabytes of data
and may need to be tweaked and updated.
When you start an AI program,
it's important to understand
the trade-offs of each of these approaches.
Then you could think about the best way
to help your machine think about the challenge.