rewritemath's blog

rewritemath’s blog

これマシュマロ。質問も受け付ける(https://t.co/VfNWTuMqau)

コンピュータ将棋専門用語辞典【寄稿、独自解説など】(できるだけ数学抜きで解説する)

速読コンピュータ将棋用語【記事募集中】 - qhapaq’s diary

↑こちらがカパックさんの記事です。

コンピュータ将棋 レーティング

uuunuuunさんの記事

私なら違う表現をするという場合の記述ですので、基本的には補足みたいなもんだと思ってください。(段々本家より充実してきている…説明の厳密さによって分担かなぁ)

楽しんでもらえるように、茶番を含みます。ミニマリストじゃないので…

 

コンピュータ将棋開発者の方々、そしてその文化を育ててくれている方々皆さんに感謝を 

 

利用の仕方(お勧め)

  • 全部読んでもすぐ読み切れる
  • 読みたいものがあれば、ctrl+f(キーボードのショートカット)を使って検索したい文字を入れてみよう

 

floodgate

コンピュータ将棋ソフトが対局してる場所。ググると出てくる。強いソフトの棋譜を得ようと思ったらここ。まとめて一年分とかダウンロードできたりする。棋譜の管理については別のところに解説を譲る。

 

レート

強さのこと。将棋界ではイロレーティングが使われていると思ってよい。

測定の仕方は他にもある。

ソフトの場合はfloodgateのものがめやす。

個人的に、ここが一番見やすかったりするので感謝して閲覧しましょう。

コンピュータ将棋 レーティング

uuunuuunさんという方のサイトです。

 

人間と比較すると、3000以上のソフトはデスクトップのいいパソコンでは人類越えだと思っていいです。最近の上位ソフトは4000くらいあるので、人間には勝てないと思われる。人間をソフトが越えたのはいつか、というのは議論すると長くなりそう…他に譲る。将棋倶楽部24よりfloodgateの方がレートはシビアだと思われる。強さに自信がある人は、floodgateに潜ってみては?

コンピュータ将棋 レーティング

 

評価値

どちらかが、その数字分有利という目安

±150くらいまでは互角

±300で作戦勝ち

±500で有利(ミスがなければ勝ち)

±800で優勢

±1000で大優勢

±1200で勝勢

±3000で逆転不可能

(あくまでめやす)

 

Depth ~

読みの深さ。~の数字の手数まで読む。全幅探索(記事の中で説明してます)とは限らない

 

Mate~

勝敗を読み切った宣言。~のところが手数。Mate15だとしたら、どんな手を指したとしても最善で応じれば15手以内に終局があることを読み切っている。

(詰みがあるとか必死とかってことではない。連続王手で終局を長引かせても、この手数以内に収まるという宣言)

 

multiPV~

検討する手の上位~個を表示させる設定。主に、局面の検討で使用する。次善手などの分岐も検討する場合はこれを設定する。

 

Ponder=読み筋

 

Ponder hit=読み筋通り

読み筋が当たったから早指しする

 

ライブラリ

公開されていて、中身を使って改造していいよって言ってるソフト達。

(公開されていても、ライブラリに登録されていない場合は、大会などに提出するソフトに利用してはいけない)

 

チルドレン

ライブラリを使って参加したソフト達。

複数使っている場合は親が沢山いることになる

 

 

 

評価関数

局面を評価する基準となるもの。関数とは、物を入れると何か操作されて物が出てくる箱だと思ってくれればいい。コンピュータ将棋の評価関数は、局面のデータを入れると、評価値が返ってくる。人間でいえば大局観と考えていい。

仕組みのざっくりとした説明はここで

ritomath-shogi.hatenablog.com

 

 N駒関係

Nは任意の正の整数値

N駒関係とはつまり、N個の駒の位置関係が盤上にあるとき、その評価は何点、という採点をして、局面をその関係につけた点数を合わせたものとして評価するもの。これによって局面に評価値がつくことで、有利か不利かを判断し、有利な局面を選ぶように指し手を進める基準になる。

 

ボナメソ

ボナンザメソッド。Bonanzaが使った学習方法。プロの棋譜を食べさせて、一手一手次の手をソフトに答えさせる。プロと同じ手を指したらいい子いい子する。段々プロっぽい手を憶える。手筋を人間が教えたりするより、強くなった。革命。

 

二駒関係

これだけだとちょっと弱いみたい。三駒がちょうどいいのかな

 

三駒関係

ソフトちゃんが、完全に同じ局面でしか答えられないと困るので、局面を抽象化する必要がある。そこで、局面を三駒の位置関係に分解して教えた。

 

N駒+効き

効きを入れると終盤とか入玉で強くなるかも?技巧さんは効きも使ってたはず。

 

四駒関係

頑張っても、情報量が大きくなりすぎるので今のところ主流じゃない。

 

KPPT

King 王様

Piece 他の駒

Piece 他の駒

Turn 手番

 

今はこれが主流

これで分かるように、KPPは三駒関係のこと。KPは二駒。やっぱり王様は大事。

KKPの場合、二つの王様は、自分と相手の王様。

 

NN 

NeuralNetwork(ニューラルネットワーク)の略語。

人間の脳を模倣した機械学習です

 

DL

DeepLearningの略語

 

NNUE

TNKが採用する、高速に差分計算ができるニューラルネットワーク型の評価関数

ごめんなさい、難しいこと言いたかっただけです。

TNK(たぬき)はソフトの名前です。基本的にニューラルネットワークを使うと、GPUでしか高速に動かすことができないのですが、その辺りの不都合を上手く解消した天才的な発明です。(技術が高度すぎて分かりやすく説明できないので許して)

 

不利飛車

コンピュータ将棋は振り飛車しない。振り飛車は損?振り(不利)飛車って呼ばれてる

 

頑張れ(ソフトの名前)

頑張って育てたソフトには愛着が湧く。開発者と一緒に応援しよう。

 

雑巾絞り

「この局面を探索すると、将来的にはもっといい評価値が出るのよ。だから、未来は明るい。あなたはこの局面をもっと楽観視していいのよ」という感じで、局面を与えては評価して、未来の評価値を持ってきて、ということを繰り返すこと。とっても仕事量が多い。強くなるけど。絞るにつれて段々と絞れなくなってくる。

 

雑巾絞りについて、有識者の言葉

エクスカリバー最初の町で売られているけどめっちゃ高いし装備できる人は限られてる

「札束ビンタ」

「ドモホルンリンクルのように、滴ってくる(強さが上がる)」

 

elmo絞り

「我々は、未来の局面についてだけではなくて、この局面から勝利が導けるかどうかを考えます。その結果から、未来の評価値を持ってくるのです」というタイプの雑巾絞り。なんかめっちゃ強くなったみたい。

 

Rezero

elmo絞りって、評価関数がない状態からでも未来予測できるようになってるってことじゃないか!?という発想から生まれた(多分)評価関数の元として人間の棋譜を入れたり、人間の棋譜が元となっているソフトの棋譜を入れたりしなくても、ソフトが自分で強くなる。(elmoくらいまで)

人間からの独立。やねうら王の開発者、磯崎様がこれを発表して世界に衝撃が走った。あのGoogleも注目したかもしれない。やはりやねさんは天才。(ちなみに電気代…)

 

探索部

役目

  • 局面を作って、評価関数という箱に投げつける
  • 帰ってきた評価値と局面を並べて、次に投げる局面を決める(優先して読む手はどれかなぁ、ということをこの子が決める。この子によっては読みぬけとか…)
  • 次に指す手を決める

 Stockfish

チェスの探索部で、公開されているもの。参考にしているソフトが多い。

詰みルーチン

この局面が詰むかどうかしか考えないマン。でも、詰め将棋だけは素晴らしい腕前。CPUのお仕事をこの子にどんくらい割り振るかによって勝敗が決まることもある。

 

全幅探索

有効な手、考えられる手。すべてだ!全てを考えてこそ将棋の可能性に迫ることができる!という感じで全部読むよう…。読みは浅くなっちゃう。Bonanzaはこれだったけど今は、効率よく先を読む手法(Minimaxとか、下の方に…)が色々使われている。

 

モンテカルロ

専門的な内容だからこれだけで一本記事がかけてしまう

 

αβ探索とかMinimaxとか枝刈りとかrootstrapとかbootstrapとかとか

上に同じ

 

 book

定跡

 

eval 

評価関数

 

 

 

 

 

IT関係の言葉

OS

オペレーティングシステムlinux,windows,mac,android,iosなど。

OSがアプリケーションを動かす。下地といえば分かりやすいだろうか。機械と人間との対話をするために、翻訳する役目を担っている。 

 

CPU

パソコンの計算機。脳みたいな。中国語で電脳はコンピュータのことだっけ。

 

GUI

Graphical User Interface(グラフィカルユーザーインターフェース

視覚的に人間に分かりやすくするためのもの。将棋所か、将棋GUIのどちらかを使うのが一般的。

 

GPU

映像処理が得意な子。CPUの中にも少し住んでる。たまに、この子が住んでないCPUもある

 

グラボ(グラフィックボード)

GPUの親分。GPUの団体みたいな。強力なGPU。最近はやりのでーぷらーにんぐでは、CPUよりこの子が頑張る

 

コア

仕事する人。最近はマルチ(複数のって意味)コアのCPUが多いですね。沢山いると仕事が捗るけど、仕事の割り振りは大変。Xeon(じーおん)という、インテルのCPUはコアが沢山。

 

メモリ、HDD、SSD、キャッシュ、ハッシュ、64bit…etc

他に分かりやすい解説があるはずなので割愛。メモリが小さいとソフトが動かないことがあるとか、32bitだと動かないことがあるとか、割と致命的なこともあるので要望があれば記事にします

 

インテルIntel悪の枢軸) 

CPUを売る最大手の会社。Corei3,i5,i7とかいうシリーズを持つ。せろりん、セレロンCeleron)、Pentium(ぺんちあむ)とか。独占禁止法

 

