理学部情報科学科3回160番  奥野 由美子

 ニューラルネットワークの基礎概念

ニューラルネットワークは、人間などの高等生物の神経系の仕組みをマネすることで、 生物の ような高度な処理を計算機で実現しようと試みるものです。ニューラルとネッ トワークの意味を考えるとー前者はニューロンと言う語源で神経細胞と言う意味です。 後者はネットワークつまり繋がりということです。文字から判断すると神経細胞の繋 がりなのです。神経細胞は人間のいたるところにあります。特に多く見られるのは、 脳の中で成人男性の脳の中には100億から140億個ほど存在しています。その神 経細胞を組み合わせて、ネットワークを作りいろんな処理をしているのが人間です。 人間の思考・行動・動作全て脳が命令を出します。この脳神経細胞メカニズムを用い て情報処理を行うことは知られています。また、この種の情報処理システムを作り上 げた時、それをニューロコンピューターと呼ぶことができます。

 一般に人間の思考や計算は論理的な情報処理と直感的な情報処理にわけられ、「左 脳」が論理を、「右脳」が直感をつかさどるとされている。現在のコンピューター (ノイマン型コンピューター)は「左脳」型でありその能力は人間をはるかに超えて いる。一方、学習、記憶、判断など「右脳」的情報処理はこれらの分野であり、その 具体的なものとしてニューラルネットワークによる処理が注目されています。

 現段階の脳の機能は全容が明らかに解明されていません。しかし、解析していく上 で、単純な動作をする器官、小脳・網膜などが明らかになりました。それらをモデル 化してコンピューターで計算させていく事が可能となりました。その結果、今まで厄 介であった様様な問題に対して、アプローチを見つけ出してくれました。特にパター ンの認識、分類などにすばらしい機能があるというのが明らかになりました。それが ニューラルネットワークの発展につながりました。    1948年、ウィナー「サイバネティクス:動物と機械における通信と制御」が世に出 版された事によって、生物学的思考が工学にも用いられるようになったとされていま す。現在その応用分野は、人工知能、ロボット工学、認知科学、神経科学に大きな影 響を与えました。その中の1つにニューロンの研究があります。 現在ニューロンの研究には大きく分けて4つに分かれています。

1.生物学的研究:研究生物を厳密に解析することによって、さままな器官、組織を解 析していく分野。

2数理化学的な研究:生物学的研究によって得られたモデルを数式化して、その特性 などを調べる研究。

3.認知科学:人間の知的行動や、脳の機構を観察して、高度な情報処理を行うことが 目的。

4.テクノロジー:解析されたアルゴリズムで高度なテクノロジーに適応する研究。

実際の脳の内側を見てみると脳細胞ニューロンは以下のような構成となっています。

細胞体(Cell Body)

核などが含まれている部分で、ニューロンの本体といえる部分。脳の中には何百種類 ものニューロンが確認されている。それぞれの細胞体は個性的な形をしている。ほと んどの細胞体の直径は5から100ミクロン(10のマイナス6乗)である。これらの形態 は様々であり、それぞれの細胞の特性を調べているの生物的である。細胞体の大きな 特徴は、電気信号を生成・受信する機能を持っていることである。その電圧は-60m vから30mvとごく微量なものです。

樹状突起(Dendrite)

細胞体から伸びだした多数の枝のような部分で、 ニューロンの入力端子にあたると ころ。細胞体から作成された電気をまず最初に受信する野が樹状突起である。ニュー ラルネットワーク状では結合係数の役目で知られている。

軸索(Axon)

