Neural Networks

From Chessprogramming wiki
Jump to: navigation, search

Home * Learning * Neural Networks

Artificial Neural Network [1]

Neural Networks,
a series of connected neurons which communicate due to neurotransmission. The interface through which neurons interact with their neighbors consists of axon terminals connected via synapses to dendrites on other neurons. If the sum of the input signals into one neuron surpasses a certain threshold, the neuron sends an action potential at the axon hillock and transmits this electrical signal along the axon.

In 1949, Donald O. Hebb introduced his theory in The Organization of Behavior, stating that learning is about to adapt weight vectors (persistent synaptic plasticity) of the neuron pre-synaptic inputs, whose dot-product activates or controls the post-synaptic output, which is the base of Neural network learning [2].

AN

Already in the early 40s, Warren S. McCulloch and Walter Pitts introduced the artificial neuron as a logical element with multiple analogue inputs and a single digital output with a boolean result. The output fired "true", if the sum of the inputs exceed a threshold. In their 1943 paper A Logical Calculus of the Ideas Immanent in Nervous Activity [3], they attempted to demonstrate that a Turing machine program could be implemented in a finite network of such neurons of combinatorial logic functions of AND, OR and NOT.

ANNs

Artificial Neural Networks (ANNs) are a family of statistical learning devices or algorithms used in regression, and binary or multiclass classification, implemented in hardware or software inspired by their biological counterparts. The artificial neurons of one or more layers receive one or more inputs (representing dendrites), and after being weighted, sum them to produce an output (representing a neuron's axon). The sum is passed through a nonlinear function known as an activation function or transfer function. The transfer functions usually have a sigmoid shape, but they may also take the form of other non-linear functions, piecewise linear functions, or step functions [4]. The weights of the inputs of each layer are tuned to minimize a cost or loss function, which is a task in mathematical optimization and machine learning.

Perceptron

Perceptron [5]

The perceptron is an algorithm for supervised learning of binary classifiers. It was the first artificial neural network, introduced in 1957 by Frank Rosenblatt [6], implemented in custom hardware. In its basic form it consists of a single neuron with multiple inputs and associated weights.

Supervised learning is applied using a set D of labeled training data with pairs of feature vectors (x) and given results as desired output (d), usually started with cleared or randomly initialized weight vector w. The output is calculated by all inputs of a sample, multiplied by its corresponding weights, passing the sum to the activation function f. The difference of desired and actual value is then immediately used modify the weights for all features using a learning rate 0.0 < α <= 1.0:

   for (j=0, Σ = 0.0; j < nSamples; ++j) {
    for (i=0, X = bias; i < nFeatures; ++i) 
      X += w[i]*x[j][i];
    y = f ( X );
    Σ += abs(Δ = d[j] - y);
    for (i=0; i < nFeatures; ++i) 
      w[i] += α*Δ*x[j][i];
   }

AI Winter

Three layer, XOR capable Perceptron [7]

Although the perceptron initially seemed promising, it was proved that perceptrons could not be trained to recognise many classes of patterns. This led to neural network research stagnating for many years, the AI-winter, before it was recognised that a feedforward neural network with two or more layers had far greater processing power than with one layer. Single layer perceptrons are only capable of learning linearly separable patterns. In their 1969 book Perceptrons, Marvin Minsky and Seymour Papert wrote that it was impossible for these classes of network to learn the XOR function. It is often believed that they also conjectured (incorrectly) that a similar result would hold for a multilayer perceptron [8]. However, this is not true, as both Minsky and Papert already knew that multilayer perceptrons were capable of producing an XOR function [9]-

Backpropagation

In 1974, Paul Werbos started to end the AI winter concerning neural networks, when he first described the mathematical process of training multilayer perceptrons through backpropagation of errors [10], derived in the context of control theory by Henry J. Kelley in 1960 [11] and by Arthur E. Bryson in 1961 [12] using principles of dynamic programming, simplified by Stuart E. Dreyfus in 1961 applying the chain rule [13]. It was in 1982, when Werbos applied a automatic differentiation method described in 1970 by Seppo Linnainmaa [14] to neural networks in the way that is widely used today [15] [16] [17] [18].

Backpropagation is a generalization of the delta rule to multilayered feedforward networks, made possible by using the chain rule to iteratively compute gradients for each layer. Backpropagation requires that the activation function used by the artificial neurons be differentiable, which is true for the common sigmoid logistic function or its softmax generalization in multiclass classification.

Along with an optimization method such as gradient descent, it calculates the gradient of a cost or loss function with respect to all the weights in the neural network. The gradient is fed to the optimization method which in turn uses it to update the weights, in an attempt to minimize the loss function, which choice depends on the learning type (supervised, unsupervised, reinforcement) and the activation function - mean squared error or cross-entropy error function are used in binary classification [19]. The gradient is almost always used in a simple stochastic gradient descent algorithm. In 1983, Yurii Nesterov contributed an accelerated version of gradient descent that converges considerably faster than ordinary gradient descent [20] [21] [22] [23].

Backpropagation algorithm for a 3-layer network [24]:

   initialize the weights in the network (often small random values)
   do
      for each example e in the training set
         O = neural-net-output(network, e)  // forward pass
         T = teacher output for e
         compute error (T - O) at the output units
         compute delta_wh for all weights from hidden layer to output layer  // backward pass
         compute delta_wi for all weights from input layer to hidden layer   // backward pass continued
         update the weights in the network
   until all examples classified correctly or stopping criterion satisfied
   return the network

Deep Learning

Deep learning has been characterized as a buzzword, or a rebranding of neural networks. A deep neural network (DNN) is an ANN with multiple hidden layers of units between the input and output layers which can be discriminatively trained with the standard backpropagation algorithm. Two common issues if naively trained are overfitting and computation time.

Convolutional NNs

Convolutional neural networks (CNN) form a subclass of feedforward neural networks that have special weight constraints, individual neurons are tiled in such a way that they respond to overlapping regions. A neuron of a convolutional layer is connected to a correspondent receptive field of the previous layer, a small subset of their neurons. A distinguishing feature of CNNs is that many neurons share the same bias and vector of weights, dubbed filter. This reduces memory footprint because a single bias and a single vector of weights is used across all receptive fields sharing that filter, rather than each receptive field having its own bias and vector of weights. Convolutional NNs are suited for deep learning and are highly suitable for parallelization on GPUs [25]. They were research topic in the game of Go since 2008 [26], and along with the residual modification successful applied in Go and other games, most spectacular due to AlphaGo in 2015 and AlphaZero in 2017.

Typical cnn.png

Typical CNN [27]

Residual Net

A residual block [28] [29]

A Residual net (ResNet) adds the input of a layer, typically composed of a convolutional layer and of a ReLU layer, to its output. This modification, like convolutional nets inspired from image classification, enables faster training and deeper networks [30] [31] [32].

ANNs in Games

Applications of neural networks in computer games and chess are learning of evaluation and search control. Evaluation topics include feature selection and automated tuning, search control move ordering, selectivity and time management. The perceptron looks like the ideal learning algorithm for automated evaluation tuning.

Backgammon

In the late 80s, Gerald Tesauro pioneered in applying ANNs to the game of Backgammon. His program Neurogammon won the Gold medal at the 1st Computer Olympiad 1989 - and was further improved by TD-Lambda based Temporal Difference Learning within TD-Gammon [33]. Today all strong backgammon programs rely on heavily trained neural networks.

Go

In 2014, two teams independently investigated whether deep convolutional neural networks could be used to directly represent and learn a move evaluation function for the game of Go. Christopher Clark and Amos Storkey trained an 8-layer convolutional neural network by supervised learning from a database of human professional games, which without any search, defeated the traditional search program Gnu Go in 86% of the games [34] [35] [36] [37]. In their paper Move Evaluation in Go Using Deep Convolutional Neural Networks [38], Chris J. Maddison, Aja Huang, Ilya Sutskever, and David Silver report they trained a large 12-layer convolutional neural network in a similar way, to beat Gnu Go in 97% of the games, and matched the performance of a state-of-the-art Monte-Carlo Tree Search that simulates a million positions per move [39].

In 2015, a team affiliated with Google DeepMind around David Silver and Aja Huang, supported by Google researchers John Nham and Ilya Sutskever, build a Go playing program dubbed AlphaGo [40], combining Monte-Carlo tree search with their 12-layer networks [41].

Chess

Logistic regression as applied in Texel's Tuning Method may be interpreted as supervised learning application of the single-layer perceptron with one neuron. This is also true for reinforcement learning approaches, such as TD-Leaf in KnightCap or Meep's TreeStrap, where the evaluation consists of a weighted linear combination of features. Despite these similarities with the perceptron, these engines are not considered using ANNs - since they use manually selected chess specific feature construction concepts like material, piece square tables, pawn structure, mobility etc..

More sophisticated attempts to replace static evaluation by neural networks and perceptrons feeding in more unaffiliated feature sets like board representation and attack tables etc., where not yet that successful like in other games. Chess evaluation seems not that well suited for neural nets, but there are also aspects of too weak models and feature recognizers as addressed by Gian-Carlo Pascutto with Stoofvlees [42], huge training effort, and weak floating point performance - but there is still hope due to progress in hardware and parallelization using SIMD instructions and GPUs, and deeper and more powerful neural network structures and methods successful in other domains. In December 2017, Google DeepMind published about their generalized AlphaZero algorithm.

Move Ordering

Concerning move ordering - there were interesting NN proposals like the Chessmaps Heuristic by Kieran Greer et al. [43], and the Neural MoveMap Heuristic by Levente Kocsis et al. [44].

Giraffe & Zurichess

In 2015, Matthew Lai trained Giraffe's deep neural network by TD-Leaf [45]. Zurichess by Alexandru Moșoi uses the TensorFlow library for automated tuning - in a two layers neural network, the second layer is responsible for a tapered eval to phase endgame and middlegame scores [46].

DeepChess

In 2016, Omid E. David, Nathan S. Netanyahu, and Lior Wolf introduced DeepChess obtaining a grandmaster-level chess playing performance using a learning method incorporating two deep neural networks, which are trained using a combination of unsupervised pretraining and supervised training. The unsupervised training extracts high level features from a given chess position, and the supervised training learns to compare two chess positions to select the more favorable one. In order to use DeepChess inside a chess program, a novel version of alpha-beta is used that does not require bounds but positions αpos and βpos [47].

Alpha Zero

In December 2017, the Google DeepMind team along with former Giraffe author Matthew Lai reported on their generalized AlphaZero algorithm, combining Deep learning with Monte-Carlo Tree Search. AlphaZero can achieve, tabula rasa, superhuman performance in many challenging domains with some training effort. Starting from random play, and given no domain knowledge except the game rules, AlphaZero achieved a superhuman level of play in the games of chess and Shogi as well as Go, and convincingly defeated a world-champion program in each case [48]. The open souece projects Leela Zero (Go) and its chess adaptation Leela Chess Zero successfully re-implemented the ideas of DeepMind.

NNUE

NNUE reverse of ƎUИИ - Efficiently Updatable Neural Networks, is an NN architecture intended to replace the evaluation of Shogi, chess and other board game playing alpha-beta searchers. NNUE was introduced in 2018 by Yu Nasu [49], and was used in Shogi adaptations of Stockfish such as YaneuraOu [50] , and Kristallweizen [51], apparently with AlphaZero strength [52]. Nodchip incorporated NNUE into the chess playing Stockfish 10 as a proof of concept [53], yielding in the hype about Stockfish NNUE in summer 2020 [54]. Its heavily over parametrized computational most expensive input layer is efficiently incremental updated in make and unmake move.

NN Chess Programs

See also

AlphaGo
Keynote Lecture CG 2016 Conference by Aja Huang

Selected Publications

1940 ...

1950 ...

Claude Shannon, John McCarthy (eds.) (1956). Automata Studies. Annals of Mathematics Studies, No. 34
Claude Shannon, John McCarthy (eds.) (1956). Automata Studies. Annals of Mathematics Studies, No. 34, pdf

1960 ...

1970 ...

1980 ...

1987

1988

1989

1990 ...

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000 ...

2001

2002

2003

2004

2006

2007

2008

2009

  • Daniel Abdi, Simon Levine, Girma T. Bitsuamlak (2009). Application of an Artificial Neural Network Model for Boundary Layer Wind Tunnel Profile Development. 11th Americas conference on wind Engineering, pdf

2010 ...

2011

2012

Nicol N. Schraudolph (2012). Centering Neural Network Gradient Factors.
Léon Bottou (2012). Stochastic Gradient Descent Tricks. Microsoft Research, pdf
Ronan Collobert, Koray Kavukcuoglu, Clément Farabet (2012). Implementing Neural Networks Efficiently. [71]

2013

2014

2015

2016

2017

2018

2019

2020 ...

2021

Blog & Forum Posts

1996 ...

Re: Evaluation by neural network ? by Jay Scott, CCC, November 10, 1997 [98]

2000 ...

Re: Whatever happened to Neural Network Chess programs? by Andy Walker, rgcc, March 28, 2000  » Advances in Computer Chess 1, Ron Atkin
Combining Neural Networks and Alpha-Beta by Matthias Lüscher, rgcc, April 01, 2000 » Chessterfield
Neural nets in backgammon by Albert Silver, CCC, April 07, 2004

2005 ...

2010 ...

Re: Chess program with Artificial Neural Networks (ANN)? by Gian-Carlo Pascutto, CCC, January 07, 2010 » Stoofvlees
Re: Chess program with Artificial Neural Networks (ANN)? by Gian-Carlo Pascutto, CCC, January 08, 2010
Re: Chess program with Artificial Neural Networks (ANN)? by Volker Annuss, CCC, January 08, 2010 » Hermann

2015 ...

2016

Re: Deep Learning Chess Engine ? by Alexandru Mosoi, CCC, July 21, 2016 » Zurichess
Re: Deep Learning Chess Engine ? by Matthew Lai, CCC, August 04, 2016 » Giraffe [102]

2017

Re: Is AlphaGo approach unsuitable to chess? by Peter Österlund, CCC, May 31, 2017 » Texel

2018

2019

Re: A question to MCTS + NN experts by Daniel Shawul, CCC, July 17, 2019

2020 ...

Re: NNUE accessible explanation by Jonathan Rosenthal, CCC, July 23, 2020
Re: NNUE accessible explanation by Jonathan Rosenthal, CCC, July 24, 2020

2021

2022

External Links

Biological

ANNs

Topics

Neurogrid from Wikipedia

Perceptron

History of the Perceptron

CNNs

Convolutional Neural Networks
Deep Residual Networks
An Introduction to different Types of Convolutions in Deep Learning by Paul-Louis Pröve, July 22, 2017
Squeeze-and-Excitation Networks by Paul-Louis Pröve, October 17, 2017

ResNet

RNNs

Restricted Boltzmann machine from Wikipedia

Activation Functions

Backpropagation

Gradient

Momentum from Wikipedia

Software

Neural Lab from Wikipedia
SNNS from Wikipedia

Libraries

Blogs

The Single Layer Perceptron
The Sigmoid Function in C#
Hidden Neurons and Feature Space
Training Neural Networks Using Back Propagation in C#
Data Mining with Artificial Neural Networks (ANN)
Neural Net in C++ Tutorial on Vimeo (also on YouTube)

Courses

Part 1: Data and Architecture, YouTube Videos
Part 2: Forward Propagation
Part 3: Gradient Descent
Part 4: Backpropagation
Part 5: Numerical Gradient Checking
Part 6: Training
Part 7: Overfitting, Testing, and Regularization
But what *is* a Neural Network? | Chapter 1
Gradient descent, how neural networks learn | Chapter 2
What is backpropagation really doing? | Chapter 3
Backpropagation calculus | Appendix to Chapter 3
Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition by Justin Johnson, slides
Lecture 2 | Image Classification by Justin Johnson, slides
Lecture 3 | Loss Functions and Optimization by Justin Johnson, slides
Lecture 4 | Introduction to Neural Networks by Serena Yeung, slides
Lecture 5 | Convolutional Neural Networks by Serena Yeung, slides
Lecture 6 | Training Neural Networks I by Serena Yeung, slides
Lecture 7 | Training Neural Networks II by Justin Johnson, slides
Lecture 8 | Deep Learning Software by Justin Johnson, slides
Lecture 9 | CNN Architectures by Serena Yeung, slides
Lecture 10 | Recurrent Neural Networks by Justin Johnson, slides
Lecture 11 | Detection and Segmentation by Justin Johnson, slides
Lecture 12 | Visualizing and Understanding by Justin Johnson, slides
Lecture 13 | Generative Models by Serena Yeung, slides
Lecture 14 | Deep Reinforcement Learning by Serena Yeung, slides
Lecture 15 | Efficient Methods and Hardware for Deep Learning by Song Han, slides

References

  1. An example artificial neural network with a hidden layer, Image by Colin M.L. Burnett with Inkscape, December 27, 2006, CC BY-SA 3.0, Artificial Neural Networks/Neural Network Basics - Wikibooks, Wikimedia Commons
  2. Biological neural network - Early study - from Wikipedia
  3. Warren S. McCulloch, Walter Pitts (1943). A Logical Calculus of the Ideas Immanent in Nervous Activity. Bulletin of Mathematical Biology, Vol. 5, No. 1, pdf
  4. Artificial neuron from Wikipedia
  5. The appropriate weights are applied to the inputs, and the resulting weighted sum passed to a function that produces the output y, image created by mat_the_w, based on raster image Perceptron.gif by 'Paskari', using Inkscape 0.46 for OSX, Wikimedia Commons, Perceptron from Wikipedia
  6. Frank Rosenblatt (1957). The Perceptron - a Perceiving and Recognizing Automaton. Report 85-460-1, Cornell Aeronautical Laboratory
  7. A two-layer neural network capable of calculating XOR. The numbers within the neurons represent each neuron's explicit threshold (which can be factored out so that all neurons have the same threshold, usually 1). The numbers that annotate arrows represent the weight of the inputs. This net assumes that if the threshold is not reached, zero (not -1) is output. Note that the bottom layer of inputs is not always considered a real neural network layer, Feedforward neural network from Wikipedia
  8. multilayer perceptron is a misnomer for a more complicated neural network
  9. Perceptron from Wikipedia
  10. Paul Werbos (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Ph. D. thesis, Harvard University
  11. Henry J. Kelley (1960). Gradient Theory of Optimal Flight Paths. [http://arc.aiaa.org/loi/arsj ARS Journal, Vol. 30, No. 10
  12. Arthur E. Bryson (1961). A gradient method for optimizing multi-stage allocation processes. In Proceedings of the Harvard University Symposium on digital computers and their applications
  13. Stuart E. Dreyfus (1961). The numerical solution of variational problems. RAND paper P-2374
  14. Seppo Linnainmaa (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master's thesis, University of Helsinki
  15. Paul Werbos (1982). Applications of advances in nonlinear sensitivity analysis. System Modeling and Optimization, Springer, pdf
  16. Paul Werbos (1994). The Roots of Backpropagation. From Ordered Derivatives to Neural Networks and Political Forecasting. John Wiley & Sons
  17. Deep Learning - Scholarpedia | Backpropagation by Jürgen Schmidhuber
  18. Who Invented Backpropagation? by Jürgen Schmidhuber (2014, 2015)
  19. "Using cross-entropy error function instead of sum of squares leads to faster training and improved generalization", from Sargur Srihari, Neural Network Training (pdf)
  20. Yurii Nesterov from Wikipedia
  21. ORF523: Nesterov’s Accelerated Gradient Descent by Sébastien Bubeck, I’m a bandit, April 1, 2013
  22. Nesterov’s Accelerated Gradient Descent for Smooth and Strongly Convex Optimization by Sébastien Bubeck, I’m a bandit, March 6, 2014
  23. Revisiting Nesterov’s Acceleration by Sébastien Bubeck, I’m a bandit, June 30, 2015
  24. Backpropagation algorithm from Wikipedia
  25. PARsE | Education | GPU Cluster | Efficient mapping of the training of Convolutional Neural Networks to a CUDA-based cluster
  26. Ilya Sutskever, Vinod Nair (2008). Mimicking Go Experts with Convolutional Neural Networks. ICANN 2008, pdf
  27. Typical CNN architecture, Image by Aphex34, December 16, 2015, CC BY-SA 4.0, Wikimedia Commons
  28. The fundamental building block of residual networks. Figure 2 in Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun (2015). Deep Residual Learning for Image Recognition. arXiv:1512.03385
  29. Understand Deep Residual Networks — a simple, modular learning framework that has redefined state-of-the-art by Michael Dietz, Waya.ai, May 02, 2017
  30. Tristan Cazenave (2017). Residual Networks for Computer Go. IEEE Transactions on Computational Intelligence and AI in Games, Vol. PP, No. 99, pdf
  31. Deep Residual Networks from TUM Wiki, Technical University of Munich
  32. Understanding and visualizing ResNets by Pablo Ruiz, October 8, 2018
  33. Richard Sutton, Andrew Barto (1998). Reinforcement Learning: An Introduction. MIT Press, 11.1 TD-Gammon
  34. Christopher Clark, Amos Storkey (2014). Teaching Deep Convolutional Neural Networks to Play Go. arXiv:1412.3409
  35. Teaching Deep Convolutional Neural Networks to Play Go by Hiroshi Yamashita, The Computer-go Archives, December 14, 2014
  36. Why Neural Networks Look Set to Thrash the Best Human Go Players for the First Time | MIT Technology Review, December 15, 2014
  37. Teaching Deep Convolutional Neural Networks to Play Go by Michel Van den Bergh, CCC, December 16, 2014
  38. Chris J. Maddison, Aja Huang, Ilya Sutskever, David Silver (2014). Move Evaluation in Go Using Deep Convolutional Neural Networks. arXiv:1412.6564v1
  39. Move Evaluation in Go Using Deep Convolutional Neural Networks by Aja Huang, The Computer-go Archives, December 19, 2014
  40. AlphaGo | Google DeepMind
  41. David Silver, Aja Huang, Chris J. Maddison, Arthur Guez, Laurent Sifre, George van den Driessche, Julian Schrittwieser, Ioannis Antonoglou, Veda Panneershelvam, Marc Lanctot, Sander Dieleman, Dominik Grewe, John Nham, Nal Kalchbrenner, Ilya Sutskever, Timothy Lillicrap, Madeleine Leach, Koray Kavukcuoglu, Thore Graepel, Demis Hassabis (2016). Mastering the game of Go with deep neural networks and tree search. Nature, Vol. 529
  42. Re: Chess program with Artificial Neural Networks (ANN)? by Gian-Carlo Pascutto, CCC, January 07, 2010
  43. Kieran Greer, Piyush Ojha, David A. Bell (1999). A Pattern-Oriented Approach to Move Ordering: the Chessmaps Heuristic. ICCA Journal, Vol. 22, No. 1
  44. Levente Kocsis, Jos Uiterwijk, Eric Postma, Jaap van den Herik (2002). The Neural MoveMap Heuristic in Chess. CG 2002
  45. *First release* Giraffe, a new engine based on deep learning by Matthew Lai, CCC, July 08, 2015
  46. Re: Deep Learning Chess Engine ? by Alexandru Mosoi, CCC, July 21, 2016
  47. Omid E. David, Nathan S. Netanyahu, Lior Wolf (2016). DeepChess: End-to-End Deep Neural Network for Automatic Learning in Chess. ICAAN 2016, Lecture Notes in Computer Science, Vol. 9887, Springer, pdf preprint
  48. David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis (2017). Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. arXiv:1712.01815
  49. Yu Nasu (2018). ƎUИИ Efficiently Updatable Neural-Network based Evaluation Functions for Computer Shogi. Ziosoft Computer Shogi Club, pdf (Japanese with English abstract) GitHub - asdfjkl/nnue translation
  50. GitHub - yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player), WCSC29 1st winner, educational and USI compliant engine
  51. GitHub - Tama4649/Kristallweizen: 第29回世界コンピュータ将棋選手権 準優勝のKristallweizenです。
  52. The Stockfish of shogi by Larry Kaufman, CCC, January 07, 2020
  53. Stockfish NN release (NNUE) by Henk Drost, CCC, May 31, 2020
  54. Stockfish NNUE – The Complete Guide, June 19, 2020 (Japanese and English)
  55. Rosenblatt's Contributions
  56. The abandonment of connectionism in 1969 - Wikipedia
  57. Frank Rosenblatt (1962). Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books
  58. Seppo Linnainmaa (1976). Taylor expansion of the accumulated rounding error. BIT Numerical Mathematics, Vol. 16, No. 2
  59. Backpropagation from Wikipedia
  60. Paul Werbos (1994). The Roots of Backpropagation. From Ordered Derivatives to Neural Networks and Political Forecasting. John Wiley & Sons
  61. Neocognitron - Scholarpedia by Kunihiko Fukushima
  62. Classical conditioning from Wikipedia
  63. Sepp Hochreiter's Fundamental Deep Learning Problem (1991) by Jürgen Schmidhuber, 2013
  64. Nici Schraudolph’s go networks, review by Jay Scott
  65. Re: Evaluation by neural network ? by Jay Scott, CCC, November 10, 1997
  66. Long short term memory from Wikipedia
  67. Tsumego from Wikipedia
  68. Helmholtz machine from Wikipedia
  69. Who introduced the term “deep learning” to the field of Machine Learning by Jürgen Schmidhuber, Google+, March 18, 2015
  70. Presentation for a neural net learning chess program by Dann Corbit, CCC, April 06, 2004
  71. Clément Farabet | Code
  72. Demystifying Deep Reinforcement Learning by Tambet Matiisen, Nervana, December 21, 2015
  73. high dimensional optimization by Warren D. Smith, FishCooking, December 27, 2019
  74. Generative adversarial networks from Wikipedia
  75. Teaching Deep Convolutional Neural Networks to Play Go by Hiroshi Yamashita, The Computer-go Archives, December 14, 2014
  76. Teaching Deep Convolutional Neural Networks to Play Go by Michel Van den Bergh, CCC, December 16, 2014
  77. Arasan 19.2 by Jon Dart, CCC, November 03, 2016 » Arasan's Tuning
  78. GitHub - BarakOshri/ConvChess: Predicting Moves in Chess Using Convolutional Neural Networks
  79. ConvChess CNN by Brian Richardson, CCC, March 15, 2017
  80. Jürgen Schmidhuber (2015) Critique of Paper by "Deep Learning Conspiracy" (Nature 521 p 436).
  81. How Facebook’s AI Researchers Built a Game-Changing Go Engine | MIT Technology Review, December 04, 2015
  82. Combining Neural Networks and Search techniques (GO) by Michael Babigian, CCC, December 08, 2015
  83. DeepChess: Another deep-learning based chess program by Matthew Lai, CCC, October 17, 2016
  84. ICANN 2016 | Recipients of the best paper awards
  85. Jigsaw puzzle from Wikipedia
  86. CMA-ES from Wikipedia
  87. Re: Minic version 3 by Connor McMonigle, CCC, November 03, 2020 » Minic 3, Seer 1.1
  88. catastrophic forgetting by Daniel Shawul, CCC, May 09, 2019
  89. Using GAN to play chess by Evgeniy Zheltonozhskiy, CCC, February 23, 2017
  90. GitHub - paintception/DeepChess
  91. AlphaGo Zero: Learning from scratch by Demis Hassabis and David Silver, DeepMind, October 18, 2017
  92. Google's AlphaGo team has been working on chess by Peter Kappler, CCC, December 06, 2017
  93. Residual Networks for Computer Go by Brahim Hamadicharef, CCC, December 07, 2017
  94. Translation of Yu Nasu's NNUE paper by Dominik Klein, CCC, January 07, 2021
  95. AlphaZero: Shedding new light on the grand games of chess, shogi and Go by David Silver, Thomas Hubert, Julian Schrittwieser and Demis Hassabis, DeepMind, December 03, 2018
  96. Book about Neural Networks for Chess by dkl, CCC, September 29, 2021
  97. Acquisition of Chess Knowledge in AlphaZero, ChessBase News, November 18, 2021
  98. Alois Heinz (1994). Efficient Neural Net α-β-Evaluators. pdf
  99. Mathieu Autonès, Aryel Beck, Phillippe Camacho, Nicolas Lassabe, Hervé Luga, François Scharffe (2004). Evaluation of Chess Position by Modular Neural network Generated by Genetic Algorithm. EuroGP 2004
  100. Naive Bayes classifier from Wikipedia
  101. GitHub - pluskid/Mocha.jl: Deep Learning framework for Julia
  102. Rectifier (neural networks) from Wikipedia
  103. Muthuraman Chidambaram, Yanjun Qi (2017). Style Transfer Generative Adversarial Networks: Learning to Play Chess Differently. arXiv:1702.06762v1
  104. Yann Dauphin, Razvan Pascanu, Caglar Gulcehre, Kyunghyun Cho, Surya Ganguli, Yoshua Bengio (2014). Identifying and attacking the saddle point problem in high-dimensional non-convex optimization. arXiv:1406.2572
  105. kernel launch latency - CUDA / CUDA Programming and Performance - NVIDIA Developer Forums by LukeCuda, June 18, 2018
  106. PyTorch from Wikipedia
  107. A worked example of backpropagation using Javascript by Colin Jenkins, CCC, March 16, 2021
  108. yet another NN library by lucasart, CCC, April 11, 2021
  109. erikbern/deep-pink · GitHub
  110. Neural networks (NN) explained by Erin Dame, CCC, December 20, 2017

Up one Level