I wrote a commercial Go playing program in the late 1970s that was all procedural code. I have been thinking of hitting this problem again (on just a 9x9 board) using this combination of unsupervised learning to reduce the complexity of the input data, and then use a combination of supervised learning and some hand-written code.
Fast hardware was not available before to use deep neural networks (> 1 hidden layer) the last time I did Go playing programming. (There are also new monte carlo techniques that are providing really good results.)