細胞体から伸びだし、一般に太くて枝わかれしない、 ニューロンの出力端子にあた る部分。軸索は短いもので0.1ミリメートルから、長いもので1.5メートルもある。細 胞体で作られた電気信号を他のニューロンへ送るための組織である。また、細胞体に 入った電気信号を解析する計算部分である。具体的にお話します。ニューロンは他の ニューロンからの電気信号を受け取ると、その送られてくる電気信号の多いか少ない かで、ニューロンには通常二つの状態がるのが判りました。電気信号がある一定の値 より多い場合はニューロンが興奮状態成ります。また、電気信号が少ない場合はニュー ロンは抑制状態となります。ニューロンが興奮状態に成った場合にだけ、ニューロン は電気信号を他のニューロンに送ることが出来ます。逆に抑制状態にあるニューロン は電気を送ることが出来ません。

シナプス(synapse)

他のニューロンをつなげる役割をする。樹状突起はシナプスを通して、他のニューロ ンから入力信号を受け取る。 また、シナプスの伝達効率はそれぞれ異なっている。

各細胞は多数の他の細胞からの刺激を受けている。この刺激は興奮性のもの(正の 刺激)ばかりとは限らず、抑制的な場合(負の刺激)もあります。このようにして細 胞に集められた刺激の量(しきい値)に達するとその刺激は軸索から他の細胞の樹状 突起へとシナプスを介して他の細胞に刺激を与える。このようにして、次々に刺激が 神経ネットワークに伝達されていきます。(参考図:zu1.gif)

ニューラルネトワークとは高度並列分散型の情報処理のひとつであり、そのベース はネットワーク・メカニズムにあるといえます。この情報処理のアイデアは上に述べ た高等生物の神経回路網に由来しており、具体的には1940年代から情報処理としての 研究が始まっています。 (参考図:unit.gif)は、1つのニューロンをあらわしたモデルです。 このモデル を用いれば、ニューラルネットワークの構造も簡単に示すことができます。 参考図と実際のニューロンを比べてみると、 シナプスは結合荷重に、細胞体はユニッ トに対応していることがわかります。

  結合荷重は任意の実数値で、入力に重みをかける役割をしています。 これは、シ ナプスが異なる伝達効率を持つことをあらわしていますね。

  ユニットはしきい値演算をするためのものです。 入力に重みをかけた総和がし きい値を超えたか判定し、 超えれば「1」を出力、超えなければ「0」を出力しま す。

いま、上の図では入力は2つしかありませんが、 たくさんの入力が加わったときも 実際のニューロンが出力する信号の大きさは 一定であることが観測されています。 信号の大きさが一定ですから、時間的な変化を追っていったとき、 ニューロンの出 力は「ある」か「ない」かのどちらかであらわすことができます。

また、計算機を使って処理する場合には「0」と「1」であらわしておいた方が処理 がしやすいということもあり、 出力値として「0」と「1」の2値を使います。

ニューロンのモデルを数式を使ってあらわすことを考えてみることにします。 (参 考図:sushikimodel.gif)

入力がn個あるとき、それに対応する結合荷重もn個存在します。 ここでは、i番 目の入力、結合荷重をそれぞれXi、 Wiとすることにします。 ニューロンには膜電 位があり、入力信号によって膜電位が上昇していきます。 これを数式であらわして みることにしましょう。それぞれの入力に結合荷重の値をかけて和をとれば良いです ね。 この入力の総和のことをネット値といいます。

ネット値 = 入力1×結合荷重1+...+入力n×結合荷重n
      = X1W1+X2W2+...+XnWn
        n
     = ΣX1W1
       i=1
ニューロンは膜電位がしきい値を超えると発火します。 つまり、膜電位からしき い値を引いた値が正であれば発火するということになります。 いま、膜電位はネッ ト値であらわされているので、しきい値をθとすると、 (ネット値−θ)が正であ れば発火します。 ネット値がしきい値を超えていれば「1」、 超えていなければ 「0」を出力するということを数式であらわしてみる。(ネット値−θ)が正のとき は「1」、負のときは「0」を出力するようにする。 ニューロンの出力Yをあらわす数式はつぎのようになります。
    n y = f(ΣXiWi-θ) ・・・(1)     i=1

    n    y=f(ΣXiWi)     ・・・(2)      i-0

       どちらの式も同じことを表しています。 (2)の式 ではiの添 字が0から始まることに注意しましょう。

