下のJavaアプレットでは、 3層パーセプトロン(1入力・1出力)の バックプロパゲーション法による学習を シミュレーションできます。 表示されない場合(画面に何もでなかったり「×」が出てたり)は、 Javaを実行するためのソフトウェアが入っていない場合があります。 ここでダウンロードできるので試してみて下さい。 ・ 横軸が入力、縦軸が出力です。 軸の両端にあるテキストボックスに数字を入力して 「再描画」をクリックすることで 表示する範囲を変更できます。 ・ 水色の曲線は3層パーセプトロンの出力です。 ・ 茶色の曲線は中間層の 各ニューロン(シグモイド関数)の出力です。 ・ グラフ上でクリックすると、 その座標に相当する入出力値をもつデータを 発生させることができます(50個まで)。 「データ消去」をクリックすると消去します。 ・ あるいは、下の「プロット」をクリックすることで データを自動的に発生させることもできます。 サイン波(sine wave)、直線(linear)、 2値関数(binary)のいずれかを真の関数とし(選択可)、 そこに「雑音標準偏差」を標準偏差とした 正規分布にしたがう雑音をのせたデータを 「データ数」だけ発生させることができます。 (2値関数は雑音がのりません。) 真の関数は濃い緑の線で表示されます。 ・ 「BP1」をクリックすると、 バックプロパゲーション法を1エポック(epoch)行います。 (ここで、「1エポック」とは、 データすべてに対して一回ずつ 重みの更新を行うことをいいます。) 「BP100」は100エポックの学習を行います。 「BP∞」は、(ほぼ)永遠に学習をし続けます。 もう一度押すと一時停止します。 ・ 「重み初期化」をクリックすると 結合重みを初期化し直します。 ・ 「学習率」は重み更新式における学習率パラメータ、 「ユニット数」は中間層のユニット(ニューロン)の数、 「sigmoid gain」はシグモイド関数のゲインαの値です。 g(s) = 1 / (1 + e-αs) ・ 「MSE」は Mean Squared Error の略で、 「平均二乗誤差」と呼ばれる値です。 データの出力値と3層パーセプトロンの出力値の 差の二乗を全データに対して平均したものです。 |