カオス・ニューラル・ネットの連想記憶 SECOND 2006/12/03 06:57:10 ├!続き SECOND 2006/12/03 06:58:22 └説明 SECOND 2006/12/03 18:42:04
カオス・ニューラル・ネットの連想記憶 SECOND 2006/12/03 06:57:10 ツリーへ
カオス・ニューラル・ネットの連想記憶 |
返事を書く |
SECOND 2006/12/03 06:57:10 | |
!カオス・ニューラル・ネットの連想記憶
!---- OPTION ARITHMETIC NATIVE OPTION BASE 0 DIM E(99) DIM F(99),ema0(99,99) DIM R(99),Y(99),X(99),Shita(99) DIM S_(5),P_(99,5) LET S_(0)=1 LET Kr=0.95 LET Kf=0.4 LET Ke=0.5 LET Af=1 LET Th=0 LET Ei=-100 FOR I=0 TO 99 LET F(I)=I/99-0.5 NEXT I SET WINDOW -10,10, 20,0 SET LINE COLOR 2 MAT Shita=ZER !Th CALL Mat_W2 PLOT TEXT,AT -9, 9:"マウス、右クリックで 終了。" PLOT TEXT,AT -9,10:"左クリック STOP/START" DO DO SET TEXT COLOR 0 PLOT TEXT,AT -9,8:"t="&STR$(T) LET T=T+1 SET TEXT COLOR 1 PLOT TEXT,AT -9,8:"t="&STR$(T) CALL DispX CALL Compare CALL Xi00 MOUSE POLL mx,my,mlb,mrb !マウスの状態取得 WAIT DELAY 0.05 LOOP UNTIL mlb=1 OR mrb=1 IF mlb=1 THEN DO WAIT DELAY 0.02 MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 DO WAIT DELAY 0.02 MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=1 OR mrb=1 WAIT DELAY 0.1 END IF LOOP UNTIL mrb=1 !画面表示。各ニューロン(0~99) の発火状態 SUB DispX SET DRAW mode hidden SET AREA COLOR 0 PLOT AREA:-10,10; 0,10; 0,0; 10,0; 10,20;-10,20 SET AREA COLOR 4 FOR V=0 TO 9 FOR H=0 TO 9 LET i=V*10+H IF 0.5=<X(i) THEN PLOT AREA: H,V; H+1,V; H+1,V+1; H,V+1 SET TEXT COLOR 4 LET P_(i,0)=1 ELSE PLOT LINES: H,V; H,V+1; H+1,V+1 SET TEXT COLOR 2 LET P_(i,0)=0 END IF !---- ニューロンの内部(-~0~+) 0=< は発火 PLOT TEXT,AT H*2-10, V*0.8+12, USING"###.###":Y(i) NEXT H NEXT V SET DRAW mode explicit END SUB !カオス・ニューラル・ネットの計算本体部分 SUB Xi00 FOR i=0 TO 99 LET w=0 FOR j=0 TO 99 LET w=w+ema0(i,j)*X(j) NEXT J LET F(i)=Kf*F(i)+w LET R(i)=Kr*(R(i)+Shita(i))-Af*X(i)-Shita(i) LET Y(i)=E(i)+R(i)+F(i) NEXT I FOR i=0 TO 99 WHEN EXCEPTION IN LET X(i)=1/(1+EXP(Ei*Y(i)) ) USE LET X(i)=1/(1+EXP(-10*Y(i)) ) !overflow( about!) END WHEN NEXT I END SUB !連想記憶サンプル読み込み SUB Mat_W2 RESTORE 70000 SET POINT COLOR 1 SET POINT STYLE 1 MAT ema0=ZER LET n_=0 DO READ w IF 1<w THEN EXIT DO LET n_=n_+1 LET P_(0,n_)=w FOR i=1 TO 99 READ P_(i,n_) LET w=w+P_(i,n_) NEXT i LET DC=w/100 ! 連想記憶サンプル一覧表示 FOR j=0 TO 9 FOR i=0 TO 9 IF P_(j*10+i,n_)>0 THEN PLOT POINTS: (i/14)-9,(j/14)+n_-.1 NEXT i NEXT j SET TEXT COLOR 1 PLOT TEXT,AT -6,n_+.5:"DC="&STR$(w)&"/100" PLOT TEXT,AT -8,n_+.5:":"&STR$(S_(n_)) ! 相互結合係数作成 FOR i=0 TO 99 FOR j=0 TO 99 LET ema0(i,j)=ema0(i,j)+(P_(i,n_)-DC)*(P_(j,n_)-DC) NEXT j NEXT i LOOP LET P9=n_ END SUB |
├!続き SECOND 2006/12/03 06:58:22 ツリーへ
Re: カオス・ニューラル・ネットの連想記憶 |
返事を書く |
SECOND 2006/12/03 06:58:22 | |
!続き
!画面表示。想起パターンの分別 計数 SUB Compare FOR n_=1 TO P9 FOR i=0 TO 99 IF P_(i,n_)<>P_(i,0) THEN EXIT FOR NEXT i IF 99<i THEN ! ---- 一致 LET PC_=10 IF PB_=n_ THEN EXIT SUB SET TEXT COLOR 1 PLOT TEXT,AT -8,S_(0)+.5:":"&STR$(S_(S_(0))) LET PB_=n_ !(控え) LET S_(0)=n_ !パターン番号 LET S_(n_)=S_(n_)+1 !計数 CALL Prt(4,-8,n_+.5,":"&STR$(S_(n_))) EXIT SUB END IF NEXT n_ !---- 不一致 IF PB_=0 THEN EXIT SUB IF PC_>1 THEN LET PC_=PC_-1 EXIT SUB END IF CALL Prt(4,-8,PB_+.5,":"&STR$(S_(PB_))) LET PB_=0 END SUB SUB Prt(c,x,y,w$) SET AREA COLOR 0 PLOT AREA:x,y;x+2,y;x+2,y-.6;x,y-.6 SET TEXT COLOR c PLOT TEXT,AT x,y:w$ END SUB !Kr=0.95 :Kf=0.4 :Ke=0.5 :Af=1 :Th=0 :Ei=-100 70000 DATA 1,1,0,0,0,0,0,0,1,1 DATA 1,1,1,0,0,0,0,1,1,1 DATA 0,1,1,1,0,0,1,1,1,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,0,0,1,1,1,0,0,0,0 DATA 0,0,0,0,1,1,1,0,0,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,1,1,1,0,0,1,1,1,0 DATA 1,1,1,0,0,0,0,1,1,1 DATA 1,1,0,0,0,0,0,0,1,1 DATA 0,0,0,0,0,1,0,0,0,0 DATA 0,0,0,0,1,1,1,0,0,0 DATA 0,0,0,0,1,1,1,0,0,0 DATA 0,0,0,1,1,1,1,1,0,0 DATA 0,0,0,1,1,0,1,1,0,0 DATA 0,0,1,1,1,0,1,1,1,0 DATA 0,0,1,1,0,0,0,1,1,0 DATA 0,1,1,1,0,0,0,1,1,1 DATA 0,1,1,1,1,1,1,1,1,1 DATA 0,1,1,1,1,1,1,1,1,1 DATA 0,0,1,1,1,0,0,0,1,1 DATA 0,1,1,1,1,1,1,1,1,1 DATA 1,1,1,0,1,1,1,1,0,0 DATA 1,1,0,0,0,1,1,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,1,1,0,0,0,1,1 DATA 0,0,1,1,1,1,0,1,1,1 DATA 1,1,1,1,1,1,1,1,1,0 DATA 1,1,0,0,0,1,1,1,0,0 DATA 0,0,0,0,0,0,0,0,0,0 DATA 0,0,1,0,0,0,0,1,0,0 DATA 0,0,1,1,0,0,1,1,0,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,1,1,1,1,1,1,1,1,0 DATA 1,1,1,1,1,1,1,1,1,1 DATA 0,0,0,1,1,1,1,0,0,0 DATA 0,0,0,0,1,1,1,0,0,0 DATA 0,0,0,0,0,1,0,0,0,0 DATA 0,0,0,0,1,1,0,0,0,0 DATA 0,1,1,0,1,1,0,1,1,0 DATA 0,1,0,0,1,1,0,0,1,0 DATA 0,0,0,0,1,1,0,0,0,0 DATA 1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1 DATA 0,0,0,0,1,1,0,0,0,0 DATA 0,1,1,0,1,1,0,1,1,0 DATA 0,1,1,0,1,1,0,1,1,0 DATA 0,0,0,0,1,1,0,0,0,0 DATA 9 !end mark END |
└説明 SECOND 2006/12/03 18:42:04 ツリーへ
Re: カオス・ニューラル・ネットの連想記憶 |
返事を書く |
SECOND 2006/12/03 18:42:04 | |
説明
カオス・ニューラル・ネット。我われ自身の脳神経細胞の模型です 一つ器に詰め込まれて合算され、一緒くた、にされた映像が、 きれいに分離して、入れ替わったり 崩れたり 漂流して行くカオス。 0~t 時刻のm個の外部入力と、n個のニューロン出力から t+1 時刻のi番ニューロンの出力 Xi(t+1)を求める <基本式> Ei(t+1)=Σj=1~m Vij・Σd=0~t Ke^d・Aj(t-d) Fi(t+1)=Σj=1~n Wij・Σd=0~t Kf^d・Hij( Xj(t-d) ) Ri(t+1)= -SHITAi -ALFA・Σd=0~t Kr^d・Gi( Xi(t-d) ) Yi(t+1)=Ei(t+1)+Fi(t+1)+Ri(t+1) Xi(t+1)=sigmoid( Yi(t+1) ) .... (0~0.5~1) ← (-~0~+) <各記号の説明> X = sigmoid( Y ) = 1/( 1+exp(-Y/EPSILON) ) .... 0< EPSILON (微小な正の数) Ei(t) i番ニューロン が特別に受ける 外部の入力成分 (EXTERNAL) Vij i番ニューロン が受けるj番 外部信号からの結合係数 (2次元の配列) Ke 0<値<1 の減衰定数 Aj(t) m個の内のj番目の外部信号源 Fi(t) i番ニューロン がj番から受ける 内部の相互入力成分 (FEED BACK) Wij i番ニューロン が受けるj番ニューロンからの相互結合係数 (2次元の配列) Kf 0<値<1 の減衰定数 Hij() 接続線路が非直線だった時の伝達関数、リニア なら不要 Xj(t) n個の内のj番目のニューロン からの出力 0〜1の値。(0.5=<発火) Ri(t) i番ニューロン 自身の感度を不応にする負性の入力成分 (REJECTION) SHITAi i番ニューロン 不応の固定成分 (しきい値) 各i別々に。(1次元の配列) ALFA i番ニューロン 自身の感度を不応にする負性の自己帰還結合係数 Kr 0< 値<1 の減衰定数 Gi() i番自身への接続線路が非直線だった時の伝達関数、リニア なら不要 Yi(t) i番ニューロン の総合入力 −〜0〜+ ( 0=<発火) Xi(t) i番ニューロン の最終出力 0〜1の値。(0.5=<発火) t 時刻の各出力だけで、t+1 時刻のi番が求まる様に、代数変形(同一) <等価式> Ei(t+1)=Ke・Ei(t) +Σj=1~m Vij・Aj(t) Fi(t+1)=Kf・Fi(t) +Σj=1~n Wij・Hij( Xj(t) ) Ri(t+1)=Kr・( Ri(t)+SHITAi ) -SHITAi -ALFA・Gi( Xi(t) ) Yi(t+1)=Ei(t+1)+Fi(t+1)+Ri(t+1) Xi(t+1)=sigmoid( Yi(t+1) ) .... (0~0.5~1) ← (-~0~+) 文献:放送大学教材 56259-1-9711 カオスの数理と技術 著者:合原一幸 プログラムで使用した計算式は、Hij(),Gi()を省略、-1/EPSILONを定数に Ei(t+1)=Ke・Ei(t) +Σj=1~m Vij・Aj(t) Fi(t+1)=Kf・Fi(t) +Σj=1~n Wij・Xj(t) Ri(t+1)=Kr・( Ri(t)+SHITAi ) -SHITAi -ALFA・Xi(t) Yi(t+1)=Ei(t+1)+Fi(t+1)+Ri(t+1) Xi(t+1)=1/( 1+exp(定数・Yi(t+1)) ) .... 定数<0 さらに、t、t+1 は、計算前と後に割り当てる為、分離せず. 配列変数は、i番j番だけで広げ、最終的に次の様になっています E(i)=Ke・E(i) +Σj=1~m V(i,j)・A(j) F(i)=Kf・F(i) +Σj=1~n W(i,j)・X(j) R(i)=Kr・( R(i)+SHITA(i) ) -SHITA(i) -ALFA・X(i) Y(i)=E(i)+F(i)+R(i) X(i)=1/( 1+exp( ei・Y(i)) ) .... ei<0 |