こちらの式は、0番目の入力を1とし、0番目の結合 荷重を−θとして、 しきい値も和のかたちであらわ しています。 ニューラルネットワークモデル ニューラルネットワークモデルは、生物の神経系の特徴をモデルにしたもので、 生 物の神経系と同様に、複数のニューロンが結合して機能します。 ニューラルネットワークモデルには、ニューロンの結合の仕方の違いによって、 大 きくは、以下の2つに分類されます。

  階層型ニューラルネットワーク

階層型ネットワークは1958年にResenblattにより提案されたもので、Resenblatt型 ネットワークとも呼ばれています。(参考図:kaisouzu.gif) これはニューロンを層状にならべ、前の層から次の層へ一方向にのみ信号が伝わると いう ネットワークです。 このタイプのネットワークは入力層のニューロンに加えた 信号(入力信号)に対して出力層のニューロンの出力(出力信号)が一意的に定まり ます。層数が少ないと解けない問題などがあります。しかし、 任意のパターンを識 別するのには最低3層あれば十分であることが知られています。

 相互結合型ニューラルネットワーク 相互結合型ネットワークとは、上述の階層型ネットワークのような階層構造でなく、 相互に結合しあっているようなネットワークのことです。(参考図:zu3.gif)この タイプでは信号の流れる方向は1方向でなく、フィードバックをもちます。 非階層 型ネットワークは連想記憶モデルや音声合成、音声認識の分野につかわれています。

この、ネットワークの情報伝達は、階層型ネットワークの場合と同じく、多入力、 一出力のユニットを基本としています。ただし、階層型ネットワークでは情報が入力 側から出力側へ一度だけ流れて状態変化が終了するのに対して、相互結合型ネットワー クでは、ある初期状態から出発しある安定な平行状態に達するまでネットワークの状 態変化が継続し続けるという展に両者の基本的な違いがあります。 第2章ニューラルネットワークの応用

ニューラルネットワークの応用例としては、 簡単なところでは、ANDやXORな どの論理演算、また、 未知の入力に対してそれが属するパターンを出力するものや、 連想記憶を実現できるものもあります。

  階層型ネットワーク

階層型ネットワークの例としてパーセプトロンがあります。パーセプトロンは195 8年にローゼンブラットが発表した学習パターン識別機です。 これはニューロンの 発火に関連したシナプスの伝達効率は増加するとい うヘブ の学習則をニューラルネッ トワークモデルに組み込んだものでした。 ニューロンモデルでは、このことを結合 荷重の値を大きくすることで表しています。 また、パーセプトロンは入力された図 形を識別したときに、その答えが正解か 誤りかによってシナプスの伝達効率を変化 させる学習機能もありました。ローゼンブラットがつくったパーセプトロンは、次の 図のようなものです。 (参考図:zu-kai.gif)

入力層、中間層、出力層の3層構造をもっている。 入力、出力のパターンは「0」か「1」である。(出力関数は階段関数) データの 流れは入力層から出力層への1方向である。

中間層の結合荷重は固定である。 各層の伝送時間は0である。 出力層のユニットが1つだけのものを特に単純パーセプトロンという。 さきほどのニューロンモデルを階層構造状に並べただけですから、 ある入力に対す る 出力を求める方法は、ネット値としきい値の処理でできますね。 パーセプトロンでは、 入力データを入れて出てきた出力を教師信号と比 較し て、違っているときは 結合荷重としきい値変更するという作業をしています。 この 操作のことを学習といいます。教師信号とは簡単にいえば正解のことです。 ニュー ラルネット ワークでは、 ある入力に対してネットワークが正解を出すよう に学習 させる必要があります。

パーセプトロンの動作と学習 (参考図:zu-kai2.gif)

