トップページ > おもしろ科学実験室(工学のふしぎな世界) > コンピュータの中に小さな人工頭脳を作ろう!

おもしろ科学実験室(工学のふしぎな世界)

コンピュータの中に小さな人工頭脳を作ろう!

2018年10月26日
佐賀大学 理工学部 電気電子工学科
和久屋 寛

はじめに

 最近は、毎日のように「人工知能(AI)」に関する話題を耳にします。今、流行りの一分野であり、現在は「第3次AIブーム」と言われています。我々にとっても、AIは身近な存在となりました。ここでは、今から30年前の「第2次ブーム」の頃に公開された「SOM_PAK」と言われる一種のAIソフトウェアパッケージを用いて、簡単な分類問題(グループ分け)に挑戦します。やや古い内容となりますが、それゆえ、やっていることは極めて単純です。なお、パソコンに関する知識が必要となるため、もしパソコンに詳しい人が身近にいれば、迷わずに相談してください。

注意点

ここでは、「SOM_PAK」を含めて、すべて一例としてウェブサイトを紹介しています。つきましては、利用規約などを遵守の上、自己の責任において御利用ください。よろしくお願いします。

基礎知識(事前準備)

図1.全体的な信号の流れ(模式図)図1.全体的な信号の流れ(模式図)

 ここでは、自己組織化マップ(self-organizing map:SOM)と呼ばれている脳型AIについて取り上げます。我々の頭の中には、百数十億個のニューロン(脳細胞)があると言われていますが、ここでは百数十個程度のものをコンピュータの中へ作り上げます。したがって、能力の上では、ごく一部を実現しているだけと言ってよいでしょう。
 AIが有する大きな特徴の一つは学習能力です。このSOMでも、いくつものデータを与えて、似たもの同士を自動的にまとめていくという学習が進められます。その結果、「特徴マップ」と呼ばれる一種の"地図"を作り上げ、これによって分類を行うことができます。
このときの全体的な信号の流れを表したものが、図1になります。ここでは、事前に動物の特徴を「0/1」で表しておき、これを学習データとしてSOMに与えた結果、「鳥類/小型動物/草食動物/肉食動物」の4種類のグループに分類できたという例です。

準備するもの

  • パソコン
  • ここでは、Windowsマシンを前提として説明します。
    (本稿の執筆に当たっては、OSがMS-Windows10のPCを利用しています。)
  • インターネット接続環境
