人工知能 オセロ。 【AI開発】ExcelVBAマクロで人工知能開発は可能か

人工知能の作り方とは?初心者が知らないと損する学習のコツ

人工知能 オセロ

オセロプログラムと人間はどっちが強いのか?ロジステロとの戦い このサイトでは、C言語でのオセロ(リバーシ)のプログラム開発方法を解りやすく説明しています。 初級者、初心者でも作れるオセロ実装のコツが満載です。 チェスの世界チャンピオンとチェスの最強ソフト「ディープブルー」との対戦を覚えているでしょうか? 最近ではチェスに限らず囲碁や将棋などでもソフトの開発が進み、パソコンや家庭用ゲーム機でその強さを十分に感じることができます。 Logistello(ロジステロ) VS 村上健7段 リバーシ(オセロ)は他のゲームに比べてルールが単純 (一手における選択肢の幅が狭く、最大でも60手で終了する) なので、 強いソフトを作りやすく、コンピューターはすでに人間を超えたといわれていました。 しかし、正式にリバーシ(オセロ)の世界チャンピオンとコンピューターが対戦したことはなく、人間の強豪プレーヤー達はコンピューターの挑戦から逃げているのだと思われていました。 これを聞きつけた 麻布学園の英語教師、村上健先生 (現在九段)は憤慨し、挑戦されればいつでも受けてたつことを宣言。 そして 1997年8月、村上先生が初めて世界チャンピオンとなったとき(当時七段)アメリカで、最強のリバーシ(オセロ)ソフト「ロジステロ」との対戦が実現しました。 「ロジステロ」は、スーパーコンピューターで動くチェスの「デイープブルー」と違い、家庭用のパソコンで動きます。 そのため「ディープブルー」が一秒間で2億手読むのに対して、「ロジステロ」は 最大一秒間に48万手読みます。 しかし、それでも「ロジステロ」は 最後の26手を6分で完璧に読み、勝敗を判断できます。 しかも「ロジステロ」は 序盤の20手を過去の膨大な棋譜の中から定石として記憶し、悪手を打ちません。 つまり人間は全60手のうち、序盤の20手と終盤の26手を除いた中盤の14手でコンピューターに形勢で勝ち、なおかつ残りの26手で全て最善手を打たなければならないのです。 また、「ロジステロ」は 棋譜や自分自身との対戦で24時間学習し続け、時間とともにどんどん強くなっていきます。 この対戦は全部で6回戦行われ、その全てで「ロジステロ」は勝利し、村上健先生は一矢報いることすらできませんでした。 村上健さんは「私が生きている間、努力を続けても追い付かないほど『ロジステロ』は強いと思った。 人間には手が届かないところにいってしまっている」(朝日新聞夕刊)と言ったとか。 「自分のほかにも強いプレーヤーはいるが、彼らが当たっても勝つのは無理ではないか」(毎日新聞夕刊)ともコメントしたようです。 追記 村上先生の6連敗という結果はあまりに予想通りでしたが、問題は他にありました。 「ロジステロ」との対戦に臨んだ村上先生は、対「ロジステロ」用に特に対策を練るわけでもなく、当日の体調の管理も怠り、さらには研究してもいない新手を対戦中に見せ、惨敗するという有り様でした。 当然、周囲はこの対戦を「人間代表vsコンピューター代表」として見ていたわけで、村上先生が対戦で見せた態度はとうてい納得のいくものではありませんでした。 まして、テレビでも取り上げられ、「 リバーシ(オセロ)の世界チャンピオン、コンピューターに6連敗」なんてニュースが流れ、何も知らない人が聞いてどう思ったか・・・。 当の村上先生も勝てるとは思っていなかったらしいのですが、勝てる見込みもないのに挑戦を受けたことも「人間代表」という意識の無さを表しています。 敗れたにもかかわらず賞金を受け取った村上先生は、その賞金でアメリカを観光し帰国。 後にこの対戦は、一部のオセラーからの非難を生み、学校では 生徒の笑いの種になったのでした。 Logistello(ロジステロ) VS 冨永健太7段 オセロで世界最強のパソコン用ソフト「ロジステロ」と元日本チャンピオン、 冨永健太氏 当時24歳 の2番勝負が 2002年5月14日、千葉市で始まったコンピューター関連の国際会議で行われました。 結果は接戦ながら 冨永氏の2敗。 冨永氏は「奇妙な手を指すと感じたが、最後にはそれが効いた」と脱帽したそうです。 JavaScriptを有効にしてください。

次の

ゲームの世界にもAIが?ゲームAIの仕組みと勉強方法をチェック!

