SlideShare a Scribd company logo
Differentiable
Neural
Computer
Taehoon Kim
2016-10-27
V : vector
H : header
Differentiable Neural Computer
DNC architecture
DNC architecture
CPU RAM
3 types of Attention
1. Content lookup (뭐랑 비슷한가)
• 데이터 사이에 연관성(유사도)을 고려
2. Temporal links (누구랑 친한가)
• 인풋의 정보를 읽고 연속적인 데이터를 가져옴
3. Allocation (어디다 넣을 것인가)
• Write header에게 빈 공간을 알려줌
메모리 𝑀
• 미분 가능한 어텐션을 주소를 찾는데 사용
• 주소라기 보단 distribution이라고 이해하는게 좋음
• 컴퓨터는 discrete한 메모리 주소를 사용
• Weightings = 주소
• 𝑀은 𝑁×𝑊 크키의 행렬
읽기와 쓰기
• 𝒘 (weighting) : 어떤 장소가 얼마나 수정이 되는지
• 읽기 : 𝒓 = ∑ 𝑀 𝑖,+ 𝒘 𝒓
[𝑖].
/01 , (‘+’는 𝑗 = 1, … , 𝑊 모두를 의미)
• 𝒓 (read vector) : 각 메모리에 weighting을 곱하고 더하면
• 𝒘 𝒓
(read weighting)
• 쓰기 : 𝑀 𝑖, 𝑗 ← 𝑀 𝑖, 𝑗 1 − 𝒘7
𝑖 𝑒 𝑗 + 𝒘7
𝑖 𝑣[𝑗]
Differentiable Neural Computer
Differentiable Neural Computer
Method
1. Controller Network 𝒩
매 시간 𝑡마다
1. Input V 𝑥> ∈ ℝA
를 데이터 혹은 환경으로부터 받음
2. Output V 𝑦> ∈ ℝC
를 벹어 target V 𝑧> ∈ ℝC
를 계산
• SL일 경우 𝑧> = predictive distribution
• RL일 경우 𝑧> = action distribution
매 시간 𝑡마다
3. 메모리 𝑀>E1 ∈ ℝ.×F
에서 Read H를 사용해서
• R개의 read V 𝑟>E1
1
, … , 𝑟>E1
H
를 읽음
4. 메모리 𝑀>E1과의 상호작용을 정하는 interface V 𝜉>를 계산
• 𝒳> = [𝑥>; 𝑟>E1
1
; … ; 𝑟>E1
H
]
• 편의를 위해 read, input V를 붙여 하나의 controller input V를 정
의
네트워크
• 모든 뉴럴 네트워크를 𝒩로 사용할 수 있음
• 논문에서는 LSTM를 약간 바꾼 네트워크를 사용
LSTM
LSTM
• 𝒊 𝒕
𝒍
= 𝜎 𝑊/
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏/
P
• 𝒇 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏U
P
• 𝒐 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏W
P
• 𝑪 𝒕
𝒍
= 𝒊 𝒕
𝒍
∗ tanh 𝑊^
P 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏^
P + 𝒇 𝒕
𝒍
∗ 𝑪 𝒕E𝟏
𝒍
• 𝒉 𝒕
𝒍
= 𝒐 𝒕
𝒍
∗ tanh 𝑪 𝒕
𝒍
LSTM
• 𝒊 𝒕
𝒍
= 𝜎 𝑊/
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏/
P
• 𝒇 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏U
P
• 𝒐 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏W
P
• 𝑪 𝒕
𝒍
= 𝒊 𝒕
𝒍
∗ tanh 𝑊^
P 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏^
P + 𝒇 𝒕
𝒍
∗ 𝑪 𝒕E𝟏
𝒍
• 𝒉 𝒕
𝒍
= 𝒐 𝒕
𝒍
∗ tanh 𝑪 𝒕
𝒍 Cell state는 정보를 빼거나 추가할 때 사용된다
Input gate
Forget gate
Output gate
• 𝒊 𝒕
𝒍
= 𝜎 𝑊/
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏/
P
• 𝒇 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏U
P
• 𝒐 𝒕
𝒍
= 𝜎 𝑊U
P
𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏W
P
• 𝑪 𝒕
𝒍
= 𝒊 𝒕
𝒍
∗ tanh 𝑊^
P 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏^
P + 𝒇 𝒕
𝒍
∗ 𝑪 𝒕E𝟏
𝒍
• 𝒉 𝒕
𝒍
= 𝒐 𝒕
𝒍
∗ tanh 𝑪 𝒕
𝒍
𝑪 𝟎
𝟎
𝒙 𝟏 = 𝒉 𝟏
E𝟏
𝒉 𝟎
𝟎
𝒐 𝟏
𝟎
𝒇 𝟏
𝟎
𝒊 𝟏
𝟎
𝒈 𝟏
𝟎
𝑪 𝟏
𝟎
𝒉 𝟏
𝟎
𝑪 𝟏
𝟏
𝒉 𝟏
𝟏
𝑪 𝟎
𝟏
𝒉 𝟎
𝟏
𝒐 𝟏
𝟏
𝒇 𝟏
𝟏
𝒊 𝟏
𝟏
𝒈 𝟏
𝟏
Controller Network 𝒩
𝓧 𝒕
𝓋𝒕, 𝝃 𝒕
Controller Network 𝒩
• 𝒊 𝒕
𝒍
= 𝜎 𝑊/
P
𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏/
P
• 𝒇 𝒕
𝒍
= 𝜎 𝑊U
P
𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏U
P
• 𝒐 𝒕
𝒍
= 𝜎 𝑊W
P 𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏W
P
• 𝒔 𝒕
𝒍
= 𝑖>
P
∗ tanh 𝑊^
P 𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏^
P + 𝑓>
P
∗ 𝒔 𝒕E𝟏
𝒍
• 𝒉 𝒕
𝒍
= 𝑜>
P
∗ tanh 𝒔 𝒕
𝒍
𝓧 𝒕
𝒉 𝒕
𝒍E𝟏
𝒉 𝒕E𝟏
𝒍
𝒔 𝟎
𝟏
𝒉 𝟏
𝟎𝒙 𝟏
𝒉 𝟎
𝟏
𝒐 𝟏
𝟏
𝒇 𝟏
𝟏
𝒊 𝟏
𝟏
𝒈 𝟏
𝟏
𝒔 𝟏
𝟏
𝒉 𝟏
𝟏
𝒔 𝟏
𝟐
𝒉 𝟏
𝟐
𝒔 𝟎
𝟐
𝒉 𝟎
𝟐
𝒐 𝟏
𝟐
𝒇 𝟏
𝟐
𝒊 𝟏
𝟐
𝒈 𝟏
𝟐
𝑴 𝟎
• 𝒊 𝒕
𝒍
= 𝜎 𝑊/
P
𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏/
P
• 𝒇 𝒕
𝒍
= 𝜎 𝑊U
P
𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏U
P
• 𝒐 𝒕
𝒍
= 𝜎 𝑊W
P 𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏W
P
• 𝒔 𝒕
𝒍
= 𝑖>
P
∗ tanh 𝑊^
P 𝓧 𝒕; 𝒉 𝒕E𝟏
𝒍
; 𝒉 𝒕
𝒍E𝟏
+ 𝑏^
P + 𝑓>
P
∗ 𝒔 𝒕E𝟏
𝒍
• 𝒉 𝒕
𝒍
= 𝑜>
P
∗ tanh 𝒔 𝒕
𝒍
… ℎ>
k
= 0
…ℎk
P
= 0
𝒳1
𝒔 𝟎
𝟏
𝒉 𝟏
𝟎𝒙 𝟏
𝒉 𝟎
𝟏
𝒐 𝟏
𝟏
𝒇 𝟏
𝟏
𝒊 𝟏
𝟏
𝒈 𝟏
𝟏
𝒔 𝟏
𝟏
𝒉 𝟏
𝟏
𝒔 𝟏
𝟐
𝒉 𝟏
𝟐
𝒔 𝟎
𝟐
𝒉 𝟎
𝟐
𝒐 𝟏
𝟐
𝒇 𝟏
𝟐
𝒊 𝟏
𝟐
𝒈 𝟏
𝟐
𝑴 𝟎
𝑪 𝟎
𝟎
𝒉 𝟎
𝟎
𝒐 𝟏
𝟎
𝒇 𝟏
𝟎
𝒊 𝟏
𝟎
𝒈 𝟏
𝟎
𝑪 𝟏
𝟎
𝒉 𝟏
𝟎
𝑪 𝟏
𝟏
𝒉 𝟏
𝟏
𝑪 𝟎
𝟏
𝒉 𝟎
𝟏
𝒐 𝟏
𝟏
𝒇 𝟏
𝟏
𝒊 𝟏
𝟏
𝒈 𝟏
𝟏
𝒙 𝟏 = 𝒉 𝟏
E𝟏
𝒳1
Controller Network 𝒩
• 모든 𝒕에 대해서 𝒉 𝒕
𝟎
= 𝟎
• 모든 𝒕에 대해서 𝒉 𝟎
𝒍
= 𝟎
• 매 시간 controller는 두개의 값을 벹어냄
• Output V 𝓋> = 𝑊m ℎ>
1
; … ; ℎ>
n
• Interface V 𝜉> ∈ ℝ F×o pqFprHpq
= 𝑊s ℎ>
1
; … ; ℎ>
n
𝝃 𝒕
𝒗 𝒕
𝒔 𝟎
𝟏
𝒉 𝟏
𝟎𝒙 𝟏
𝒉 𝟎
𝟏
𝒐 𝟏
𝟏
𝒇 𝟏
𝟏
𝒊 𝟏
𝟏
𝒈 𝟏
𝟏
𝒔 𝟏
𝟏
𝒉 𝟏
𝟐
𝒔 𝟎
𝟐
𝒉 𝟎
𝟐
𝒐 𝟏
𝟐
𝒇 𝟏
𝟐
𝒊 𝟏
𝟐
𝒈 𝟏
𝟐
𝑴 𝟎 𝒉 𝟐
𝟎𝒙 𝟐
𝒉 𝟏
𝟏
𝒐 𝟐
𝟏
𝒇 𝟐
𝟏
𝒊 𝟐
𝟏
𝒈 𝟐
𝟏
𝒔 𝟐
𝟏
𝒉 𝟐
𝟏
𝒔 𝟐
𝟐
𝒉 𝟐
𝟐
𝒔 𝟏
𝟐
𝒐 𝟐
𝟐
𝒇 𝟐
𝟐
𝒊 𝟐
𝟐
𝒈 𝟐
𝟐
𝑴 𝟏
𝓋 𝟏 𝜉 𝟏 𝓋 𝟐 𝜉 𝟐
𝒚 𝟏 𝒚 𝟐
𝑴 𝟐
Controller Network 𝒩
• (𝓋>, 𝜉>) = 𝒩 𝒳1; … ; 𝒳> ; 𝜃
• 𝒳> = [𝑥>; 𝑟>E1
1
; … ; 𝑟>E1
H
]
• 만약 recurrent가 아니라 feedforward였다면,
• (𝓋>, 𝜉>) = 𝒩 𝒳>; 𝜃
• 𝑦> = 𝓋> + 𝑊x 𝒓𝒕
𝟏
; … ; 𝒓𝒕
𝑹
	 , 𝑊x ∈ ℝC×HF
