Answers.Body: <p>You might also ask if there's any particular reason why we <em>would</em> use a neural net. If we're to train a neural net to play chess, we need to be able to:</p>
  <p><strong>1.</strong> Feed it positions as input vectors (easy enough),</p>
  <p><strong>2.</strong> Decide on an output format. Perhaps a distribution over possible moves (but then, how to represent that such that the meaning of a specific output cell doesn't change drastically based on the board state?  Or perhaps instead, we let the resulting board state after a candidate move be the input, and let the output be a score that represents the desirability of that state. That'll require exponentially more forward/backprop passes, though.</p>
  <p><strong>3.</strong> Provide it with an error signal to whatever output vector it produces. This is the really tricky bit, since we don't <em>know</em> whether a given move will result in victory until the very end.</p>
  <p>Do we play the game to the very end, storing decisions as we go, and then at the end, replay each input, feeding it an error signal if we lost? This will give the same error to the good moves as to the ones that actually lost the game. With enough games, this will work, since the good moves will get positive feedback a bit more often than negative, and vice versa for the bad ones. But it'll take a lot of games. More than a human is going to be willing to play.  We can have different networks learn by playing against each other, but not on 1996 hardware.</p>
  <p>Do we instead provide a score based on another heuristic of the board state? In that case, why not just use <a href="https://en.wikipedia.org/wiki/Minimax" rel="nofollow noreferrer">minimax</a>? It's provably optimal for a given heuristic up to however many moves deep we look, and it doesn't need training.</p>
  <hr />
  <p>Add to this the fact that if we don't choose a good representation at each of these steps, there's a good chance that the network will only learn the positions it's specifically been trained on, rather than generalizing to unseen states, which is the main reason for using a neural network in the first place.</p>
  <p>It's certainly possible to use neural nets to learn chess (DeepMind's approach can be found <a href="https://arxiv.org/abs/1712.01815" rel="nofollow noreferrer">here</a>, for instance), but they're not a natural fit to the problem by any means. Minimax, by contrast, fits the problem very well, which is why it was one of the techniques used by Deep Blue. Neural nets are an amazing tool, but they're not always the right tool for the job.</p>
  <p>Addendum:
  I didn't stress this point much, since K.C. already brought it up, but training large neural nets require us to perform a huge number of matrix vector multiplications, and this wasn't especially practical before GPUs got powerful and cheap.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-22T00:10:11.930Z
Answers.Text: Maybe you are not aware of Alpha Zero, but it's probably a good idea that you look at it and mention it, as it uses neural networks to play chess too. See e.g. [Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm](https://arxiv.org/abs/1712.01815).
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-22T14:33:50.817Z
Answers.Text: @nbro I suspected the DeepMind people would have done something (since if they can manage Go, chess can't be far behind), but didn't recall the paper. I've added a mention of it in the relevant part of the answer. Of course, it should be pointed out that even now, Google is one of the few organizations that has the hardware to train something like Alpha Zero (although it'll probably *run* fine on cheaper hardware), whereas Stockfish (one of the other top chess engines) doesn't require training, and will run on fairly normal hardware (although it'll be better/faster on better hardware).
Answers.UserDisplayName: Ray
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-21T21:32:17.597Z
Answers.LastActivityDate: 2020-07-22T14:19:05.840Z
Answers.LastEditDate: 2020-07-22T14:19:05.840Z
Answers.UserDisplayName: Ray
Answers.Body: <ul>
  <li>I'm not sure any intelligent mechanism can be entirely free of symbolic logic.</li>
  </ul>
  <blockquote>
  <p>Even where a decision is statistically based, a machine that takes actions must include some form of:<br><br>
  IF {some condition} <br>
  THEN {some action}</p>
  </blockquote>
  <p>As to the popularity of newly proven statistical AI methods (ANN and genetic algorithms), this derives from the greater utility they demonstrate at ever more complex problems compared to expert systems (&quot;good old fashioned AI&quot;) for problems that do not have a mathematical solution.</p>
  <p>(i.e. the statistical approach for 3x3 Tic-tac-toe is overkill and unnecessary b/c the 3x3 form is a <a href="https://en.wikipedia.org/wiki/Solved_game" rel="nofollow noreferrer">solved game</a>. But for larger-order gameboards <span class="math-container">$m*m$</span> or <span class="math-container">$m*n$</span>, the n-dimensional game, <span class="math-container">$m^n$</span>, barring a mathematical solution that applies to every variation, ANN is way to go.)</p>
  <p>The main issue with expert systems, no matter how complex, is &quot;brittleness&quot;—inability to adapt to changes without human programmer intervention.  As conditions change, the mechanism demonstrates diminishing utility, or simply &quot;breaks&quot; (invalid input as an example.)</p>
  <ul>
  <li>The amount of human effort required to create DeepBlue was monumental, which is why it took decades to achieve it goal, funded by a large corporation with a history of basic research.</li>
  </ul>
  <p>Compare to a simple ANN that can be trained to achieve the same goal in an extremely short timeframe.</p>
  <p>It's possible future artificial general intelligences of whatever strength would involve statistical AI programming and adapting its own symbolic functions.</p>
  <p>Finally, symbolic AI is still vastly more widely implemented than statistical AI, in that all of the basic functions of modern computing, all of the mathematical functions, all traditional software and apps, utilize symbolic logic, even if the high level function is statistically driven. This will likely always be the case.</p>
  <p>Thus, in terms of what method is best for a given problem, it really depends on the nature/structure of the problem, it's solvability or even <a href="https://en.wikipedia.org/wiki/Decidability_(logic)" rel="nofollow noreferrer">decidability</a>, as well as its <a href="https://en.wikipedia.org/wiki/Computational_complexity_theory#Intractability" rel="nofollow noreferrer">tractability</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-25T01:22:33.073Z
