2020-10-05 20:00:00

将棋初めて1年 成長した? 変わったことは?

2019年10月から本格的に将棋初めて1年が経ちました。1年でどれだけ成長、強くなったのか、変わったこと、振り返りなどを実体験を踏まえて書きたいと思います。 自分の振り返りとして書き残しておきますが、同じく将棋を始めたての方などの参考になれば幸いです。 棋力アップの勉強以外にもプロ棋士の将棋を見たり、コンピュータ将棋を勉強してみたり、1年で将棋について詳しくなりました。

目次

将棋始めたときの棋力

将棋は子供の頃に親から動かし方は教わって、動き方は知っているというくらいな状態でした。 棋力的には、ハム将棋に時間無制限でめちゃめちゃ考えてなんとか勝てる程度。 将棋ウォーズで5級程度でした。

将棋ウォーズでも5級で達成率が99%にならなくなったので、その程度の実力でした。

勉強量

勉強時間については1日何時間とか、そういう勉強はしていないので正直わかりません。 1日5時間位将棋指してるときもあれば、1週間以上将棋指さないような時期もありました。

そのため、ここではわかる範囲で「解いた詰将棋の数」、「対局数」を参考に書いておきます。

詰将棋

3手詰めはかなりやってましたが、1年やってて5手詰めハンドブック1周すらできてないのは勉強不足ですね。。 楽な方に逃げていたかもしれません。

対局数

  • 将棋ウォーズ10分切れ負け
    • 343局
  • 将棋ウォーズ3分切れ負け
    • 1167局
  • 将棋ウォーズ10病将棋
    • 43局
  • 81dojo
    • 233局

1年間でどれだけ成長した?

2019年10月5日 初将棋ウォーズ(この後5級で達成率高止まり)

2019年10月27日 3切れ4級昇級

2019年11月3日 10切れ4級昇級

2019年11月6日 10秒将棋 3級昇級

2019年11月23日 10分将棋 3級昇級

2020年1月13日 3分将棋 3級昇級

これ以降は2020年10月4日現在まで特に昇級はしてないです。

将棋勉強し始めて2ヶ月間が一番成長して、この頃が一番楽しくて勉強時間も多かった気がします。

2020年1月13日以降一切昇級等していないわけですが、全く棋力向上していないかというとそうではないと思ってます。(そうでないと信じたい。。)

具体的には下記のような知識は増えているのかなと思っています。

  • 知っている戦型が増えた
  • 知っている囲いが増えた
  • 知っている手筋が増えた

囲いや手筋の名前を知っていることが非常に重要で、ちゃんと名前をおぼえることで認識できるようになります。 例えば天守閣美濃とか名前を知らない頃は初見か否かにかかわらず毎回「何この玉あがり!初めてみた!こんな手あるの?どうしたら良いの!」って毎回言ってました。 天守閣美濃って名前を教えてもらってかららは「あー天守閣美濃ね」って冷静に対応できるようになります。

バーダーマインホフ現象というやつですかね。一度名前を覚えるとソレを意識することができるので、名前を覚えることは大事だと思ってます。

勉強法

基本的には詰将棋と実戦をメインに行っていました

定跡勉強

詰将棋、実戦がメインで定跡とかを棋書みて勉強というのはあまりしていません。

定跡を勉強したのは四間飛車と、45角戦法くらいでしょうか。 勉強したと言ってもこれも、棋書ではなくYoutubeなど動画に上がっているもので勉強していました。

唯一戦法の棋書を見たのはこちらの本。

四間飛車にハマっている時期があって、藤井システムを知りたくなってこちらの本を読みました。

振り返ると、定跡勉強をちゃんとしてないので仕掛けがわからないということが対局中多かったと思います。

序盤の駒組あたりはそんなに崩すことはなくなってきたのでいいのですが、仕掛けの局面あたりは定跡や棋書での勉強を増やしていかないといけないかなーという気がしました。

詰将棋

3手詰めをまずは完璧にしようと思って、3手詰めハンドブックはかそれなりに周回しています。

ただ5手詰め、ソレ以上の詰将棋に関してはそれほどやっていないので足りていなかったかもしれません。

使っていた書籍はこちら

3手詰めハンドブックほのかに詰将棋パラダイスというアプリで詰将棋をしていました。