• 𝒓𝒕
𝟏
; … ; 𝒓𝒕
𝑹
	 를 추가해 방금 읽은 메모리를 보고 결과를 만들도록 함
Interface parameters
• Interface V 𝜉>는 메모리 상호작용을 결정하는 파라미터들로 구성됨
• 각 파라미터는 함수들에 의해 가질 수 있는 값의 범위가 조절됨
• logistic sigmoid function : [0,1] 사이의 값
• ‘Oneplus’ function : 1, ∞ 사이의 값
• 𝑜𝑛𝑒𝑝𝑙𝑢𝑠 𝑥 = 1 + 𝑙𝑜𝑔(1 + 𝑒ƒ
)
Interface parameters
• 𝑅개의 read key 𝑘>
x,/
∈ ℝF; 1 ≤ 𝑖 ≤ 𝑅
• 𝑅개의 read strength {𝛽>
x,/
= 𝑜𝑛𝑒𝑝𝑙𝑢𝑠(𝛽>
x,/
) ∈ [1, ∞); 1 ≤ 𝑖 ≤ 𝑅}
• write key 𝑘>
7	
∈ ℝ7
• wright strength 𝛽>
7
= 𝑜𝑛𝑒𝑝𝑙𝑢𝑠 𝛽>
7
∈ [1, ∞)
• 𝑅개의 free gates {𝑓>
/
= 𝜎 𝑓>
/
∈ [0,1]; 1 ≤ 𝑖 ≤ 𝑅}
Interface parameters
• 𝑅개의 free gates {𝑓>
/
= 𝜎 𝑓>
/
∈ [0,1]; 1 ≤ 𝑖 ≤ 𝑅}
• allocation gate 𝑔>
Š
= 𝜎 𝑔>
Š
∈ [0,1]
• write gate 𝑔>
7
= 𝜎 𝑔>
7
∈ [0,1]
• 𝑅개의 read modes {𝜋>
/
= 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝜋>
/
∈ 𝒮q; 1 ≤ 𝑖 ≤ 𝑅}
메모리 읽고 쓰기
• 얼마나 읽고 쓸지는 weightings에 의해 결정
• 각 벡터들은 양수이며, 모든 값의 합은 최대 1
• ∆.= 𝛼 ∈ ℝ.
: 𝛼/ ∈ 0,1 , ∑ 𝛼/
.
/01 ≤ 1
• 읽기: 𝑅개의 read weightings 𝑤>
x,1
, … , 𝑤>
x,H
∈ ∆. 이 사용
• 𝑟>
/
= 𝑀>
“
𝑤>
x,/
∈ ℝF
• 읽어진 read vector들은 다음 time-step에 입력으로 사용
메모리 읽고 쓰기
• 쓰기 : 𝑀> = 𝑀>E1 ∘ 𝐸 − 𝒘 𝒕
𝒘
𝒆 𝒕
“
+ 𝒘 𝒕
𝒘
𝒗 𝒕
“
• 하나의 write weighting 𝑤>
7
∈ Δ.
• Erase V 𝑒> ∈ 0,1 F
, Write V 𝑣> ∈ ℝF
• ∘는 element-wise multiplication을 의미
• 𝐸 ∈ ℝ.×F
는 1만으로 구성된 행렬
메모리 addressing
• 쓰기
• Content-based addressing + dynamic memory allocation
• 읽기
• Content-based addressing + temporal memory linkage
Content-based addressing
𝒞 𝑀, 𝒌, 𝛽 𝑖 =
exp 𝒟 𝒌, 𝑀[𝑖,+] 𝛽
∑ exp 𝒟 𝒌, 𝑀[𝑗,+] 𝛽Ÿ
• Lookup key : 𝒌 ∈ ℝF
• Key strength: 𝛽 ∈ 1, ∞
• 𝒟 𝑢, 𝑣 =
+¡
¡
(cosine similarity)
Content-based addressing
• Weighting 𝒞 𝑀, 𝒌, 𝛽 ∈ 𝒮¢은 메모리 위치에 대한
normalized된 확률 분포
• normalized : 벡터 값들의 합이 1
• Read H, write H 모두에 사용됨
Dynamic memory allocation
• Controller가 메모리를 필요한 만큼 할당하고 free하기 위해
• 사용 가능한 메모리 주소들을 free list라는 리스트에 저장
• 𝒖> ∈ 0,1 . : memory usage vector
• 𝒖k = 𝟎
• 메모리에 쓰기 전에 controller는 각각의 read head마다 하나씩
free gate 𝑓>
/
들을 벹고 읽어진 메모리들이 free될지 안될지를 결정
Dynamic memory allocation
• 𝜓> ∈ 0,1 .
는 한 메모리가 얼마나 free 되지 않을지를 나타냄
• 𝜓> = ∏ 𝟏 − 𝑓>
/
𝑤>E1
x,/H
/01
• Usage vector 𝒖> = 𝒖>E1 + 𝑤>E1
7
− 𝒖>E1 ∘ 𝑤>E1
7
∘ 𝜓>
• 𝒖> = 𝒖>E1 ∘ 1 − 𝑤>E1
7
+ 𝑤>E1
7
∘ 𝜓>
• 사용되었다 = 사용 중이다 (높은 𝒖) or 방금전에 쓰여졌다 (낮은 𝒖)
• 𝜓> 𝑖 ≈ 1, free gate에 의해 유지된다는 의미
• 모든 write는 usage를 증가시킨다
• 메모리는 오직 free gate 𝑓>
/
에 의해 비워질 수 있다
Dynamic memory allocation
• 𝑢>가 정해지고 나면 free list 𝜙> ∈ ℤ.
가 정해진다
• 𝜙>: 메모리 index를 usage가 증가하는 방향으로 정렬
• 𝜙>[1]은 가장 적게 사용된 index
• Allocation weighting 𝒂𝒕 ∈ Δ.는 새로 쓸 index를 계산
• 만약 𝒖 𝒕 = 𝟏라면 𝒂> = 𝟎
𝒂𝒕 𝜙> 𝑗 = 1 − 𝒖𝒕 𝜙> 𝑗 ª 𝒖𝒕 𝜙> 𝑖
ŸE1
/01
Write weighting
• Controller는 새로운 메모리 혹은 content에 의해 결정된 위
치에 쓸 수 있고, 아얘 쓰지 않겠다고 결정할 수 있음
• Write content weighting 𝒄𝒕
𝒘
∈ 𝒮.
• 𝒄𝒕
𝒘
= 𝒞 𝑀>E1, 𝒌𝒕
𝒘
, 𝛽>
7
Write weighting
• Write weighting 𝑤>
7
∈ Δ.
• 𝒘 𝒕
𝒘
= 𝑔>
7
𝑔>
Š
𝒂𝒕 + 1 − 𝑔>
Š
𝒄𝒕
𝒘
• 𝑔>
7
∈ [0,1] : write gate. 0일 경우 아무것도 쓰지 않음
• 𝑔>
Š
∈ 0,1 : allocation gate
• 어디에 쓸 것인가, 새로운 곳? 혹은 Context로 찾은곳?
Temporal memory linkage
• Memory allocation은 어떤 순서로 메모리가 써졌는지 모른다
• 하지만 순서를 기억해 둬야할 상황이 있다
• Temporal link matrix 𝐿> ∈ 0,1 .×.
• 𝐿>[𝑖, 𝑗]는 주소 j 이후에 i에 얼마나 쓰여졌는가를 나타냄
• 𝐿> 𝑖,+ ∈ Δ., 𝐿> +, 𝑗 ∈ Δ.
Temporal memory linkage
• 𝐿>를 정의하기 위해서 𝒑> ∈ Δ.가 필요
• 각 𝒑>[𝑖]는 어느 i가 마지막으로 쓰여졌는가의 정도를 나타냄
• 𝒑k = 0
• 𝒑> = 1 − ∑ 𝒘>
7
𝑖/ 𝒑>E1 + 𝐰¯
°
• 𝑳> 𝑖, 𝑗 = 1 − 𝑤>
7
𝑖 − 𝑤>
7
𝑗 𝐿>E1 𝑖, 𝑗 + 𝑤>
7
𝑖 𝑝>E1 𝑗
• 𝑳> 𝑖, 𝑗 = 0 ∀𝑖, 𝑗
• 𝑳> 𝑖, 𝑗 = 0 ∀𝑖
• 𝑳> 𝑖, 𝑖 = 0 ∀𝑖: 자기 자신으로의 링크는 무시됨 (계산하기 어려움)
Temporal memory linkage
• 𝐿>를 정의하기 위해서 𝒑> ∈ Δ.가 필요
• 각 𝒑>[𝑖]는 어느 i가 마지막으로 쓰여졌는가의 정도를 나타냄
• 𝒑k = 0
• 𝒑> = 1 − ∑ 𝒘>
7
𝑖/ 𝒑>E1 + 𝐰¯
°
• 𝑳> 𝑖, 𝑗 = 1 − 𝑤>
7
𝑖 − 𝑤>
7
𝑗 𝐿>E1 𝑖, 𝑗 + 𝑤>
7
𝑖 𝑝>E1 𝑗
• 𝑳> 𝑖, 𝑗 = 0 ∀𝑖, 𝑗
• 𝑳> 𝑖, 𝑗 = 0 ∀𝑖
• 𝑳> 𝑖, 𝑖 = 0 ∀𝑖: 자기 자신으로의 링크는 무시됨 (계산하기 어려움)
Temporal memory linkage
• 𝐿> : 특정 메모리에서 이전 or 이후에 얼마나 읽었는지의 정도
• Backward weighting 𝑏>
/	
∈ Δ. = 𝐿>
“
𝑤>E1
x,/
• Forward weighting 𝑓>
/	
∈ Δ. = 𝐿> 𝑤>E1
x,/
Sparse link matrix

