Search
Duplicate

AI/ Copying Task, Selective Copying Task

Copying Task

Copying Task는 시퀀스 모델에 대해 장기 시퀀스를 저장하고 정확하게 기억하는 능력을 테스트하기 위해 방법으로 RNN(Recurrent Neural Network)을 테스트하기 위해 2016년에 Arjovsky, Shah, and Bengio에 의해 제안되었다.
Copying Task는 규칙을 다음처럼 구성할 수 있다. (여기서는 0-9의 숫자를 사용했지만 다른 값도 가능하다)
1.
다음과 같이 입력 시퀀스를 생성한다.
길이가 T인 시퀀스가 주어진다.
시퀀스의 처음 10개 요소는 1-8 사이의 임의의 숫자가 채워진다.
시퀀스의 11번째부터 T-10 번째까지의 요소는 모두 0으로 채워진다.
마지막 10개 요소는 모두 9로 채워진다.
2.
모델이 1의 입력 시퀀스에 대해 다음과 같은 결과를 갖는 출력 시퀀스를 생성한다.
1-8의 입력이 주어질 때 0을 출력하고 해당 입력을 순서대로 기억하고
0의 입력이 주어질 때 0을 출력하고 해당 입력을 무시
9의 입력이 주어질 때 1-8로 주어졌던 입력을 순서대로 출력
예컨대 30개의 입력 시퀀스가 다음과 같이 주어진다고 하자.
[3,1,4,1,5,9,2,6,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9]
Python
복사
위 입력이 주어질 때 모델은 위의 규칙대로 다음과 같이 출력해야 한다. 이것은 모델이 입력을 복사해야 하기 때문에 copying task라고 한다.
순서
입력
출력
1
3
0
2
1
0
3
4
0
4
1
0
5
5
0
6
9
0
7
2
0
8
6
0
9
5
0
10
3
0
11
0
0
...
...
20
0
0
21
9
3
22
9
1
23
9
4
24
9
1
25
9
5
26
9
9
27
9
2
28
9
6
29
9
5
30
9
3

Selective Copying Task

Selective Copying Task는 더 복잡한 Copying Task로 입력 시퀀스에서 특정 조건을 만족하는 것만 선택적으로 복사하는 능력을 테스트하는 방법이다. Copying이 장기 시퀀스를 저장하고 정확하게 기억하는 능력을 테스트하는 것에 더해 특정 조건까지 정확히 인식하는지를 테스트한다.
예컨대 위의 Copying Task 예제에 대해 입력 시퀀스에서 1이 전체 시퀀스에 불필요한 정보이기 때문에 무시해야 한다고 하자. 이 경우 출력은 다음과 같이 되어야 한다. (1을 무시 하고 그 다음 입력을 출력 함) 이는 모델이 입력을 선택적으로 복사해야 하기 때문에 selective copying task라고 한다.
순서
입력
출력
1
3
0
2
1
0
3
4
0
4
1
0
5
5
0
6
9
0
7
2
0
8
6
0
9
5
0
10
3
0
11
0
0
...
...
20
0
0
21
9
3
22
9
4
23
9
5
24
9
9
25
9
2
26
9
6
27
9
5
28
9
3
29
9
0
30
9
0