それでは、入力X1、X2に対して、 出力yを求めてみる。 中間層の結合荷重の添 字は、入力層の1番目のユニットから 中間層の1番目のユニットへの結合のとき はW11、 入力層2番目から中間層1番目の時はW12 というようについています。出力 層の結合荷重はV1、V2とし、 それぞれのユニットのしきい値はh1、h2 、θ1として います。また出力関数fは階段関数です。 まず、中間層での出力であるa1、 a2を求めてみる。

2 ak=f(ΣXiWki) k=1,2 i=0 ここで、しきい値h1、h2はW10、 W20として和のかたちで表現されていることに注 意してください。 また入力X0は常に1です。 図中にはかいていませんが、このよう にしてしきい値の処理をします。

次に、このa1、a2を使って 最終的な出力yを求めます。 ここで、しきい値h1、h2はW10、 W20として和のかたちで表現されています。 また入 力X0は常に1です。 図中にはかいていませんが、このようにしてしきい値の処理を します。 次に、このa1、a2を使って 最終的な出力yを求めます。

2 y=f(ΣaiVi) i=0 ここでも、しきい値θ1は入力a0(=1)の結合荷重V0と して和のかたちになって います。

出力層のユニット数が増えても、同じ方法で出力を求めれば良いのです。   では次に学習のしかたをみてみると まず、いま得られた出力yと教師信号tを比較 します。 教師信号は、 たとえば、2つの入力(値は0または1)があるとき、1が偶数個入 力されれば 出力yを1としたいときは、教師信号は1というように好きなように決 められます。 出力と教師信号が同じである時は、次のデータの入力に移り、 違っている場合は次 の標準デルタ則に従って学習をします。

ΔWij=ε(ti−ai)Oj

ただし、Wijは結合荷重、εは正の定数、Ojは出力値

つまり、出力1がでるはずなのに0が出た場合は、ニューロンが発火しやすいように 結合荷重を大きくし、逆の場合はニューロンが発火しないように結合荷重を小さくす るということになります。

パーセプトロンの限界

XORを学習させても、正しい答えが出ません。ここが、パーセプトロンの弱点な のです。 パーセプトロンの特徴として、「中間層の結合荷重は変わらない」 という ことがあります。XORが学習できなかった原因はここにあります。 中間層の結合 荷重が変更できないということは 中間層は入力値を定数倍するだけになりますから、 見た目は3層のネットワ ーク構造をしていても 実際は2層のネットワーク構造になっ てしまうということになります。

2層のネットワークでは、 入力が2つのときは、パターンを図のANDのように直 線の両側に分けるような 問題しかとけないのです。XORは1つの直線では分ける ことができませんね。 このようなパターンを1つの直線で分けることができないも のを 非線形分離問題といいます。

しかし、1986年に非線形問題も解けるようにした新しい学習法が発表されました。 それがバックプロパゲーションとよばれるものです。 日本語では誤差逆伝播学習則 といいます。

バックプロパゲーションでは、いままでのパーセプトロンを改良して、 中間層の結 合荷重も学習によって変えられるようにしました。 この学習法を使うことで、パー セプトロンが本当に3層構造をもって働くようになったわけです。

バックプロパゲーション学習

バックプロパゲーション(BP)の基礎となる、 最急降下法 谷にボールを転がすとしてボールは坂を下る方向に落ちていきます。 そして谷に来 たところで動きがとまっています。この坂を「ニューラルネットが出した答と教師信 号の誤差をあらわす関数」、 ボールを「結合荷重の変化」として考えてみます。 局 所的にですが、 誤差が小さくなったところで結合荷重の変化がなくなると考えるこ とができます。最急降下法とは、 このように誤差Eが小さくなるようにする結合荷 重Wを求めるための方法の1つです。 この方法では、関数のある点での勾配を求め て 誤差Eが少なくなる方向へ結合荷重Wを変化させていきます。しかし、必ず誤差 が一番小さくなるところでWの変化が止まるといえません。 Wを変化させるはじめ の位置によっては、最小値にはならないこともあります。 極小値のことをローカル ミニマムといいます。BPで最急降下法の考え方を使うため に、1つ準備しておくことがあります。 それは、微分可能な連続関数を用意するこ とです。(参考図:zu-sai1.gif)のような関数で、 この関数をシグモイド関数とい います。いままでは「0」と「1」の2値の出力でしたが、 これからは「0から1 までの実数値」の出力になります。 これもパーセプトロンの改良点の1つです。 シグモイド関数は、