AMD

安くて高性能が売りの会社。グラボも作ってるよ。スペックでIntelに勝てていなかったが、最新CPUのRyzenシリーズは破竹の勢いでIntelを追い込んでいる。頑張れ。AMDファンは熱量がある。むしろ、熱量がないとAMDを選べない程にIntelの力は強大であったと言える。

 

クラスタ

GPS将棋が東大のパソコンをたくさん使って三浦先生に勝ったのが有名。パソコンを沢山使ってみんなでお仕事すること。誰かがサボったりデータを捨てたりネットワークから居なくなったりとかとかすると途中の読み筋が消えたりするから、仕事の割り振りは大変だよ。

 

thread(スレッド)

お仕事してる人(擬人化)の数。コアが分身して、コアよりスレッドが多くなることもあります

 

拡張子

ファイルの最後についてる、.exe(実行するもの).kif棋譜データ).csa(違うタイプの棋譜データ)など。この部分を書き換えると色々まずいのであんまり推奨しない。

ちなみに、.kifとか.csaのファイルを右クリック→プログラムから開く→メモ帳とすると、文字で棋譜を見れる。このテクは覚えておいて損はないかも。

 

.NET(現在では殆ど.NET Frameworkのことを指す。読みは一般に、ドットネット)

コンピュータが使う七つ道具みたいな詰め合わせだと思ってくれると分かりやすいと思う。これが古い(又は、古いソフトを動かすのに道具が新しすぎる)とソフトが動かないことがある。

 

