Deep Learning

Home * Learning * Neural Networks * Deep Learning



Deep Learning, a branch of machine learning based on a set of algorithms that attempt to model high level abstractions in data - 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. While deep learning techniques have yielded in another breakthrough in computer Go (after Monte-Carlo Tree Search), some trials in computer chess were promising as well, but until December 2017, less spectacular.

=Go= Convolutional neural networks 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. Convolutional NNs are suited for deep learning and are highly suitable for parallelization on GPUs. 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. In their paper Move Evaluation in Go Using Deep Convolutional Neural Networks, 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.

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, combining Monte-Carlo tree search with their 12-layer networks.

=Chess=

Giraffe & Zurichess
In 2015, Matthew Lai trained Giraffe's deep neural network by TD-Leaf. 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.

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.

AlphaZero
In December 2017, the Google DeepMind team with Matthew Lai involved published 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.

Leela Chess Zero
Leela Chess Zero is an adaptation of Gian-Carlo Pascutto's Leela Zero Go project to Chess, using Stockfish's board representation and move generation.

=See also=
 * AlphaGo
 * AlphaZero
 * Automated Tuning
 * Convolutional Neural Networks in Go
 * DeepChess
 * Giraffe
 * Keynote Lecture CG 2016 Conference by Aja Huang
 * Leela Chess Zero

=Selected Publications=

1965 ...

 * Alexey G. Ivakhnenko (1965). Cybernetic Predicting Devices. Naukova Dumka.
 * Alexey G. Ivakhnenko (1971). Polynomial theory of complex systems. IEEE Transactions on Systems, Man, and Cybernetics, Vol. 1, No. 4

1980 ...

 * Kunihiko Fukushima (1980). Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position. Biological Cybernetics, Vol. 36, pdf
 * David H. Ackley, Geoffrey E. Hinton, Terrence J. Sejnowski (1985). A Learning Algorithm for Boltzmann Machines. Cognitive Science, Vol. 9, No. 1, pdf
 * Rina Dechter (1986). Learning While Searching in Constraint-Satisfaction-Problems. AAAI 86, pdf

1990 ...

 * Sepp Hochreiter (1991). Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, TU Munich, advisor Jürgen Schmidhuber, pdf (German)
 * Sepp Hochreiter, Jürgen Schmidhuber (1997). Long short-term memory. Neural Computation, Vol. 9, No. 8, pdf

2000 ...

 * Igor Aizenberg, Naum N. Aizenberg, Joos Vandewalle (2000). Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications. Springer
 * Faustino J. Gomez, Jürgen Schmidhuber (2005). Co-Evolving Recurrent Neurons Learn Deep Memory POMDPs. GECCO 2005, pdf
 * Geoffrey E. Hinton, Simon Osindero, Yee Whye Teh (2006). A Fast Learning Algorithm for Deep Belief Nets. Neural Computation, Vol. 18, No. 7, pdf
 * Ilya Sutskever, Vinod Nair (2008). Mimicking Go Experts with Convolutional Neural Networks. ICANN 2008, pdf

2012 ...
2013 2014
 * Yoshua Bengio (2012). Deep Learning of Representations for Unsupervised and Transfer Learning. JMLR: Workshop on Unsupervised and Transfer Learning, 2011, pdf
 * Grégoire Montavon (2013). On Layer-Wise Representations in Deep Neural Networks. Ph.D. Thesis, TU Berlin, advisor Klaus-Robert Müller
 * Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller (2013). Playing Atari with Deep Reinforcement Learning. arXiv:1312.5602
 * Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio (2014). Generative Adversarial Networks. arXiv:1406.2661v1
 * Wojciech Jaśkowski, Marcin Szubert, Paweł Liskowski (2014). Multi-Criteria Comparison of Coevolution and Temporal Difference Learning on Othello. EvoApplications 2014, Springer, volume 8602
 * Christopher Clark, Amos Storkey (2014). Teaching Deep Convolutional Neural Networks to Play Go. arXiv:1412.3409
 * Chris J. Maddison, Aja Huang, Ilya Sutskever, David Silver (2014). Move Evaluation in Go Using Deep Convolutional Neural Networks. arXiv:1412.6564v1 » Go
 * Jürgen Schmidhuber (2014). Deep Learning in Neural Networks: An Overview. arXiv:1404.7828

