京都産業大学 > 情報理工学部
岡田英彦 (Hidehiko OKADA) ホーム > 研究テーマ

2値ニューラルネットの進化的学習 - 判別問題への応用

一般的なニューラルネットにおいては結合強度の値が実数であり,誤差関数を結合強度で偏微分して勾配を計算できる.しかし,ニューラルネットのサイズが大きくなると,含まれる結合強度の数も多くなり,モデルを記録・実行するために必要なメモリ量も大きくなる.

この問題を解決する方法の1つとして,結合強度の値を離散値に制限したニューラルネットとその学習方法が研究されている.例えば,結合強度の値を{0,1}や{-1,1}のような2値に制限した2値ニューラルネットが挙げられる.

しかし,このようなニューラルネットを学習させるためには,従来の一般的な勾配降下法をそのまま利用することは難しく,工夫が必要である.その工夫の1つとして,勾配フリーな手法による学習が考えられる.本研究では,進化的アルゴリズムを用いた2値ニューラルネットの学習を試みた.

ニューラルネットのトポロジは3層パーセプトロンとした.ニューラルネットに含まれる結合強度としきい値がとりうる値はすべて2値であり,{0,1}を用いた場合と,{-1,1}を用いた場合の2通りを試した.

ニューラルネットの適用対象となるタスクには判別問題を用いた.具体的には,UC Irvine Machine Learning Repositoryに含まれる「アヤメのデータセット」を用いた.このデータの属性数は4,クラス数は3であり,4属性の値ははいずれも連続値である.
https://archive.ics.uci.edu/ml/datasets/Iris

このデータに合わせて,ニューラルネットの入力層ユニット数を4,出力層ユニット数を3とした.中間層ユニット数は2,4,8,16を試した.例えば,中間層ユニットが4個の場合,ニューラルネットに含まれる結合強度は4×4+4×3=28個,ユニットは4+3=7個あり,合計で35個の2値変数が含まれる.そこで,長さ35の2値ベクトルを進化的アルゴリズムにおけるgenotypeとし,ベクトルの値を対応する結合強度やしきい値にあてはめたニューラルネットをphenotypeとした.genotypeの評価値には対応するphenotypeの正解率を用いた.

用いた進化的アルゴリズムは,

の4種類である.

中間層ユニット数は,本実験においては8個が最適なことがわかった.例えばDEの場合,8個のときに2個や4個のときより有意に正解率が高く,16個のときと有意な差はなかった.

用いる2値の組合せは,{0,1}より{-1,1}のほうが望ましいことがわかった.両者の正解率の違いを検定したところ,例えばDEの場合,学習用データに対する正解率は危険率p=0.0076で有意な差が認められ,評価用データに対する正解率もp=0.0695と小さいことがわかった.

学習後のニューラルネットによる正解率を表1に示す.中間層ユニット数は8,用いた2値は{-1,1},試行回数は11である.

表1: 学習後のニューラルネットによる正解率

検定の結果,PSOは他の3手法より有意に下回ることがわかった.PSOはもともと連続変数ベクトルの最適化に適した手法であり,2値ベクトルの最適化には課題があることを示唆している.

各アルゴリズムによる学習曲線を図1,図2に示す.DEはworst試行においても良好に学習を進められていたのに対して,PSOはworst試行において学習が他の3手法より劣っていたことがわかる.


図1: 学習曲線 (11試行中のbest試行)


図2: 学習曲線 (11試行中のworst試行)