More Related Content

PDF
강화 학습 기초 Reinforcement Learning an introduction
PPTX
Q Learning과 CNN을 이용한 Object Localization
PDF
[머가]Chap11 강화학습
PDF
Reinforcement learning v0.5
PDF
파이썬과 케라스로 배우는 강화학습 저자특강
PDF
RLCode와 A3C 쉽고 깊게 이해하기
PDF
강화학습 알고리즘의 흐름도 Part 2
PDF
Lecture 2: Supervised Learning
강화 학습 기초 Reinforcement Learning an introduction
Q Learning과 CNN을 이용한 Object Localization
[머가]Chap11 강화학습
Reinforcement learning v0.5
파이썬과 케라스로 배우는 강화학습 저자특강
RLCode와 A3C 쉽고 깊게 이해하기
강화학습 알고리즘의 흐름도 Part 2
Lecture 2: Supervised Learning

What's hot (20)

PDF
Lecture 4: Neural Networks I
PDF
Lecture 3: Unsupervised Learning
PPTX
Dsh data sensitive hashing for high dimensional k-nn search
PDF
Code로 이해하는 RNN
PPTX
한국인공지능연구소 강화학습랩 결과보고서
PDF
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
PPTX
Variational AutoEncoder(VAE)
PPTX
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
PPTX
Generative adversarial network
PDF
강화학습의 흐름도 Part 1
PPTX
Deep learning study 1
PDF
2018 06-11-active-question-answering
PDF
가깝고도 먼 Trpo
PPTX
neural network 기초
PPTX
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
PDF
DL from scratch(6)
PDF
DL from scratch(4~5)
PDF
DL from scratch(1~3)
PDF
R_datamining
PPTX
Chapter 8 - optimization for training deep models
Lecture 4: Neural Networks I
Lecture 3: Unsupervised Learning
Dsh data sensitive hashing for high dimensional k-nn search
Code로 이해하는 RNN
한국인공지능연구소 강화학습랩 결과보고서
강화학습 기초부터 DQN까지 (Reinforcement Learning from Basics to DQN)
Variational AutoEncoder(VAE)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
Generative adversarial network
강화학습의 흐름도 Part 1
Deep learning study 1
2018 06-11-active-question-answering
가깝고도 먼 Trpo
neural network 기초
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
DL from scratch(6)
DL from scratch(4~5)
DL from scratch(1~3)
R_datamining
Chapter 8 - optimization for training deep models
Ad

