Learning)がブームになってきています。潜在的な可能性を世界中に広く認知させる大きなインパクトがありました。図1のような将棋やチェス・囲碁は、人工知能・AI研究の伝統的テストケースなのです。そのニュース以降、実用上や産業上の人工知能の応用例がしばしばテレビや雑誌で報道されるとともに、膨大なデータとコンピュータパワーの活用技術および人工知能技術に関して、予測や憶測を交えた様々な未来の可能性が世界中で議論されています。それらの予測の中には、これまでSFや映画の世界でしか見られなかったような空想に近いものもあります。研究が、いよいよ身近なシーンで実用化される段階に来たことは確かです。近い将来、大勢の人が人工知能によるサポートや支援・働きをあたりまえのように活用する時代が来るかもしれません。研究は現在もまだまだ発展途上なのです。人工知能は特定の分野や特定の機能に限定すれば優れた性能を発揮できますが、人間の代わりが100%できるようなものは2017年1月の現時点ではまったく存在しません。いうものの考え方や働きについて中学生高校生(小学生にも!?)にもわかるよう平易に解説します。ZealandのWaikato大学で開発されたWekaという著名なフリーソフトを用いて、いくつかの例題を実際に実行し、シミュレーションしてみましょう。いつか将来、小中学生や高校生のみなさんの中から、多くの優れた人工知能開発者が現れることを心から期待しています。いう言葉は、本来はお互いに少しずつ違うものを表しています。ニュース記事ではこれらを区別すること無く「人工知能」として同じように呼称されています。最近の考え方としていずれにも共通していることは「大量の学習データを活用して構築されている」という点です。これを例え話で説明してみましょう。図2のように、小中高生のみなさんは学校の授業や宿題でたくさんの練習問題を解いて数学や算数の問題の解き方を学習します。漢字や英語の読み方、書き方も学習します。それらの中間テストや期末テストで問題を解くことによって成績が出されます。その結果、良い成績を取っていれば、みなさんは授業で習った数学や算数、国語、英語の内容を理解しちゃんと学習しているといえます。良い成績で無い場合は再度勉強し直して、またテストを受けます。このような「学習」→「テスト」と同様のことを、大量のデータに対してコンピュータで極めて効率的に行う技術を「機械学習」と呼びます。機械学習システムをもう一歩進めて様々な問題へ応用した際に、しばしば「人工知能・AI」という呼び方がされます。ここで重要なことは、「大量の学習データをどう使って、どう学習させるか?」なのです。従って、学習データそのもののクオリティや種類、使い方、学習のさせ方等によって、様々な機械学習システムや人工知能システムと言われるものの違いが出てくるのです。実は、Wekaというソフトウェアは本来、膨大なデータをまとめたり分析したりするためのソフトウェアなのですが、分析の方法としていくつかの機械学習や人工知能の基本的手法が試せるようになっています。Neighbor)法を利用してコンピュータによるシミュレーション実験をやってみましょう。本稿の最後にこれらの手法の少し詳しい解説を記載していますので、興味のある方は読んでみてください。シミュレーション実験Wekaのインストール下記の場所からWekaをダウンロードできます。http://www.cs.waikato.ac.nz/ml/weka/downloading.htmlホームページの説明文は英語ですが平易なのでよく読んで下さい。Versionがあります。Versionで十分です。2017年1月現在の最新版はWeka3.8.1ですが、デフォルトのままインストールすればOKです。本稿ではWindows版のweka-3-8-1jre-x64.exeというバージョンを利用しています。インストールしたら、さっそく利用してみましょう。Wekaには、あらかじめいくつか学習のためのサンプルデータが用意されています。Wekaを起動すると図3の画面が出てくるので[Explorer]をクリックします。Files\Weka-3-8\data]を開きます。すると、サンプルデータのリストが見えるので、ここで[breast-cancer.arff]を指定して開きます。図5のように上部のメニューから[edit]をクリックすると数値データを直接見ることが出来ます。図6が表示されたデータです。サンプルデータの中身の数値を見るニューラルネットワークさて、これで準備が出来ました。次は、いくつかの手法を用いて、実際にデータを処理してみましょう。上で読み込んだ[breast-cancer.arff]というデータは、肺癌患者の年齢や腫瘍の大きさ等の「状態」を表すデータと「肺癌再発の有無」を表す286件のデータです。図7のように状態データから肺癌の有無を推定することができるAIを作ろうというのが目的です。状態データから肺癌の有無を推定するまず、Wekaでニューラルネットワークを使ってみましょう。図8のようにメニュータブから[Classify]を選び、次に[Choose]をクリックすると機械学習・AIの手法を選ぶツリーメニューが現れるので、[weka]-[classifiers]-[functions]-[MultilayerPerceptron]を選択します。Perceptron)を指定するそして、[Start]をクリックすると自動的に学習とテストが行われます。して、Status欄に"OK"と出たら完了です。output欄に結果が出力されているはずです。%]となっている部分に注目してください。これは286件のデータ全体のうち185件、すなわち約64.7%が正しく推定されているということを意味しています(なお、皆さんの実行するコンピュータによっては少し違う数字になっているかもしれません)。サンプルデータ286件に対して、およそ3分の2を正しく推定できるシステムができあがっていることを表しています。これをさらに大きく発展させれば、様々な検査データを基にして病気を自動診断する人工知能システムを作り上げることが出来る可能性があります。GOはここで試したニューラルネットワークを発展させた「ディープニューラルネットワーク」という仕組みを利用して作られています。Neighbor)法という手法を使ってみましょう。これは機械学習の有名な手法のひとつです。図10のようにメニュータブから[Classify]を選び、次に[Choose]をクリックすると機械学習・AIの手法を選ぶツリーメニューが現れるので、[weka]-[classifiers]-[lazy]-[IBk]を選択します。これはk-NN法を使う手法です。output欄に下記のように結果が出力されています。約72.4%が正しく推定されていることがわかります。これは、先のニューラルネットワークによる結果よりも高い精度になっています。シミュレーション実験は終わりです。上記のようにWekaを利用して、2つの異なる手法を使って同じデータを処理してみました。基本的な手法ですが、その推定精度は違うことがわかりました。手法には、それぞれ異なる特性があり、得意な学習対象や機能が違うということがあります。そのため、同じデータを処理しても学習の結果や精度がそれぞれ変わるのです。今回試した2つの手法についても、色々な工夫を加えることによって性能が大きく変化します。従って、どの手法が一番優れているか?ということを示すのは容易ではありません。システムを作り上げようと日夜努力を続けているのです。GOは、このような多くの努力によって生まれた人工知能システムのひとつなのです。Wekaはもともと機械学習の手法を用いてデータを解析するソフトウェアなのですが、他にもたくさんの機能があります。英語や用語の意味を少しずつ調べながら、他の機能も試してみてください。解説ここでは、上記のシミュレーション実験で試した手法について少し詳しい解説をします。実験を行うだけでは、「なぜ?」という疑問が残るかもしれないと思いますので、興味のある方は以下を読んでみてください。現在の人工知能システムのほとんどは、コンピュータ上にプログラムとして作成されます。部分的にハードウェアとして作成されることもありますが、大多数はプログラム(ソフトウェア)として様々な方法が実装されています。下記では、シミュレーション実験で試したニューラルネットワークとk-NN法について簡単に解説します。ニューラルネットワークの解説ニューラルネットワークは、人間の脳をモデルにした方法です。図12に示すように、実際の神経細胞(ニューロン)の働きを簡単化したユニットを多数並べた層を用意し、層間のニューロン同士を接続したネットワークを構成します。3層のネットワークを構成した場合、各層を入力層、隠れ層、出力層と呼び、点線で囲まれている全体をニューラルネットワークと呼びます。多数のニューロン同士の接続部には全て重み係数があり、ニューロンが互いにやりとりする信号に各々重み係数がかかります。ここで、ある入力データPに対して適切な出力データQを出力するニューラルネットワークが学習によって自動的に作れるとしたらどうでしょうか?すなわち、上記で行った「肺癌の推定」のように患者の状態データを入力すると、癌であるか否かを出力する、ということが出来るようになるわけです。実は、上記のニューラルネットワークでの学習というのは、全ての重み係数をうまく調整することなのです。このように入力データと重み係数から出力データを計算するやりかたを少し難しい言葉で言うと「写像」と呼びます。Neighbor)法は「分類」という別の考え方で「肺癌の推定」を実現しています。図13のように、○印で表されたAというグループと、△印で表されたBというグループがあるとします。このとき、新しいデータとして赤い☆印が与えられた場合、この赤い☆印をAグループとBグループのどちらに分類すると良いでしょうか?k-NN法では、次の方で分類するグループを決めています。赤い☆印の周囲にある○印や△印を近い順にAとBの各グループ毎にk個まで数えて、個数が多い方のグループに分類するのです。図13ではk=3の例を示していますので、まず、赤い☆印から近い順に3個まで数えます。すると、○印が1個、△印が2個なので、赤い☆印は△印のグループすなわちBグループである、となります。k=5とした場合は、赤い☆印から近い順に5個まで数えて多い方のグループに分類すれば良いのです。このように、何らかの基準に基づいてデータを「分類」するという考え方を持つk-NN法は機械学習の方法のひとつです。上記の「肺癌の推定」では、Aのグループを肺癌である、Bのグループを肺癌では無い、とします。学習データとして選ばれた状態データは○印や△印の各点として図13のように散らばります。従って、新しい状態データが赤い☆印として与えられたとき、これがAグループなのかBグループなのかを分類すれば、肺癌であるか否かが決められることになります。最後に人工知能や機械学習の手法は他にもたくさんあります。新しいアイデアや理論、新しい人工知能システムが毎日のように研究・開発されています。自動制作、小説の自動執筆など、多くの分野で応用研究が進められています。将来、色々なハードルを越えて、人間と同じように考えたり会話したり働いたりするSFの世界のような人工知能が生まれるかもしれません。今後さらに発展していく人工知能の世界が、皆さんをより良い未来へ導くことを期待しています。工学部のページへ>>※このページに含まれる情報は、掲載時点のものになります。ページ上部へこのサイトは、国立大学56工学系学部長会議が運営しています。現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。これから直面する問題を解決するために重要な役割を担っていると考えます。