f(x)=1/1+e(-x)

という数式で表される。

パーセプトロンの改良点

中間層の結合荷重が学習によって変更できる。 学習法はバックプロパゲーションを用いる。 出力関数はシグモイド関数を使う。 出力値は0から1の実数値である。 バックプロパゲーションという学習法(参考図:zu-back2.gif)

中間層、出力層の結合荷重の記号についてです。中間層の結合荷重はWjiとし、これ は入力層i番目のユニットから、 中間層j番目のユニットへの結合荷重をあらわし ています。 出力層の結合荷重はWkjとし、これは中間層j番目のユニットから、 出 力層k番目のユニットへの結合荷重をあらわしています。

まず、ニューロンの出力を得るところですが、これは前のパーセプトロンと 同じ方 法でできます。出力がn個あること、出力関数がかわることだけが違います。 バッ クプロパゲーションでは、出力を得るまでの計算を前向き演算といいます。

   n        
Tj=ΣXiWji
   i=0
Hj=f(Tj)

ここでは入力層から中間層への情報伝達をあらわしています。 まず、中間層のj番 目のニューロンのネット値をTjとして計算しています。 そして、 そのネット値を 使ってj番目のニューロン の出力をHjとして出力しています。いま、中間層のニュー ロンはn個あるので、 j=1,2,3...nとしていきます。ここで、0番目の 入力を常に1とし、 それに対応する結合荷重を−θとしてしきい値をひく操作をし ています

 つぎの2つの式は、中間層から出力層への信号伝達をあらわしています。

        n
    Uk =ΣHjWkj
        j=0
    Ok = f(Uk)

ここでも同じように各ニューロンのネット値を計算して、最終的な出力を求めていま す。

ここで1つ気をつけておかなければならないことがあります。 それはBPはローカ ルミニマムに 陥りやすいということです。 最急降下法のところで見たように、 B Pでは初期設定によってはローカルミニマムに陥り、 うまく答がでないこともあり ます。

    非階層型ネットワーク

ホップフィールドネットワークは相互結合型ネットワークの代表的なものです。 1 980年代の前半にJohn Hopfieldという人が提案しました。 ネットワーク構成は次 の図のようになっています。(参考図:zu-hikai.gif)

見た目は少し異なって見えますが、同じことをあらわしています。 相互結合型ネットワークには階層型ネットワークのように、 入力層、出力層という ものがありません。 すべてのユニットは自分自身をのぞく他のすべてのユニットと 結合しています。

ホップフィールドネットワークはある入力に対して、ネットワークが出力値を出し、 それをもとに学習していくという階層型ネットワークとはまったく異なり、ネッ ト ワークのエネルギーを最小になるように状態変化を繰り返すというもので 学習もし ません。

