HIT(Human Intuitive Thought)プロジェクト
※このページは、私が取り組んでいるHITプロジェクトの野望と、それを検証するために作って
いるHIT将棋(通称「ヒット君」)をご紹介するためのものです。
本ページに関するお問い合わせは、伊藤までメールでご連絡ください。
電気通信大学情報工学科 伊藤毅志
(2006年5月9日、サイト内大幅リニューアル)
HIT(Human Intuitive Thought)プロジェクトとは、、、
〜概要〜
一言で言うと、「人間らしい思考をするシステムを作る!」というプロジェクトです。
では、人間らしさとは何か?ということですが、私は、これまでに、様々な問題解決課題を題材に、
人間の熟達者の思考を調べてきました。その結果、熟達者の思考には、以下のような2つの大きな
特徴があることが分かってきました。
1.見た瞬間に解答の道筋がわかる! ⇒直観的思考
2.自分の持っている価値観で解決しようとする。 ⇒利己的思考
これらの思考過程をコンピュータ将棋などのゲームの思考アルゴリズムに組み込んで、「人間らしい
指し手を生成するシステム」を作ろうというのが、本プロジェクトの趣旨です。
〜HIT将棋のメカニズム〜
コンピュータ将棋の実力は、年々進歩して、市販のソフトや一部のフリーソフトでも、既にアマチュア
五段クラスのシステムが現われています。しかし、従来のコンピュータ将棋ソフトは、与えられた局面
から、可能な合法手(ルール上指せる手)によりゲーム木を網羅的に膨大な探索を行って、次の一手
を決定するという手法によるものばかりでした。

▲従来の将棋ソフトの思考方法(ボトムアップ形式:探索主導型)
これらのプログラムの指し手の特徴は、人間的な常識がありませんので、プレーしていて時々
人間のプレーヤーでは思いつかないような信じられないような手(良い手も悪い手も)を指して、
違和感を覚えることがあります。
一方、人間の熟達者(プロ棋士など)の思考を見ていると、網羅的な探索など行っていません。
羽生さんのようなトッププロ棋士は、殆ど見た瞬間に数手(場合によっては1手)にすぐに絞り込む
ことが出来ます。プロ棋士の方は、よく「手が勝手に」とか「良い手が光って見える」という表現を
されますが、これは、熟達者が経験的に持っている知識を用いることで、直観的に候補手が絞り
込めるからだと考えられます。

▲人間の熟達者の思考方法(トップダウン形式:知識主導型)
このメカニズムをコンピュータに持たせるには、人間の熟達者が持っているようなたくさんの
常識的知識を持たせてやる必要があります。私は、これを手続き的知識としてのプロダクション
ルールで記述することにしました。「桂馬の高飛び歩の餌食」「金は斜めに誘え」などの格言は
もとより、格言にもならないような「桂馬の頭は弱点」「と金が作れるときには作る」「成った小駒
は敵玉に近づける」などの物理的な形に関するルールや「駒損をしない」「敵玉を危険にする」
「自玉を安全にする」「大駒を効率よい位置にする」などの常識的な知識もルールという形で
記述してやります。より良いルールには高得点を優先順位の低いルールには低得点を与え
悪い手には減点を与えます。
これらの手続き的ルールを十分にたくさん記述してやることが出来れば、ある局面をこのシス
テムに与えると、各合法手に得点が付いて返ってきます。これらの得点順に並べてやると、
直観的に最も良さそうな手から順番に並ぶことになります。
HIT将棋では、このメカニズムをコンピュータ上で実現しようとしています。2006年5月現在
の所、HIT将棋には、約800個ほどのアマチュア四段(私)の知識を記述しています。この
ルールに基づいて、どんな局面を与えても、殆ど瞬時にすべての合法手に得点が与えられて
得点の高い順に候補手が現われるようになっています。このメカニズムが、直観的手の生成
メカニズムになっています。
さらに、今年からHIT将棋では、人間らしい先読みを行うメカニズムを組み込むことにしまし
た。人間の熟達者は、直観的に手を絞り込むだけではなく、そこから直線的に先読みをしてい
ることがわかっています。HIT将棋では、このメカニズムも取り込みました。現状では、非常に
単純に、「3−2−2−2−2」と5手先まで合計48局面まで読んで、最も良くなる手を選ぶと
いう手法を試しています。実際の人間は、どういうときに直線的に読み、どういうときに分岐的
に読むのかということを使い分けていると考えられますが、まずは、単純な先読みを行って
その効果を試そうとしています。
〜HIT将棋の歩み〜
2002年にパイロット版となるSIL将棋(Supporting for Individual Learning)が開発されました。
これは、元々心理実験用のGUIのパーツを用いて、学習支援システムを作る目的で開発され
たものでしたが、バグだらけで殆ど機能しませんでした。翌年から、HIT将棋という名称に変更
し、上記のようなコンセプトの開発が進められました。2003年、2004年は、当研究室のOB
である大口良輔君が、別の研究の傍らこのプログラムの開発を進めてきました。このシステム
自体、開発に色々と無理を重ねてきたこともあり、バグやミスの多いプログラムでした。
その後、2004年春から、当研究室(現OB)の清家良平君が中心になってプログラムの改良
を行って、現在に至っています。
HIT将棋は2005年版までは、先読みを全く行わない(直観のみ)のプログラムであったため、
あまりに早い指し手の返しに対戦相手に非常に強いインパクトを与えていました。コンピュータ
将棋選手権で、勝負のついた対局の中で、恐らく歴代最長手数の記録を作ったのは、本ソフト
だと思います。そのときの棋譜はこちらです(対「椿原将棋」2004年コンピュータ将棋選手権
から、後手HIT将棋の消費時間にご注目!すべて1手1秒です。これは指し手の生成が
すべて1秒未満であったことを示しています!)
その後、「先読みの無いバージョン」でルールを洗練させていましたが、2006年からは、直線
的先読みのメカニズムを加えたHIT将棋+SS(Selfish Search)バージョンを構築しました。これ
は、どんなに直観的な手の生成を磨いても、少し先の展開を読めば有り得ないような手を排除
できないことが明らかになってきたからです。これも無理やりルールで書けないこともないので
すが、人間も直観的に良い手を短い先読みで取り消すことはしていることなので、そこまで直観
的ルールに固執する必要はないと考えました。
むしろ人間の行っている直線的な先読みを組み入れる方法を模索する方が建設的であると
判断して、SSを加えることにしました。ルール自体は、まだまだ不完全なので、非常に狭い先
読みでは、現状では、最善手を選択することは、まだまだ難しいですが、このSSの効果は少な
からずあることがわかってきました。
このメカニズムが上手く機能した棋譜はこちらです(対「大二郎」2006年コンピュータ将棋選
手権から)。
〜HIT将棋の課題〜
現在のところ、「3−2−2−2−2」の5手の先読みを行って上位3位の手を比較して最も良く
なる手を選んでいますが、現状最善手がまだまだ3手の中に入ってきていない場合が多々見ら
れます。これでは、どんなに先読みしても、あまり意味がありません。ルールをさらに加えて、
より正確な指し手が選択できるようにルールの改良と追加を行っていきます。
また、先読みの仕方に、今のところ何の工夫もありません。直線的に読んで良いところ、分岐
すべきところなどを状況に応じて使い分けて、評価に値すべき手を評価するようにしたいと考え
ています。
このHPに関するご意見、ご質問は、こちら(伊藤)まで。