2015 ...
2016 2017
 * Peter H. Jin, Kurt Keutzer (2015). Convolutional Monte Carlo Rollouts in Go. arXiv:1512.03375 » Go, MCTS
 * Michael Nielsen (2015). Neural networks and deep learning. Determination Press
 * Matthew Lai (2015). Giraffe: Using Deep Reinforcement Learning to Play Chess. M.Sc. thesis, Imperial College London, arXiv:1509.01549v1 » Giraffe
 * Nikolai Yakovenko, Liangliang Cao, Colin Raffel, James Fan (2015). Poker-CNN: A Pattern Learning Strategy for Making Draws and Bets in Poker Games. arXiv:1509.06731
 * Andrew Lavin, Scott Gray (2015). Fast Algorithms for Convolutional Neural Networks. arXiv:1509.09308
 * Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Andrei A. Rusu, Joel Veness, Marc G. Bellemare, Alex Graves, Martin Riedmiller, Andreas K. Fidjeland, Georg Ostrovski, Stig Petersen, Charles Beattie, Amir Sadik, Ioannis Antonoglou, Helen King, Dharshan Kumaran, Daan Wierstra, Shane Legg, Demis Hassabis (2015). Human-level control through deep reinforcement learning. Nature, Vol. 518
 * Yuandong Tian, Yan Zhu (2015). Better Computer Go Player with Neural Network and Long-term Prediction. arXiv:1511.06410, ICLR 2016 » Go
 * Quoc V. Le (2015). A Tutorial on Deep Learning - Part 1: Nonlinear Classifiers and The Backpropagation Algorithm. Google Brain, pdf
 * Quoc V. Le (2015). A Tutorial on Deep Learning - Part 2: Autoencoders, Convolutional Neural Networks and Recurrent Neural Networks. Google Brain, pdf
 * Jürgen Schmidhuber (2015). Deep Learning in Neural Networks: An Overview. Neural Networks, Vol. 61
 * Zachary C. Lipton, John Berkowitz, Charles Elkan (2015). A Critical Review of Recurrent Neural Networks for Sequence Learning. arXiv:1506.00019v4
 * Barak Oshri, Nishith Khandwala (2015). Predicting Moves in Chess using Convolutional Neural Networks. pdf
 * Yann LeCun, Yoshua Bengio, Geoffrey E. Hinton (2015). Deep Learning. Nature, Vol. 521
 * Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun (2015). Deep Residual Learning for Image Recognition. arXiv:1512.03385
 * Tim Dettmers (2016). 8-Bit Approximations for Parallelism in Deep Learning. arXiv:1511.04561v4, ICLR 2016
 * Ziyu Wang, Nando de Freitas, Marc Lanctot (2016). Dueling Network Architectures for Deep Reinforcement Learning. arXiv:1511.06581
 * 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 » AlphaGo
 * Tobias Graf, Marco Platzner (2016). Using Deep Convolutional Neural Networks in Monte Carlo Tree Search. CG 2016
 * Aja Huang (2016). AlphaGo: Combining Deep Neural Networks with Tree Search. CG 2016, Keynote Lecture
 * Hung Guei, Tinghan Wei, Jin-Bo Huang, I-Chen Wu (2016). An Empirical Study on Applying Deep Reinforcement Learning to the Game 2048. CG 2016
 * 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 » DeepChess
 * Dror Sholomon, Omid E. David, Nathan S. Netanyahu (2016). DNN-Buddies: A Deep Neural Network-Based Estimation Metric for the Jigsaw Puzzle Problem. ICAAN 2016, Lecture Notes in Computer Science, Vol. 9887, Springer
 * Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016). Deep Learning. MIT Press
 * Volodymyr Mnih, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy Lillicrap, Tim Harley, David Silver, Koray Kavukcuoglu (2016). Asynchronous Methods for Deep Reinforcement Learning. arXiv:1602.01783v2
 * Johannes Heinrich, David Silver (2016). Deep Reinforcement Learning from Self-Play in Imperfect-Information Games. arXiv:1603.01121
 * Dale Schuurmans, Martin Zinkevich (2016). Deep Learning Games. NIPS 2016
 * Andrei A. Rusu, Neil C. Rabinowitz, Guillaume Desjardins, Hubert Soyer, James Kirkpatrick, Koray Kavukcuoglu, Razvan Pascanu, Raia Hadsell (2016). Progressive Neural Networks. arXiv:1606.04671
 * Shixiang Gu, Ethan Holly, Timothy Lillicrap, Sergey Levine (2016). Deep Reinforcement Learning for Robotic Manipulation with Asynchronous Off-Policy Updates. arXiv:1610.00633
 * Jane X Wang, Zeb Kurth-Nelson, Dhruva Tirumala, Hubert Soyer, Joel Z Leibo, Rémi Munos, Charles Blundell, Dharshan Kumaran, Matthew Botvinick (2016). Learning to reinforcement learn. arXiv:1611.05763
 * Jonathan Rosenthal (2016). Deep Learning for Go. B.Sc. thesis, ETH Zurich
 * Tristan Cazenave (2017). Residual Networks for Computer Go. IEEE Transactions on Computational Intelligence and AI in Games, Vol. PP, No. 99, pdf
 * Shi-Jim Yen, Ching-Nung Lin, Guan-Lun Cheng, Jr-Chang Chen (2017). Deep Learning and Block Go. IJCNN 2017
 * Ti-Rong Wu, I-Chen Wu, Guan-Wun Chen, Ting-Han Wei, Tung-Yi Lai, Hung-Chun Wu, Li-Cheng Lan (2017). Multi-Labelled Value Networks for Computer Go. arXiv:1705.10701
 * Matej Moravčík, Martin Schmid, Neil Burch, Viliam Lisý, Dustin Morrill, Nolan Bard, Trevor Davis, Kevin Waugh, Michael Johanson, Michael Bowling (2017). DeepStack: Expert-level artificial intelligence in heads-up no-limit poker. Science, Vol. 356, No. 6337
 * Tristan Cazenave (2017). Improved Policy Networks for Computer Go. Advances in Computer Games 15, pdf
 * Hirotaka Kameko, Jun Suzuki, Naoki Mizukami, Yoshimasa Tsuruoka (2017). Deep Reinforcement Learning with Hidden Layers on Future States. Computer Games Workshop at IJCAI 2017, pdf
 * Keigo Kawamura, Naoki Mizukami, Yoshimasa Tsuruoka (2017). Neural Fictitious Self-Play in Imperfect Information Games with Many Players. Computer Games Workshop at IJCAI 2017, pdf
 * Marc Lanctot, Vinícius Flores Zambaldi, Audrunas Gruslys, Angeliki Lazaridou, Karl Tuyls, Julien Pérolat, David Silver, Thore Graepel (2017). A Unified Game-Theoretic Approach to Multiagent Reinforcement Learning. arXiv:1711.00832
 * David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai, Adrian Bolton, Yutian Chen, Timothy Lillicrap, Fan Hui, Laurent Sifre, George van den Driessche, Thore Graepel, Demis Hassabis (2017). Mastering the game of Go without human knowledge. Nature, Vol. 550, pdf
 * Peter Henderson, Riashat Islam, Philip Bachman, Joelle Pineau, Doina Precup, David Meger (2017). Deep Reinforcement Learning that Matters. arXiv:1709.06560
 * 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 » AlphaZero
 * Shantanu Thakoor, Surag Nair, Megha Jhunjhunwala (2017). Learning to Play Othello Without Human Knowledge. Stanford University, pdf » AlphaZero, MCTS, Othello