margin(マージン)

余白のこと。時間切れにならないように、手を少し早く出力する設定をするときもある。

 

.db

拡張子の一つ、データベース。単にデータベースとだけ言う場合は、整理された情報の集まりのことを指す。特にコンピュータ将棋の時は主に定跡で使われる。

 

エラーメッセージ

出たらとりあえずググろう。英語なら訳そう。

 

システム

しすてむ。ものを構成する仕組みの全体

システム - Wikipedia

 

互換性

システムの部品の一部を入れ替えても、動作する状態のことを、互換性があるという。

特に、部品Aと部品Bを置き換えることができる時、互換性があるという。

 

処理

計算すること、お仕事すること。CPUは社畜さん。

 

電気代

CPUはお仕事する時に電気を食べます。おっきい仕事だと一杯食べます。将棋ソフト開発者さんは、大食漢のCPU(値段高い)を買ってきて、沢山乗るお皿とかまな板とか冷蔵庫を買ってきて(メモリ、HDD、SSD。高い)お仕事してもらってます。

家賃より高いこともあるとか。

やねさんは赤字と日々戦っている

 

暖房

沢山仕事したCPUやGPUは熱を持ちます。冷やさないといけません。冬は暖房代わりになります。夏は冷房をガンガンかけないとCPU達も夏バテします。

 

