next up previous contents
Next: 論理関数の簡単化 [#Digi##1#] Up: ルール抽出 Previous: ルール抽出の必要性 [#Fukumi##1#]

ルール抽出の手法 [10]

  実際に学習をさせたニューラルネットからルールを抽出する手法について述べる。 この手法は2値出力のニューラルネットに対するものであり、得られるルールは、出力の入力に対する論理式の形をとる。 対象となるニューラルネットは図2.4に示すような階層型のものであるとする。

まず、図2.2に示される各ニューロンの出力は式(2.1)のようになる。 式中の tex2html_wrap_inline1893 はここではステップ関数であり、 u が正であれば出力は1に、逆に負であれば出力は0になる。 ここで u について見てみる。ここでのニューラルネットは2値出力のものを考えるため、 入力 tex2html_wrap_inline1879 は0か1かの値しかとらず、結合荷重 tex2html_wrap_inline1885 が全て正ならばuは必ず0以上の値をとる。 また、ある tex2html_wrap_inline2015 が負であったとしても、 tex2html_wrap_inline2017 が0であるか、または tex2html_wrap_inline2017 は1でもそれ以外で入力が1であるニューロンからの結合荷重の総和が正であり、その絶対値が tex2html_wrap_inline2015 の絶対値を超えていれば、u は0以上の値をとる。 この u が0以上となるような入力 tex2html_wrap_inline1879 の組み合わせを最小項と呼ぶ。

入力 tex2html_wrap_inline1879 のすべての組み合わせについて、 それが最小項であるかどうかを調べていけば良いのであるが、単に論理関数をこれらの最小項の論理和で表現したのでは冗長な式になってしまう。 なぜなら、例えば3個の入力 tex2html_wrap_inline2031 , tex2html_wrap_inline2033 , tex2html_wrap_inline2035 から出力の論理関数の最小項を調べた際に、 tex2html_wrap_inline2037tex2html_wrap_inline2039 という項が出てきた場合、これらは tex2html_wrap_inline2041 という項一つに簡単化できるからである。 そこで、以下のような手順で論理関数を求めていく。

論理関数に含まれる論理積の項(主項と呼ぶ)の数が最小のとき、論理関数は最も簡単化されていることになる。 主項に含まれる入力( tex2html_wrap_inline2031 など)の数は少ないほど、多くの入力の組み合わせを包括する。 上記の例で、主項の一つが tex2html_wrap_inline2031 であるとき、これは tex2html_wrap_inline2031 が1であれば tex2html_wrap_inline2033 , tex2html_wrap_inline2035 は 0でも1でも良いという意味になる。すなわち tex2html_wrap_inline2031 という主項一つで、 残り二つの入力の0、1の組み合わせ四つの最小項を示していることになる。 tex2html_wrap_inline2031 が主項であることが分かれば、 tex2html_wrap_inline2037tex2html_wrap_inline2059 といった tex2html_wrap_inline2031 を含む項は冗長なので調べる必要がない。 入力 tex2html_wrap_inline2031 , tex2html_wrap_inline2033 , tex2html_wrap_inline1995 , tex2html_wrap_inline2069 があるとき、 ある入力の組み合わせ tex2html_wrap_inline2071 ... tex2html_wrap_inline2073 ... tex2html_wrap_inline2075tex2html_wrap_inline2031tex2html_wrap_inline2079 , tex2html_wrap_inline1879tex2html_wrap_inline2069 は含まない)が主項である条件は

  equation248

となる。 つまり、ある項が主項である条件は、その項に含まれる肯定入力のニューロンの結合荷重の和と、その項には含まれない入力のニューロンの結合荷重の中で、値が負であるものの和との合計が0以上であることである。 この式より、主項に含まれる変数が少ないほうから順に調べていけば、冗長のない出力の論理関数を求めることができる。

この手法を中間層、出力層の全てのニューロンに適用しそれぞれの論理関数が求まれば、それらの統合で、入力に対する出力の論理関数を求めることができる。 このように、学習済みのニューラルネットから結合荷重を取り出すことで、入出力間のルールを論理関数の形で抽出することができる。



Deguchi Lab.