Viewers also liked (20)

PDF
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
PDF
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
PDF
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
PDF
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
PDF
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
PDF
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
PDF
[Pycon 2015] 오늘 당장 딥러닝 실험하기 제출용
PDF
Kgc2012 온라인 게임을 위한 게임 오브젝트 설계
PDF
2015 py con word2vec이 추천시스템을 만났을때
PPTX
딥러닝프레임워크비교
PDF
인공지능을 위한 뇌과학
PDF
[한국어] Multiagent Bidirectional- Coordinated Nets for Learning to Play StarCra...
PPTX
Concurrent Programming (Java thread 다루기)
PDF
기술적분석 16 trix
PDF
파이썬으로 익히는 딥러닝
PDF
4차산업혁명
PDF
기계 학습의 현재와 미래
PDF
1차시 smart education
PDF
[BIZ+005 스타트업 투자/법률 기초편] 첫 투자를 위한 스타트업 기초상식 | 비즈업 조가연님
PDF
주식 기술적 분석#3 (추세선)
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[Pycon 2015] 오늘 당장 딥러닝 실험하기 제출용
Kgc2012 온라인 게임을 위한 게임 오브젝트 설계
2015 py con word2vec이 추천시스템을 만났을때
딥러닝프레임워크비교
인공지능을 위한 뇌과학
[한국어] Multiagent Bidirectional- Coordinated Nets for Learning to Play StarCra...
Concurrent Programming (Java thread 다루기)
기술적분석 16 trix
파이썬으로 익히는 딥러닝
4차산업혁명
기계 학습의 현재와 미래
1차시 smart education
[BIZ+005 스타트업 투자/법률 기초편] 첫 투자를 위한 스타트업 기초상식 | 비즈업 조가연님
주식 기술적 분석#3 (추세선)
Ad