図2.ダウンロード元のウェブサイトを開いたところ
(http://www.cis.hut.fi/research/som-research/nnrc-programs.shtml)図2.ダウンロード元のウェブサイトを開いたところ
http://www.cis.hut.fi/research/som-research/nnrc-programs.shtml

まずは、次の手順に従って、必要なソフトウェア一式をダウンロードしましょう。

  1. ヘルシンキ工科大学にある専用のウェブサイト(http://www.cis.hut.fi/research/som-research/nnrc-programs.shtml)へアクセスします。図2のようなページが表示されます。その下の方には「SOM_PAK」の説明が見えるはずです。)
    【注】全編が英語なので頑張ってください!

  2. 次に「Downloading using WWW」という項目にある「SOM_PAK」をクリックします。そして、「binaries_windows/」というフォルダをクリックします。ここに現れた「〇〇〇〇〇.exe」というファイルが、本稿で取り上げる一連のプログラムです。それぞれのファイル名の部分を右クリックして、ダウンロードしましょう。

 これで、準備作業は終了です。なお、本稿では、自分の「ドキュメント」フォルダの中に「som_pak」というサブフォルダを作っているものとして、これ以降の説明を進めていきます。
 念のため、ここでダウンロードしたファイルをチェックします。次のようになっているでしょうか。右側の説明は、どのような役割を担っているかを簡単にまとめたものです。特に説明のないものは、本稿では使いませんが、将来、発展的な内容に取り組む場合を想定して、すべてをダウンロードしておいた方がよいでしょう。

  1. lininit.exe
  2. mapinit.exe
  3. planes.exe
  4. qerror.exe
  5. randinit.exe ……………SOMを初期化する。
  6. sammon.exe
  7. umat.exe ……………特徴マップを描く。
  8. vcal.exe ……………勝者ニューロンを求める。
  9. vfind.exe
  10. visual.exe
  11. vsom.exe ……………SOMの学習をする。

実験方法

 ここで取り上げる「SOM_PAK」の詳細な使い方について、もし興味があれば、次の書籍の「付録」を参考にしてください。本稿では、具体的な変数の意味やパラメータの設定法に関する説明などは省略しており、まずは使ってみることを主眼として執筆しています。

参考文献

徳高平蔵, 岸田 悟, 藤村喜久郎:
  「自己組織化マップの応用:多次元情報の2次元可視化」
  海文堂出版, 1999
  (http://www.kaibundo.jp/1999/02/73230/

 さて、それでは実際に使ってみましょう。その前に、もう一度、図1を見てください。これは、今回のコンピュータシミュレーションを行うに当たって、全体的な作業手順を表したものでした。中央部に描いてあるSOMは、上述のプログラム(⑤→⑪→⑧→⑦)で実現しますが、学習データは自分で用意する必要があります。ここでは、いわゆる「動物データ」を用いて説明します。
 図1の左下部分に小さく見えていますが、これを描き直したものが表1です。16種類の動物に対して、16種類の特徴を設定し、各項目に対して当てはまらない場合は「0」、当てはまる場合は「1」としています。なお、中間的なものについては、その程度に応じて「0~1」の小数を割り当てています。

表1.動物データの一覧表1.動物データの一覧

 これを「SOM_PAK」に読み込ませるため、次のように整理して「animal.dat」という名称で保存します。なお、テキスト形式で作成する必要がありますので注意してください。ここで、1行目の「16」は特徴の個数を表しています。2行目以降については、各動物の特徴に応じた数字が16個(表1の「小」から「草食性」までに相当)、そして特徴マップに表示させるラベル(英語名称)が、1行ずつ並べてあります。

さて、それでは実際にSOMを動かすことに挑戦してみましょう。まず、「コマンドプロンプト」を起動してから、次のように命令を手作業で打ち込んでいくことにより、「⑤→⑪→⑧→⑦」という順番でプログラムを実行できます。なお、は"改行命令"を表します。

 ここでは、「学習データ(animal.dat)」をSOMに与えて学習を行い、最終的に求まるものは「特徴マップ(animal2v.ps/animal2v.eps)」となります。
 ところで、このAIソフトウェアパッケージ「SOM_PAK」は20年近く前に公開されたという経緯があり、出力結果については、当時の主流であった「PS(postscript)」あるいは「EPS(Encapsulated PostScript)」となっています。残念ながら、現在、よく使われる「PDF(portable document format)」には対応していません。そこで、学習結果を表示させるためには、インターネットを検索してPSあるいはEPSをPDFへ変換するサービスを探してください。無料のものもあるようです。

実験結果

 このようにして得られた特徴マップが図3です。ただし、これは一例です。PCによっては、これと異なる形状の特徴マップができることもあります。全体的な色調は、隣り合ったニューロン同士が、どれだけ似ているかを濃淡で表現しています。したがって、白い部分を「同一領域」、黒い部分を「境界」とみなして、この結果を見直すと、すでに図中に書き込んでいますが、「鳥類/小型動物/草食動物/肉食動物」の4種類のグループに分類できます。また、それぞれのグループ内でも、似たもの同士が近くに配置されています。今回は、かなり主観的にグループ分けをしましたが、実際には、もっと定量的な評価を行った方がよいでしょう。
 これで、主要な説明は終わりましたが、もっと発展的な内容に取り組みたい人は、自分で学習データを作って挑戦してみるとよいでしょう。基本は図1と表1です。これらを参考にして、テキスト形式で「animal.dat」のような学習データを作成してください。このとき、自分でファイル名を決めても構いません。ただし、拡張子は変えないものとし、手作業で入力する命令を含めて「animal」の部分だけを変えてください。

図3.AIソフトウェアパッケージ「SOM_PAK」の実行結果~16の特徴から成る16種類の動物データを分類した例~図3.AIソフトウェアパッケージ「SOM_PAK」の実行結果
~16の特徴から成る16種類の動物データを分類した例~

おわりに

 現在は「第3次人工知能(AI)ブーム」の真っ只中と言われており、AIが非常に注目されています。そこで、今回は、その一種である「自己組織化マップ(SOM)」に着目し、インターネット上に公開されているソフトウェアパッケージ「SOM_PAK」を利用して、簡単なコンピュータシミュレーションに挑戦してみました。本稿で述べた体験を通して、AIを身近なものと感じていただければ幸いです。

【追記1】本稿は、佐賀大学と佐賀県教育委員会が合同で開催している高大連携プロジェクト「科学のとびら」(http://www.sao.saga-u.ac.jp/admission_center/reform/tobira/science/)において、「研究体験プログラム」で提供する一つのプログラムのメニューに基づき、その内容を一部改変して執筆したものです。

【追記2】本稿の詳細版が、 こちらにおいてあります。もし実際に挑戦してみようと思った場合は、参考にしてください。

※このページに含まれる情報は、掲載時点のものになります。

関連記事

2017-02-17

おもしろ科学実験室(工学のふしぎな世界)

超伝導体による永久磁石の浮上

九州工業大学情報工学部

2017-03-31

生レポート!卒業生の声

あなたの可能性を広げる工学部

千葉大学工学部

2013-12-02

輝く工学女子!(Tech ☆ Style)

【vol.8】きっかけはなんでも良し!まずは自分が楽しむことから!

愛媛大学工学部

2010-12-09

生レポート!大学教授の声

高校生時代の自分からみた工学

福島大学共生システム理工学類

2018-10-05

生レポート!卒業生の声

工学部のすゝめ〜想定どおりじゃなかったけれども〜

金沢大学理工学域

2016-09-08

生レポート!大学教授の声

人工知能の勧め

神戸大学工学部

佐賀大学
理工学部

  • 数理科学科
  • 物理科学科
  • 知能情報システム学科
  • 機能物質化学科
  • 機械システム工学科
  • 電気電子工学科
  • 都市工学科

学校記事一覧

おもしろ科学実験室(工学のふしぎな世界)
バックナンバー

このサイトは、国立大学55工学系学部長会議が運営しています。
(>>会員用ページ)
私たちが考える未来/地球を救う科学技術の定義 現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。
これまでもわたしたちの生活を身近に支えてきた”工学” が、これから直面する問題を解決するために重要な役割を担っていると考えます。