next up previous
次へ: 2のニューロンによる相互作用 上へ: ニューラルネットの基本:実習編 戻る: 減衰項付のニューロンモデル

セルフフィードバックつきのモデル

図 2: 自己回帰のあるニューロン
\resizebox{20mm}{!}{\includegraphics{fig2.eps}}

フィードバックループがあるモデルでは、時刻 $ t$ における出力値を計算するために 時刻 $ t-1$ の時の値を必要とします。 ニューロンを記述する構造体の定義を以下のように変更しておきます。
typedef struct {
    double output;
    double thres;
    double state;
    double old_state;
    double inp_wgt;
    double self_wgt;
} neuron;


あとは update_neuron(neuron *a, double input) の定義を変更すれば 完成です。
void update_neuron(neuron *a, double input)
{
        a->state += (- a->output 
                                + a->inp_wgt * input 
                                + a->old_state * a->self_wgt
                                - a->thres) * STEP;
        a->output = output_f(a->state);
        a->old_state = a->output;
}


課題 3:
(1) 後の解析のところで使うので、出力関数を

$\displaystyle f(\mu) = \frac{1}{1+e^{-\mu}}$ (14)

から

$\displaystyle f(\mu) = \mu$ (15)

に書き換えてください。
(2) このプログラムの動きは初期値と入力値とによって決まる。 どのような規則があるのか答えなさい。

Shinichi ASAKAWA 平成14年4月30日