I think that Chess machines play perfectly for the next 8 moves, but don't necessarily sense the importance of a Knight Outpost (which may have relevance 20 moves ahead. A proper Knight Outpost will remain a fork threat for the rest of the game).
It is far easier for a Human to beat a Chess Machine at positional play (ex: a backwards pawn shape will probably be a problem at endgame, 30+ moves from now) than to beat a Chess Machine at tactical play (3 moves from now, I can force a fork between two minor pieces)
Do some reading on Stockfish for example if you doubt the veracity of my statement.
But its just as you say: its weighting parameters and heuristics. When Stockfish recognizes a backwards pawn, it deducts a point value. When Stockfish recognizes "pawn on 6th row", it adds a point value to that pawn.
But that's a heuristic. A trained heuristic using games, but still comes down to what I understand to be a +/- point value (like... +35 centipawns).
In contrast, a chess engine truly knows that if you do X move, it will force a Rook / Minor piece exchange in 8 moves.
When you play positionally vs Stockfish, you're arguing with a heuristic (a heuristic which has been refined over many cycles of machine learning, but a heuristic nonetheless that comes down to "+/- centipawns") . When you play tactically vs Stockfish, it is evaluating positions more than a dozen moves ahead of what is humanly possible.
When you play against Stockfish in endgame tablebase mode, it plays utterly, and provably, perfectly.
Take a pick of what game you want to play against it. IMO, I'd bet on its positional "weakness" (yes, it is still very strong at positional play, but it is the most "heuristical" part of the engine)
This. It's a fairly common feature of any AI that uses some form of tree search/minimax, and the effect is very pronounced in chess. Even the best human players can only think 6-8 plies into the feature versus ~18 for a computer. What we can (could?) do is apply smarter evaluation functions to the board states resulting from candidate plays and stop considering moves that look problematic earlier in the search (game tree pruning). AI tends to use very simple evaluation functions that can be computed quickly. They do so given that 1) it allows for deeper search, and a weak heuristic evaluated far in the future often beats a strong one evaluated a few plies prior and 2) for some games (like Go) it's really hard to codify the "intuitions" that human players speak of.
Because search based AI considers board states __very__ far in the future, the results are often completely counterintuitive in a game with an established theory of play. Those theories are born of humans, for humans.
The introduction of MCTS some years back was the first leap towards a human level Go AI (incidentally, MCTS is more human-like than exhaustive tree search in that it prunes aggressively by making early judgement calls as to what merits further consideration). AlphaGo's use of deep policy and evaluation networks to score the board is very cool, and the next step in that journey. What's interesting to me is that, unlike chess AI, AlphaGo might actually advance the human theory of Go. It's possible that these "strange moves" will lead to some very interesting insights if DeepMind traces them through the eval and policy networks and manages to back out a more general theory of play.