스톡피쉬는 원래 자신이 두는 수를 성진수라고 불렀다. 한국의 전문 체스플레이어의 이름을 딴 것이다. 그러나 성진수와의 대국 후 결코 자신이 성진수를 따라잡을 수 없다는 것을 깨달은 스톡피쉬는, 자신이 두는 수를 '결코 성진수가 될 수 없는 수'라는 의미로 'N(ever)진수'라고 지었다. 이것이 우리가 오늘날 스톡피쉬의 수를 엔진수라고 부르는 것의 유래이다.
사용한 엔진은 스톡피쉬 nnue로 보입니다. nnue엔진은 흔히 딥러닝이라고 말하는 신경망을 사용합니다. 신경망은 많은 하이퍼파라미터, 쉽게 얘기해 많은 변수를 가지고 있어서 많은 상황에 유연하게 대처할 수 있습니다. 한가지 문제는 신경망에서 모든 경우의 수가 완벽히 고려되는 것이 아니라는 점입니다. 스톡피쉬는 현재 보드상황을 숫자로 변환해 신경망에 입력하는데, 입력된 숫자들은 가중치에 곱해집니다. 즉 현재 보드에 대한 판단을 높은 정확도로 맞출 수 있습니다. 하지만 기존에 패턴들과 다른 상황, 제시된 퍼즐과 같은 상황이 오면 스톡피쉬는 기존 변수들이 훈련된 그대로 대입합니다. 그 과정에서 몇가지 기존 훈련에서 저평가된 요소가 생기게 되고, 그로 인해 오류가 발생할 때가 있습니다. 이와 유사한 상황으로 최근에 화제가 되었던 바둑 인공지능을 이기는 바둑 아마추어 예시를 살펴보면 흥미로울 거 같습니다.
실제로 바둑에서도 알파고 알고리즘으로 못 찾는 묘수들이 많습니다. 대부분의 경우 손해를 보는 "직관적으로 안 두는 수" 를 못 찾는 경향이 있죠 퍼즐1 기보의 비숍 묘수도 "퀸을 보호 없이 내주는 수"인데 막상 두고 나니 체크메이트를 만드는 묘수였고요. 바둑에서는 최근에 인터넷 대국에서 박정환9단이 호구 묘수를 보인 적이 있습니다. 호구 (호랑이입)에 돌을 놓는건 99%는 최소 두 집 이상의 손해를 보는 블런더 급입니다만 프로기사끼리의 대국에서 저 묘수를 보이면서 승리를 만들었죠 심지어 그 수는 AI 추천수에도 없었습니다. 바둑 알면 한번 볼만한 기보라고 생각해요
바둑의 경우는 그다지 난도가 높지 않은 실전 부분사활도 AI가 오작동하는 사례가 있더라고요. 방송대국이었던 것으로 기억하는데, 수십 수가 지나 대국자가 착수할 때까지 못찾아냈었습니다. 현재 어느정도 패치되었으나 축장문 버그도 있었고요. 체스 인공지능에 대해서는 잘 모르지만, 바둑 인공지능의 경우 의외의 수와 더불어 인간은 당연하다고 봐서 생략된 수순에 대한 계산에 부하를 느끼는 것 같았습니다. 인공지능이 할 수 있는 교환은 미리 다 해 두는 것이 그런 맥락이지 않나 싶기도 하고요.
초치긴 싫은데 스톡피시가 이걸 못풀었다고 해서 인공지능이 체스를 정복했다는 사실이 변하진 않음.... 이걸 푸는 인간이 나올 순 있는데 그 사람은 애초에 인공지능 분석이랑 목적이 다름. 인간은 여기서 백이 이기는 방법을 알고 있으니까 처음부터 무승부 수순을 아예 배제해버릴 수 있는거고, 인공지능은 그냥 그 상황 자체에 대한 전반적인 분석을 하는거니 무승부 수순 위주로 수읽기를 할 수밖에 없는거임