rewritemath's blog

rewritemath’s blog

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

加速するシンギュラリティ(マッハ新書にしようと思ったけど結局公開する)

皆、シンギュラリティを加速してる?私は…これからもっと頑張るよ!

 

対象読者

シンギュラリティを加速したいけどどうすればいいか分からない人、シンギュラリティを加速するってのはどういうことか分からない人、それから、世界が情報過多って人。

 

これを読んで参考にしてくれたらうれしい。感想や意見はこちらへどうぞ。マシュマロに投げてくれてもコメントしてくれても、どれでもいい。ツイートで拡散してくれても…とにかく反応は大歓迎。気に入った人はAmazonほしいものリストからお布施してくれてもいい。(作者がめっちゃ喜びます)

ritomath (@ritomath01_05) | Twitter

 

それではどうぞ。

 


加速するシンギュラリティ
 著者 ritomath

前書き
シンギュラリティと聞くと大層なものだと身構えたくなる人も多いだろう。社会で今何が起きているのか、把握しきれなくなっている人が多いはずだ。私も全ては把握できない。すべて把握できている人などいないはずだ。にもかかわらず、未来学者を名乗る人種は、なぜ今のことを飛び越えて未来を語るのか。未来の予測はできないとか、曖昧に言葉を濁して考えを放棄する者もいる。私が筆を執ったのは、世界で起きていることの大筋をどのように解釈すればいいかについて、皆の助けになれたらという思いからである。
シンギュラリティこと、技術的特異点という思想について、あまりに情報が多すぎる。重要なのは木の幹や根っこの部分である。枝葉末節は文字通り、後から知識をつければよい。まずは知識の幹となる部分の解釈を得ることで、これから読者が得る情報が、シンギュラリティという解釈を通すことで脳内で整理されやすくなるようにするのが本書の目的である。最後まで付き合ってくれる読者の方には感謝の気持ちとともに、この先の未来を変えていく同志として応援も送りたい。
スペシャルサンクス
この本を書くきっかけを作ってくださった皆様。バーチャルな界隈の皆様。特に、秘密結社シンギュラリティの時計の皆様には特別の感謝を。

1.技術の本質
シンギュラリティとは何か。技術的特異点と言われている。これはどういった過程を経て到達する状態なのかを、過去を振り返りながら考えよう。
どこまで遡るか。まずは控えめに、人類が技術を手に入れたところから話をしたい。
技術とは何か、そして何故大切なのか。テクニック、テクノロジーといった言葉を思い返してもらえれば少しは明瞭になるだろう。これは、便利をもたらすものであり、
「不自由を解消するもの」
である
ここでポイントとして述べておきたいのは、不自由は目に見えないことが多いというところである。例えば、我々が電気による照明の類を持たなかったころは、火が明かりであった。これは、今の我々からすればあまりに不便である。大量の燃料を必要とするし、火事も心配だ。だが、電気の存在が知られていなかったころはこれは、特に不便さを意識されなかったはずである。例えば未来の人間が、「天候も管理できないなんて…雨の日は傘をささなくてはいけないとは、当時の人は随分と不便だったんだな」と言ったとしても我々にはピンとこないだろう。確かに不便さは感じているが、これを当たり前のものとして受け入れている。
どんな時に不便さを感じますか?と聞かれて、「雨が降っているとき」と答えられる者は多くないはずだ。
さて、話を脱線させないように戻す。まとめると、

不便さは目に見えにくい。
技術は不便を解消する

ということである。我々は狩猟採集による不便さを解消して安定的に作物を供給し、子孫を増やすことを可能にし、定住し、外敵の存在から逃れた。全ては技術によって成し遂げられた。ここでもう一つポイントだ。

技術は、暇人が作る

暇人というと言葉は悪いが、食料や住む場所に困っていたら、技術を生み出す時間を確保するのは極めて難しい。食料が安定している地域に住んでこそ、技術を開発する余裕があるのだ。農耕民族の方が安定して食料を確保できるからこそ、生活に生まれた余裕は技術の開発に向けられる。また、食料の安定は技術者階層(専門家)の育成を可能にする。これは、余剰作物が発生することで、農業に参加せずとも食べていける者が出てくるからだ。他の民族との争いや戦争は、当然高度な軍備を備える側が強い。食料の確保に全人口を使わないといけないようであれば、食料を気にせず技術開発に取り組める人を有する集団に対して不利だ。無論、人口が多い方が有利に働くことは多い。人口を支えられる構造の社会であれば、という話だが。
他の社会集団に対して有利な社会集団は、生き残る。長い目で見れば、農耕民に土地を占拠されたり争いに負けたりすることで、狩猟採集民は住む場所を失って数を減らしていった。