ホップフィールドネットワークはパーセプトロンといくつかの類似点を持っています。 それは、 ユニットの値は2値である。 階段関数によって出力を決定する。 ということです。つまり、今までと同様にネット値を求める操作を行い、「0」か 「1」 の出力を求め るということです。ここで出力値は「0」か「1」としましたが、ホップフィールド は少し後に発表した 論文で「1」と「−1」の2値のほうが数学的に見通しが良く なるして、こちらの 2値を使っています。 ホップフィールドネットワークには結合荷重も当然あり、次のような特徴を持ってい ます。 自分自身への結合荷重は0である。 結合荷重の値は対象である。 1つめのことについては、自分自身への結合がないので結合荷重が0ということです。 2つめの「結合荷重の値は対象である」とはどういことです。 ユニットi、jがあ れば、iからjへの結合とjからiへの結合があります。 「結合荷重の値は対象で ある」ということは、 この2つの結合荷重が等しいということなのです。 つまり、 結合荷重は同じ値を持っているということです。 ホップフィールドネットワークでは、この「結合荷重は対象である」ということは とても重要で、これが少しでもくずれると動作が不安定になってしまいます。 ホップフィールドネットワークへの入力は、 すべてのニューロンユニットに初期値 「1」か「−1」を与えることで行います。 そして、出力はホップフィールドネットワークの すべてのユニットの状態の集合を 出力とします。 3つめの特徴としてネットワークにエネルギー関数を導入する ことがあります。 これは、前の誤差関数と同じようなもので、 ネットワークのユニットの状態をもと に、エネルギーを計算し、 これが最小になるようにネットワークの状態が変化し、 安定したときがネットワークの出力とい うことになります。 このネットワークの動作は3つの段階に分けることができます。

結合荷重を割り当てる 未知パターンで初期化する 収束するまで繰り返す

