X



[妄想]アンチシンギュラリティ・BIスレ[ニート] [無断転載禁止]©2ch.net
0001オーバーテクナナシー
垢版 |
2017/03/17(金) 17:41:50.41ID:h900Wtq+
根拠不明、科学の皮を被ったオカルト、シンギュラリティとニートの心の拠り所となっているBIのアンチスレです。
0022yamaguti~kasi
垢版 |
2017/03/26(日) 13:52:08.24ID:d/izoHY4
Page 47

activeDutyCycle(c)
抑制の後にカラムc がアクティブになった頻度を表す移動平均値
(例えば直近1000回繰り返した間に ry なった回数)
overlapDutyCycle(c)
カラムc がその入力に対して有意なオーバラップ値
(即ち、minOverlapより大きな値)になった頻度を表す移動平均値
(例えば直近1000回繰り返した間に ry なった回数)
minDutyCycle(c)
最小限望まれるセルの発火頻度 ry 頻度がこの値を下回れば、それはブーストされる。
この値はその付近のカラムの最大の発火頻度の1%として計算する。
0023yamaguti~kasi
垢版 |
2017/03/26(日) 13:53:48.86ID:d/izoHY4
以下の補助関数が疑似コードで ry

kthScore(cols, k)
与えられたカラムのリストに対して、k番目のオーバラップ値を返す
updateActiveDutyCycle(c)
抑制の後にカラムc がアクティブになった頻度の移動平均を計算する
updateOverlapDutyCycle(c)
カラムc のオーバラップ値がminOverlap より大きくなった頻度の移動平均 ry
averageReceptiveFieldSize()
カラムに接続された受容野の半径についての、すべてのカラムの平均値。
ry た受容野は接続されたシナプス(永続値≧connectedPermのもの)だけが含まれる。
これはカラム間の横方向の抑制範囲を決めるために用いられる。
maxDutyCycle(cols)
ry カラムのリストのうち、activeDutyCycle が最大のものを返す
increasePermanences(c, s)
カラムc のすべてのシナプスの永続値をスケール因子s に従って増加させる
boostFunction(c)
カラムc のブースト値 ry 値は1以上 ry 。
activeDutyCycle(c) が minDutyCycle(c) より大きければブースト値は1。
activeDutyCycle が minDutyCycle より下回り始めて以降は、ブースト値はリニアに増加する。
0024yamaguti~kasi
垢版 |
2017/04/01(土) 07:44:42.02ID:CW1wUjX6
Page 48

第4章: 時間プーリングの実装と疑似コード

ry 時間プーリング関数53の最初の実装の疑似コード ry
ry 入力は空間プーリング関数で計算した activeColumns(t) である。
このコードは時刻 t における各セルのアクティブ状態及び予測状態を計算する。
アクティブ状態と予測状態の論理和が ry 出力 ry 、次のレベルの入力 ry

疑似コードは3つのフェーズ ry 順に実行 ry

ry 1: 各セルについてアクティブ状態 activeState(t) を計算する。
ry 2: 各セルについて予測状態 predictiveState(t) を計算する。
ry 3: シナプスを更新する。

ry 3 は学習するときにだけ必要 ry しかし ry 空間プーリングのときとは異なり、
学習が有効のときはフェーズ 1 と 2 も学習特有の操作をいくつか含んでいる。
時間プーリングは空間プーリングよりかなり複雑であるため、
先ずは時間プーリングの推論だけのバージョン ry 次に推論と学習を含む ry
。補助関数は疑似コードの後に、本章の最後に示す。

ry : 推論だけのバージョン

フェーズ 1
ry 各セルのアクティブ状態を計算する。勝者となった各カラムについて ry
。フィード・フォワード入力がいずれかのセルによって予測された
(即ち、前回の時刻ステップで順序セグメントによって predictiveState が 1 になった)
とき、それらのセルをアクティブにする(4-9 行目)。
フィード・フォワード入力が予測されなかった(どのセルも predictiveState がオンに
ならなかった)とき、そのカラムのすべてのセルをアクティブにする(11-13 行目)。

53 temporal pooler function
0025yamaguti~kasi
垢版 |
2017/04/02(日) 10:05:59.12ID:XlgvGcXl
Page 49

1. for c in activeColumns(t)
2.
3.   buPredicted = false
4.   for i = 0 to cellsPerColumn - 1
5.     if predictiveState(c, i, t-1) == true then
6.       s = getActiveSegment(c, i, t-1, activeState)
7.       if s.sequenceSegment == true then
8.         buPredicted = true
9.         activeState(c, i, t) = 1
10.
11.     if buPredicted == false then
12.       for i = 0 to cellsPerColumn - 1
13.         activeState(c, i, t) = 1
002625
垢版 |
2017/04/02(日) 10:07:00.04ID:XlgvGcXl
フェーズ 2
ry 各セルの予測状態を計算する。
セルのどれかのセグメントがアクティブになると、そのセルの predictiveState がオンになる。
即ち、十分な数の横方向の接続先が、
フィード・フォワード入力によって現在発火していればオンになる。