Answers.LastActivityDate: 2020-07-28T00:30:12.330Z
Answers.LastEditDate: 2020-07-28T00:30:12.330Z
Answers.UserDisplayName: DukeZhou
Answers.Body: <p>ANNs as used today need 1. a lot of data 2. a lot of computational power. Before we had any of the above two, we didn't really know how to properly build ANNs since we didn't quite have the means to train the network, and thus couldn't evaluate it.</p>
  <p>&quot;Symbolic AI&quot; on the other hand, is very much just a bunch of if-else/logical conditions, much like regular programming. You don't need to think too much about the whole &quot;symbolic&quot; part of it. The main/big breakthrough is that you had a lot of clever &quot;search algorithms&quot; and a lot of computation power relative to before.</p>
  <p>Point being, is just that symbolic AI was the main research program at the time, and people didn't really bother with &quot;connectionist&quot; methods.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-21T18:48:31.100Z
Answers.Text: I think you should emphasize that Deep Blue started being developed in the 80s early 90s, but it was only in 1996-1997 that it beat Kasparov and, at that time, there was already active research in neural networks (e.g. LSTMs were developed during that period).
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-21T05:43:47.847Z
Answers.LastActivityDate: 2020-07-21T05:43:47.847Z
Answers.UserDisplayName: k.c. sayz 'k.c sayz'
Body: <p>Everybody is implementing and using DNN with, for example, TensorFlow or PyTorch.</p>
  <p>I thought IBM's Deep Blue was an ANN-based AI system, but <a href="https://analyticsindiamag.com/understanding-difference-symbolic-ai-non-symbolic-ai/" rel="nofollow noreferrer">this article</a> says that IBM's Deep Blue was symbolic AI.</p>
  <p>Are there any special features in symbolic AI that explain why it was used (instead of ANN) by IBM's Deep Blue?</p>
  