人工知能 オセロ

現在AIブ-ムは衰えるどころか開発に開発が進み、青天井で人気に拍車をかけ続けていることが容易に伺えます。 それは人工知能開発者の給与水準から見て取れることはもちろんであり、その需要は、Googleの開発したTENSORFLOWという人工知能モジュールの開発者への普及なども強く影響していると推測します。 そのようなAI こと人工知能は一端の事務職員からすれば雲の上のような存在に感じられることでしょう。 しかし、それは本当でしょうか? 答えはNOです。 事務職員でも多少勉強すれば触れてしまうVBAマクロでさえ人工知能の開発は可能です。 少し初学的な内容から説明しながらここでは解説していきます。 「えっ?プログラミング?文系にはちょっと、、、」 と敬遠される方が多いかもしれないですが、ちょっと待ってください。 本当に簡単にできるのです。 プログラムを打つ必要さえありません。 開発タブより「マクロの実行」を押すことであなたの行動を記憶して何度でも使うことが出来ます。 今まであなたがルーチンで行ってきた多くの時間を短縮することが容易に可能と言って良いでしょう。 これらからプログラムを一切打つことなくプログラムが完了出来ることがお解りいただけたでしょうか? 実際にはあなたの操作が内部でプログラム化されているので、行動の理解によるExcelの行動プログラミング化人工知能ということが出来るでしょう。 しかし、 「そんなことで人工知能なんて呼べるほど人工知能が簡単な訳がない」 と思われる方は当然おられるでしょう。 部分的に「その通り」と言わざるを得ません。 少し人工知能について出来るだけ分かりやすく説明していきます。 取ってつけたようにExcelマクロと人工知能を因果付けてるような説明は誰も納得しないため、出来るだけ客観的に人工知能知能とExcelマクロを比較してみましょう。 人工知能とは一体全体何なの? Excelマクロが人口知能と呼べるか否か。 それを判断するには「人工知能とは何か」を理解することが手っ取り早いです。 「コンピュータを使って、学習・推論・判断など人間の知能のはたらきを人工的に実現したもの。 」 辞書では上記のように人工知能が説明をされています。 つまり62. VBAならば判断も可能となるために75点もの高得点となります。 もう少し深掘りしていきましょう 1、現代の人工知能知能と過去の人工知能の違い 実は人工知能ブームは過去にも起きています。 その中でもキーとなるのが1980年代に起こった専門家の「判断」に重点を置いた人工知能です。 この人工知能は上記で一瞬出てきた「判断」に係るif thenプログラムです。 英語が得意な方は気付いているかもしれませんが、このif thenプログラムとは、 「もし〜の場合〜をする そうでないなら〜をする」 という条件分岐をさせるプログラムなのです。 もっとイメージを持っていただくために例を挙げましょう。 「貯金が100万円以上なら富裕層とする、そうでなく0円以上以上100万以下なら中流階級層とする それ以外の0円以下の負債持ちは貧困層とする 」 上記はif もしも の中に更にifが使われている人間の思考に近い仮定文です。 人間の判断や思考とは上記のように条件分岐から成り立ち、専門家の思考は一般人より多くの知識からなるより多くの条件分岐を持つことから「専門家」と呼ばれているのです。 これはExcelマクロでは出来ませんが、少し勉強した先にあるExcelVBAというマクロでプログラム化されたプログラムを触るだけで容易に出来るため、現代のExcelVBAで十分に可能な人工知能であったのです。 ただ、PCの出始めである1980年代では画期的なシステムであったため非常に注目を浴びた人工知能であった一方、専門家の複雑過ぎる思考をif thenのみで表現するにはPCの性能もif thenという人が規定する限定的な範囲という柔軟性の無さも専門家の知識を完全再現することは不可能だと問題視をされていました。 2、現代の人工知能の進化 では、旧人工知能と現代の人工知能とは何が違うかと申しますと、「判断ポイントの自主学習」というたった1点の違いなのです。 旧人工知能では、if thenつまり、「もし〜である場合」という判断ポイントを人間が指定しなければなりませんでした。 しかし、現代の人工知能は判断ポイントを自分で探します。 例えば1、2、3という数字の形から1を選ぶ場合、旧人工知能であれば 「数字の横の広がりがAーBの場合」かつ縦の長さが「cーd」に一番近似の場合、1とする」 等と記述しますが、現代の人工知能は自分で多数の比較資料を参考にどの場合が正解率が上がるか数値化解析を繰り返して判断して、判断ポイント if then をどんどん増やしていけるのです。 これが時折耳にする「ディープラーニング」というホットワードです。 これらはExcelには不可能です。 Excelにそのような数値解析を繰り返すだけの演算能力が無いためです。 つまりExcelマクロは人工知能にはなり得ないと言えまるでしょう。 Excelマクロ VBA は人工知能開発できると言えるか 旧人工知能にしても現代の人工知能にしても詰まる所if then もし〜なら が基準となります。 これを自動化するというところに重点を置くならば、ExcelVBAで十分実現可能なので、ExcelVBAは人工知能開発可能だと言えるでしょう。 一方で現代の人工知能であるif thenの自主学習という面では全く出来ないのでExcelVBAは人工知能開発不可能であると言えます。 つまり、最先端の人工知能開発は不可能だが、旧世代若しくは現代の一部の人工知能開発程度ならば十分に可能であると言えるかと思います。 日本人である以上「完璧」を求められるために、容易にExcelVBA程度で人工知能開発が出来るなんて言えない事が多いでしょうが、ExcelVBAで多くの自動化プログラムを組むことは大抵の人を驚かせられる程度の技術であることも事実であると筆者は実務経験からひしひしと感じています。 あまり高度過ぎる技術に囚われず、自分の手の届く人工知能開発も面白い一面を十分に持ち合わせているのかもしれませんね。