14. for c, i in cells
15.   for s in segments(c, i)
16.     if segmentActive(c, i, s, t) then
17.       predictiveState(c, i, t) = 1

ry 疑似コード: 推論と学習を含むバージョン

フェーズ 1
ry 勝者となったカラム中の各セルの activeState を計算する。
ry カラムごとに一つのセルを学習セル (learnState)として選択する54。
そのロジックは以下の通り。
フィード・フォワード入力がいずれかのセルによって予測された
(即ち、順序セグメントによって predictiveState

54 lcChosen は学習セルが選択されたこと(learn cell chosen)を表し、
(c, i) が選択された学習セル、そして learnState(c, i, t) =1 に設定されることで
このセルが学習セルとして選択されたことを記憶する。
0028yamaguti~kasi
垢版 |
2017/04/02(日) 20:32:14.50ID:XlgvGcXl
1. activeColumns( t ).each { | c |
2.
3.   buPredicted = false  # bottom-up ( P50 )  # フラグ ローカル
4.   cellsPerColumn.times { | i |      # 回数 : 各カラムのセルの数
5.     if predictiveState( c , i , t - 1 ) # == true  # 各セルの予測状態 ( P38 P43 P52 P62-63 )
6.       s = getActiveSegment( c , i , t - 1 , activeState )
        # segmentActive( s , t , state ) が真になるセグメント ry
        # 順序セグメント ry なければ最もアクティビティが高 ry 優先
          # activeState()
            # カラム c セル i 時刻 t におけるアクティブ状態 ry
            # 現在のフィードフォワード入力と過去の時間的文脈から ry
7.       if s.sequenceSegment # == true  # フラグ : インスタンス s ローカル ( 6. P52 )
. #      if getActiveSegment( c , i , t - 1 , activeState ).sequenceSegment
8.         buPredicted = true # ||=
9.         activeState( c , i , t ) = 1  # ( 6. )
. #        next
10.       end
05.     end
11.     buPredicted || # == false
. #    buPredicted && next  # どの予測にも一致しな ry 何か普通でない ry ( P22 P29 P31 )
      # フィードフォワード入力が予測されな ry 、そのカラムのすべてのセルをアクティブ ry ( P48 )
12.       cellsPerColumn.times { | i |
13.         activeState( c , i , t ) = 1
012.       }
04.   }
01. }
0029yamaguti~kasi
垢版 |
2017/04/08(土) 00:26:31.92ID:gkXTgWKC
Page 50

が 1 になった)とき55、それらのセルをアクティブにする(23-27 行目)。
そのセグメントが、learnState がオンのセルによってアクティブになった場合、
そのセルは学習セルとして選択される(28-30 行目)。フィード・フォワード入力が
予測されな ry 、そのカラムのすべてのセルをアクティブにする(32-34 行目)。
さらに、ベストマッチセルが学習セルとして選択され(36-41 行目)、
新しいセグメントがそのセルに追加される。
0030yamaguti~kasi
垢版 |
2017/04/08(土) 00:27:25.57ID:gkXTgWKC
18. for c in activeColumns(t)
19.
20.   buPredicted = false
21.   lcChosen = false
22.   for i = 0 to cellsPerColumn - 1
23.     if predictiveState(c, i, t-1) == true then
24.       s = getActiveSegment(c, i, t-1, activeState)
25.       if s.sequenceSegment == true then
26.         buPredicted = true
27.         activeState(c, i, t) = 1
28.         if segmentActive(s, t-1, learnState) then
29.           lcChosen = true
30.           learnState(c, i, t) = 1
31.
32.     if buPredicted == false then
33.       for i = 0 to cellsPerColumn - 1
34.         activeState(c, i, t) = 1
35.
36.     if lcChosen == false then
37.       I,s = getBestMatchingCell(c, t-1)
38.       learnState(c, i, t) = 1
39.       sUpdate = getSegmentActiveSynapses (c, i, s, t-1, true)
40.       sUpdate.sequenceSegment = true
41.       segmentUpdateList.add(sUpdate)

55 buPredicted はフィード・フォワード入力が予測されたこと( bottom-up predicted)
を表す。(bottom-up は feed-forward と同義で、「フィード・フォワード」と ry )
レスを投稿する


ニューススポーツなんでも実況