このシミュレーションに使われたElmanネットは,入力層 (ユニット数27),
隠れ層A (ユニット数10),隠れ層CON (ユニット数70),隠れ層B (ユニット数10),
出力層 (ユニット数29)の5層からなり,入力が与えられた後の隠れ層CONの活性パターン
を文脈層と呼ばれるメモリに保持し,次の入力が与えられたときに隠れ層CONに
フィードバックする (図).入出力層の27個のユニットは
それぞれこのシミュレーションで使用される27個の単語,すなわち,ピリオド,
関係詞who,4つの単数名詞 (cat,dog,boy,girl),4つの
複数名詞 (cats,dogs,boys,girls),2つの固有名詞 (John,Mary),2つの目的語不可
の自動詞 (live,walk),2つの目的語可能な動詞 (see,hear),2つの目的語が必要な
他動詞 (chase,feed),そしてそれぞれの動詞の
三人称単数形 (lives,walks,sees,hears,chases,feeds),2つの
助動詞 (do,does),?に対応している.このなかで,do,does,?,以外の
単語はElman (1991) がシミュレーションで使用したものと同じ単語である.入力層に
単語が提示されると,ネットワークは提示された単語に対応するユニットを1に活性化
させ,残りのユニットの活性値を0にする.出力層の残りの2つのユニットは主格
ユニットと目的格ユニットで,ネットワークに単語の格関係を学習させるために
使用する.
表はElman (1991) のシミュレーションで使用された
ネットワークに提示する平叙文の生成規則である.ネットワークに学習させる文を
生成するときは,まずSを開始記号として
生成してから 3#3 の左の記号を右の
記号に置き換えるということを繰り返し,最終的に全ての記号が英単語かピリオドに
置き換わるまで,上記の生成規則を適用する.(NP) とは,その場所でNPを生成しても
しなくてもよいことを示す.かっこで囲まれた数値は左の記号がどのような確率で右の
各記号列に置き換わるかを示している.
例えば,PropN に
4#4 という規則を
適用した場合,PropN が John に置き換えられる確率と Mary に置き換えられる確率は
それぞれ 5#5,5#5 となる.
また,NPに
6#6 と
いう規則を適用した場合,NPは,それぞれ 7#7,8#8,9#9 の
確率で PropN,N,N RC に置き換えられる (ただし,これは複文が生成可能な場合.
単文を生成する場合は PropN に置き換えられる確率と N に置き換えられる確率は,
それぞれ 10#10 と11#11).
各 PropN,N,N RC がどんな割合で生成されるかは,Elmanの論文からは明らかでは
なかったが,なるべく該当する英単語を平等に生成するように決定した.また,動詞や
目的語を生成するときは主語との単複の一致や動詞の自動詞,他動詞の区別に注意
しなければならない.例えば,
John V.
という記号列に適用できる規則は
12#12
のみであり,
13#13
は適用できない.
この操作によって
boys who Mary chases feed cats .
といった,間に関係節を挟んで主語と動詞の単複を一致させるような複雑な文も
生成することができる.また,
今回のシミュレーションでは,平叙文の疑問形や,疑問詞whoによって主語,または
目的語を問うような疑問文も生成する.それぞれの疑問文の特徴は以下の通りである.
疑問文
疑問詞whoによって主節の主語を問う疑問文
疑問詞whoによって主節の目的語を問う疑問文
疑問文は,平叙文の生成規則に,それぞれ上記の規則のうち生成したい種類の疑問文の
上記の規則を加えることによって生成する.以上の規則を新しく加えると,例えば,
does boy who Mary chases feed cats ?
who feeds cats who dog chases ?
who does boy who Mary chases feed ?
といった関係節を含んだ複雑な疑問文も
生成できるようになる.
表で示した生成規則によって生成した文を構成する単語を
ネットワークに順番に1つずつ提示し,次に来る単語を予測するように学習させる.
入力層の各ユニットはこのシミュレーションで使用する個々の単語と対応しており,
単語が提示されると提示された単語と対応するユニットの活性値が1,その他の
ユニットの活性値が0となる.教師信号は,次に来る単語と対応するユニットの活性値
を1にし,その他の単語と対応するユニットを活性値0にしたもので,さらに,現在の
入力より一つ前の入力単語の格関係が主格なら主格ユニットを1,
目的格ユニットを0に,目的格なら主格ユニットを0,目的格ユニットを1にした.
ネットワークは最初から関係節を含んだ複雑な文が提示されると,正しく文法を 学習することができないことが知られている[ElmanElman1991].よって学習の最初は 関係節を含まない単純な文の学習から始め,ネットワークが単文を十分学習した ところで徐々に関係節を含んだ複雑な文を学習させなければならない.ある50000個の 文集合を通して1回学習させることを1エポックとし,次の4つのセットを それぞれ5エポックずつ行う.
一つの文は,1/3の確率で平叙文,1/3の確率で平叙文の疑問形,1/3の確率で 疑問詞whoによる疑問文 (うち,主節の主語を尋ねる疑問文が生成される確率が1/6, 主節の目的語を訪ねる疑問文が生成される確率が1/6) となる.つまり,50000個の文が あれば,約16666個の文が平叙文となり,約16666個の文が平叙文の疑問形となり, 約8333個の文が疑問詞whoによって主節の主語を尋ねる疑問文,約8333個の文が 疑問詞whoによって主節の目的語を尋ねる疑問文となる.
学習は誤差逆伝搬法で,学習レートとモーメントはそれぞれ0.01と0.9.結合加重の 初期値は14#14から15#15の範囲でランダムに初期化した.ただし,隠れ層CONから コンテクスト層へのネットワークの重みは全て1に固定した.また,ネットワークの シミュレーションと文生成のためのプログラムは全てC言語で書いた.