Кіріспе
жол бағалау функциясы Компьютерлік ойын бағдарламасындағы ойын позициясын бағалайтын функция. Бағалау функциясы, сондай-ақ эвристикалық бағалау функциясы немесе статикалық бағалау функциясы деп аталады, бұл ойын ағашындағы позицияның (әдетте жапырақ немесе терминалдық түйінде) құндылығын немесе жақсылығын бағалау үшін ойынды компьютерлік бағдарламалары қолданатын функция. Көбінесе, мән нақты сан немесе квантталған бүтін сан болып табылады, көбінесе го ойынындағы тас немесе шахматтағы пешка сияқты ойын элементінің құнының n-ші бөлігі, мұнда n ондық, жүздік немесе басқа ыңғайлы бөлшек болуы мүмкін, бірақ кейде мән бірлік аралығындағы үш мәннен тұратын массив болып табылады, бұл позицияның жеңіс, теңдік және жеңіліс пайызын көрсетеді. Шешілмеген ойындар үшін бағалау функцияларының аналитикалық немесе теориялық модельдері жоқ, сонымен қатар мұндай функциялар толығымен кездейсоқ емес. Бағалау функцияларының құрамы автоматқа кандидат функцияны енгізу және оның кейінгі өнімділігін бағалау арқылы эмпирикалық жолмен анықталады. Шахмат, шоги және олар үшін бағалау функцияларының жалпы құрамына қатысты бірнеше ойындар үшін қазіргі уақытта жеткілікті дәлелдер бар. Бағалау функцияларын қолданатын ойындарға шахмат, го және шашка жатады. Сонымен қатар, MuZero сияқты бағдарламалардың пайда болуымен компьютерлік бағдарламалар Atari 2600 сияқты бейне ойындарды ойнау үшін де бағалау функцияларын пайдаланады. Кейбір ойындар, мысалы, крестики-нолики, толық шешілген және дискретті шешім ағашы болғандықтан іздеу немесе бағалауды қажет етпейді.
Function in a computer game playing program that evaluates a game position
An evaluation function, also known as a heuristic evaluation function or static evaluation function, is a function used by game playing computer programs to estimate the value or goodness of a position (usually at a leaf or terminal node) in a game tree. Most of the time, the value is either a real number or a quantized integer, often in nths of the value of a playing piece such as a stone in go or a pawn in chess, where n may be tenths, hundredths or other convenient fraction, but sometimes, the value is an array of three values in the unit interval, representing the win, draw, and loss percentages of the position. There do not exist analytical or theoretical models for evaluation functions for unsolved games, nor are such functions entirely ad hoc. The composition of evaluation functions is determined empirically by inserting a candidate function into an automaton and evaluating its subsequent performance. A significant body of evidence now exists for several games like chess, shogi and go as to the general composition of evaluation functions for them. Games in which game playing computer programs employ evaluation functions include chess, go, and checkers. In addition, with the advent of programs such as MuZero, computer programs also use evaluation functions to play video games, such as those from the Atari 2600. Some games like tic tac toe are strongly solved, and do not require search or evaluation because a discrete solution tree is available.
Іздеумен байланысы
Мұндай бағалаулар ағашы әдетте іздеу алгоритмінің бір бөлігі болып табылады, мысалы Монте-Карло ағашы іздеуі немесе альфа-бета іздеуі сияқты минимакс алгоритмі. Бұл мән, егер ойын ағашы сол түйінден ойынның соңына дейін кеңейтілсе, жеңудің салыстырмалы ықтималдығын көрсетеді деп есептеледі. Функция тек қазіргі позицияны (яғни, фигуралардың қай жерде тұрғанын және олардың бір-бірімен қарым-қатынасын) қарастырады және позицияның тарихын ескермейді, сонымен қатар түйінден алға қарай мүмкін болатын қимылдарды зерттемейді (сондықтан статикалық). Бұл, тактикалық қауіптер бар динамикалық позицияларда бағалау функциясы позицияны дәл бағалай алмайды дегенді білдіреді. Мұндай позициялар «тыныш емес» деп аталады; оларды бағалау алдында қауіптерді шешу үшін «тыныш іздеу» деп аталатын іздеу кеңейтуінің кем дегенде бір түрі қажет. Бағалау функциялары кейде абсолютті мән береді, эвристикалық емес, егер түйінде жеңіс, жеңіліс немесе теңдік болса. Іздеу мен бағалау функциясындағы білім арасында тығыз байланыс бар. Тераң іздеу бағалауда қысқа мерзімді тактикалық факторларды азайтады және ұзақ мерзімді позициялық үлгілерді күшейтеді. Сонымен қатар, енгізілген білімнің тиімділігі мен есептеу күрделілігі арасында компромисс бар: егжей-тегжейлі білімді есептеуге көп уақыт кетіп, өнімділік төмендеуі мүмкін, сондықтан нақты білімге жуықтап табу көбінесе жақсырақ. Бағалау функциясы іздеудің номиналды тереңдігіне, сондай-ақ іздеуде қолданылатын кеңейтулер мен қысқартуларға байланысты болғандықтан, бағалау функциясы үшін жалпы немесе дербес формула жоқ. Бір қолданбада жақсы жұмыс істейтін бағалау функциясын басқа қолданбада тиімді жұмыс істеуі үшін маңызды түрде қайта баптау немесе қайта оқыту қажет болуы мүмкін.
Шахматта
Компьютерлік шахматта бағалау функциясының нәтижесі әдетте бүтін сан болады, ал бағалау функциясының өлшемдері пешка деп аталады. "Пешка" термині, шахмат фигураларының салыстырмалы құнында түсіндірілгендей, ойыншының қарсыласынан бір пешкаға артық болған кездегі бағаны көрсетеді. 1 саны әдетте пешкенің бір бөлігін білдіреді, ал компьютерлік шахматта жиі қолданылатыны – пешкенің жүзден бір бөлігі болып табылатын сантипешкалар. Жоғары бағалаулар материалдық теңгерімсіздікті, позициялық артықшылықты немесе материалдық жеңіске жақын екенін көрсетеді. Өте жоғары бағалаулар шахматтың жақын арада болатынын білдіруі мүмкін. Бағалау функциясы сондай-ақ, жүру құқығының құнын жасырын түрде кодтайды, ол жеңіс немесе жеңіліс үшін пешкенің шағын бөлігінен бастап өзгеруі мүмкін.
Қолдан жасалған бағалау функциялары
Компьютерлік шахматтың тарихи тұрғыдан алғанда, бағалау функциясының шарттары қозғалтқыш әзірлеушісімен құрастырылады (яғни қолмен жасалады), нейрондық желілерді оқыту арқылы емес. Қолмен жасалған бағалау функцияларын құрудың жалпы тәсілі – позицияның құнына әсер ететін салмақталған түрлі шарттардың сызықтық комбинациясы. Дегенмен, қолмен жасалған бағалау функциясының барлық шарттары сызықтық емес, мысалы, король қауіпсіздігі және қырғын құрылымы. Әрбір шарт бірінші реттік факторлардан (тек кеңістікке және оған орналасқан фигураға тәуелді), екінші реттік факторлардан (басқа кеңістіктермен салыстырылатын кеңістік) және n-ші реттік факторлардан (позиция тарихына тәуелділік) тұрады деп қарастырылады. Қолмен жасалған бағалау функциясы әдетте материалдық теңгерімнен тұрады, ол бағалаудың басым бөлігін құрайды. Материалдық құндылықтар үшін дәстүрлі шамалар: ферзь = 9, мұнара = 5; ат немесе піл = 3; қалың = 1; корольге өте үлкен мән беріледі, әдетте қалған барлық фигуралардың жалпы құнынан жоғары. Олар 2010 жылдардың соңына дейін компьютерлік шахматта кең таралған жоқ, себебі нейрондық желілерді оқытуға қажетті аппараттық құрал сол кезде жеткілікті қуатты болмады, сондай-ақ жылдам оқыту алгоритмдері мен желі топологиясы және архитектурасы әлі дамытылмаған еді. Бастапқыда, нейрондық желіге негізделген бағалау функциялары әдетте бүкіл бағалау функциясы үшін бір нейрондық желіден тұратын, тақтадан таңдалған кіріс деректерінен және сантипаун шкаласына нормаланған бүтін сан шығаратын. Нейрондық желілердегі параметрлер әдетте күшейту оқытуы немесе қадағалау оқытуы арқылы оқытылады. Соңғы уақытта компьютерлік шахматтағы бағалау функциялары бірнеше нейрондық желілерді пайдалана бастады, әр нейрондық желі бағалаудың белгілі бір бөлігіне, мысалы, қырғын құрылымына немесе соңғы ойынға оқытылады. Бұл нейрондық желілер мен қолмен жасалған шарттардан тұратын гибридтік тәсілдерге мүмкіндік береді. Терең нейрондық желілер, сирек болса да, компьютерлік шахматта қолданылды, Мэтью Лайдың 2015 жылғы Giraffe және Deepmind-тің 2017 жылғы AlphaZero бағалау функцияларында терең нейрондық желілердің мүмкіндігін көрсеткеннен кейін. Deepmind-тің AlphaZero мақаласының нәтижелерін қайталауға тырысу үшін көп ұзамай Leela Chess Zero жобасы басталды. Желілердің мөлшерінен басқа, AlphaZero және Leela Chess Zero-да қолданылатын нейрондық желілер дәстүрлі шахмат қозғалтқыштарында қолданылатындарынан өзгеше, олар бағалауға (бағалы бас) және қозғалыс ретін анықтауға (саясат бас) арналған екі шығысқа ие, бағалауға арналған бір ғана шығыс емес. Сонымен қатар, Leela нейрондық желісінің мән басының шығысын дәстүрлі шахмат қозғалтқыштарында қолданылатын сантипаун шкаласына жуықтап нақты санға орнатуға болады, бірақ әдепкі шығыс – жеңіс, теңдік және жеңіліс пайыздары, бірлік аралығынан алынған үш мәннен тұратын вектор. Әр кесте шахмат тақтасының квадраттарына сәйкес келетін 64 мәннің жиынтығын құрайды. Фигуралық квадрат кестесінің ең қарапайым нұсқасы әр ойыншы үшін әртүрлі фигураларға арналған жеке кестелерден тұрады, бұл шахматта жалпы 12 фигуралық квадрат кестесіне әкеледі. Компьютерлік шахматта квадраттық кестелердің күрделі нұсқалары қолданылады, олардың ең танымалдарының бірі – корольдік квадрат кестесі, ол Stockfish, Komodo Dragon, Ethereal және басқа көптеген қозғалтқыштарда қолданылады, онда әр кесте ойыншының короліне қатысты әр түрлі фигуралардың орнын ескереді, тек әр түрлі фигуралардың орнын емес. Кестедегі мәндер әр фигураның әр кеңістікте орналасуына байланысты бонустар/айыппұлдар болып табылады және талдау арқылы өлшеу қиын көптеген нәзік факторлардың жиынтығын кодтайды. Қолмен жасалған бағалау функцияларында кейде екі кесте жиынтығы болады: біреуі ашылу/орта ойын үшін, екіншісі соңғы ойын үшін; орта ойынның позициялары екеуінің арасында интерполяцияланады. Бастапқыда 2018 жылы компьютерлік шогиде Ю Насу әзірлеген, бүгінгі таңда компьютерлік шахматта қолданылатын ең көп таралған бағалау функциясы – тиімді жаңартылатын нейрондық желі немесе қысқаша NNUE, нейрондық желіге кіріс ретінде тек фигуралық квадрат кестелері ғана бар. Шын мәнінде, ең қарапайым NNUE архитектурасы – жоғарыда сипатталған 12 фигуралық квадрат кестесі, тек бір қабатты және активациялық функциялары жоқ нейрондық желі. Корольдік квадрат кестелерін кіріс ретінде пайдаланатын тиімді жаңартылатын нейрондық желі архитектурасы алғаш рет Stockfish NNUE деп аталатын Stockfish туындысына ауыстырылды, 2020 жылдың 30 мамырында жарияланды және кейіннен 2020 жылдың 6 тамызында ресми Stockfish қозғалтқышына енгізілді.
Ойын аяқтау кестелері
Шахмат қозғалтқыштары жиі ойын аяғының базалық кестелерін бағалау функциясында қолданады, себебі бұл қозғалтқышқа ойын аяғында мінсіз ойнауға мүмкіндік береді.
Баруға
Тарихи тұрғыдан алғанда, Computer Go-дағы бағалау функциялары бақылаудағы аумақты, тастардың ықпалын, тұтқындардың санын және тақтадағы топтардың тірі қалуы мен өлуін ескеретін. Дегенмен, қазіргі заманғы Go ойнайтын компьютерлік бағдарламалар бағалау функцияларында көбінесе терең нейрондық желілерді пайдаланады, мысалы AlphaGo, Leela Zero, Fine Art және KataGo, және тастар санымен өлшенген мәннен гөрі жеңіс/тең/жеңіліс мүмкіндігінің пайызын көрсетеді.