2.技術と生存
我々シンギュラリタリアンの仲間には、怪しい言説をする者が確かに多い。例えば有名なカーツワイル。「パラダイムシフトが起こるまでの時間は加速している」などと述べている。パラダイムシフトの定義もせずにである。生物が登場してから人類が登場するまでにどれほどのパラダイムシフトが起きたことか。定義できたとして、それを全て数えるなど不可能だろう。前の章で技術は不便を解消するといった。更に言えば、不便は当然生物を殺すこともある。極端な話をすれば、不便をそのままにした生物は、滅びる運命をたどるかもしれない。すくなくとも、不便を解消した者達よりは生き残りにくい。
歴史は時代が進むにつれて情報量が大きくなるので話題にするのは難しいが、世界で土地の奪い合いが起きた時に有利なのは、当然技術的に優れた国家だろう。これは過去の歴史が物語ってくれていると思う。
我々の生きる現代にこれを照らしてみると、日本という国はあまりいい状況にないことがわかる。無論、欧州やアメリカも一定程度不安要素を抱えている。しかし中でも日本は危険だ。科学技術に投資する金額は年々減っているし、その結果世界に影響を与える論文の数も減っている。研究者の間ではそれは共通の認識であると思う。これは、結果として今後何をもたらすだろうか。おそらく、日本の抱える不便は海外のそれと比べて相対的に多くなり、世界に置いて行かれることだろう。技術で置いていかれた集団のめぐる運命は先に述べた通りである。今は経済という形で戦争が起こっているが、日本が経済や軍事の面で弱くなった時、中国から侵略されるかもしれないという恐ろしさは常に、抱えていてほしい。技術の発展を抑制するような措置はもってのほかである。一国がそういう措置に走ったら、他国に研究者が流れてそこで技術が発展するだけだ。今は言語の壁が存在することでなんとか耐えているが、仮に言語の壁がなくなればどうなるか。地方都市と東京圏の関係を見ればある程度危機感は理解いただけるだろうか。それが世界の縮図になる可能性がある。技術の発展は止まらない。時には技術の発展や普及を止める人間が居るかもしれないが、彼らはその結果生まれる不便さによって淘汰される運命である。また、新しい技術に対して嫌悪感を抱く者もいるだろう。しかしそういう人間も、いずれ死ぬ。生まれた時から当たり前に存在するような便利なものを放り投げて、不便な生活を求める者はほとんどいない。テレビっ子はよくない、と言われた時代があった。そんな話はもう聞かない。ゲームは脳を駄目にするということをいう人がいた。ゲームは世界に残った。スマホは駄目だ、という人もいる。自動運転は駄目だという人もいる。どうなるだろうか。計算を仕事にしていた人がいた。計算機が普及した現在、計算を仕事にしていた時代に戻って職業を復活させる動きはあるだろうか。
繰り返す。技術発展は止まらない。
おいて行かれないように生きよう。
そして、技術を味方につける者は強い。


3.シンギュラリティと、前シンギュラリティ
私は以前から、前シンギュラリティを提唱してきた。

シンギュラリティは汎用人工知能が出てくることでその先の技術が加速する未来を考えている。

しかし、シンギュラリティ以前から、

先に述べた通り、「技術の発展は人を不便から解放する」、「暇人が技術を作る」、「技術の発展は止まらない」のである。前シンギュラリティは、技術の発展がずっと加速しているという思想と関係が深い。技術は今までも人の不便を解消してきた。不便が解消されると、その分人は暇になる。暇になると、技術を作る時間ができる。人口の増加と技術の発展により、人類の歴史の中で、人類全体の暇な時間は増加してきた。これからもそれは続くだろう。シンギュラリティは急激に訪れるかのように考えられているかもしれないが、今もシンギュラリティの途上であると言えるのではないだろうか。汎用人工知能が出現した先も、汎用人工知能の数が増えたり計算速度が増したりすることで、段々と汎用人工知能の暇な時間は伸びていく。指数関数に特異点は存在しない。今この瞬間も、シンギュラリティの時計は加速しているのだ。


4.何がシンギュラリティを加速させるか


これは本質的な話から少しずれてしまうように思われるかもしれないが、しかし大切なところである。詳細な技術たる枝葉末節は各自で調べていただいて、やはりここでは確実に重要な幹の部分を話す。技術発展とその加速は、三つの段階で進む。
「基礎が整備される」
「自動化と効率化がされる」
「自動化と効率化によって生まれた余剰を再投資する」
まず基礎の整備だが、人間の場合は死なない環境に居ることが大切である。自動化や効率化に専念できるように、それを制約する部分をなくしていくところがここに当たる。法的な制約、必要な資源や電力の制約、食料の制約などである。しかしここは一旦システム全体が整備されて動き出せば、後は問題ない。効率化や自動化の対象として、そのシステムは維持される。農業の効率化は、技術者の職を支え、技術者はさらに農業を効率化する。そうしたサイクルが生まれるからだ。これは、投機的な実行という意味でも大切なところである。余剰を投資すれば失敗してもなんとかなるが、余剰なく投資すれば、残る借金に苦しめられて終わりだ。基礎の整備は見落とされがちであるが、重要な部分である。
次に、自動化と効率化が成される。ここについては説明するまでもないと思う。まずは自動化する。これによって、他の自動化や効率化作業に取り掛かれる。まず最初に自動化するというのは、ある意味では基礎を固める部分である。自動化がなぜ優先されるかと言えば、理由は簡単だ。職人の後継者不足によって技術が途絶えるというような部分を危惧している。自動化は言い換えれば、システム化と言ってもいい。ノウハウを残すのだ。研究であれば、教科書を作ることで後継が自動的に生まれてくるようにするなどである。一度自動化に成功したら、次は効率化に取り掛かれる。自動化は効率が悪くてもいいのだ。これから効率がよくなるのだから。人より計算が遅いからといって計算機を作るのをやめたりしたら、今日のコンピュータは存在しなかっただろう。効率がわるいなら、これから改善すればよいのである。
最後に、効率化が済むと、人の手はほとんどいらなくなる。今まで行っていたことが減り、時間に余裕ができる。すると、次の自動化や効率化にむけてそれを使うことができる。