Similar to Differentiable Neural Computer (20)

PPTX
Vectorized processing in_a_nutshell_DeView2014
PPTX
MRC recent trend_ppt
PPTX
면접 대비 벡터, CS 개념과 사례
PDF
7가지 동시성 모델 - 데이터 병렬성
DOCX
TestBCD2013-1(answer)
PDF
[아꿈사/110528] 멀티코어cpu이야기 5,6장
PDF
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
PDF
Let's geek! (1)
PDF
신경망 첫걸음 - 한빛미디어 요약
PDF
딥러닝기본-신경망기초
PPTX
Interrupt @atmega
PPTX
Interrupt @atmega
PPTX
컴퓨터개론04
PPTX
Neural network (perceptron)
PDF
프로그래머가 알아야 하는 메모리 관리 기법
PDF
Neural turing machine
PPTX
Cpu basic
PDF
서울대학교 2017 SNUPC 문제 - Advanced
PPTX
C++ stl
PDF
밑바닥부터시작하는딥러닝 Ch2
Vectorized processing in_a_nutshell_DeView2014
MRC recent trend_ppt
면접 대비 벡터, CS 개념과 사례
7가지 동시성 모델 - 데이터 병렬성
TestBCD2013-1(answer)
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
Let's geek! (1)
신경망 첫걸음 - 한빛미디어 요약
딥러닝기본-신경망기초
Interrupt @atmega
Interrupt @atmega
컴퓨터개론04
Neural network (perceptron)
프로그래머가 알아야 하는 메모리 관리 기법
Neural turing machine
Cpu basic
서울대학교 2017 SNUPC 문제 - Advanced
C++ stl
밑바닥부터시작하는딥러닝 Ch2

More from Taehoon Kim (10)

PDF
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
PDF
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
PDF
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
PDF
Random Thoughts on Paper Implementations [KAIST 2018]
PDF
카카오톡으로 여친 만들기 2013.06.29
PDF
Continuous control with deep reinforcement learning (DDPG)
PDF
Dueling network architectures for deep reinforcement learning
PDF
Deep Reasoning
PDF
쉽게 쓰여진 Django
PDF
영화 서비스에 대한 생각
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
Random Thoughts on Paper Implementations [KAIST 2018]
카카오톡으로 여친 만들기 2013.06.29
Continuous control with deep reinforcement learning (DDPG)
Dueling network architectures for deep reinforcement learning
Deep Reasoning
쉽게 쓰여진 Django
영화 서비스에 대한 생각