=Forum Posts=

2014

 * Teaching Deep Convolutional Neural Networks to Play Go by Hiroshi Yamashita, The Computer-go Archives, December 14, 2014
 * Teaching Deep Convolutional Neural Networks to Play Go by Michel Van den Bergh, CCC, December 16, 2014

2015 ...
2016
 * Who introduced the term “deep learning” to the field of Machine Learning by Jürgen Schmidhuber, Google+, March 18, 2015
 * *First release* Giraffe, a new engine based on deep learning by Matthew Lai, CCC, July 08, 2015 » Giraffe
 * Chess position evaluation with convolutional neural network in Julia by Kamil Czarnogorski, Machine learning with Julia and python, April 02, 2016
 * Deep Learning Chess Engine ? by Eren Yavuz, CCC, July 21, 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

2017
 * Neuronet plus conventional approach combined? by Rasmus Althoff, CCC, September 02, 2016
 * DeepChess: Another deep-learning based chess program by Matthew Lai, CCC, October 17, 2016 » DeepChess
 * The scaling of Deep Learning MCTS Go engines by Kai Laskos, CCC, October 23, 2016 » Deep Learning, Go, MCTS
 * No one really knows how the most advanced algorithms work by Daniel José Queraltó, CCC, April 11, 2017
 * How far away are we from deep learning Stockfish, Komodo,... by John Margusen, CCC, May 19, 2017
 * Is AlphaGo approach unsuitable to chess? by Mel Cooper, CCC, May 27, 2017 » AlphaGo, Giraffe
 * Re: Is AlphaGo approach unsuitable to chess? by Peter Österlund, CCC, May 31, 2017 » Texel


 * Neural nets for Go - chain pooling? by David Wu, Computer Go Archive, August 18, 2017
 * We are doomed - AlphaGo Zero, learning only from basic rules by Vincent Lejeune, CCC, October 18, 2017
 * AlphaGo Zero by Alberto Sanjuan, CCC, October 19, 2017
 * Zero performance by Gian-Carlo Pascutto, Computer Go Archive, October 20, 2017 »  AlphaGo,
 * Neural networks for chess position evaluation- request by Kamil Czarnogorski, CCC, November 13, 2017
 * Google's AlphaGo team has been working on chess by Peter Kappler, CCC, December 06, 2017 » AlphaZero
 * Historic Milestone: AlphaZero by Miguel Castanuela, CCC, December 06, 2017
 * An AlphaZero inspired project by Truls Edvard Stokke, CCC, December 14, 2017 » AlphaZero
 * To TPU or not to TPU... by Srdja Matovic, CCC, December 16, 2017
 * Re: To TPU or not to TPU... by Rémi Coulom, CCC, December 16, 2017

