2006年07月28日

Stuttgart Neural Network Simulator その2

実際にJavaNNSを動かしてみます。C:\Java\JavaNNS-Win以下にexamplesフォルダがあると思いますが、このフォルダの中に様々な例となるファイルが置かれています。今回は、manualでも取り上げられていますが、exampleファイルを使ってXOR回路の構築を試してみたいと思います。
XORの真理値表は以下のとおりです。

 X Y Z
 0 0 0
 0 1 1
 1 0 1
 1 1 0

1. JavaNNSを起動し、[File]->[Open]からexamplesフォルダにあるxor.netをOpenすると以下の画面が表示されます。同様に、xor.patもOpenします。ここで、xor.netには、NN自体の情報が保存されており、xor.patには、入力/出力データが保存されています。

SNNS_2.png

2. 解析に重要ないくつかのWindowを開きます。
 NNの構築等を制御するパネル:[Tools]->[Control Panel]
 学習過程(誤差)を確認できるグラフ:[View]->[Error graph]
 Logの出力:[View]->[Log]

3. 学習を始めます。[Control Panel]の[Init]ボタンを押しWeightの初期化を行います。次に、[Learning]タブを開き、[Learning function]リストからBackpropagationを選択し、Cyclesを4000とします。そして、[Learn All]ボタンを押します。

SNNS_3.png

おお!2500 cycleあたりから急激に誤差が少なくなっています。

4. NNでモデリングされた入力と出力の関係を見てみます。Networkが表示されている画面上でCtrlキーを押しながら2つの入力素子と1つの出力素子を選択します。次に、[View]->[Projection]を選択すると以下の結果が表示されます。

SNNS_4.png

確かに、入力と出力の関係が学習されています。なんか実際のアナログ回路でXORを作ったような入力と出力の関係でおもしろいです。

4.[File]->[Save data]で結果を保存します。保存の時に"Saving details"というダイアログがでますが、[Include input patterns]と[Include output patterns]にcheckを入れることにします。また、[FIle]->[Sava]で構築したnetworkも保存します。

最後に、結果を見てみます。今回学習には4つのデータが使われているのですが、NNの出力と合わせて出力されています。

#1.1
0 0 ← 入力(学習用データ)
0  ← 出力(学習用データ)
0.14919 ← NNの出力
#2.1
0 1
1
0.88629
#3.1
1 0
1
0.83977
#4.1
1 1
0
0.13761


banner_02.gif
人気ブログランキング(クリックして応援してね)


posted by わばのり at 08:19| Comment(0) | TrackBack(0) | その他ツール | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。