learning to remember rare events

13
Learning to Remember Rare Events Łukasz Kaiser, Ofir Nachum Google Brain 자자자자 : 자자자

Upload: -

Post on 12-Apr-2017

924 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Learning to remember rare events

Learning to Remember Rare Events

Łukasz Kaiser, Ofir NachumGoogle Brain

자료정리 : 김홍배

Page 2: Learning to remember rare events

논문을 한마디로 정리하면제목만 보면 도대체 뭔 소리인지 ?

주 내용은 Matching Networks for One Shot Learning 에 메모리 기능을 추가

Page 3: Learning to remember rare events

일반적인 이미지 분류작업

Feature Extractor

Fully Connected Layers

Classifier

일반적인 이미지 분류작업의 경우 , 다음과 같이 NN 을 구성하여 훈련을 통하여 parameter 를 tuning 한다 .

Page 4: Learning to remember rare events

여기서는 기존에 아주 잘 훈련된 Feature Extractor 와 FCL 를 활용 FCL 의 마지막 Layer 로부터 이미지에 대한 Feature Vector 를 얻는다 Feature Vector 또는 query, q 를 메모리 겸 분류기에 입력

Feature Extractor

Fully Connected Layers

Memory &Classifier

Feature Vector, q

Page 5: Learning to remember rare events

메모리의 구조K[1] V[1] A[1]

K[2] V[2] A[2]

.

...

.

.K[i] V[i] A[i]

.

...

.

.K[n] V[n] A[n]

M[1]

M[2]

.

.M[i]

.

.M[n]

=

i 번째 메모리 M[i] 는 다음과 같이 3 개의 요소로 구성K[i] : i 번째 memory feature(key) vector, normalized one ІІ K[i] ІІ=1, ϵ R1xkey size

V[i] : i 번째 memory class indicator, integerA[i] : i 번째 memory cell age, integer

Page 6: Learning to remember rare events

메모리 작동원리

q K[1]∙ V[1] A[1]

q K[2]∙ V[2] A[2]

.

...

.

.q K[i]∙ V[i] A[i]

.

...

.

.q K[n]∙ V[n] A[n]

• 주어진 이미지에 대한 Feature vector 를 FCL 로부터 받아 이를 Query, q(normalized one, ІІqІІ=1, , ϵ R1xkey size ) 로 메모리에 전달하면• 메모리 셀에 있는 Key vector, K[i] 와 유사도 (Cosine Similarity) 를 계산한다 .

q 와 K[i] 가 유사하면 ~1 이고 , 관계없으면 ~0

• 만약 q K[i]∙ 가 가장 큰 값이면 , 주어진 이미지의 class 는 V[i]

Page 7: Learning to remember rare events

작동 예• 만약 0 ~ 9 까지의 10 digits 을 분류하는 작업을 예로 들면• “5” 를 입력할 경우 , class “5” 에 해당하는 Key vector, K[6] 와 query의 유사도가 가장 큰 값을 나타낼 것이며

K[1] “0” A[1]

K[2] “1” A[2]

K[3] “2” A[3]

K[4] “3” A[4]

K[5] “4” A[5]

K[6] “5” A[6]

K[7] “6” A[7]

K[8] “7” A[8]

K[9] “8” A[9]

K[10] “9” A[10]

5 q

Page 8: Learning to remember rare events

작동 예• 만약 0 ~ 9 까지의 10 digits 을 분류하는 작업을 예로 들면• “7” 를 입력할 경우 , class “7” 에 해당하는 Key vector, K[8] 와 query의 유사도가 가장 큰 값을 나타낼 것 K[1] “0” A[1]

K[2] “1” A[2]

K[3] “2” A[3]

K[4] “3” A[4]

K[5] “4” A[5]

K[6] “5” A[6]

K[7] “6” A[7]

K[8] “7” A[8]

K[9] “8” A[9]

K[10] “9” A[10]

7 q

Page 9: Learning to remember rare events

메모리 Tuning• 앞과 같이 작동되기 위해서는 메모리가 Tuning 이 잘 된 경우• 메모리 Tuning 은 어찌해야 하나 ?• 우선 주어진 이미지에 따라 계산된 query, q 와의 유사도에 따라 다음과 같이 메모리의 key vector 간 k 개의 Nearest Neighbors 를 계산한다 .

(n1, n2, ….., nk)= NNk(q,M)

n1> n2> …..> nk

Page 10: Learning to remember rare events

메모리 Tuning

즉 주어진 이미지가 class V[n1] 에 해당하는 경우이다 .

• query, q 가 주어질 경우 , 다음과 같은 2 경우가 존재한다 .

Case 1) 메모리 내에 q 와 유사한 key vector 가 존재하는 경우

이 경우 , n1 에 해당하는 메모리의 key vector 만 update 한다 .

두 벡터의 normalized 평균값으로 대체또한 갱신되었으므로 age 를 reset 시켜준다 .

Page 11: Learning to remember rare events

메모리 Tuning• query, q 가 주어질 경우 , 다음과 같은 2 경우가 존재한다 .

Case 2) 메모리 내에 q 와 유사한 key vector 가 존재하는지 않는 경우이 경우 , 메모리에 새로운 key vector 와 class 를 저장하여야 함 .

어디에 저장하여야 하나 ?

가장 오래된 ( 즉 사용빈도가 가장 낮은 ) 메모리에 저장

* 메모리 갱신이 끝나면 모든 메모리의 age 를 +1 시켜준다 .

Page 12: Learning to remember rare events

메모리 Loss 의 정의• 여기서 Loss 는 단지 Performance Indicator 역할• 메모리의 성능은 분류대상 이미지가 메모리에 저장된 class 에 되도록 많이 포함될 수록 좋게 나타나도록 즉 분류대상에 대한 정보를 많이 가질 수록 성능이 좋다 !

V[np] : 기존의 class 에 포함된 경우 , positive neighborV[nb] : 기존의 class 에 포함되지않은 경우 , negative neighbor

Query 와 negative neighbor 사이의 유사도 되도록 작게 Query 와 positive neighbor 사이의 유사도 되도록 크게

Page 13: Learning to remember rare events

실험결과 : Omniglot dataset

• 기존의 메모리를 사용한 onse-shot learning 에 비하여 우수한 성능을 나타냄 .