では、シンギュラリティに向かって世界が進んでいるとして、ここからさらにこの動きを加速させるにはどうすればよいのだろうか。ここまで読み進めてくれた読者の中には、もう答えが出ている優秀な読者もいるかもしれない。
「人類の暇な時間の総量を増やそう」
これに尽きる。暇な時間を生むには、どうすればいい?
発展途上国の抱える膨大な人口が直面する病気や飢餓、水不足の解消は、人類の暇な時間をどれだけ増やすだろうか。
人間は体を洗うのにまだ手を使っている。汗を流すのにどれだけ時間をかけているだろうか。
不健康で、寝不足で、仕事の効率が上がらない?何ができるだろうか。
健康のために栄養バランスのいい食事を考える?もっと短い時間で健康的な食事はとれないか?食材をいちいち買いに行くのか?食器を人の手で洗うのか?
人間はこの先もずっと、洗濯物を自分で畳むのか?
教育は、分かる人はもっと早く、分からない人にも丁寧に、個人に合わせた教育ができたら、子供はどれほど時間を得るだろう?遊べる時間が増えたらストレスも減るだろう。勉強が楽しくなるかもしれない。
身体に障害がある?なるほど。目があまりに悪い人は眼鏡によってどれだけ生産性を手にしているだろうか?では義手は?義足は?もっといい手段はないか?
物を運ぶ?分別する?画像認識でできないか?
電気はもっと安くならないか?バスは効率よく運用できないか?

シンギュラリティを加速させることのできるテーマは無数にある。誰もが世界に参加できる可能性を秘めているのだ。


5.今、人工知能の世界で起きていること
人工知能。それは人類の夢の一つだ。
永久機関は無限のエネルギーを生むとされて研究された。素晴らしい夢であり理想だった。研究の結果、存在しないことがわかってしまったけれど。
しかし人工知能は実現が可能である。これは、人間は原子が集まって出来ていることを理由にできる。人間は今日と昨日では全く違う原子でできている。毎日食べたものは取り込まれ、排せつによって入れ替わる。それでも思考ができる。70億以上の人類がこの世界には存在している。それらは全て違うパターンでできているし、いままで生まれてきた人物、これから生まれてくる人物もそうだ。今の君と三秒後の君は原子の並びがちがうはずだが、君が三秒後から来た君と入れ替わったとしてもきっと、同じ君として何一つ問題なく生きていけるだろう。これほど思考とは自由なのである。では、仮に原子レベルの動きをシミュレーションできるコンピュータが存在したら、それは人の思考をできるだろうか。出来ないはずがないだろう。ここまで聞いてできないと思う人はいない。
さて、では現在、汎用人工知能はどこまで来ているのか。気になるところだと思うが、まずは汎用人工知能の存在意義から説明していこう。汎用人工知能は、人と同じかそれ以上のレベルの思考が可能であると考えられる。君が隣にいる友人に、自分の仕事を任せるとしよう。その友人以上の働きをしてくれる物があったらどうか?これは、きっと君の暇な時間を多く生み出すだろう。そして、人類全体に多くの暇な時間をもたらすだろう。そして彼ら人工知能の暇な時間もまた、技術を生み出す。こうして人類は暇な時間をさらに取得していく。結果として技術はどんどん発展していく。
機械は自動化のツールとして、もっとも象徴的な存在だ。計算の自動化、人間の動きの自動化、人間が考えることの補助、とにかくなんでも、できるところから自動化が進んでいる。
では、現在流行っている人工知能は、つまりいわゆる深層学習(Deeplearning)は、どの段階にあるのかを少し話して、この著書の終わりとしたいと思う。
今までの人工知能は、与えるデータが基本的にすべて意味を持っていた。数値化してあって、そしておそらくそのデータは求める数値と関係がある。そんな関係性の中から、統計を用いて計算式が模索され、それが使われた。しかし深層学習のすごいところは、関係ないデータまでひっくるめて全部渡してしまってもなんとかなるし、しかも意味のないデータを渡しても大丈夫になったというところだ。そしてやはり一番のポイントは、画像認識が上手くなったというところだろう。今までのコンピュータには目が無かったが、深層学習によって人工知能は目を手に入れた。目があれば、今まで手探りだったり物がある場所を教えてもらってそこに手を出していたロボットも、どこに何があるのかを把握してアームを伸ばせるようになったということなのだ。これがどれほどの進歩であるか、そしてこの技術はどこまでのことができるのか。ここはこれからの時代が示してくれることとなるだろう。自動化は止まらない。技術の進歩は止まらない。効率化は止まらない。
君は、どうやって世界を加速させるのか。

