  This report presents Giraffe, a chess engine that uses self-play to discover
all its domain-specific knowledge, with minimal hand-crafted knowledge given by
the programmer. Unlike previous attempts using machine learning only to perform
parameter-tuning on hand-crafted evaluation functions, Giraffe's learning
system also performs automatic feature extraction and pattern recognition. The
trained evaluation function performs comparably to the evaluation functions of
state-of-the-art chess engines - all of which containing thousands of lines of
carefully hand-crafted pattern recognizers, tuned over many years by both
computer chess experts and human chess masters. Giraffe is the most successful
attempt thus far at using end-to-end machine learning to play chess.