団体とか大会とか

CSA

Computer Shogi Association。コンピュータ将棋協会

 

SDT

Shogi Denou Tournament。将棋電王トーナメントドワンゴ主催、コンピュータのスペックは固定。トーナメント方式は決勝リーグだけ。

 

WCSC

World Computer Shogi Championship

世界コンピュータ将棋選手権。PCのスペック制限なし。クラスタと金の力がものをいう…

 

追記予定アル

加筆するかもしれないワード

次元下げ、rootstrap、やきなまし、線形、嵌め手、ルーチン、GUI、回帰、キメラ、高速化とか枝刈り、Githubフリーソフト、ライセンス、教師、強化学習、時間攻め、局所解、サチる、発散、まふ定跡、ベンチマークUbuntu、Bitboard、AVX、64bit、バイナリ、ソースコードオープンソース、Stockfish、合法手、合議、αβ、MiniMax、ゲーム木、過学習、bitboad

 

and more...?難しい用語専用の上級者向け解説記事を執筆する予定があるかも…?

やねうら王からはじめるコンピュータ将棋ライフ(Part 1最新)

github.com

 

ここです。これからは、releaseからご確認下さい。

f:id:rewritemath:20180414233047p:plain

これを解凍すると、

f:id:rewritemath:20180414233438p:plain

こうなります。後は以前までの記事に従ってください。

 

自分のPCが対応しているのはどれかわからないという人は、左から古い順に

nosse < sse2 < sse41 < sse42 < 何も後ろに書いてないやつ

です

 

 

目安として、PCを買った時期が

 

2000年より前のものならnosse

2000-2006年ならsse2

2007-2008年ならsse41

2009-2010年ならsse42

2011年以降なら無印

How to use Japanse Chess(shogi) program (Part 3 Run the program)

Part 1

ritomath-shogi.hatenablog.com

Part 2

ritomath-shogi.hatenablog.com

 

Please start shogidokoro.exe

f:id:rewritemath:20180414235845p:plain

 

Please click here

 

f:id:rewritemath:20180415000508p:plain

 

f:id:rewritemath:20180415000643p:plain

 

f:id:rewritemath:20180415000957p:plain

For CPUs not compatible with 64bit OS / AVX2, from the following
Select the CPU of the target environment.

 

Older   nosse < sse2 < sse41 < sse42 < No mark  Newer

 

 

Change Language

You can change the language to use English

f:id:rewritemath:20180415004749p:plain

f:id:rewritemath:20180415004835p:plain

f:id:rewritemath:20180415004928p:plain

Rebooting is necessary to change settings

 

 

f:id:rewritemath:20180415010211p:plain

f:id:rewritemath:20180415010248p:plain

After the setting, then click OK to play

 

How to use Japanese Chess(shogi) program(Part 2 Get program)

Part 1

ritomath-shogi.hatenablog.com

 

There are many programs stronger than humans. I will introduce one of them.

 

Elmo  is a program against AlphaGo

 

(

[1712.01815] Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm

)

If your PC's OS is not 64 bit, please use another engine.

 

This shogi program requires files to evaluate aspect and engine.

If you use standard moves file,you also need book file.

 

Engine

Go here to get

 


github.com

f:id:rewritemath:20180414233047p:plain



 

you can downlode

  • Strategy in the beginning(book)
  • Evaluation file(eval)

↓link

elmo.shogi.zip - Google Drive

f:id:rewritemath:20180414231952p:plain

 

 

Please expand both files

f:id:rewritemath:20180414233438p:plain

↑Engine