2018春、将棋ソフト情報表(仮)

フリー将棋ソフト最強はどれだ!?(2018春)

 

少し話をここでしておきますと、評価関数の型で現在主力なのは、KPPT型というものです

太字について分からない方や詳しく知りたい方はこちらの記事にどうぞ

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

 

なんか、検索エンジン最適化の関係でこの記事の方が人を呼ぶみたいなんですが、「もっとスリムな情報がほしい」、「解説は分かってるからいらない」みたいな人向けのやつもあるんで、その場合はこっちで

http://ritomath-shogi.hatenablog.com/entry/2018/05/30/094742

 

 

そして、現在確認されている将棋ソフトの強さ順で、記事公開現在、上からこうなります。尚、今年の5月頭に発表された最新バージョンです。

 

QQR(カパックとクジラちゃんの融合)

妖怪惑星Qhapaq(ようかいわくせい-カパック)

くじらちゃん

Apery

TNK(たぬき、NNUEとも呼ばれる)

elmo

名人コブラ

説明がややこしいので省略

HoneyWaffle

 

 

番外

Novice(HoneyWaffleより強い?)

野生のTNK(tttakさんが作成した。データ不足だが現在最強は実はこれかもしれない)

 

 

各ソフトを少し解説

 

QQR

キメラ。

現在最強の称号はこのソフトが持っている。

 

Qhapaq

QQRにも使われている。強豪ソフトであったが、大会では成績が振るわない下積み時代を長く経験している。

 

くじらちゃん

WCSCで活躍した、大合神くじらちゃんのクラスタの一部。単体でも強い。

 

Apery

強豪。優勝経験もある。将棋ソフト界でオープンソースの波を作った立役者。

 

TNK

凄腕プログラマの技術の粋が詰まっている。新型のNNUE評価関数を実装。ニューラルネットワークを使いながらCPUでの計算に最適化している。

 

elmo

昨年のWCSC優勝ソフト。Ponanzaを破って優勝した華やかさと、その直後に全てを公開し、将棋ソフト界に衝撃が走った。しかし、今年は昨年のelmoより強いソフトを持ってきていながら、WCSC決勝(ベスト8)に進むことができず。この世界は進化が早すぎる。

 

名人コブラ

流行りのキメラの最先端(?)数多くのパーツを混ぜて混ぜて作り上げられたソフト。真綿で絞殺すような棋風らしい。

 

HoneyWaffle

居飛車しか居ないコンピュータ将棋界で、数少ない振り飛車を使う者。

 

Novice

既に新米ではなくベテランなのではないかと思わせる。今大会成長が一番見られたソフトだと思っている。

 

ttak/NNUE(野生のたぬき)

最強??未知数。振り飛車バージョンもあるので、少なくとも、振り飛車界最強はこれで間違いないと思う

 

 

 

 ここで紹介したソフトは、フリーでレートの高いソフトの上位です。探索部による強弱は一旦抜きにして話していますので、若干正確性は劣りますが。

WCSCでの成績順はこちら

f:id:rewritemath:20180529234749p:plain

http://www2.computer-shogi.org/wcsc28/

1.たぬき(NNUE)

2.Hefeweizen(KPPT型であり、現在将棋倶楽部24で対局が可能。公開されていない)

3.Apery(KPPT型。公開されていて利用可能)

4.PAL(未公開)

5.くじらちゃん(KPPT型、ソフト名Godwhale、公開されている)

6.名人コブラ(KPPT型。公開されていて利用可能)

7.妖怪惑星Qhapaq(KPPT型。公開されていて利用可能)

8.HoneyWaffle(KPPT型。公開されていて利用可能)

 

なぜこれほどまでにKPPT型について記述するかといえば、KPPT型の評価関数は基本的に同じ方法を使えば利用できるからです。という訳で記事を書きます

 

フリー将棋ソフト最強の使い方!~KPPT型評価関数群利用の手引き~(執筆中)

 

たぬき、野生のたぬきはKPPT型ではないので、それについては別記します

 

 

キメラ評価関数は局所解や過学習を是正するから強いのだと思います

キメラ評価関数、局所解、過学習とは何なのかそれぞれ説明しますね。

 

キメラ評価関数というのは、三駒関係の同じ型でのみ使えるキメラコマンドを使った、評価関数を合成することによって生まれた評価関数です。

 

何を言っているのか分からない人のために追加解説します