まず、1つめの結合荷重の割り当てですが、 これは前のようにランダムな値を割り 当てるのではなく ネットワークのエネルギーが最小になるような結合荷重 をここで 決めてしまうということなのです。 したがって学習はしないことになりますが、 この段階で出力したいパターンをすべ て記憶させることができます。ただし、正しく記憶できるパターン数は(ニューロン ユニット数×0.15)程度です。

 では、実際にどのように結合荷重を決めるかというと、

           m-1
       Wij={ ΣXsiXsj(i≠j)
           a=0        
ここで、Xisはs番めのパターンのi番目のユニットの値です。 前に説明した特徴 がここでわかりますね。1つは結合が対象であること。 添字のi、jをいれかえて も同じ値になることがわかります。 もう1つは自分自身への結合が0であることで す。

 このようにしてM個のパターンを記憶させることができたら、次の段階へ進みます。 次は未知パターンでユニットを初期化します。つまりネットワークに入力を与える操 作です。

             μi(0)={1,-1 (o<i<N-1)

これで、ニューロンユニットμiに初期値を与えることができました。 ここ までできればあとはネットワークを動作させればよいのです。 自分以外のユニット からの入力を得て、ネット値を求め、階段関数に通します。

        N-1              
μi(t+1)=f[ΣWijμj(t)] (0≦i≦N-1)
         j=0

このようにして、ネットワークが安定するまで状態変化を繰り返します。

ボルツマンマシン

ホップフィールドネットワークは一般にローカルミニマムに収束します。 前のシミュ レーションのように複数のパターンを記憶する場合は、 ローカルミニマムに収束す ることでパターンを想起できていましたが、 たくさんある組合せの中から最適な1 つの解を見つけるといった場合、 (このような問題を組合せ最適化問題という) こ れでは不都合です。

そこで、いままでのホップフィールドネットワークに新しく温度T というパラメー タを導入し、 確率的な状態変化をするように拡張したボルツマンマシンというもの が考え出されました。 最急降下法の時に1度考えた谷を転がるボールでは 前の時は左側の谷でボールは止 まってしまいましたが、 ボルツマンマシンではこの谷が越えられるようになります。 そのために必要なのが温度というパラメータなのです。 はじめは高い温度を設定し、大きなエネルギーを与え、 小さな谷は越えられるよう にしておきます。 そして徐々に温度を下げていき、大域的な最小値に落ち着くよう にします。

では、この温度というパラメータと確率的であるということはどのように 関 係しているのかボルツマンマシンの動作を数式で表すと次のようになります。
     Δuk=ΣWikXi+θk
        i≠j
      Pk=1/1+e(-uk/T)

ここでは下の式が表す確率によってユニットの状態を+1 に変化させているます。 この式ではエネルギーの変化ΔEk と温度Tの2つのパラメータによって確率を求め ています。 これで温度と確率が結び付きました。 ボルツマンマシンにおいては、温度というパラメータがユニットの出力を左右します。 ネットワークの動作中に温度を徐々に下げていくことをシミュレーティッドアニーリ ング といいます。 温度によって確率はどのように変化していくのか。

高温の場合

温度が高い時はエネルギーも大きく、 先ほどのボールの例では谷底に落ちるに落ち ることに比べ、 山を 乗り越えることが多くなる。 エネルギーが高いほうへ変化する確率が低温の時より 高い。

低温の場合

温度が低い時はエネルギーも小さく、エネルギーの変化もほとんどなくなり、 低エ ネルギーの状態に収 束する。

では、実際に温度を下げていくにはどうしたらよいでしょう。 温度を下げる方法は 冷却スケジュールと呼ばれ、いろいろな方法が提案されています。 ここでは、比較 的はやく収束する冷却スケジュールとして次の方法を使うことにします。

    T(t+1)=ρT(t)
     ただし、ρ=0.8〜0.9999程度とする。 

これは、現在の温度をT(t)とし、次に設定する温度T(t+1)は現在の温度 のρ倍する というものです。 組合せ最適化問題の代表的なものとして、巡回セールスマン問題があります。

巡回セールスマン問題

ある会社のセールスマンがいます。このセールスマンは受け持ちの都市をすべて訪問 して、 仕事が終ったら戻ってこなければいけません。同じ都市を2度訪問せずに、 最短距離ですべての都市をまわる経路を求めなさ い。 この問題をすべての都市間の距離を単純に比較して解くと、 5都市の場合12とお りで解けそうですが、 10都市になると、その組合せは181440通りにもなり ます。

ボルツマンマシンを用いると、最適解が得られないかもしれませんが、 比較的満足 できる解を求めることができます。

大規模ニューラルネットワーク

CombNET−II

CombNET−IIとは、名古屋工業大学岩田研究室が、 大規模なニューラルネッ トネットワークの構築手法として提案しているものです。 これは、まず入力データ を大分類するためのベクトル量子化ニューラルネットワーク (これをStemNe tworkと呼んでいます)を配置し、 さらにそのデータを階層型ニューラルネッ トワーク(BranchNetwork)で 細かく分類するという2段の構造をもっ たニューラルネットワークです。

CombNET−IIの前に、CombNET−Iというものが発表されています。 この2つの違いは、前段のベクトル量子化ニューラルネットワークの違いです。 C ombNET−Iでは、前段のベクトル量子化ニューラルネットワークには、 コホー ネンの自己組織化Featureマップを用い、 後段の階層型ニューラルネットワー クの学習には、 バックプロパゲーションが使われています。 そして、CombNE T−IIではこの前段のニューラルネットワークに 自己増殖型ニューラルネットワー クが使われています。

 ゲームの考案

とりあえず、ちょっとRPGチックなものを考えてみました。

職業:戦士(ウオリアー)、魔法使い(ウイザード)、神官(プリースト)、盗賊 (シーフ)、精霊使い(シャーマン)

種族:人間、エルフ、ドワーフ、ホビット

基本能力:筋力、知力、器用度、敏捷、滞在、魅力、LP(筋力修正あり)、MP(滞在 修正あり)

それぞれの特徴

人間:オーソドックスな基本形。どの職業でもなれる。順応性たかし。

エルフ:精霊界の住人、澄んだ瞳を持つ者、伏し目がちな麗人、等の異名を持つエル フ族は、 精霊界と地上とを自由に行き来する種族。精霊信仰のため神官にはなれない。筋力、 LPが低いが、滞在、魅力は高い。

ドワーフ:エルフ族と同様、昔は精霊界の住人でしたが、今では金属と造形に魅せら れ、精霊界に戻る術を自ら破棄した種族。根が頑固なので(笑)魔法使い、精霊使い にはなれない。筋力、器用は高いが、敏捷、滞在、魅力は低い。

ホビット:陽気な小人族。筋力、滞在、魅力、LPは低いが、器用、敏捷が高い。

戦士:戦闘重視。魔法は使えない。物理攻撃のみ。筋力、敏捷などの成長が高いが、 滞在、MPなどの成長は低い。

魔法使い:魔法重視。魔法が使えるが物理戦闘は皆無。MPや滞在の成長は高いが、筋 力、LPなでので成長は低い。

神官:魔法も戦闘もできる。けど戦闘力は戦士ほどはなく、魔法は回復、癒し系、ドー パミング、敵の錯乱など補助魔法で攻撃魔法は使えない。

盗賊:戦闘重視。破壊力はないけど敏捷が高く、回避能力に長けている。魔法は回復 と敵の錯乱ができる。

精霊使い:火、水、風、土属性のどれか一種類の精霊魔法が使える。攻撃魔法と補助 魔法系の半々。

その他の設定

魔法抵抗(魔法に対する耐性、MPに影響される)

物理抵抗(物理攻撃に対する耐性、LPに影響される)

ゲームの流れ。

まず、プレイヤーは1〜5人のキャラクターを作成します。キャラクターは種族と職 業を選び、初期能力はランダムに選ばれます。(一定の値の中で)男女とかは自由に 選べるが、男女での能力差はないものとします。

 作ったキャラクターでパーティーと呼ばれるグループを作ります人数は最低1人、 最高5人まで。

 このパーティーの目的は古代遺跡に残されたアイテム収集です。アイテムはその遺 跡内にいる敵を倒すことによって手に入れることができます。遺跡の奥にいけばいく ほど強い敵キャラになればなるほど強いアイテムが手に入ります。もちろんアイテム は戦闘に役立つ武器とか防具もあり装備したり使用したりすることができます。(武 器や防具は筋力が高い程強い武器を装備できる、また種族や職業によって制限される ものもあり)そして、目的としてアイテム図鑑完全版を作成することがあります。手 に入れたアイテムは鑑定してもらうと自動的にアイテム図鑑に書き込まれます。

 遺跡内部は階層構造になっていて階ごとにボスがいます。このボスを倒すと、入り 口に戻る扉のカギと次の階に進むカギそしてレアアイテムが手に入ります。

 遺跡から出るとボスは自動的に再生します。

 ここでボスの能力とパーティーキャラの能力をニューラルネットワークでできない かと考えてみました。その階層にいるザコ敵をどのようにキャラクターが倒したかが 問題です。例えば、魔法攻撃ばっかりで倒しているとボスはそれを学習して魔法耐性 ができその倒した頻度によってその耐性は高くなっていきます。また物理攻撃ばかり で倒していると物理耐性が高くなり物理攻撃では倒しにくくなります。また属性のあ る攻撃(たとえば物理攻撃でもアイテムによって属性のついているものもあり)を使 用するとその分、その属性に対する耐性がボスにはついてしまいます。けどその属性 耐性は一定の値があってそれを越えることはないです。

 だから、便利だからといってひとつの攻撃を使い続けるとボスが倒せないわけです (^^)

 逆にキャラクターにもこれをつけて敵から物理攻撃を受けると物理耐性の伸びが高 くなります。また魔法をくらうと魔法耐性の伸びが高くなります。つまり特定のもの でしばかれればしばかれるほどその特定のものに対して属性がつきます。けど逆にい うと水属性の技ばっかり受けてると、ほかの属性の技に弱くなってしまい、ざこが放っ た弱い属性技でも大ダメージをくらったりしてしまいます。

 属性とかは少しだけアイテムとかで補ったりもできます。(つまりしきい値を高く する???)またボスがどんな魔法耐性、物理耐性、属性をもっているかによって落 とすアイテムは違ってきます。アイテムを揃えるためにはボスの能力を変化させるよ うにキャラクターが動かないといけません。ダンジョンでたらボスの能力は初期値に リセットされます。    だいたい・・・こんな感じです(><)