f:id:rewritemath:20180414234112p:plain

↑Eval,book

 

 

Please move this file and configure like this↓

f:id:rewritemath:20180414234920p:plain

Up to here for this time

Next(link)

 

Comming soon

 

How to use Japanese Chess(shogi) program(Part 1,Get GUI)

GUI is the Graphical User Interface.

It is intended to make it easy to see when running programs.

 

↓This is

http://www.geocities.jp/shogidokoro/

This is the most famous GUI.(for shogi)

 

If you use translate

https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=http%3A//www.geocities.jp/shogidokoro/download.html

 

 

Please click the ダウンロード(download).

f:id:rewritemath:20180414213349p:plain

 

将棋所4.0.0(shogidokoro-ver4.0.0)is the latest version.

f:id:rewritemath:20180414213852j:plain

You can download anywhere you like.

 

 

When zip is expanded, it looks like this.

f:id:rewritemath:20180414214239p:plain

 

.xml→These files are configuration files. After running and finishing program, the settings are saved and created these filses.

 

The GUI preparation is over. Please proceed to the next article(rink)

 

Comming soon

How to use Japanese Chess(shogi) program

I am Japanese, so I am not good at English.I am glad if you read with kind heart.

I wrote articles of the same content in Japanese. If you understand Japanese,please see that.

For studying English, so I would be happy if you pointed out my mistake.

 

I will explain to use in three steps.

 

  1. Obtain the GUIlink
  2. Get the program(link
  3. Run the program(link

 

in preparation

Coming Soon

 

 

 

 

 

Rezero(リゼロ)評価関数は何がすごいのか

今更にはなりますが、このすごさってやつを認識できてない人が多いようで悲しいのですよ。特に、振り飛車党のフレンズ(将棋指し)にはよい話なのです。

 

振り飛車は、不利飛車と言われておりますけれども、全くもって完全に、敗北を喫したというわけではないのです。

 

そう。例えば、HoneyWaffleとか。居飛車が群雄割拠するコンピュータ将棋界。この中で生き抜く振り飛車の星なのです。

HoneyWaffle?開発者も、居飛車にペナルティを科すことで強引に振り飛車にしたとかって言ってたじゃないか?

 

去年はやねうらをそのまま使ってたんだった。確か

やねうら王は評価関数がミラー(左右対称)になるようにしているらしいので、それが生きたんでしょうね。

f:id:rewritemath:20180412235356p:plain

 

第27回世界コンピュータ将棋選手権

結果

直近の電王トナメでも決勝リーグ出てるんですよ。shotgunにも勝ってるし、実力派振り飛車党だといっていい。

 

結果としては十分出ているソフト。勿論、人間と比べたら十分強いソフト。

github.com

 

さてこの辺りで本題へと入りましょう。

 

リゼロ評価関数のどこがすごいのかという話でした。

それは、、、

完全に人間の棋譜から独立しているところです!その上、人間のトップくらいなら軽々打ち負かせるくらいの力があります。

 

 

人間の棋譜から今まで独立してなかったんですか?

そうです。

 

人間より強かったのに?

人間の棋譜から学習させたものを元に、それを強くしてコンピュータ将棋の棋譜ができました。そして、そのコンピュータ将棋の棋譜(人間の要素がどこかに入ってる)を元に、コンピュータを強くしてきました。

 

今までできてなかったの?

今までも無かったわけではないものの、弱かったのです。

 

 

さて、細かい内容はやねうら王の作者のやねうらおさんが書いておられます。

elmoがもたらしたオーパーツについて | やねうら王 公式サイト

 

そう。元のアイデアはelmoです。

 

余談

こういうわけで昨年は、elmoの導入記事を頑張って公開当日に書き上げた訳なんですね。(確かそうだったような、そうでなかったような…)

 

人間の棋譜を用いずに評価関数の学習に成功 | やねうら王 公式サイト

細かい経緯はこちらの記事とセットで読んでいただければ通じることと思います。

 

 

何度も言いますが、人間の棋譜なしで人間より強くなれたというところがポイントです。自己対戦を繰り返して、自分で将棋の勝ち方を身に着けたということです。