Differentiable Neural Computer

  • 2. V : vector H : header
  • 6. 3 types of Attention 1. Content lookup (뭐랑 비슷한가) • 데이터 사이에 연관성(유사도)을 고려 2. Temporal links (누구랑 친한가) • 인풋의 정보를 읽고 연속적인 데이터를 가져옴 3. Allocation (어디다 넣을 것인가) • Write header에게 빈 공간을 알려줌
  • 7. 메모리 𝑀 • 미분 가능한 어텐션을 주소를 찾는데 사용 • 주소라기 보단 distribution이라고 이해하는게 좋음 • 컴퓨터는 discrete한 메모리 주소를 사용 • Weightings = 주소 • 𝑀은 𝑁×𝑊 크키의 행렬
  • 8. 읽기와 쓰기 • 𝒘 (weighting) : 어떤 장소가 얼마나 수정이 되는지 • 읽기 : 𝒓 = ∑ 𝑀 𝑖,+ 𝒘 𝒓 [𝑖]. /01 , (‘+’는 𝑗 = 1, … , 𝑊 모두를 의미) • 𝒓 (read vector) : 각 메모리에 weighting을 곱하고 더하면 • 𝒘 𝒓 (read weighting) • 쓰기 : 𝑀 𝑖, 𝑗 ← 𝑀 𝑖, 𝑗 1 − 𝒘7 𝑖 𝑒 𝑗 + 𝒘7 𝑖 𝑣[𝑗]
  • 13. 매 시간 𝑡마다 1. Input V 𝑥> ∈ ℝA 를 데이터 혹은 환경으로부터 받음 2. Output V 𝑦> ∈ ℝC 를 벹어 target V 𝑧> ∈ ℝC 를 계산 • SL일 경우 𝑧> = predictive distribution • RL일 경우 𝑧> = action distribution
  • 14. 매 시간 𝑡마다 3. 메모리 𝑀>E1 ∈ ℝ.×F 에서 Read H를 사용해서 • R개의 read V 𝑟>E1 1 , … , 𝑟>E1 H 를 읽음 4. 메모리 𝑀>E1과의 상호작용을 정하는 interface V 𝜉>를 계산 • 𝒳> = [𝑥>; 𝑟>E1 1 ; … ; 𝑟>E1 H ] • 편의를 위해 read, input V를 붙여 하나의 controller input V를 정 의
  • 15. 네트워크 • 모든 뉴럴 네트워크를 𝒩로 사용할 수 있음 • 논문에서는 LSTM를 약간 바꾼 네트워크를 사용
  • 16. LSTM
  • 17. LSTM • 𝒊 𝒕 𝒍 = 𝜎 𝑊/ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏/ P • 𝒇 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏U P • 𝒐 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏W P • 𝑪 𝒕 𝒍 = 𝒊 𝒕 𝒍 ∗ tanh 𝑊^ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏^ P + 𝒇 𝒕 𝒍 ∗ 𝑪 𝒕E𝟏 𝒍 • 𝒉 𝒕 𝒍 = 𝒐 𝒕 𝒍 ∗ tanh 𝑪 𝒕 𝒍
  • 18. LSTM • 𝒊 𝒕 𝒍 = 𝜎 𝑊/ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏/ P • 𝒇 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏U P • 𝒐 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏W P • 𝑪 𝒕 𝒍 = 𝒊 𝒕 𝒍 ∗ tanh 𝑊^ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏^ P + 𝒇 𝒕 𝒍 ∗ 𝑪 𝒕E𝟏 𝒍 • 𝒉 𝒕 𝒍 = 𝒐 𝒕 𝒍 ∗ tanh 𝑪 𝒕 𝒍 Cell state는 정보를 빼거나 추가할 때 사용된다 Input gate Forget gate Output gate
  • 19. • 𝒊 𝒕 𝒍 = 𝜎 𝑊/ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏/ P • 𝒇 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏U P • 𝒐 𝒕 𝒍 = 𝜎 𝑊U P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏W P • 𝑪 𝒕 𝒍 = 𝒊 𝒕 𝒍 ∗ tanh 𝑊^ P 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏^ P + 𝒇 𝒕 𝒍 ∗ 𝑪 𝒕E𝟏 𝒍 • 𝒉 𝒕 𝒍 = 𝒐 𝒕 𝒍 ∗ tanh 𝑪 𝒕 𝒍 𝑪 𝟎 𝟎 𝒙 𝟏 = 𝒉 𝟏 E𝟏 𝒉 𝟎 𝟎 𝒐 𝟏 𝟎 𝒇 𝟏 𝟎 𝒊 𝟏 𝟎 𝒈 𝟏 𝟎 𝑪 𝟏 𝟎 𝒉 𝟏 𝟎 𝑪 𝟏 𝟏 𝒉 𝟏 𝟏 𝑪 𝟎 𝟏 𝒉 𝟎 𝟏 𝒐 𝟏 𝟏 𝒇 𝟏 𝟏 𝒊 𝟏 𝟏 𝒈 𝟏 𝟏
  • 20. Controller Network 𝒩 𝓧 𝒕 𝓋𝒕, 𝝃 𝒕
  • 21. Controller Network 𝒩 • 𝒊 𝒕 𝒍 = 𝜎 𝑊/ P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏/ P • 𝒇 𝒕 𝒍 = 𝜎 𝑊U P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏U P • 𝒐 𝒕 𝒍 = 𝜎 𝑊W P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏W P • 𝒔 𝒕 𝒍 = 𝑖> P ∗ tanh 𝑊^ P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏^ P + 𝑓> P ∗ 𝒔 𝒕E𝟏 𝒍 • 𝒉 𝒕 𝒍 = 𝑜> P ∗ tanh 𝒔 𝒕 𝒍 𝓧 𝒕 𝒉 𝒕 𝒍E𝟏 𝒉 𝒕E𝟏 𝒍
  • 22. 𝒔 𝟎 𝟏 𝒉 𝟏 𝟎𝒙 𝟏 𝒉 𝟎 𝟏 𝒐 𝟏 𝟏 𝒇 𝟏 𝟏 𝒊 𝟏 𝟏 𝒈 𝟏 𝟏 𝒔 𝟏 𝟏 𝒉 𝟏 𝟏 𝒔 𝟏 𝟐 𝒉 𝟏 𝟐 𝒔 𝟎 𝟐 𝒉 𝟎 𝟐 𝒐 𝟏 𝟐 𝒇 𝟏 𝟐 𝒊 𝟏 𝟐 𝒈 𝟏 𝟐 𝑴 𝟎 • 𝒊 𝒕 𝒍 = 𝜎 𝑊/ P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏/ P • 𝒇 𝒕 𝒍 = 𝜎 𝑊U P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏U P • 𝒐 𝒕 𝒍 = 𝜎 𝑊W P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏W P • 𝒔 𝒕 𝒍 = 𝑖> P ∗ tanh 𝑊^ P 𝓧 𝒕; 𝒉 𝒕E𝟏 𝒍 ; 𝒉 𝒕 𝒍E𝟏 + 𝑏^ P + 𝑓> P ∗ 𝒔 𝒕E𝟏 𝒍 • 𝒉 𝒕 𝒍 = 𝑜> P ∗ tanh 𝒔 𝒕 𝒍 … ℎ> k = 0 …ℎk P = 0 𝒳1
  • 23. 𝒔 𝟎 𝟏 𝒉 𝟏 𝟎𝒙 𝟏 𝒉 𝟎 𝟏 𝒐 𝟏 𝟏 𝒇 𝟏 𝟏 𝒊 𝟏 𝟏 𝒈 𝟏 𝟏 𝒔 𝟏 𝟏 𝒉 𝟏 𝟏 𝒔 𝟏 𝟐 𝒉 𝟏 𝟐 𝒔 𝟎 𝟐 𝒉 𝟎 𝟐 𝒐 𝟏 𝟐 𝒇 𝟏 𝟐 𝒊 𝟏 𝟐 𝒈 𝟏 𝟐 𝑴 𝟎 𝑪 𝟎 𝟎 𝒉 𝟎 𝟎 𝒐 𝟏 𝟎 𝒇 𝟏 𝟎 𝒊 𝟏 𝟎 𝒈 𝟏 𝟎 𝑪 𝟏 𝟎 𝒉 𝟏 𝟎 𝑪 𝟏 𝟏 𝒉 𝟏 𝟏 𝑪 𝟎 𝟏 𝒉 𝟎 𝟏 𝒐 𝟏 𝟏 𝒇 𝟏 𝟏 𝒊 𝟏 𝟏 𝒈 𝟏 𝟏 𝒙 𝟏 = 𝒉 𝟏 E𝟏 𝒳1
  • 24. Controller Network 𝒩 • 모든 𝒕에 대해서 𝒉 𝒕 𝟎 = 𝟎 • 모든 𝒕에 대해서 𝒉 𝟎 𝒍 = 𝟎 • 매 시간 controller는 두개의 값을 벹어냄 • Output V 𝓋> = 𝑊m ℎ> 1 ; … ; ℎ> n • Interface V 𝜉> ∈ ℝ F×o pqFprHpq = 𝑊s ℎ> 1 ; … ; ℎ> n 𝝃 𝒕 𝒗 𝒕
  • 25. 𝒔 𝟎 𝟏 𝒉 𝟏 𝟎𝒙 𝟏 𝒉 𝟎 𝟏 𝒐 𝟏 𝟏 𝒇 𝟏 𝟏 𝒊 𝟏 𝟏 𝒈 𝟏 𝟏 𝒔 𝟏 𝟏 𝒉 𝟏 𝟐 𝒔 𝟎 𝟐 𝒉 𝟎 𝟐 𝒐 𝟏 𝟐 𝒇 𝟏 𝟐 𝒊 𝟏 𝟐 𝒈 𝟏 𝟐 𝑴 𝟎 𝒉 𝟐 𝟎𝒙 𝟐 𝒉 𝟏 𝟏 𝒐 𝟐 𝟏 𝒇 𝟐 𝟏 𝒊 𝟐 𝟏 𝒈 𝟐 𝟏 𝒔 𝟐 𝟏 𝒉 𝟐 𝟏 𝒔 𝟐 𝟐 𝒉 𝟐 𝟐 𝒔 𝟏 𝟐 𝒐 𝟐 𝟐 𝒇 𝟐 𝟐 𝒊 𝟐 𝟐 𝒈 𝟐 𝟐 𝑴 𝟏 𝓋 𝟏 𝜉 𝟏 𝓋 𝟐 𝜉 𝟐 𝒚 𝟏 𝒚 𝟐 𝑴 𝟐
  • 26. Controller Network 𝒩 • (𝓋>, 𝜉>) = 𝒩 𝒳1; … ; 𝒳> ; 𝜃 • 𝒳> = [𝑥>; 𝑟>E1 1 ; … ; 𝑟>E1 H ] • 만약 recurrent가 아니라 feedforward였다면, • (𝓋>, 𝜉>) = 𝒩 𝒳>; 𝜃 • 𝑦> = 𝓋> + 𝑊x 𝒓𝒕 𝟏 ; … ; 𝒓𝒕 𝑹 , 𝑊x ∈ ℝC×HF • 𝒓𝒕 𝟏 ; … ; 𝒓𝒕 𝑹 를 추가해 방금 읽은 메모리를 보고 결과를 만들도록 함
  • 27. Interface parameters • Interface V 𝜉>는 메모리 상호작용을 결정하는 파라미터들로 구성됨 • 각 파라미터는 함수들에 의해 가질 수 있는 값의 범위가 조절됨 • logistic sigmoid function : [0,1] 사이의 값 • ‘Oneplus’ function : 1, ∞ 사이의 값 • 𝑜𝑛𝑒𝑝𝑙𝑢𝑠 𝑥 = 1 + 𝑙𝑜𝑔(1 + 𝑒ƒ )
  • 28. Interface parameters • 𝑅개의 read key 𝑘> x,/ ∈ ℝF; 1 ≤ 𝑖 ≤ 𝑅 • 𝑅개의 read strength {𝛽> x,/ = 𝑜𝑛𝑒𝑝𝑙𝑢𝑠(𝛽> x,/ ) ∈ [1, ∞); 1 ≤ 𝑖 ≤ 𝑅} • write key 𝑘> 7 ∈ ℝ7 • wright strength 𝛽> 7 = 𝑜𝑛𝑒𝑝𝑙𝑢𝑠 𝛽> 7 ∈ [1, ∞) • 𝑅개의 free gates {𝑓> / = 𝜎 𝑓> / ∈ [0,1]; 1 ≤ 𝑖 ≤ 𝑅}
  • 29. Interface parameters • 𝑅개의 free gates {𝑓> / = 𝜎 𝑓> / ∈ [0,1]; 1 ≤ 𝑖 ≤ 𝑅} • allocation gate 𝑔> Š = 𝜎 𝑔> Š ∈ [0,1] • write gate 𝑔> 7 = 𝜎 𝑔> 7 ∈ [0,1] • 𝑅개의 read modes {𝜋> / = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝜋> / ∈ 𝒮q; 1 ≤ 𝑖 ≤ 𝑅}
  • 30. 메모리 읽고 쓰기 • 얼마나 읽고 쓸지는 weightings에 의해 결정 • 각 벡터들은 양수이며, 모든 값의 합은 최대 1 • ∆.= 𝛼 ∈ ℝ. : 𝛼/ ∈ 0,1 , ∑ 𝛼/ . /01 ≤ 1 • 읽기: 𝑅개의 read weightings 𝑤> x,1 , … , 𝑤> x,H ∈ ∆. 이 사용 • 𝑟> / = 𝑀> “ 𝑤> x,/ ∈ ℝF • 읽어진 read vector들은 다음 time-step에 입력으로 사용
  • 31. 메모리 읽고 쓰기 • 쓰기 : 𝑀> = 𝑀>E1 ∘ 𝐸 − 𝒘 𝒕 𝒘 𝒆 𝒕 “ + 𝒘 𝒕 𝒘 𝒗 𝒕 “ • 하나의 write weighting 𝑤> 7 ∈ Δ. • Erase V 𝑒> ∈ 0,1 F , Write V 𝑣> ∈ ℝF • ∘는 element-wise multiplication을 의미 • 𝐸 ∈ ℝ.×F 는 1만으로 구성된 행렬
  • 32. 메모리 addressing • 쓰기 • Content-based addressing + dynamic memory allocation • 읽기 • Content-based addressing + temporal memory linkage
  • 33. Content-based addressing 𝒞 𝑀, 𝒌, 𝛽 𝑖 = exp 𝒟 𝒌, 𝑀[𝑖,+] 𝛽 ∑ exp 𝒟 𝒌, 𝑀[𝑗,+] 𝛽Ÿ • Lookup key : 𝒌 ∈ ℝF • Key strength: 𝛽 ∈ 1, ∞ • 𝒟 𝑢, 𝑣 = +¡ ¡ (cosine similarity)
  • 34. Content-based addressing • Weighting 𝒞 𝑀, 𝒌, 𝛽 ∈ 𝒮¢은 메모리 위치에 대한 normalized된 확률 분포 • normalized : 벡터 값들의 합이 1 • Read H, write H 모두에 사용됨
  • 35. Dynamic memory allocation • Controller가 메모리를 필요한 만큼 할당하고 free하기 위해 • 사용 가능한 메모리 주소들을 free list라는 리스트에 저장 • 𝒖> ∈ 0,1 . : memory usage vector • 𝒖k = 𝟎 • 메모리에 쓰기 전에 controller는 각각의 read head마다 하나씩 free gate 𝑓> / 들을 벹고 읽어진 메모리들이 free될지 안될지를 결정
  • 36. Dynamic memory allocation • 𝜓> ∈ 0,1 . 는 한 메모리가 얼마나 free 되지 않을지를 나타냄 • 𝜓> = ∏ 𝟏 − 𝑓> / 𝑤>E1 x,/H /01 • Usage vector 𝒖> = 𝒖>E1 + 𝑤>E1 7 − 𝒖>E1 ∘ 𝑤>E1 7 ∘ 𝜓> • 𝒖> = 𝒖>E1 ∘ 1 − 𝑤>E1 7 + 𝑤>E1 7 ∘ 𝜓> • 사용되었다 = 사용 중이다 (높은 𝒖) or 방금전에 쓰여졌다 (낮은 𝒖) • 𝜓> 𝑖 ≈ 1, free gate에 의해 유지된다는 의미 • 모든 write는 usage를 증가시킨다 • 메모리는 오직 free gate 𝑓> / 에 의해 비워질 수 있다
  • 37. Dynamic memory allocation • 𝑢>가 정해지고 나면 free list 𝜙> ∈ ℤ. 가 정해진다 • 𝜙>: 메모리 index를 usage가 증가하는 방향으로 정렬 • 𝜙>[1]은 가장 적게 사용된 index • Allocation weighting 𝒂𝒕 ∈ Δ.는 새로 쓸 index를 계산 • 만약 𝒖 𝒕 = 𝟏라면 𝒂> = 𝟎 𝒂𝒕 𝜙> 𝑗 = 1 − 𝒖𝒕 𝜙> 𝑗 ª 𝒖𝒕 𝜙> 𝑖 ŸE1 /01
  • 38. Write weighting • Controller는 새로운 메모리 혹은 content에 의해 결정된 위 치에 쓸 수 있고, 아얘 쓰지 않겠다고 결정할 수 있음 • Write content weighting 𝒄𝒕 𝒘 ∈ 𝒮. • 𝒄𝒕 𝒘 = 𝒞 𝑀>E1, 𝒌𝒕 𝒘 , 𝛽> 7
  • 39. Write weighting • Write weighting 𝑤> 7 ∈ Δ. • 𝒘 𝒕 𝒘 = 𝑔> 7 𝑔> Š 𝒂𝒕 + 1 − 𝑔> Š 𝒄𝒕 𝒘 • 𝑔> 7 ∈ [0,1] : write gate. 0일 경우 아무것도 쓰지 않음 • 𝑔> Š ∈ 0,1 : allocation gate • 어디에 쓸 것인가, 새로운 곳? 혹은 Context로 찾은곳?
  • 40. Temporal memory linkage • Memory allocation은 어떤 순서로 메모리가 써졌는지 모른다 • 하지만 순서를 기억해 둬야할 상황이 있다 • Temporal link matrix 𝐿> ∈ 0,1 .×. • 𝐿>[𝑖, 𝑗]는 주소 j 이후에 i에 얼마나 쓰여졌는가를 나타냄 • 𝐿> 𝑖,+ ∈ Δ., 𝐿> +, 𝑗 ∈ Δ.
  • 41. Temporal memory linkage • 𝐿>를 정의하기 위해서 𝒑> ∈ Δ.가 필요 • 각 𝒑>[𝑖]는 어느 i가 마지막으로 쓰여졌는가의 정도를 나타냄 • 𝒑k = 0 • 𝒑> = 1 − ∑ 𝒘> 7 𝑖/ 𝒑>E1 + 𝐰¯ ° • 𝑳> 𝑖, 𝑗 = 1 − 𝑤> 7 𝑖 − 𝑤> 7 𝑗 𝐿>E1 𝑖, 𝑗 + 𝑤> 7 𝑖 𝑝>E1 𝑗 • 𝑳> 𝑖, 𝑗 = 0 ∀𝑖, 𝑗 • 𝑳> 𝑖, 𝑗 = 0 ∀𝑖 • 𝑳> 𝑖, 𝑖 = 0 ∀𝑖: 자기 자신으로의 링크는 무시됨 (계산하기 어려움)
  • 42. Temporal memory linkage • 𝐿>를 정의하기 위해서 𝒑> ∈ Δ.가 필요 • 각 𝒑>[𝑖]는 어느 i가 마지막으로 쓰여졌는가의 정도를 나타냄 • 𝒑k = 0 • 𝒑> = 1 − ∑ 𝒘> 7 𝑖/ 𝒑>E1 + 𝐰¯ ° • 𝑳> 𝑖, 𝑗 = 1 − 𝑤> 7 𝑖 − 𝑤> 7 𝑗 𝐿>E1 𝑖, 𝑗 + 𝑤> 7 𝑖 𝑝>E1 𝑗 • 𝑳> 𝑖, 𝑗 = 0 ∀𝑖, 𝑗 • 𝑳> 𝑖, 𝑗 = 0 ∀𝑖 • 𝑳> 𝑖, 𝑖 = 0 ∀𝑖: 자기 자신으로의 링크는 무시됨 (계산하기 어려움)
  • 43. Temporal memory linkage • 𝐿> : 특정 메모리에서 이전 or 이후에 얼마나 읽었는지의 정도 • Backward weighting 𝑏> / ∈ Δ. = 𝐿> “ 𝑤>E1 x,/ • Forward weighting 𝑓> / ∈ Δ. = 𝐿> 𝑤>E1 x,/