Зовсім недавно з'явилася новина, що дослідницька команда Alphabet DeepMind розширила свій механізм машинного навчання, щоб грати як в Шогі, так і в шахи. Мабуть, після декількох годин самонавчання, тобто, граючи проти себе, враховуючи правила гри, його продуктивність у шахах вже перевершила показник у топ-поточних двигунів, таких як Stockfish 8. Я особисто ще не знаю, як саме були налаштовані матчі, оскільки в яких умовах було встановлено виконання Stockfish, оскільки, якщо час обчислення обмежений, двигуни можуть працювати дуже погано. У будь-якому випадку, це дуже вражаюче досягнення, адже навіть якщо виявиться, що можна було б налаштувати Stockfish більш оптимально, маючи кілька додаткових годин тренувань, AlphaZero знову перевершить рівень гри, що означає AlphaZero принципово сильніший за будь-який поточний стандартний шаховий двигун на основі евристичної функції оцінки.
Тепер, з огляду на цю новину, було б чудово, якби хтось міг детальніше розглянути основні відмінності в роботі машинного вивченого шахового двигуна порівняно зі стандартними двигунами, якими ми всі звикли користуватися. Більш конкретно:
- Чи не є функція оцінювання, яку використовує AlphaZero, навчена методами машинного навчання, врешті-решт лише чергова функція евристичного оцінювання? Якщо так, то було б справедливо сказати, що принциповою різницею між функціями оцінювання двох двигунів є той факт, що у Stockfish є оптимізована функція оцінки, налаштована людиною, тобто визначення функції для оптимізації є фіксованою, тоді як для AlphaZero, функція оцінювання цілі постійно переробляється шляхом додаткового навчання (наприклад, через самоігра)? Перетворення останніх набагато більш динамічним у підході.
Зрештою, розпливчасто кажучи, двигун, подібний до Stockfish, застосовує свою оціночну функцію до дерева можливих рухів, вирішуючи, які гілки зберегти, а які відкинути, потім через глибший бетонПроаналізувавши кожну гілку, знову ж таки через її оціночну функцію, він з'ясовує, яка галузь дала найбільшу цінність, і що стає головним варіантом (звичайно, існує багато методів прогресу навколо цього процесу, щоб ефективно обрізати це велике дерево). Це означає, що для кожної позиції цей надзвичайно конкретний розпорядок повинен бути повторений для того, щоб рибалка прийняла рішення. Навпаки, я думаю, що AlphaZero робить щось дуже інше, а саме, він не покладається на конкретний аналіз дерева можливих рухів у заданій позиції, натомість його функція оцінювання по суті призначає значення цій позиції (що інтуїтивно схоже на те, що ставити поточна позиція аналогічно всім іншим позиціям, для яких вона пройшла підготовку), не маючи необхідності виконувати конкретні діїаналіз того, як це роблять Stockfish або навіть людський гравець. Це взагалі звукова картина роботи AlphaZero чи аналогічно навчених машин машинного навчання?
Ми знаємо, що простір шахових позицій є достатньо великим, що будь-яка спроба вибірки всіх позицій в ньому була б навіть в принципі абсолютно марною (СКЛАДНА СКЛАДНІСТЬ), що дозволило б припустити, що ніякої кількості тренувань за допомогою самої гри не буде достатньо, щоб вивчили всі позиції, тож як же може бути гарний кінцевий результат, незважаючи на те, що потенційно досліджував невелику частину позицій простору за допомогою самоігра? Яка ключова ідея тут у грі?
Я здогадуюсь, що AlphaZero має дуже оптимальний спосіб порівняння будь-якої заданої позиції, навіть якщо вона нова, з раніше відвіданою в тренувальному наборі, чим ближче порівняння, тим більш обґрунтованою може бути оцінка, яку можна зробити з порівняння. Наприклад, коли він грав у русі Bg5 у грі 5 , він повинен був вивчити подібну структуру під час свого тренування, тобто він здатний визнати, що ця позиція по суті еквівалентна (можливо, повністю) різній, вивченій під час її навчання, в аналогія того, як досягається розпізнавання обличчя за допомогою машинного навчання, і в результаті він робить висновок, що Bg5 повинен бути найкращим кроком, як це було в тому (або тих) інших подібних положеннях. Це взагалі правильна здогадка? Я поняття не маю, як це порівняння це зроблено, оскільки напевно неможливо зберігати всі треновані позиції та розбирати їх кожен раз.
Це лише спроба отримати такий глибокий погляд на роботу AlphaZero та на те, як воно приймає рішення щодо даної позиції.