2018
 * Announcing lczero by Gary, CCC, January 09, 2018 » Leela Chess Zero
 * Connect 4 AlphaZero implemented using Python... by Steve Maughan, CCC, January 29, 2018 » AlphaZero, Connect Four, Python

=External Links=
 * Deep learning from Wikipedia
 * Hierarchical Deep Learning from Wikipedia
 * Deep Learning - Scholarpedia by Jürgen Schmidhuber
 * Very Deep Learning Since 1991 by Jürgen Schmidhuber
 * What is deep learning? - Quora
 * Deep Learning

Networks

 * Boltzmann machine from Wikipedia
 * Convolutional neural network from Wikipedia
 * Convolutional Neural Networks for Image and Video Processing, TUM Wiki, Technical University of Munich
 * Deep belief network from Wikipedia
 * Deep neural networks from Wikipedia
 * Deep Residual Networks from TUM Wiki, Technical University of Munich
 * Hopfield network from Wikipedia
 * Long short-term memory from Wikipedia
 * Neocognitron from Wikipedia
 * Neocognitron - Scholarpedia by Kunihiko Fukushima
 * Recurrent neural network from Wikipedia

Software

 * Comparison of deep learning software from Wikipedia
 * DeepDream from Wikipedia

Libraries

 * Apache Singa from Wikipedia
 * Caffe | Deep Learning Framework
 * CNTK (The Microsoft Cognitive Toolkit) from Wikipedia
 * Deeplearning4j from Wikipedia » Java
 * keras/keras at master · fchollet/keras · GitHub » Python
 * Keras Documentation
 * TensorFlow from Wikipedia
 * GitHub - jtoy/awesome-tensorflow: TensorFlow
 * Theano (software) from Wikipedia

Chess

 * GitHub - BarakOshri/ConvChess: Predicting Moves in Chess Using Convolutional Neural Networks
 * GitHub - erikbern/deep-pink: Deep Pink is a chess AI that learns to play chess using deep learning » Deep Pink
 * GitHub - benediamond/leela-chess: A chess adaption of GCP's Leela Zero
 * GitHub - glinscott/leela-chess: A chess adaption of GCP's Leela Zero » Leela Chess Zero
 * GitHub - Zeta36/chess-alpha-zero: Chess reinforcement learning by AlphaGo Zero methods » Zeta36

