♻️

Can You Learn an Algorithm? Generalizing from Easy to Hard Problems with Recurrent Networks

Tags
General
Created
2021/10/12 10:01
Publication
Rate
4.1
Summary
보통 사람은 쉬운 문제를 배우고 나면, “조금 더 오래 생각함으로써” 같은 종류의 더 어려운 문제를 풀어낼 수 있다. 하지만 딥러닝 모델은 보통 그러지 못하는데, 네트워크의 구조가 사전에 미리 정해져있기 때문이다. 이로 인해 기존의 딥러닝 모델들은 “조금 더 오래 생각함으로써 학습한 것보다 더 어려운 문제를 풀어내는 일”이 불가능하다고 평가되어왔다. 이러한 상황에서 이번 페이퍼는 recurrent model을 통해, recurrent module의 iteration을 늘림으로써, 모델이 “더 오래 생각하게” 할 수 있다고 주장하며, 이를 입장하기 위한 실험을 진행한다.
보통 사람은 쉬운 문제를 배우고 나면, “조금 더 오래 생각함으로써” 같은 종류의 더 어려운 문제를 풀어낼 수 있다. 하지만 딥러닝 모델은 보통 그러지 못하는데, 네트워크의 구조가 사전에 미리 정해져있기 때문이다. 이로 인해 기존의 딥러닝 모델들은 “조금 더 오래 생각함으로써 학습한 것보다 더 어려운 문제를 풀어내는 일”이 불가능하다고 평가되어왔다.
이러한 상황에서 이번 페이퍼는 recurrent model을 통해, recurrent module의 iteration을 늘림으로써, 모델이 “더 오래 생각하게” 할 수 있다고 주장하며, 이를 입장하기 위한 실험을 진행한다. 굉장히 흥미롭다!

Dataset Descriptions

위의 주장을 입증하기 위해 기본적으로 세 가지의 문제 - 1) prefix sums, 2) maze, 3) chess - 를 준비하여, 상대적으로 쉬운 데이터셋으로 학습된 모델이, 학습 데이터셋보다 더 어려운 문제를 얼마나 잘 풀어내는지를 실험한다.

Model Architectures & Training

기본적으로 ResNet 모델을 사용하는데, recurrent 모델은 first layer와 last layer 사이에 input dimension과 output dimenstion이 동일한 recurrent module을 끼워 넣는다. 그리하여 effective depth가 같은 vanilla ResNet 모델과 recurrent ResNet 모델의 성능을 비교한다.

Recurrent Networks Can Generalize from Easy to Hard Problems

Prefix sums

40~60의 effective depth를 가진 모델을, 32-bit input strings의 prefix sums 문제로 학습시킨 후, 40-bit 혹은 44-bit strings의 prefix sums 문제로 테스트한다.
아래 표를 보면 같은 effective depth라면 recurrent 모델이 더 좋은 성능을 보임을 확인할 수 있고,
심지어 아래 그래프를 보면 동일한 모델이라도 iteration이 많아질수록 어려운 문제에 대한 generalization 성능이 좋아지는 경향성이 뚜렷함을 확인할 수 있다.
다음의 결과도 꽤나 흥미로운데, 그래프를 보면 1) iteration이 지남에 따라 점점 답을 찾아가고 있고, 심지어 2) iteration에 따라 순차적으로 (earlier-bit to later-bit) 문제를 풀어가는 것을 발견할 수 있다!

Mazes

마찬가지로 아래 그래프를 보면 같은 effective depth 내에서 recurrent model이 harder problem에 대한 generalization 성능이 더 좋은 것을 확인할 수 있고,
역시나 test time iteration을 늘릴수록 더 어려운 문제를 잘 풀어나가는 모습을 확인할 수 있었고,
Iteration을 거듭할수록 순차적으로 문제를 풀어나가는 모습 역시 확인할 수 있었다!

Chess

이하 생략
기존에 만나지 못했던 어려운 문제를 만나면 "조금 더 오래 생각함으로써" 문제를 풀어내는 인간의 뇌와, recurrent model을 더 많이 iteration함으로써 더 어려운 문제를 풀어낼 수 있는 딥러닝 모델 사이에는 분명히 어떤 상관 관계가 있어보인다. 종종 딥러닝 모델과 인간의 뇌를 비교하고 고민하면서 "모델이 풀고자 하는 문제에 따라 모델의 구조를 그 때 그 때 유연하게 조정할 수 있으면 얼마나 좋을까?" 하는 생각들을 많이 했었는데, 이에 대한 힌트를 주는 것 같아서 매우 재밌다!
E.O.D.