Tags: <neural-networks><machine-learning><comparison><symbolic-ai><deep-blue>
Title: Why is symbolic AI not so popular as ANN but used by IBM's Deep Blue?
UserDisplayName: Dan D.
ThreadText: # Why is symbolic AI not so popular as ANN but used by IBM's Deep Blue?
  
  (Asked by: username_0 on 2020-07-20)
  
  Everybody is implementing and using DNN with, for example, TensorFlow or PyTorch.
  
  I thought IBM's Deep Blue was an ANN-based AI system, but [this article](https://analyticsindiamag.com/understanding-difference-symbolic-ai-non-symbolic-ai/) says that IBM's Deep Blue was symbolic AI.
  
  Are there any special features in symbolic AI that explain why it was used (instead of ANN) by IBM's Deep Blue?
  
  **Tags:** neural-networks, machine-learning, comparison, symbolic-ai, deep-blue
  
  ---
  
  ## 3 answers
  
  ### Answer by username_4 on 2020-07-21. Score: 2 | Accepted answer
  
  ANNs as used today need 1. a lot of data 2. a lot of computational power. Before we had any of the above two, we didn't really know how to properly build ANNs since we didn't quite have the means to train the network, and thus couldn't evaluate it.
  
  "Symbolic AI" on the other hand, is very much just a bunch of if-else/logical conditions, much like regular programming. You don't need to think too much about the whole "symbolic" part of it. The main/big breakthrough is that you had a lot of clever "search algorithms" and a lot of computation power relative to before.
  
  Point being, is just that symbolic AI was the main research program at the time, and people didn't really bother with "connectionist" methods.
  
  > **Comments:**
  > **username_2**: I think you should emphasize that Deep Blue started being developed in the 80s early 90s, but it was only in 1996-1997 that it beat Kasparov and, at that time, there was already active research in neural networks (e.g. LSTMs were developed during that period).  
  
  ---
  
  ### Answer by username_1 on 2020-07-21. Score: 3
  
  You might also ask if there's any particular reason why we *would* use a neural net. If we're to train a neural net to play chess, we need to be able to:
  
  **1.** Feed it positions as input vectors (easy enough),
  
  **2.** Decide on an output format. Perhaps a distribution over possible moves (but then, how to represent that such that the meaning of a specific output cell doesn't change drastically based on the board state? Or perhaps instead, we let the resulting board state after a candidate move be the input, and let the output be a score that represents the desirability of that state. That'll require exponentially more forward/backprop passes, though.
  
  **3.** Provide it with an error signal to whatever output vector it produces. This is the really tricky bit, since we don't *know* whether a given move will result in victory until the very end.
  
  Do we play the game to the very end, storing decisions as we go, and then at the end, replay each input, feeding it an error signal if we lost? This will give the same error to the good moves as to the ones that actually lost the game. With enough games, this will work, since the good moves will get positive feedback a bit more often than negative, and vice versa for the bad ones. But it'll take a lot of games. More than a human is going to be willing to play. We can have different networks learn by playing against each other, but not on 1996 hardware.
  
  Do we instead provide a score based on another heuristic of the board state? In that case, why not just use [minimax](https://en.wikipedia.org/wiki/Minimax)? It's provably optimal for a given heuristic up to however many moves deep we look, and it doesn't need training.
  
  ---
  
  Add to this the fact that if we don't choose a good representation at each of these steps, there's a good chance that the network will only learn the positions it's specifically been trained on, rather than generalizing to unseen states, which is the main reason for using a neural network in the first place.
  
  It's certainly possible to use neural nets to learn chess (DeepMind's approach can be found [here](https://arxiv.org/abs/1712.01815), for instance), but they're not a natural fit to the problem by any means. Minimax, by contrast, fits the problem very well, which is why it was one of the techniques used by Deep Blue. Neural nets are an amazing tool, but they're not always the right tool for the job.
  
  Addendum:
  I didn't stress this point much, since K.C. already brought it up, but training large neural nets require us to perform a huge number of matrix vector multiplications, and this wasn't especially practical before GPUs got powerful and cheap.
  
  > **Comments:**
  > **username_2**: Maybe you are not aware of Alpha Zero, but it's probably a good idea that you look at it and mention it, as it uses neural networks to play chess too. See e.g. [Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm](https://arxiv.org/abs/1712.01815).  
  > **username_1**: @nbro I suspected the DeepMind people would have done something (since if they can manage Go, chess can't be far behind), but didn't recall the paper. I've added a mention of it in the relevant part of the answer. Of course, it should be pointed out that even now, Google is one of the few organizations that has the hardware to train something like Alpha Zero (although it'll probably *run* fine on cheaper hardware), whereas Stockfish (one of the other top chess engines) doesn't require training, and will run on fairly normal hardware (although it'll be better/faster on better hardware).  
  
  ---
  
  ### Answer by username_3 on 2020-07-25. Score: 3
  
  * I'm not sure any intelligent mechanism can be entirely free of symbolic logic.
  
  > Even where a decision is statistically based, a machine that takes actions must include some form of:  
  >   
  > IF {some condition}   
  > THEN {some action}
  
  As to the popularity of newly proven statistical AI methods (ANN and genetic algorithms), this derives from the greater utility they demonstrate at ever more complex problems compared to expert systems ("good old fashioned AI") for problems that do not have a mathematical solution.
  
  (i.e. the statistical approach for 3x3 Tic-tac-toe is overkill and unnecessary b/c the 3x3 form is a [solved game](https://en.wikipedia.org/wiki/Solved_game). But for larger-order gameboards $m\*m$ or $m\*n$, the n-dimensional game, $m^n$, barring a mathematical solution that applies to every variation, ANN is way to go.)
  
  The main issue with expert systems, no matter how complex, is "brittleness"—inability to adapt to changes without human programmer intervention. As conditions change, the mechanism demonstrates diminishing utility, or simply "breaks" (invalid input as an example.)
  
  * The amount of human effort required to create DeepBlue was monumental, which is why it took decades to achieve it goal, funded by a large corporation with a history of basic research.
  
  Compare to a simple ANN that can be trained to achieve the same goal in an extremely short timeframe.
  
  It's possible future artificial general intelligences of whatever strength would involve statistical AI programming and adapting its own symbolic functions.
  
  Finally, symbolic AI is still vastly more widely implemented than statistical AI, in that all of the basic functions of modern computing, all of the mathematical functions, all traditional software and apps, utilize symbolic logic, even if the high level function is statistically driven. This will likely always be the case.
  
  Thus, in terms of what method is best for a given problem, it really depends on the nature/structure of the problem, it's solvability or even [decidability](https://en.wikipedia.org/wiki/Decidability_(logic)), as well as its [tractability](https://en.wikipedia.org/wiki/Computational_complexity_theory#Intractability).
  
  
  ---
  
  