キメラというのは、合成生物のことを一般的にそう呼びます。鳥の羽が生えた蛇が有名でしょうか。ギリシア神話に登場する生物の「キマイラ」に由来する言葉で、ライオンの頭と山羊の胴体、毒蛇の尻尾を持つらしいです(wikiより)

伝説上の生物がキマイラになるという話は結構ありまして、色々くっつけてミイラとして化け物が展示されている場合もあります。日本では獏(貘)(バク)が有名でしょうか。

コンピュータ将棋では、生き物の名前をソフトにつけることがなぜかそこそこ多く、大合神くじらちゃん(Qzillaの名前のバージョンはゴジラ意識?他にも、魔女)、Apery(猿真似)、tanuki(表記ブレが激しい。ハクビシンの名前だった時も)、Qhapaq(通称、河童?)などが居ます。(追記、名人コブラ

人名も含めますと、nozomi、なのは、もそうですね

(人間も動物だぞ!神格化して分けるんじゃない!(`~´))

 

評価関数の合成というのは三駒関係の少し細かい話になるのですが、三駒関係では、三駒の関係に点数が付いていますね。その点数を複数の評価関数で比べて、点数の間を取るという訳です。この手法を極端なほどに使っているソフトがWCSC28にいましたね。名人コブラっていうんですけど。あ、こいつも生き物だ。もしかしてこの蛇には羽が生えているのかもしれませんね。

ところでこのキメラ評価関数、素人でも簡単に独自の強い評価関数が作れてしまうのです。混ぜると強くなることが多いみたいなので。

 

配合する割合も自分で決めることができますし、混ぜたものをさらに混ぜることもできるという優れもの。ただし、混ぜることができるのはKPPT型の評価関数だけ(多分)です。混ぜることができて、強くなる(可能性が高い)評価関数の一覧を挙げますと、

 

クジラ、河童、猿、読み太、rezero、elmo、コブラ辺りでしょうか。漏れもあるでしょうけれど。

 

WCSC28直前の話ではApery-Qhapaqの合成関数が強いと話題になりましたね。

 

キメラの話を長々としたところで、局所解の話に移ります。

まず、局所解とは何かという話をすると、最速降下法でローカルミニマムに陥りやすいとかなんとかいう声が聞こえてきそうですね。

簡単に言うと、「狭い範囲では最適解なんだけどそこに最適解があると思ってしまって遠いところにある最適解を見つけられなくなってる状態。」です。

過学習というのも似ていて、「同じようなことばっかりしていたらそのことをするのは得意になったけど他のことができなくなっちゃった状態」です。

 

局所解の簡単な例を挙げると、

水がほしいとします。水のある場所を探します。湖を見つけます。

「近くに湖がある!ここが我々の求めていた場所だ!」

↑これが局所解です。湖を見つけた途端、探索をやめてしまうのです。もっと探せば遠くに海があるのに。一応探すつもりで近場を見て回りますが、水のある場所がなかったらずっとそこにとどまり続けてしまうでしょう。この状態が、局所解に陥っている状態です。

 

過学習の例を挙げます。

普段に日曜大工でのこぎりをよく使う人がいます。のこぎりをよく使うので、のこぎりは木を切るのに素晴らしい道具だと思っています。ある日木材を調達するために木を伐りに出かけました。本当は斧を使った方がいいのに、同じ木だからと言ってのこぎりを頑なに使います。効率の悪いことといったら!これが過学習です。

 

 

将棋ソフトも同じように、局面を学習する時に自己対戦だと、好みの戦形を選んでしまいがちです。このままでは、他の戦形のことを知らないままになってしまいます。定跡を与えても好きな形に戻そうとしたりと頑なです。これをなんとかするために、ランダムムーブ(ランダムに駒を動かしてその状態を使って教師局面を作る)を加えたりするわけですが、それでもソフトに癖は出てきてしまいます。また、探索の段階で枝刈りをしたり(学習させるためには沢山局面が必要なので、探索は浅くなりがち。)すると、局所解に陥りやすくなりますね。

 

これを解消したら強くなると思いませんか?そう。きっと強くなる。どうやればいいのかというと、キメラという話になるわけです。別の評価関数は、別の戦形ばっかり指しているかもしれません。情報を交換しましょう。混ぜましょう。遠くに海があることを知っているかもしれません。

 

とまぁ、キメラ関数が強くなるのはこういう理由からではないかという仮説、理屈の話でした。

 

 

ここから雑談

もう少しだけ話すと、実は居飛車ばっかり採用されているのは、プロ棋士居飛車党うが多い)の棋譜ばっかり使っているからでは?

とか、振り飛車は対局が長くなるから評価値の推移がゆっくりになるので、近場の湖である居飛車に飛びつきがちなのでは?

とか色々推測できますね。答えは知りません。完全解明できたらとか、人間の棋譜がない状態から学習させたソフトなら?とか色々憶測はできますけどね。

 

私の意見としては、結局人間も居飛車の方が勝ちやすいんじゃないの?(定跡を覚える量が少ないという意味では振り飛車にも有利はあるけど。しかも知ってる人が少ないというアドバンテージもあるかも)

しかも、居飛車をする人の方が多かったら、研究がより進むのは居飛車の側に決まってるやん。

将棋が長くなるのはできるだけ避けた方(振り飛車は避けた方が)が勝ちやすいのでは?(異常に早い場合は研究勝負になっちゃうけど)

 

 

と思っています。不利飛車がなくなると将棋の自由度が制限されて面白くなくなる部分もあるかもしれませんが、そういう宿命はゲームにはつきものですしね。最適解以外は淘汰されていくのです。

最善かどうかは分からないしおそらく勝ちにくいけど、振り飛車も戦法選択の自由のために頑張ってほしいですね。

たぬきの第28回コンピュータ選手権(略称WCSC28)バージョンの使い方

導入方法を伝えるまでもなく、評価関数とバイナリと定跡がセットで配布されているので、誰にでもすぐに使用できるようになっている。

『the end of genesis T.N.K.evolution turbo type D』(tanuki- 第28回世界コンピュータ将棋選手権バージョン)のバイナリ・評価関数ファイル・定跡データベースです。

 (リンク先から引用)

リンクはこちら

 

github.com

f:id:rewritemath:20180508133815p:plain

 

一番上のものをクリックするとダウンロードが始まります。

↓分からない人は気にしなくてもよい

(評価関数がいままでのものと違うので、とても軽量です。また、探索部は同封されているものでしか動きません)

 

解凍すると中身は以下画像のようになります。解凍が上手くいかない場合はこちらの解凍ソフトをお勧めします

ダブルクリックだけで圧縮ファイルを解凍できるソフト「Lhaplus」 - Windowsにまず入れる定番無料アプリ -2018年版- - 窓の杜

f:id:rewritemath:20180508134136p:plain

SSEとAVX版があるので、ご利用のパソコンに合わせてお選びください。

古いものから順に、

sse2,sse41,sse42,avx2となっています。

tournamentやevallearnの名前のexeは使わない方が多いでしょうから、

新しいほど動作は早いはずです。新しいcpuなら古いものでも動かせます。

 

エンジン登録をすれば動作します。

将棋所はこちらから。エンジン管理の説明を参照していただければ。

将棋所:将棋所の使い方

 

 

評価関数の表現力と、線形とかDeepLearningとか。後は探索について

WCSC28では、たぬき、CrazyShogi、DL将棋、ねね将棋、YSSzeroなど、三駒関係を捨ててDeepLearningを用いた評価関数を使ったチームが目立った。そもそも三駒関係とDeepLeaering系の評価関数は何が違うのかについて説明しながら、この傾向が何故流行りだしているのかについて、私のメモも兼ねて記事にしていく。

 

ただし、たぬきの論文は私も理解して読めていないので、私は書き手としては力不足であることをはじめに断っておく。(というか、ガチでやってる人たちは多分忙しくてこんな風に記事を書けないのだと思う)

 

三駒関係の仕組みについては

(まだ書くかどうか決まってないのでこの部分は自分で調べて)

 

だから、これは線形の関数の和で表されることになる。しかしこれでは、実際のところ表現力が足りない(限界近くまで来ている)と言えるのではないか。

 

開発者によってその意見は異なっていた

elmo瀧澤さん「まだ最適化の余地があるだろうと考えているが、方法は分からない」

nozomi大森さん「ほぼ限界まできていて、これ以上は伸びないので『三駒関係は終わった』と思う」

 

ちなみに、表現力問題には計算資源問題も絡んできていて、表現力を高くしすぎると計算資源が足りなくなる。

そもそも三駒関係が表現力の足りない手法であるのは、表現力を落とすことでその結果計算量を減らし、学習コストが現実的になるという結果を生み出している。

合理的な理由があって表現力を落としているのだ。

 

表現力問題についてもう少し触れていこう。評価関数を左右対称にするべきかどうかという問題がある。Ponanzaの山本さん、Aperyの平岡さんは、対象にしない方が強くなるのではないかとtwitter上で言っていた。やねうら王の、…

(選手権でやねさんは、本名で呼ばれると警戒すると言っていたので気にしている)

やねさん、ボンクラーズの伊藤さんは、対象にするべきだと言っていた。

 

理論上は当然、完全な評価関数なら対象にするべきであるが、両陣営の主張は見るべきところがあるので書いて残しておきたい。

 

山本さんは、「居飛車のように、飛車が右側にある時は、左側は居飛車の囲いになっていると考えられる。その分の評価を、居飛車の飛車に与えることなどは、表現力を高めることにつながる」

やねさんは、「理論上の最適解を求めるという意味でもそう。また、左右対称にしないと、その分、一つの合法局面が複数通りの評価を受けることになる。これを一通りにすることは教師局面を増やすことにつながる」

 

というような発言をしていたように記憶している。

私は理論上の最適解を求めるべきだと考えているので、対象の評価関数にするしか選択肢はないと思っている。

伊藤さんも概ね私と同じような見解だったみたいだ。

ちなみに、伊藤さんはボンクラーズの時点で手元の実験環境での計測データを取っており、計算量が倍に増えるとレートは100~200ほど上昇するという結果だったみたいだ。

ここに書き加えておくと、stockfishの探索では96スレッドにもなると(?、詳細は把握していないが)計算量が増えることによる影響を受けていないのではないかということがWCSC28以降com将棋開発者の間で噂されている。

Bonanzaは全幅探索だったから計算量とレートの推移については概ね線形でも違和感がないが、stockfish探索の場合は枝刈りがあるのでそうもいかない。枝刈りによって上がっていたレート分を解消してしまうまで探索して、結局深くは読めないという結果をもたらすこともあるだろう。少なくともstockfishではそういう挙動になるようだ。stockfishの大本では、その挙動に気がついていないことが理由で修正されていないのかもしれないとやねさんが発言している。

伊藤さんが将棋ソフトの開発から引退したのは、将棋ソフトの強さが人類を超えたと判断したからだと思う。私は、クラスタによるレートの測定はそういう意味を持って行われたと思っている。将棋ソフトはとっくに人間を超えていたのにも関わらず、それを隠すように米長が動いた。興行としては成功したかもしれないが、将棋界にそういうメリットがあろうと、Xデー(人間をコンピュータが越えたタイミング)が分からなくなったことは、研究者としては悲しむべき結果だろう。

 

Novice熊谷さんのtwitterによると、手元の研究では探索で成果が上がっているとかなんとか言っていた。「チェスと将棋で同じ探索が最適になるはずがない」とかなんとか。

 

私個人の見解では、探索と評価関数にも相性がある。評価関数が変わると探索との相性が悪くなるかもしれないのだ。そのことも考えると、手が回らなくなりそうだから他の開発者の方は最適をそこで探すより、別のところにてを付けた方が強くなるのではないかと考えているのだと思う。

 

実は探索については、与える時間とマシンの変化とレートの伸びが色々とごちゃごちゃする。時間は指数関数的に実験で与える訳にはいかないが、探索できる手の深さに対して局面は指数関数的に変化する。

 

新しいソフトを開発したとしても、そのソフトが強くなっているかどうかは分からないのだ。強くなったかどうかを検証するには時間と計算資源が必要。

評価関数も三駒以上に駒を増やすと局面の評価に時間がかかって読める手数も減るし、検証も大変だし、沢山手元に用意するだけでも容量を圧迫するし。

 

表現力の話に戻るが、表現力を高くしすぎるとそもそも意味がないということもある。評価値をつけられなくなるのだ。また、必要な教師局面の数も膨大になる。あえて表現力を落としてしまわないといけない。ほんの少しだけ違う局面は、ほとんど同じ局面だから同じような評価値を与える、というくらいの曖昧さが残るようでないと、教師の量が多くなりすぎて破綻する。

見たことない局面であってもなんとなく近い局面から評価値を類推するという余地をのこさなければいけない。そういう時に自分で判断できなくなってしまってはいけない。だからあえて表現力を落とす。もちろん計算資源の問題もあるけれど。

 

三駒関係の仕組みは記事にするかもしれないがとりあえずは自分で調べて頂いて、ニューラルネット系の(多層の)評価関数が有力ではないかとされている理由とか、その周りを少し書く。

まず、計算資源が足りないのでそもそも、Googleそのままの手法で学習させるのは無理に近い。Googleはこのタイプの計算を高速化するための独自のプロセッサを開発しているし、資金力もある。計算の効率も、使っている台数も、ひたすら強い。個人でそれに追い付くのは無理だ。数時間で終わったとか言っている計算も、一般人の自宅PCで行ったら何万年かかるかわからない。CPUじゃあ遅すぎて無理。GPU(CPUより相性がいい)でもたくさん必要。TPU(Googleが開発した専用の計算機)を並べてこそできる力業だ。

差分計算を取り込むことでたぬきは高速化をしたらしいが、(実装が難しすぎて並みの天才では)無理(並みの天才ってなんだ)。

たぬきはどうやらまだ最適化の余地があるみたいだ。

 

というか、タヌキはそもそも一から学習したんじゃなくて、もともとの評価関数を真似るようにニューラルネットを学習させていて…

(ここまでで3000字くらい書いたらしい。大変だった)

 

ところで、ニューラルネットは三駒関係と比べて素晴らしい特徴がある。

三駒関係は線形の関数の和だが、DL型だと、関数の結果を関数に投げてその結果を関数に投げて…という構造になっているので、外から見たら何が起こっているのかは分からないが、その実態はものすごく複雑な多次元の関数になっているはずだ。

 

多層ニューラルネットを使うと、実はあらゆる関数を表現できるらしい。この証明は前世紀には行われていて、ニューラルネットの研究は実は昔からあるのだが、計算資源が足りないことと教師データを集めるのが大変(なら作る…のも大変)という理由で停滞していた。インターネットが出てきて大量のデータを集めて利用することが手軽にできるようになってきた今、やっと成果が上がってきた。新分野みたいなもんだ。まだブームが来て10年も経ってないし。

 

とにかく、ニューロンを増やせばあらゆる関数を表現できるという魅力から、期待は大きい。(ただし出費も大きい)

 

三駒はもう大体最適近くまで来てしまったので、強いしさらにまだ最適化の余地があると思われる新手法はcom将棋界では期待のニューウェーブってわけ。乗るしかない。このビッグウエーブに。

 

まぁでも、この波は乗るのも大変です。Googleなんて異常な札束パンチをしてきているわけで、この札束パンチを真似しようと思うと厳しい。この業界、お金にならない趣味の領域なんでね。人間を超えたら研究対象としてはもう終わってるし。

 

まぁそういうわけで、たぬきを含めDLをやっている将棋ソフトはこれからも増えていくんじゃあないでしょうか。

 

散文を書き散らす結果になりましたが、ここまで読んでいただいた熱心な方には感謝の気持ちしかありません。マイナー分野とマイナー分野の高度な掛け合わせみたいな知識が求められるcom将棋業界ですが、興味を持って読んでくださった方は本当にありがとうございます。

消費電力(カロリー)対決!プロ棋士と将棋ソフトの対決は、どちらが勝つのか!

導入

よく見る主張である、

「消費カロリーをコンピュータ側が揃えて、その上で対戦すべき」というもの。なるほど。それなら人間も勝てそうだと思うかもしれない。

 

だが、私の記憶だとそういった話が出たところでいうと、

カワンゴさんがそういったのに対して平岡さんが、それで比べることに意味はないとか反論していた記憶がある

 

まぁ、立場の違いである。興行的に盛り上げるなら人間がちょうどいいくらいの戦いをしないといけない。

研究目的としては、双方全力を出してどちらが強いのかはっきりさせるべし。

 

 

しかし、当時と比べてコンピュータはかなり強くなっている。当時より1000くらいはレートが上がっていると考えられるだろう。

いまどきのスマホ、ハイスペックのものなら、いま出回っているMacBook Air程度の性能がありますから、今回の電王トーナメントのPCの1/4程度のnpsは出るようです。これは多めに見積もってもR400程度のダウンで済みますから、スマホ向けのチューニング一切しなくとも、ponanzaならR3400付近(推定)、魔女(やねうら王)+Apery最新評価関数でR3200付近なのではないでしょうか。

 引用元

やねうら王がスマホで遊べる時代に?! | やねうら王 公式サイト

 

2016年九月時点での、やねうら王開発者の磯崎さんの概観を確認するとこんな感じです。

 

 elmo時点ではこういった見解。

ちなみに、この話題で出ているelmoのレートと、現在最強ソフトとの差が…

f:id:rewritemath:20180426220654p:plain

http://www.uuunuuun.com/より

 

約200もレート差が既にあるなんて…

WCSC28ではもっと高いレートのソフトがザクザク出てくるんでしょうね…

 

ところで、スマホの消費電力をカロリー換算すると、人間の消費カロリーよりも少ないのかという話。

(データを集めながら、実はこの記事、二番煎じなのではないかという話になってきている…

将棋の消費カロリーは何ワット? : コンピュータ将棋基礎情報研究所

ここによると、(便乗)概ね人間が将棋を指すのに使うカロリーを電力換算すると50W。

 

 

 高い処理能力と省電力という両立が難しい課題について、大変興味深かったのは、Snapdragon 835との動画再生時やベンチマーク実行時の電力消費量のモニタリングのデモだ。動画再生では、Snapdragon 835が平均2000mW以上を消費しているのに対し、Snapdragon 845では平均1600mW程度に改善されていることがわかる。

Snapdragon 835とSnapdragon 845で同じ動画を再生
Snapdragon 845の電力消費量
Snapdragon 835の電力消費量

 さらにベンチマークアプリ「GFXBench」の実行時では、Snapdragon 835が平均3780mW程度を消費するのに対し、Snapdragon 845は平均2950mW程度に抑えられていた。電力消費量のグラフを見ると、波形の山のでき方も異なっており、電力を消費していない谷の部分ではSnapdragon 845はきれいに平らになっているが、Snapdragon 835は途中で負荷がかかっている状況が見て取れる。

 

http://www.itmedia.co.jp/mobile/articles/1802/16/news050.html

 

 なるほど、。

なるほどぉ…

Snapdragon845というのは最新のスマホのCPU(計算機だと思ってもらって)です。名人を超える将棋ソフトを動かすには十分でしょう。しかし、素晴らしい消費電力性能ですね。

 

え?充電にはもっと使う?発電の熱量と比べて計算しろ?

 

ところで脳の消費電力だけを考えたら、とか色々ありますが

 

まぁね、確かにそういう意見もあるかもしれませんけれど、そもそも比べることに意味なんてないでしょう。

 

競輪選手をお呼びして、漕いで貰ってその電力でスマホを動かすとか、太陽光で名人を倒すとか、そういう興行もありなんでしょうか(知らんけど)

 

結論!

最近のスマホの消費電力性能ってすごい!