次の

強いAIと弱いAI

人工知能 オセロ

「ゲームに現れる局面の数」と 「トッププロに勝てるかどうか」は関係がない 将棋AIがチェスのAIに遅れること20年、ようやく人間のトッププロに渡り合えるようになりました。 この時間差の理由について、多くの人が「チェスよりも将棋のほうが難しいから」と答えるでしょう。 それはある意味、正しいです。 ただし、その文脈でよく聞かれる言説に、「将棋はチェスよりも存在可能な局面が多いから難しい」というのがあります。 人工知能の専門家ですら、こういったことを言う人が多くいます。 この説は高い確率で誤解を含んでいますし、オブラートに包まずに言うと、間違っています。 どこが間違っているのでしょうか。 将棋がチェスに比べて、存在できる可能性のある局面の数が多いのは間違いありません。 想定される数には研究者によってバラツキがあるので明言は避けますが、とてつもなく大きい数だと思っていただいて大丈夫です。 どれくらい大きな数かといえば、まずチェスですら、1秒間に2億局面読めるプログラムが、宇宙開闢(かいびゃく)から現在までの100億年のあいだ探索を続けても読みきれません。 そして将棋はさらにその上を行くのです。 私は仕事柄、「ポナンザが将棋の名人を倒したら、次は将棋の完全解析に進むのですか?」とよく聞かれるのですが、ちょっと返事に困ります。 完全解析というのは文字どおり、すべての答えがわかっているという状態です。 ある局面でどんな手を指せばベストなのかがわかるだけでなく、ゲームのスタート前に、先手が勝つか、後手が勝つか、引き分けになるのかがわかっているということになります。 しかし将棋というゲームは、皆さんの想像をはるかに超えて奥が深いのです。 現在のコンピュータでは、宇宙の年齢の10の100乗倍の時間があったとしても、とうてい読みきれるものではありません。 これはアルゴリズムがどれほど進化しても解決しないでしょう。 先ほどの言葉、「将棋はチェスよりも存在可能な局面が多いから難しい」というのが、「(完全解析するのが)難しい」という意味なら正しいのですが、この質問の意味は「(人間のトップに勝つのは)難しい」という意味ですよね。 まずはここまで皆さんと前提を共有できればと思います。 ちなみに、現在のところ、まだオセロですら完全解析はできていません。 あのシンプルなゲームですらそうなのですから、完全解析というのがいかに難しいのか、想像してもらえると思います。 図2 各ゲームの局面の数(諸説ありますが通常言われる数字です) コンピュータにとって将棋が難しい理由 ではなぜコンピュータにとっては、チェスよりも将棋のほうが、人間に勝つのが難しいのでしょうか。 その理由は、 コンピュータにとって、チェスよりも将棋の局面のほうが「何をどのように計算すればいいのか」がわからないからです。 言い方を変えれば、コンピュータにとって、将棋のほうがチェスよりも扱いにくいということです。 考えてみてください、計算すればいいだけの問題だったら、コンピュータは人間には決して負けません。 そもそも将棋の何を、どのように計算すればいいのかわからないから、コンピュータは人間に勝てなかったのです。 普通に考えたら、将棋を指すことが計算問題になったりしませんよね。 そこを頑張って、将棋という問題を計算問題に落としこむことがプログラマの仕事であり、私が今までやってきたことなのです。 いままで計算不可能だった問題を計算可能にするのが、人工知能における課題なのだとも言えます。 コンピュータと人間がその性能を争っている分野というのは、つい最近まで計算不可能と思われていた問題が計算可能な問題になっている途中なのです。 コンピュータにとって計算可能な問題は簡単で、そうでない問題は難しいことは、将棋の例からもよくわかります。 通常、コンピュータは終盤のほうが得意です。 なぜなら、王様を攻めるという目的がある程度しっかりしているからです。 相手の守りの駒を取っていき、王様を目指していけばいいのです。 将棋の終盤は、コンピュータにとって計算しやすい問題と言えます。 一方、将棋の序盤はコンピュータにとって計算困難な問題です。 駒のわずかな配置の違いで局面の良し悪しが大きく変化します。 これらの微小な違いによる良し悪しを、人間のプログラマが書ききることは困難です。 当時のプログラマとしては、誰よりも将棋を理解していたつもりの私も、その試みに失敗しました。 コンピュータにとっての 将棋とチェスの本質的な違い 話をまとめます。 コンピュータにとって、チェスは将棋に比べて、人間に勝ちやすいゲームでした。 それは、コンピュータがチェスを完全に解析できるからではなく、 局面の良し悪しを測る基準がチェスは将棋よりも明確で、コンピュータに計算しやすいものだったからなのです。 なぜでしょうか。 ここで少しチェスのゲーム性を紹介していきましょう。 チェスは将棋に比べて機動力が高い駒がほとんどです。 一方将棋は足が遅い駒がほとんどです。 これが、盤面のどこかで緊急事態が生じたときに大きな差になります。 チェスの駒は緊急事態が生じても、すぐに現場に駆けつけられますが、将棋の駒はなかなか駆けつけられません。 そのため チェスでは駒をどれだけ盤面に残存させているかが局面の良し悪しに直結する一方、将棋は駒がよい配置にあることが、局面の良し悪しに直結するのです。 駒の残存量を計算することは、コンピュータにはとても簡単なことです。 もちろんチェスにはそれ以外にも大事な要素がたくさんありますが、チェスというゲームがどういうものであったかを人間は論理的に言うことができました。 これこそが、コンピュータにとって将棋とチェスが区別される理由だったのです。 図3 チェスと将棋を分ける壁 チェスについては、昔からさまざまな人が、どのように局面の良し悪しを測ればいいのか、教科書的なものを作っていました。 チェスのプログラムは、こういったチェスの教科書から局面の判断基準をどんどん輸入しました。 チェスを万人が理解できるようにしようとした試みが、結果的にコンピュータすらも理解できる形になったのだと思います。 これは決して、将棋にかかわる人たちが教科書を作ることに不真面目だったというわけではありません。 将棋は論理的に局面の良し悪しを述べることが難しいのです。 将棋の指し手を評する言葉には、「味がいい」「手厚い」「重い」といった難解なニュアンスのものが多数あります。 これらの用語の意味を理解し、自由に使えるようになるには、アマチュア初段程度の実力が必要でしょう。 そして、こういった専門用語があるのは、なんとかして局面を言葉でとらえようとした将棋指しの歴史を物語るものなのです。 ちなみに本線から脱線しますが、さらに専門用語の意味をとらえるのが難しいのが囲碁です。 普通の初心者の人にとっては、囲碁の教科書を読めるようになることですら難しいのです(教科書なのに!)。 そのため、一昔前の人工知能の技術では、囲碁を扱うのはほとんど不可能に近いレベルでした。 チェスの世界チャンピオンを破ってから20年がたち、コンピュータは今ようやく将棋の名人を倒せるレベルに到達してようとしています。 しかしプログラマたちは将棋がどういうものであるか、うまくコンピュータには伝えられませんでしたし、それは今後も永遠に成功しないでしょう。 ではプログラマたちは、どのようにコンピュータを強くしたのでしょうか? もうおわかりですね。 コンピュータが自分自身で将棋の知識を獲得しない限り、決して将棋の名人を打ち破ることはできないのです。 「この日は、コンピュータ将棋の世界にとって記念すべきものになりましたが、同時に改めて、人間と人工知能の違いを認識させられた日ともなりました。 本書で紹介してきた人工知能(ポナンザ)の特徴と、世界に意味を見つけ物語を紡いで考えていく人間の思考法の限界が明確に表れたのです。 そしてもう1つの読みどころは、著者が研究の最前線で遭遇した驚くべき事象や、 囲碁・将棋のプロ棋士たちの人工知能への反応をビビッドに記述していること。

次の