Games

 * GitHub - gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper by Gian-Carlo Pascutto et al. » Leela Zero
 * How to build your own AlphaZero AI using Python and Keras by David Foster, January 26, 2018 » AlphaZero, Connect Four, Python

Music Generation

 * Analyzing Six Deep Learning Tools for Music Generation by Frank Brinkkemper, The Asimov Institute, October 5, 2016
 * GitHub - jisungk/deepjazz: Deep learning driven jazz generation using Keras & Theano!
 * GitHub - tensorflow/magenta: Magenta: Music and Art Generation with Machine Intelligence
 * GitHub - feynmanliang/bachbot: Use deep learning to generate and harmonize music in the style of Bach
 * GitHub - MattVitelli/GRUV: GRUV is a Python project for algorithmic music generation

Nvidia

 * Deep Learning | NVIDIA Developer » GPU
 * Deep Learning in a Nutshell: Core Concepts by Tim Dettmers, Parallel Forall, November 3, 2015
 * Deep Learning in a Nutshell: History and Training by Tim Dettmers, Parallel Forall, December 16, 2015
 * Deep Learning in a Nutshell: Sequence Learning by Tim Dettmers, Parallel Forall, March 7, 2016
 * Deep Learning in a Nutshell: Reinforcement Learning by Tim Dettmers, Parallel Forall, September 8, 2016

Reports & Blogs

 * My First Deep Learning System 1991 / Deep Learning Timeline 1960-2013 by Jürgen Schmidhuber
 * Deep Learning by Robert Hof, MIT Technology Review, early 2013
 * Deep learning for… chess by Erik Bernhardsson, November 29, 2014
 * Deep learning for… chess (addendum) by Erik Bernhardsson, December 8, 2014
 * Deep learning for… Go by Erik Bernhardsson, December 11, 2014 » DCNN in GO
 * Why GEMM is at the heart of deep learning « Pete Warden's blog, April 20, 2015
 * The Brain vs. Deep Learning vs. Singularity by Tim Dettmers, July 27, 2015
 * Faster deep learning with GPUs and Theano by Manojit Nandi, August 05, 2015 » GPU, Python
 * Exploring Deep Learning with LI Zhe by Nivdul, November 17, 2015
 * How Facebook’s AI Researchers Built a Game-Changing Go Engine | MIT Technology Review, December 04, 2015
 * 7 Steps to Understanding Deep Learning by Matthew Mayo, KDNuggets, January 13, 2016
 * Could DeepMind try to conquer poker next? by Alex Hern, The Guardian, March 30, 2016
 * Texas Hold'em: AI is almost as good as humans at playing poker by Matt Burgess, Wired UK, March 30, 2016


 * Google Research Blog: Wide & Deep Learning: Better Together with TensorFlow by Heng-Tze Cheng, June 29, 2016
 * Enabling Continual Learning in Neural Networks by James Kirkpatrick, Joel Veness et al., DeepMind, March 13, 2017
 * Understand Deep Residual Networks — a simple, modular learning framework that has redefined state-of-the-art by Michael Dietz, Waya.ai, May 02, 2017
 * AlphaGo Zero: Learning from scratch by Demis Hassabis and David Silver, DeepMind, October 18, 2017
 * Kasparov on Deep Learning in chess by Frederic Friedel, ChessBase News, December 13, 2017 » AlphaZero
 * A Simple Alpha(Go) Zero Tutorial by Surag Nair, Stanford University, December 29, 2017 » AlphaZero, MCTS
 * GitHub - suragnair/alpha-zero-general: A clean and simple implementation of a self-play learning algorithm based on AlphaGo Zero (any game, any framework!)

Videos

 * Deep Learning SIMPLIFIED: The Series Intro YouTube Videos
 * Deep Learning Master Class -- Ilya Sutskever, YouTube Video


 * Deep Learning RNNaissance with Jürgen Schmidhuber, YouTube Video

=References=

Up one Level