パーセプトロンのプログラム例

ruby test.rb 入力ファイル名 出力ファイル名

と入力してやれば実行できます.出力ファイル名は,結果を出力するファイルの名前であり,省略すると画面に出力されます.また,入力ファイル名は,実行に必要なデータを記述したファイルの名前であり,たとえば以下のような形式で作成します.
最大試行回数 100 入力セルの数 2 訓練例の数 4
入力データファイル or.dat		
  日本語で記述した部分(「最大試行回数」,「入力セルの数」等)は,次に続くデータの説明ですのでどのように修正しても構いませんが,削除したり,または,複数の文(間に半角のスペースを入れる)にするようなことはしないでください.各データの意味は以下に示す通りです.

最大試行回数

  学習回数を入力します.この例では 100 を与えています.

入力セルの数

  入力セル(入力ユニット)の数を入力します.この例では 2 となっています.

訓練例の数

  訓練例の数を入力します(この例では 4 ).訓練例は,「入力データファイル」の項に入力されたファイル(この例では,or.dat )に記述します.ファイル or.dat は,たとえば,以下のようになります.
	OR演算の訓練例.各行の最後のデータが目標出力値
	-1 -1 -1
	-1  1  1
	 1 -1  1
	 1  1  1			
  1 行目はこのファイルの説明であり,何を記述しても構いません.ただし,前と同様,削除したり複文にするようなことはしないでください.2 行目以下が 4 つの訓練例を表しています.各訓練例において,最初の 2 つの値が各入力ユニットに入力される値であり,3 番目の値が,そのときの目標出力値になっています.

  上で説明したデータの元で実行すると,たとえば,以下のような出力が得られます.
重み
    1    1    1
分類結果
-1-1 Cor -1 Res -1
-1 1 Cor  1 Res  1
 1-1 Cor  1 Res  1
 1 1 Cor  1 Res  1
  !!すべてを分類(試行回数:6)		
  2 行目の 2 番目以降のデータが,各入力ユニットから出力ユニットへ向かう枝に付けられた重みです.また,1 番目のデータはバイアスです.分類結果において,Cor の次に出力された値が,入力データ(たとえば,4 行目では「-1 -1」)に対する目標出力値であり,また,Res の後の値が実際の計算(分類)結果です.