振り返ると5手詰め以上の詰将棋をあまりやっていないのは反省かなと思います。

実戦

実戦は将棋ウォーズもしくは81dojoで行い、最近はソフトを使って検討をするようにしています。

ソフトは水匠を使っていまは検討していますね。

ソフト研究は数値化された評価値がでて最善手がわかるので良いのですが、囲いや手筋の名前については教えてくれないので、パターンとして認識するのは難しいのかと感じました。

前述したように、天守閣美濃を天守閣美濃として認識してないと玉が上がられたときに何だこれっ!ってなりますし、よくある詰み筋、例えば送りの手筋なんかも、ソフトで検討だけではあーこんな手あるのかってその場では思いますが、実戦ではなかなかそのパターンがでても認識できません。 送りの手筋としてパターンとして認識できていれば実戦でも候補にあがり、認識するのが容易になると思います。

なので、ソフトだよりの検討だけよりも、やはり棋書などで手筋などは覚える必要があるのかなと感じました。

実戦は将棋ウォーズの棋譜をみるとわりと、序盤・中盤は優勢になることが多いのですが、中盤以降優勢になっても勝ちきれない、寄せが下手というのは実感しています。

このあたりはやはり、棋書や次の一手などでパターンを覚える必要性があるのかと思っています。

将棋を初めて変わったこと

将棋用語を使うようになる

将棋解説など見てると、わりと将棋以外の会話でも将棋用語を使うようになったりします。

一番使いやすいのは「序盤」「中盤」「終盤」と言った言葉でしょうか。

私はピアノ配信とかをYoutubeでやっていたりするのですが、音楽の話をするのに「イントロ」という言葉が出なくて「序盤」とか言ってしまったり。。

プロの将棋対局を見るようになる

将棋を始めるまでは将棋解説の番組を見たことがなかったのですが、見てみたらこれが面白い!

将棋の指し手について淡々と解説するのかなと思いきや、 ニコ生とかAbemaの生放送を見ていると棋士の方のトークが普通に面白かったりするんですよね。

もちろん将棋自体も面白くて、解説で「この手はすごい手だ!」と言った感じで盛り上げていたり。正直普通に自分が棋譜を眺めているだけであれば、すごい手なのかどうかもよくわからないのですが、解説があることによって何倍も面白くなります。

また、プロの解説見てると非常に勉強になります。その対局自体もそうですが、変化なども解説してくれるので考え方なども非常に参考になります。 角換わり腰掛け銀の形なんかはプロの対局によく出てきて、そのたびに何度も解説されるのでわりと形だけは見てるだけで覚えれちゃったりしました。

将棋始める前までは、将棋棋士といえば、羽生善治先生と、藤井聡太先生と「ひふみん」こと加藤一二三先生くらいしか知らなかったのですが、解説など見ているうちに知ってる棋士もだいぶ増えました。 AbemaTVトーナメントとかもすごい面白かったですよね。いろんな棋士知ることができました。

コンピュータ将棋を勉強し始めた

将棋ソフトを使っているとそのソフトがどうやって動いているのか気になって夜しか眠れなくなります。

というわけで軽くコンピュータ将棋についてもメモしておきます。 コンピュータ将棋勉強し始めたばかりの初心者なので間違いなどがあったらすいません。

評価関数について

基本的に今の将棋ソフトの評価関数の作成には機械学習によって行われます。 将棋ソフトの機械学習で用いる特徴量は例を上げると、下記のような駒間の位置関係を表すものが使われるようです。

  • KP : K(玉)とP(玉以外の駒)
  • KKP : K(自玉)とK相手玉)とP(玉以外の駒)
  • KPP : K玉)とPとP(玉以外の2つの駒)

そして、これらの駒はもちろん81マス上の任意の位置にいる可能性があるので、例えばKKPであれば 81(自玉の位置のパターン数) * 81(相手玉の位置のパターン数) * 1548(玉以外の駒の位置のパターン) のベクトルなどで表現されます。

Pにあたる玉以外の駒のパターン(1584パターン)は駒種、自駒・相手駒の区別、持ち駒などもあります。 具体的にはコードに定義されてるのを見ると良いです。

