はじめに
最近、いたるところで「人工知能」や「AI」という言葉を聞きます。しかし実際にはほとんどの人が人工知能とは何かについて詳しくは知らないと思います。そこで今回は少し人工知能について研究してみました。
定義の確認
まずは、人工知能とは何か、というところから始めます。
『計算(computation)』という概念と『コンピュータ(computer)』という道具を用いて『知能』を研究する計算機科学(computer science)の一分野を指す語。 Wikipediaより(参照)
この定義を見ると、「知能」を「コンピュータ」で再現する、という意味のようです。では「知能」の定義といったい何でしょうか。 知能とは、
論理的に考える、計画を立てる、問題解決する、抽象的に考える、勧化を把握する、言語機能、学習機能など様々な知的活動を含む心の特性のこと。 Wikipediaより(参照)
これらのことがコンピュータを用いてできれば「人工知能」である、ということみたいですね。
機械学習の種類
現在、人工知能の多くは「知能」のうち、「学習機能」の部分に特化しています。そういった人工知能に学習機能を持たせ、学習させること、またその研究分野を機械学習といいます。機械学習の種類は理論等によって大きく三つに分けられます。
- 教師あり学習
用意された入力に対して正しい出力のデータを用意して学習をする方法。
例)画像認識、ニューラルネットワーク
- 教師無し学習
用意された入力に対して正しい出力のデータはなく、人工知能時代に適切な出力結果を作成させるような学習をする方法。
例)データ群の分類
- 強化学習
環境について調べ、それに対して適切な行動をするように学習する方法。
例)歩行等の学習、進化的アルゴリズム
分類の考え方は複数あります。必ずしも例に挙げているように分類されるとは限りません。
少し用語について説明します。- 入力→人工知能に与えられた情報
- 出力→人工知能が返す情報
- 環境→「状況」とほぼ同義。環境からは評価が与えられる。
制作
学習内容
では実際に作ってみます。今回制作するのは強化学習に分類されるようなもので、以下のようなゲームを学習させます。
- ゲームの概要
- 画面上のランダムな位置に20個ボールを設置する。
- 二人のプレイヤーがそのボールを取り合い、多くを取ったほうが勝ち。
- プレイヤーは端に触れるとスタート地点に戻される。
このゲームの一方のプレイヤーを人工知能に操作してもらうことにします。今回の人工知能への入力は以下の要素です。
- 自分とプレイヤーの位置
- それぞれのアイテムの有無
- スコアの変化
ボールの座標は固定してから学習するので入力には含みません。 また、人工知能にはキーボードの入力と同じようなデータを確率で出力してもらい、それに基づき操作してもらいます。
学習の方法
ボールの座標決定後、以下のような流れで学習をします。
- スタート地点にセットされる。
- 現在の状況を取得、記録する。
- ランダムに動く。
- もしスコアが増えたならその時の状況で今行ったものと同じ行動をする確率を増やす。
- ②~④をある程度繰り返した後、①に戻る。
結果
製作期間:一ヶ月ほど
動作
- 学習が遅い割にあまり良い結果が出ない。
- 学習量を増やさなくてはならなくなり、より時間が必要になる。
- 学習量が増えると記録を探し出すのに時間がかかり、平均のフレームレートが下がる。
- パラメータの設定にもよるが、多くの場合一つ目をとっても二つ目を取ることができない。
考察
今回のアルゴリズムはかなり雑なものだったため、学習効率がかなり悪かったようです。改善するとすれば、
- 入力に相対座標を用いて学習させる。
- ボールとの位置関係についての学習が良くなる。
- 学習結果をさらに学習する。(進化的アルゴリズムのようなもの)
- 優秀な行動がより強調されるであろうと思われるので、全体的な質の向上が期待できる。
改良
ここまでの結果を踏まえて少し改良を試みようと思います。今回は5-2の後者について少し変更をしてみます。
改良後の学習方法
改良後では以下のような流れで学習を進めます。
- スタート地点にセットされる。
- 現在の状況を取得、記録する。
- 今までの学習内容を踏まえて行動を決定する。
- もしスコアが増えたならその時の状況で今行ったものと同じ行動をする確率を増やす。
- ②~④をある程度繰り返した後、①に戻る。
完成物
- 一つ目は改良前より安定して取れるようになった。
- 場合によっては三つ以上連続で取れることもあった。
- 2つのボールの間でとどまるような行動が見受けられた。
まとめ
中学生が初めからしっかり人工知能を作るには、もっと多くの時間をかけて知識を得たり、研究を重ねなくてはならないことがよく分かりました。次はしっかり専門書を読み、知識を貯え、もっと研究をしてから作ってみたいと思います。最後まで読んでいただきありがとうございました。