Qhapaqのアピール文 1. Qhapaqの概要 "Qhapaq"は「偉大な」を意味するケチュア語です。本プロジェクトが偉大な知の巨人の肩に立っていることに由来しています。 Qhapaqは所謂aperyファミリーのひとつです。2016年1月から開発をはじめ、3月末時点でのapery(github上の最新版)に対する勝率は55%ぐらいです。 開発者がドケチであるため、今回のプロジェクトの目的はゲームノートPC一つでできる軽量、低予算な機械学習の実現となっています。 現在、探索パラメタの高速な最適化手法、既存の評価関数を再利用したオンライン学習手法を新規開発中です。 2. Qhapaqの手法 進化戦略による探索パラメータの高速最適化: stockfishベースの探索には枝刈の閾値を初めとした多くのパラメータが存在します。 探索パラメータの最適化とは、勝率を最大化するパラメータの組み合わせを探すことを意味しており、 これはノイズ付き多次元関数の最適化問題に帰着します。 本研究では進化戦略を用いることで従来手法に比べ数倍程度に高速な最適化を実現しました。 探索パラメータを最適化することで、一晩程度の探索でレートを35程度上昇させることに成功しました。 既存の評価関数を再利用したオンライン学習: aperyの評価関数では70000局程度の棋譜を学習しています[1]。 しかし、ゲームノートPCで70000局の棋譜を対象にbonanzaメソッドを用いようとすると、棋譜の読み込みに30時間強掛かります。 (開発者のPCで800局の読み込みに20分程度掛かっていることから予想) そこで、評価関数を零から作ることを諦め、強豪ソフト/プレイヤーの棋譜を既存の評価関数に追加で学習させるオンライン学習法を開発しています。 既存の評価関数を初期値に、少数の棋譜でbonanzaメソッドを用いると過学習によりレートが著しく落ちるので、 評価関数の各パラメータが元の値から離れた場合、その距離に応じて復元力を働かせるようにしています。 結果、指し手に有意な差(教師データに対する一致率で5%程度。実際の指し手はさらに異なると思われる)を出しながら 過学習をによるレート低下を起こさない(元のaperyに対して勝率51%)ことに成功しました。 3. Qhapaqの今後 オンライン学習で勝率が殆ど上昇していない原因としては、 ・復元力が強すぎるor弱すぎる ・教師データにした棋譜(ponanza、技巧の2015年の棋譜、約800局)との相性が悪い ・そもそも教師データ数が足りていない が考えられます。パラメータの調整で強くなるなら良いですが、棋譜が沢山必要になるようだと、 本プロジェクトの目的から外れたものになってしまうのではないかと考えています。 強いAIを作るのも魅力的ですが、振り飛車に特化したAIなど、AIに棋風の概念を持たせるような研究も興味深いと考えています。 最新情報についてはtwitter(https://twitter.com/Qhapaq_49)にてご報告いたします 開発者のPC = Intel Corei7-4710MQ CPU @ 2.50 Ghz、メモリ16GB 4. 参考 [1] https://twitter.com/search?q=%E7%99%BD%E9%B5%AC%20%E5%84%AA%E5%8B%9D&src=tyah