YaneuraOu/evaluate.h at 105ab1c069fa50778f649808e687d754f5cde429 · yaneurao/YaneuraOu

成銀、成桂、成香がなくてあれっ?って最初見たときは思ったのですが、金と同じ扱いにするようです。

そして重みも同次元のベクトルなのでベクトルの内積で評価値は求まることになります。 重みは機械学習によって更新される値です。

厳密にはソフトによっていろんな工夫があったりすると思いますが、すごくざっくり説明するとこのような理解です。

あとは差分計算とかで高速化していたりとかいろいろあると思いますが、ただの振り返り記事なのでここではキーワードだけにとどめておきます。 差分計算は1手進んでも、1駒しか動かないので、駒の位置関係の殆どは変化がないのはまぁ想像がつきます。

NNUE評価関数

あともうちょっとだけ触れておきたいのはNNUE。

私がソフト検討とかで使わさせて頂いてる「水匠」もNNUE評価関数が利用されてます。

技術的な内容はこちらのアピール文書で公開されていて、とてもありがたい。

NNUEのアピール文書

ニューラルネットワークを用いた評価関数の実装なのですが、GoogleのDeepMind社のAlphaZeroなどとはまた別のアプローチで、面白いです。

4層の全結合ニューラルネットワークでそれほど深いネットワークではありませんが、非線形の評価関数となっています。 ニューラルネットワークの計算はベクトルと行列の積ないしは、行列行列積の演算になり、なおかつ各層で演算があるので計算量が多いです。

特に将棋は入力層のニューロンが多くなる、NNUE評価関数では「Half-KP」というのが使われていて 81 * 1548 = 1225388次元です。 実際は疎なベクトルなので、そんなに計算量は多くなさそうですが、それでも入力層の占める計算コストの割合が多いようです。

もちろん各層のニューロン数、層数で計算量は変わってきますが、NNUEのネットワークはは W1(入力層) = 1225388 * 256, W2 = 512 * 32, W3 = 32 * 32, W4(出力層) = 32 * 1 となっていることから、入力層が一番計算量が多いのはわかるかと思います。

NNUEはこの入力層の計算量の問題を差分計算で解決している。

前述したように、1手進んでも、もとの局面との差異が少ないので、ここも差分計算ができるのはなんとなく想像がつきます。

アピール文書の(13)式に計算式もあるのでやって見るとわかります。

もともとニューラルネットワークにそれほど詳しいわけではありませんが、入力層を差分計算で高速化を図ってるのがニューラルネットワークの例であまり見たことがなかったので面白いと感じました。 前後のデータがある将棋などのデータならではの最適化かなと。

コンピュータ将棋の勉強してみての感想

コンピュータ将棋を初めて勉強してみましたが、近年ではニューラルネットワークやディープラーニングを取り入れた手法も出てきていて面白そうです。 NNUEに関しては全結合ニューラルネットワークですが、将棋は二次元の盤面なのでCNNとかも使えるのでは?とか、考えると夢が広がりますね。もちろんすでにやってる人はいるんでしょうけど。

コンピュータ将棋はあまり追っかけてなかったですが、勉強してみたら面白かったので、今後は追っかけてみるのも良さそうですね。 大会とかもあるそうなので、今度見てみようかなとおもいます。

コンピュータ将棋勉強したからには、次は実際にソフトを作るのかという話になりますが、強い将棋ソフト作るモチベーションは今のところありませんね。 今の将棋ソフトがもう強すぎますし、機械学習とかやり始めたら、計算リソースとかが必要なので。

強い将棋ソフトを作るモチベーションはありませんが、ニューラルネットワークの勉強のお題でやってみるとか、変則将棋とかもたまにやってたりするのでそれようにソフトを作るとかであればモチベーションありそうです。

ただの振り返りなのに、意外と文量書いてしまったので、もはや別記事にすればよかったですね。

さいごに

振り返り記事を書いたことでなんとなく、これからする勉強など変える必要があるなと感じました。

振り返りをもとに次の勉強法を考えて行きたいと思います。 まずはウォーズ2級に早く上がりたいですね。

棋力向上の他にも、プロ棋士の対局だったり、コンピュータ将棋など他の将棋の楽しみ方もありそうなので、このあたりの幅も広げていけると良いなと思います。