순환 신경망을 위한 적응적 연산 시간 (Adaptive Computation Time, ACT)

개요

신경망은 쉬운 입력이든 어려운 입력이든 똑같은 양의 계산을 쓴다. 층 수나 시퀀스 길이를 실험자가 미리 정해 두기 때문이다. 사람은 “17+25”와 페르마의 정리에 같은 시간을 쓰지 않는데, 네트워크는 그렇게 한다. 이 논문의 통찰은 “몇 번 더 생각할지”라는 이산적인 결정을 확률 분포로 풀어 버리면 **미분 가능한 halting(정지 결정)**을 만들 수 있다는 것이다. 매 내부 단계마다 시그모이드 **halting unit(지금 멈출 확률을 내는 출력 하나)**의 값을 더해 가다가 합이 1−ε를 넘으면 멈추고, 그동안 나온 상태와 출력을 이 확률로 가중 평균(mean-field)한다. 동전을 던져 멈출지 정하는 확률적 방식과 달리 샘플링 잡음이 없어서, 멈춤 결정이 길게 이어져도 기울기가 흔들리지 않는다. 그냥 두면 네트워크는 틀리지 않으려고 끝없이 생각하므로, 생각한 횟수에 비례하는 **ponder cost(숙고 비용)**를 손실에 τ만큼 더해 “정확도 대 속도”를 저울질하게 한다. 효과는 컸다. 64비트 parity 문제에서 ACT 없는 RNN은 평균 오류가 거의 40%(무작위 50%)였지만, 시간 벌점이 작은 ACT 네트워크는 5% 미만이었다(본문은 τ ≤ 0.03이라고 쓰지만 그래프와는 어긋난다, 아래 Figure 4). 덧셈 과제에서는 모든 τ 값에서 완벽히 풀었고, 가장 효율적인 네트워크는 자릿수 하나당 계산 한 단계를 쓰는 긴 덧셈 알고리즘처럼 행동했다. 반면 위키백과 문자 예측에서는 성능 이득이 크지 않았다. 대신 네트워크가 단어 사이 공백과 마침표·쉼표 같은 경계에서 더 오래 생각하는 패턴이 드러났다.

Implication: 계산량을 고정된 설계값이 아니라 학습되는 변수로 바꿀 수 있다는 것을 처음 보인 논문이다. 같은 블록을 입력마다 다른 횟수로 반복한다는 생각은 이후 Universal Transformer의 깊이 방향 ACT, 그리고 looped transformer의 적응적 halting 논의로 이어진다. 다만 τ를 손으로 골라야 하고 결과가 그 값에 민감하다는 약점이 함께 넘어간다.

📎 https://arxiv.org/abs/1603.08983

배경과 문제

왜 어려운가. 신경망의 “계산 시간”은 층에서 층으로 넘어가는 변환의 횟수다. 피드포워드 네트워크에서는 깊이(층 수)가, 순환 신경망(RNN, 같은 가중치를 시간 축으로 되풀이해 쓰는 네트워크)에서는 입력 시퀀스 길이가 그 횟수를 정한다. 깊이를 늘리면 성능이 오른다는 증거, 시퀀스를 늘려도 이득이 있다는 결과가 이미 있었다. 그런데 입력 하나에 얼마의 계산을 줄지는 여전히 실험자가 미리(a priori) 정해야 했다(Section 1, author-stated).

기존 대안과 그 한계 (Section 1, author-stated):

  • 모든 네트워크를 아주 깊게 만들고 기울기 소실(vanishing gradient)을 완화하는 구조를 쓴다. 효율과 학습 용이성 면에서 입력마다 계산량을 바꾸는 편이 낫다고 저자는 본다.
  • 멈춤을 이진 샘플로 정하는 확률적 halting(Attend-Infer-Repeat 류, 참고문헌 [7]). 기울기를 확률적으로 추정해야 하고, 멈춤 결정이 길게 이어지면 샘플링 잡음이 누적된다(정책 경사법에서 관찰된 문제).
  • Self-Delimiting Neural Networks [26, 30]. halting 뉴런이 있지만 단순한 활성 임계값으로 결정하며 멈춤 시간에 대한 기울기가 전달되지 않는다.
  • 더 넓게는 정책에 따라 네트워크 일부를 켜고 끄는 conditional computation(조건부 연산) [3, 6]의 한 형태로 볼 수 있다.

이 논문의 위치. “필요한 최소 단계 수”를 정확히 찾는 것은 데이터의 Kolmogorov complexity(데이터를 만드는 가장 짧은 프로그램의 길이)를 구하는 것, 즉 halting problem을 푸는 것과 같아서 불가능하다고 저자는 말한다. 그래서 손실에 시간 비용을 더하는 실용적 방법을 택한다(Section 1). ACT는 결정적(deterministic)이고 미분 가능하며 파라미터 기울기에 잡음을 더하지 않는다는 점이 차별점이다(Abstract).

계보 연결 (analyst-inference): 같은 상태 전이 함수 S를 한 입력에 여러 번 적용한다는 점에서 ACT는 “가중치 공유 + 반복 깊이”라는 생각의 초기 형태다. 저자 스스로 각 중간 단계마다 다른 파라미터를 쓰면 “파라미터 수 증가와 계산 단계 증가의 구분이 흐려진다”며 공유를 택했다(Section 2). 이 구분이 이후 looped transformer 연구의 핵심 질문이 된다.

지표

지표무엇을 세는가단위·범위방향분모·정규화측정 조건원문 위치
Sequence error rate(시퀀스 오류율)출력 시퀀스 전체에서 하나라도 틀린 예제의 비율0–1낮을수록 좋음예제 수로 나눔4개 합성 과제. 데이터는 온라인 생성이라 별도 검증 split 없음. 학습 종료 시점 값을 τ별 20개 네트워크 평균으로 보고Section 3
Bits per character(BPC, 문자당 비트)출력 예측의 평균 log-loss비트/문자낮을수록 좋음문자(바이트) 수로 평균Hutter prize Wikipedia. 검증 세트 없이 학습 세트에서 기록(네트워크가 과적합하지 못했다는 이유)Section 3, 3.5
Ponder(ρ, 숙고 시간)입력 한 단계당 평균 계산 단계 수. ρ_t = N(t) + R(t)최소 1성능 지표가 아니라 비용 축 (같은 오류면 낮을수록 효율적)입력 단계 수로 평균그래프 x축으로 사용. 실제 단계 수는 ρ_t를 올림한 값Eq. (10), Figure 5 캡션, Figure 15 캡션

방법과 벤치마크 구성

기본 RNN (Eq. 1–2). 상태 , 출력 . LSTM이면 메모리 셀까지, Neural Turing Machine이면 메모리 내용까지 상태에 포함한다.

Keypoint in Figure2 - juhyeon

이 논문에서 말하고 싶은 건, 기존의 RNN 구조에서 hidden state를 time-step별로 업데이트했는데, 여기에 축을 하나 더해서, input이 고정되어도 더 깊게 생각하는 축 N 방향으로 고려해보자.
그림에서 N 방향으로 고민할 때에는 추가적 input이 없고, 이건 순수하게 현재까지 들어온 input만으로 생각했을 때, 더 오래 고민할 수 있는 파트.
이걸 depth N을 동적으로 할 수 있게 하자가 ACT에서 주장하고 싶은 바.

ACT가 바꾸는 것 (Section 2).

  1. 반복 업데이트. 입력 단계 t에서 상태 전이를 N(t)번 한다. 첫 업데이트만 이전 시점 상태 s_{t−1}에서 출발하고, 이후는 직전 중간 상태에서 출발한다(Eq. 3). 입력에는 “방금 새 입력이 들어왔다”는 이진 플래그를 붙여, 같은 입력을 반복해 보는 것과 새 입력을 구분하게 한다. 상태 함수와 출력 가중치는 모든 중간 단계가 공유한다.
  2. halting unit. (Eq. 5).
  3. 멈춤 시점. h를 누적해 1−ε 이상이 되는 첫 n이 N(t)다(Eq. 7). 마지막 단계의 확률은 남은 몫 이다(Eq. 8). 그러면 확률들이 합 1인 분포가 된다. ε=0.01은 첫 단계에서 바로 멈출 수 있게 하는 작은 상수다. ε이 없으면 매 입력마다 최소 2번 업데이트가 필요하다.
  4. mean-field 결합. 최종 상태와 출력은 중간 상태·출력을 이 확률로 가중합한 것이다(Eq. 9). 상태들이 대략 선형적이라는 가정이 깔려 있으며, 저자는 학습이 수렴하면 확률이 한 값에 몰려 이 가정이 무의미해진다고 논증한다(Section 2, author-stated).
  5. ponder cost. , 손실 (Eq. 10–12). P는 실제로 줄이고 싶은 총 계산량 Σ N(t)의 상한이다.
  6. 안전장치. 학습 초반의 과도한 반복을 막으려 b_h를 양수로 초기화하고, 최대 반복 M을 둔다(Eq. 13).
  7. 기울기. N(t)가 바뀌는 지점에서 ponder cost는 불연속이다. 실제로는 N(t)를 상수로 보고 R(t)만 최소화한다(Section 2.2, Eq. 14–20). 감사의 글에서 이전 버전이 이 비용을 “매끄럽다”고 잘못 썼음을 정정한다.
  8. 기각한 대안 (각주 1, author-stated). h를 “단계 n에서 멈출 확률”로 직접 보고 기대 숙고 시간을 벌점으로 쓰면, 네트워크가 “편법(cheat)“을 학습했다. 첫 단계 h를 임계 바로 아래로 두고 한참 0을 내다가 마지막에 멈추면서, 마지막 상태 벡터의 크기를 키워 결합을 지배하게 만든 것이다.

halting 정리하기 - juhyeon

time-step t가 고정일 때, 모델은 더 깊이 여러 번 생각할 수 있다.(N 방향으로.)
다음 time-step으로 넘어가는 부분은 매 n별로, halting-prob(이번에 멈추고 다음으로 넘어갈 확률)을 계산하고 누적한다. (물통에 물 를 조금씩 채우다, 1.0 채우면 나머지는 버리는 형식)
그리고, 우리가 정해둔 thrshold를 만족하면 더 깊게 생각하지 않고, 다음 time-step으로 넘어가는 형식.
이때, halting은 매 n별 sigmoid로 계산해 확률 범위를 가지고 누적을 하는데,

  1. 확률을 매번 계산하고 누적하다 보니 0.3, 0.4, 0.5 이렇게 나와 어느 단계에서는 1을 넘을 수도 있다.
    논문에서는 이를 remainder로 처리하여, 마지막 0.5를 잘라서 0.3으로 취급(합이 1이되게)
    그러면 궁금한 건, 0.2, 0.9 로 나오고 threshold가 0.5였다면?
    이렇게 하는 이유는
    1.통일되게 1이라는 값으로 만들지 않으면 t라는 time-step별로 halting 확률 총합이 달라, normalization 측면에서 불균형
    2.학습에서 줄이고 싶은 원래 objective는 이지만, discrete하기 때문에 대신, 정의한 를 사용함. ponder-cost 식에서 이니까, 매끄럽게 gradient를 흘려줄 수 있는 장점이 있음.
    3.저자들도 이렇게 절단말고, 누적이 자연스럽게 되는 형태로도 해봤는데, 모델이 short-cut 행위를 보임. 즉, n을 늘릴때마다 단순 누적하지 않고, 매 step sigmoid output 자체를 누적으로 사용하려고 하면, 멈추고 싶은 step 직전까지는 0 근처의 확률을 찍어내다가, 멈출 step에서는 .99를 찍는 행동을 보임,

공통 실험 설정 (Section 3). 모든 과제는 이산 목표·cross-entropy 지도학습. Adam(lr 10⁻⁴), Hogwild! 비동기 학습 16 스레드, b_h 초기값 1, ε = 0.01. 합성 과제는 1M iteration(스레드당 가중치 업데이트 1회가 1 iteration, 총 업데이트는 약 16배), 문자 예측은 10K iteration. early stopping 없음. τ는 i × 10⁻ʲ(i = 1–10, j = 1–4; 언어모델은 j = 1–3) 로그 격자 탐색, τ마다 무작위 초기화 네트워크 20개. M은 기본 100이며, 모든 실험에서 학습된 N(t)는 M보다 훨씬 작았다.

과제별 구성.

과제입력 → 목표네트워크기타원문
Parity64차원 벡터 하나(1–64개 원소가 ±1, 나머지 0) → 1의 개수 홀짝단순 RNN, tanh 128 유닛, 시그모이드 출력 1개minibatch 128. ACT 없으면 순환 연결이 안 쓰여 1층 피드포워드와 같아짐3.1
Logic102차원 벡터 1–10개. 앞 2원소는 비트, 나머지 10칸에 B개(1–10) 논리 게이트 one-hot → 게이트를 차례로 적용한 결과 비트. 이전 결과를 다음 벡터로 넘겨야 함LSTM 128 셀, 시그모이드 출력minibatch 16. 게이트 10종은 Table 13.2
Addition50차원 벡터 1–5개, 각 1–5자리 수의 one-hot → 누적합을 6자리 동시 분류(크기 11 softmax)LSTM 512 셀minibatch 32, M = 203.3
Sort표준정규 실수 2–15개를 하나씩 입력 → 오름차순 인덱스 시퀀스LSTM 512 셀, 크기 15 softmaxminibatch 16. 정보를 벡터 하나에 압축하지 않는, 더 자연스러운 순차 표현3.4
Wikipedia원시 바이트(XML 포함) 500개 시퀀스 → 다음 바이트LSTM 1500 셀, 크기 256 softmax시퀀스마다 상태 0 초기화3.5

Baseline은 같은 구조의 ACT 없는 네트워크다(그래프의 “No ACT”/“Without ACT”).

주요 결과

주장근거 위치관찰/수치조건·주의출처 라벨
ACT 없이는 parity를 안정적으로 못 푼다Section 3.1, Figure 4ACT 없음: 평균 오류 거의 40% (무작위 50%). τ ≤ 0.03: 평균 오류 5% 미만64비트, 단순 RNN 128 유닛. 그래프(Figure 4)상 5% 미만 구간은 τ ≤ 0.003 정도로 보여 본문 수치와 불일치 (analyst-inference)author-stated
낮은 τ일수록 parity를 더 빠르고 정확하게 풀지만 숙고 시간의 분산이 크다Section 3.1, Figure 5낮은 τ 네트워크의 ponder 분산이 “매우 큼” → 실행 시간이 다른 정답 해가 여럿저자는 입력을 점점 큰 덩어리로 나눠 홀짝을 결합한다고 추측author-stated (해석은 speculation)
성공한 네트워크는 문제 난이도에 비례해 더 생각한다Section 3.1, Figure 6중간 τ: ponder가 비트 수에 대략 선형 증가. ACT 없음·높은 τ: ponder는 거의 일정하고 오류가 급증최고 네트워크도 난이도에 따라 오류가 다소 증가. 일부 최저 τ는 32비트 이후 ponder 급증(비효율적 알고리즘 시사)author-stated
Logic 과제는 τ ≤ 0.01에서 사실상 오류 0Section 3.2, Figure 8ACT 없음 최소 오류 약 0.2 (무작위 0.5). τ ≤ 0.01 사실상 0높은 τ에서는 ponder가 1로 줄어 ACT 없는 네트워크와 동일author-stated
낮은 τ는 logic을 빨리 배운다Section 3.2, Figure 9약 10,000 iteration에 해결. 최저 τ 네트워크는 ponder 5–6에 모임(시퀀스당 평균 게이트 수와 비슷)ponder 퍼짐이 커서 계산 비용 편차가 큼author-stated
Logic에는 난이도 5를 경계로 두 가지 풀이 체계가 있어 보인다Section 3.2, Figure 10게이트 1개일 때 일부 네트워크가 10단계 넘게 숙고. 5–10 게이트에선 난이도에 따라 ponder 점진 증가. ACT 없음·높은 τ는 5 게이트 이후 오류 급증”5개가 합성 연산으로 외울 수 있는 상한일 수 있다”는 추측author-stated (speculation)
Addition은 ACT라면 모든 τ에서 완벽히 푼다Section 3.3, Figure 12모든 τ에서 오류 0. 이례적으로 높은 τ가 더 적은 학습 예제로 해결ACT 없음 오류는 그래프상 약 0.43 (analyst-inference, 그래프 판독)author-stated
효율적인 덧셈 네트워크는 자릿수당 1단계를 쓴다Section 3.3, Figure 14, 15대부분 ACT 네트워크에서 ponder–자릿수 관계가 대략 선형, 최고 τ에서 기울기 ≈ 1Figure 15는 τ = 9e−4 네트워크 하나author-stated
Sort에서도 이득은 있지만 비싸다Section 3.4, Figure 17, 18오류 약 12% (ACT 없음) → 약 6% (최적 τ). 최고 네트워크는 ACT 없는 네트워크의 약 9배 계산앞 세 과제와 달리 정보를 한 벡터에 압축하지 않은, ACT에 덜 유리한 설정author-stated
Sort 오류는 길이에 따라 모든 네트워크에서 급증한다Section 3.4, Figure 19좋은 네트워크는 길이에 대해 단계당 계산이 sublinear 증가. 로그 시간 알고리즘인지는 불분명가우스 표본이 서로 매우 가까운 경우가 어려움의 원인 중 하나로 지목됨author-stated
Sort 숙고는 입력 끝 근처에 몰린다Section 3.4, Figure 20입력 끝 근처(정확히 끝은 아님)에 큰 spike. 길이 5보다 긴 두 시퀀스에서 spike가 훨씬 높음τ = 10⁻³ 네트워크 하나author-stated
문자 언어모델에서는 성능 이득이 작다 (부정 결과)Section 3.5, Figure 21, 22ACT 유무·τ에 따른 BPC가 꽤 비슷. 학습 곡선상 ACT가 다소 더 데이터 효율적. 입력당 ponder가 다른 과제보다 훨씬 낮음학습 세트 기준 BPC, 10K iteration, τ 격자 j = 1–3author-stated
ACT는 단어·문장 경계에서 더 오래 생각한다Section 3.5, Figure 23공백에서 멈추고, 쉼표·마침표 같은 경계 문자에서 더 오래 숙고τ = 6e−3 네트워크. 저자는 다음 “덩어리”를 예측하는 데 쓰인다고 추측author-stated (해석은 speculation)
숙고 시간은 loss·entropy보다 구조와 잡음을 잘 구분할 수 있다Section 3.5, Figure 24XML 태그 여는 괄호에서 숙고 증가. 예측 불가능한 ID 숫자에서는 숙고가 늘지 않음(loss·entropy는 높음)“희망한다(hopeful)” 수준의 주장. 정량 비교 없음author-stated
기대 숙고 시간을 벌점으로 쓰면 네트워크가 편법을 학습한다각주 1정성적 서술 (수치 없음)실험 세부는 보고되지 않았다author-stated

결과를 이어 읽으면 이렇다. ACT의 큰 이득은 정보를 벡터 하나에 압축해 넣어 여러 단계에 걸쳐 풀어야 하는 과제(parity·logic·addition)에서 나왔다. 저자도 이 세 과제가 “ACT에 유리하게 설계되었다”고 인정한다(Section 3.4). 더 자연스러운 순차 표현인 sort에서는 이득이 줄고 비용이 커졌다. 실제 데이터인 언어모델에서는 성능보다 해석(경계 탐지)에서 가치가 드러났다. 모든 과제에서 τ에 따라 행동이 크게 달라진다는 점이 일관된다.

Take-home

핵심 메시지. 시그모이드 halting 확률의 누적합과 ponder cost만으로, RNN이 입력마다 몇 번 반복할지를 경사하강법으로 배울 수 있다. 그리고 그 학습된 반복 횟수는 문제 난이도(비트 수, 자릿수, 게이트 수)를 따라간다.

성립 범위. 4개 합성 과제(작은 단층 RNN/LSTM, 128–512 유닛)와 1개 문자 단위 언어모델(LSTM 1500 셀). Transformer나 대규모 모델에서는 이 논문에서 확인되지 않았다.

저자가 인정한 한계 (author-stated):

  • 시간 벌점 τ를 손으로 골라야 하고 행동이 그 값에 민감하다(Section 1, 2.1, 4). 자동으로 정하는 방법은 향후 과제다.
  • ponder cost는 N(t)가 바뀌는 지점에서 불연속이며, 기울기는 그 불연속을 무시한 근사다(Section 2.2).
  • 합성 과제 대부분은 ACT에 유리하게 설계되었다(Section 3.4).
  • 언어모델에서 성능 이득은 크지 않다(Abstract, Section 3.5).
  • Sort의 개선은 약 9배 계산을 대가로 얻었다(Section 3.4).

작성자가 보는 우려 (analyst-inference):

  • 언어모델 결과는 검증 세트 없이 학습 세트 BPC로 보고되었다. 과적합이 없었다는 저자 설명은 있지만 일반화 성능 비교로 읽으면 안 된다.
  • 경계 탐지 결과(Figure 23, 24)는 시퀀스 두 개를 보여 준 사례이고, loss·entropy보다 낫다는 정량 지표는 없다.
  • mean-field 결합은 상태가 대략 선형이라는 가정에 기대며, 저자는 근거를 논증으로만 제시한다.

재현성. τ마다 무작위 초기화 20개 네트워크로 평균과 표준오차를 보고한다(Section 3, Figure 4–5 캡션). 코드·데이터 공개 여부는 보고되지 않았다. 합성 데이터 생성 규칙과 하이퍼파라미터는 본문에 자세히 적혀 있다.

본문 도표

Figure 1 — 일반 RNN 계산 그래프

  • 무엇을 보여주는가: 두 입력 단계에 걸쳐 펼친(unrolled) 표준 RNN.
  • 읽는 법: 세로 점선이 입력 단계를 나눈다. 아래에서 x_t가 W_x로 들어가 상태 s_t가 되고, W_y로 출력 y_t가 나온다. 가로 화살표 S가 시간 방향 상태 전이다.
  • 핵심 관찰: W_x, W_y, S가 모든 단계에서 공유된다(캡션).
  • 의미와 주의: Figure 2와 나란히 보기 위한 기준 그림이다(author-stated).
  • 확인 상태: viewed

Figure 2 — ACT를 붙인 RNN 계산 그래프 ⭐

  • 무엇을 보여주는가: Figure 1과 같은 RNN에서 각 입력 단계의 상태·출력 계산이 가변 개수의 중간 업데이트로 펼쳐진 모습.
  • 읽는 법: 입력 단계마다 세 개의 둥근 상자가 있다. 가운데는 중간 상태 s¹…s^N, 왼쪽은 중간 출력 y¹…y^N, 오른쪽은 halting 값 h¹…h^N이다. 상자에 닿는 화살표는 상자 안 모든 유닛에 적용되는 연산, 상자를 떠나는 화살표는 상자 안 값의 합(가중합)을 뜻한다(캡션).
  • 핵심 관찰: 중간 상태들이 S로 위로 이어지고, W_h로 halting 값이, W_y로 중간 출력이 나온다. 가중합 결과가 s_t, y_t가 되어 다음 입력 단계로 넘어간다.
  • 의미와 주의: 하나의 상태 전이 S가 한 입력에 대해 여러 번 쓰이는 “가중치 공유 반복” 구조가 그림으로 드러난다. 깊이 방향으로 이것을 옮긴 것이 Universal Transformer라고 볼 수 있다(analyst-inference).
  • 확인 상태: viewed

Figure 3 — Parity 학습 예시

  • 무엇을 보여주는가: parity 과제의 입력-목표 한 쌍.
  • 읽는 법: 왼쪽 세로 벡터가 입력(64비트 중 8개만 표시), 오른쪽이 목표 하나.
  • 핵심 관찰: 입력 −1, 1, 1, −1, 1, 0, 0, 0 → 목표 1. 1의 개수(3개)가 홀수라 1이다.
  • 의미와 주의: 시퀀스가 아니라 벡터 하나가 한 번에 들어간다. 순차 알고리즘을 정적 입력에서 끌어내야 하는 과제임을 보여 준다(author-stated, Section 3.1).
  • 확인 상태: viewed

Figure 4 — Parity 오류율

  • 무엇을 보여주는가: 학습 종료 시점의 τ별 평균 시퀀스 오류율.
  • 읽는 법: x축은 τ(0.0001–0.1)와 맨 오른쪽 “No ACT”, y축은 시퀀스 오류율(0–0.40). 막대는 평균, 오차막대는 평균의 표준오차.
  • 핵심 관찰: No ACT 막대가 가장 높다(본문: 거의 40%). 본문은 “τ 0.03 이하에서 평균 오류 5% 미만”이라고 쓴다(Section 3.1). 그런데 그래프를 읽으면 5% 미만인 막대는 대략 τ ≤ 0.003 구간이고, τ = 0.004–0.02는 약 0.05–0.11, τ = 0.03은 약 0.2다(analyst-inference, 그래프 판독). 본문 문장과 그래프가 어긋나 보인다(본문의 0.03이 0.003의 오기일 가능성은 작성자 추측). 원문 그래프로 직접 확인할 것.
  • 의미와 주의: τ에 따라 성패가 갈린다는, 이 논문 전체의 τ 민감성을 처음 보여 주는 그림이다.
  • 확인 상태: viewed

Figure 5 — Parity 학습 곡선과 오류율 대 숙고 시간

  • 무엇을 보여주는가: 왼쪽은 학습 곡선, 오른쪽은 학습 후 오류율과 평균 숙고 시간의 관계.
  • 읽는 법: 왼쪽 x축은 iteration(작업자당 업데이트 수, 0–1M), y축은 시퀀스 오류율. 옅은 선은 개별 run, 굵은 선은 τ별 20 run 평균. 오른쪽 x축 Ponder(입력 단계당 평균 계산 단계, 최소 1), y축 오류율. 작은 원은 개별 run, 큰 원은 τ별 평균, 타원의 높이·폭은 오류율·ponder의 표준오차. 검은 점선은 ACT 없는 평균 오류. 색은 τ(보라=작음, 빨강=큼).
  • 핵심 관찰: 파란·보라 계열(낮은 τ)이 더 빨리, 더 낮은 오류로 수렴한다. 오른쪽에서 빨강 계열은 ponder 1 근처에 높은 오류로 몰리고, 보라 계열은 ponder 2–7 범위에 넓게 퍼져 오류가 낮다(analyst-inference, 그래프 판독).
  • 의미와 주의: 저자는 낮은 τ 네트워크의 ponder 분산이 크다는 것을 “실행 시간이 다른 정답 해가 여럿 발견된다”는 뜻으로 읽는다(author-stated).
  • 확인 상태: viewed

Figure 6 — Parity 숙고 시간·오류율 대 난이도

  • 무엇을 보여주는가: 입력 난이도(홀짝을 셀 비트 수)에 따른 ponder와 오류율.
  • 읽는 법: x축 난이도(약 1–64비트), 왼쪽 y축 ponder, 오른쪽 y축 오류율. 데이터점마다 무작위 벡터 1,000개 평균. 옅은 선은 개별, 굵은 선은 20개 평균.
  • 핵심 관찰: 중간 τ에서 ponder가 난이도에 따라 대략 선형으로 늘고, τ가 작을수록 기울기가 커진다. ACT 없음·높은 τ는 ponder가 거의 일정하고 오류가 약 10비트 이후 0.5 근처까지 오른다(analyst-inference, 그래프 판독). 한 보라색 선은 약 32비트에서 ponder가 계단처럼 급등한다.
  • 의미와 주의: “어려울수록 더 생각한다”를 직접 보여 주는 그림이다. 최저 τ의 급등은 저자가 비효율적 알고리즘의 신호로 해석한다(author-stated).
  • 확인 상태: viewed

Table 1 — Logic 과제의 이진 진리표

  • 무엇을 보여주는가: logic 과제에 쓰는 10개 이진 게이트(NOR, Xq, ABJ, XOR, NAND, AND, XNOR, if/then, then/if, OR)의 진리표.
  • 읽는 법: 행은 입력 P, Q의 네 조합(TT, TF, FT, FF), 열은 게이트별 출력.
  • 핵심 관찰: 예를 들어 NOR는 FF에서만 T, XOR는 TF·FT에서 T다. 입력 벡터의 one-hot 인덱스(1–10)가 이 표의 열을 가리킨다.
  • 의미와 주의: 과제 정의용 표이며 실험 결과가 아니다.
  • 확인 상태: viewed

Figure 7 — Logic 학습 예시

  • 무엇을 보여주는가: 입력·목표 모두 벡터 3개로 된 logic 시퀀스 한 쌍.
  • 읽는 법: 왼쪽 입력 벡터는 아래부터 입력 비트, Gate 1, Gate 2 칸으로 나뉜다. 단순화를 위해 게이트 2개, Table 1의 처음 3종(NOR, Xq, ABJ)만 표시. 목표 위 기울임 글씨는 Eq. (21)을 재귀 적용한 계산.
  • 핵심 관찰: 목표 시퀀스는 0, 1, 0이고, 예컨대 둘째 벡터는 Xq(F,T) = T로 계산된다.
  • 의미와 주의: 이전 벡터의 결과 비트 b₀가 입력에는 0으로 들어가지만 계산에는 쓰인다. 그래서 네트워크가 내부 상태로 정보를 넘겨야 한다(author-stated, Section 3.2).
  • 확인 상태: viewed

Figure 8 — Logic 오류율

  • 무엇을 보여주는가: τ별 logic 과제 평균 시퀀스 오류율.
  • 읽는 법: Figure 4와 같은 형식. y축 0–0.25.
  • 핵심 관찰: τ ≤ 0.01 구간 막대는 사실상 0. τ = 0.02부터 오류가 생겨 τ가 클수록 커지고, No ACT는 약 0.2다(본문 “around 0.2”).
  • 의미와 주의: parity보다 넓은 τ 구간(0.0001–0.01)에서 완벽에 가깝다.
  • 확인 상태: viewed

Figure 9 — Logic 학습 곡선과 오류율 대 숙고 시간

  • 무엇을 보여주는가: Figure 5와 같은 형식의 logic 결과.
  • 읽는 법: Figure 5 참조. 오른쪽 검은 점선은 ACT 없는 평균 오류(약 0.2).
  • 핵심 관찰: 낮은 τ 네트워크는 아주 빨리 오류 0에 도달한다(본문: 약 10,000 iteration). 오른쪽에서 오류 0인 점들이 ponder 약 2–14에 넓게 퍼져 있고, 최저 τ는 5–6 근처에 모인다.
  • 의미와 주의: 저자는 ponder 5–6이 시퀀스당 평균 게이트 수와 비슷하다는 점을 들어, 한 번에 게이트 하나씩 계산하는 최소 해로 해석한다(author-stated, speculation).
  • 확인 상태: viewed

Figure 10 — Logic 숙고 시간·오류율 대 난이도

  • 무엇을 보여주는가: 입력 벡터당 게이트 수(1–10)에 따른 ponder와 오류율. 모든 시퀀스 길이는 5.
  • 읽는 법: 왼쪽 y축 ponder, 오른쪽 y축 오류율. x축 난이도.
  • 핵심 관찰: 가장 쉬운 입력(게이트 1–2개)에서 오히려 ponder가 높고 일부는 10단계 이상이다. 5–10 게이트에서는 ponder가 서서히 오른다. 오른쪽에서 ACT 없음·높은 τ의 오류는 5 게이트 이후 급등해 10 게이트에서 약 0.45에 이른다(analyst-inference, 그래프 판독).
  • 의미와 주의: 두 영역에서 서로 다른 풀이가 학습된 것으로 저자는 해석한다. “5개까지는 합성 연산으로 외우고 그 뒤엔 반복 알고리즘”이라는 설명은 추측이다(author-stated).
  • 확인 상태: viewed

Figure 11 — Addition 학습 예시

  • 무엇을 보여주는가: 덧셈 과제의 입력-목표 예.
  • 읽는 법: 입력은 수 하나당 벡터 하나(자리마다 크기 10 one-hot, 안 쓰는 자리는 ’-’). 목표의 검은 벡터는 첫 단계에 목표가 없음을 뜻하고, ’*‘는 수가 끝났음을 뜻하는 11번째 클래스.
  • 핵심 관찰: 입력 1038, 392, 68450 → 목표는 (없음), 1430, 69880. 누적합이다.
  • 의미와 주의: 누적합을 다음 단계로 넘겨야 하므로 내부 상태가 일관되어야 한다(author-stated, Section 3.3).
  • 확인 상태: viewed

Figure 12 — Addition 오류율

  • 무엇을 보여주는가: τ별 덧셈 과제 평균 시퀀스 오류율.
  • 읽는 법: Figure 4와 같은 형식. y축 0–0.45.
  • 핵심 관찰: 모든 τ에서 막대가 0이고 No ACT만 약 0.43으로 높다(analyst-inference, No ACT 값은 그래프 판독).
  • 의미와 주의: 격자 안 모든 τ에서 “완벽히 풀었다”는 본문 주장의 근거(author-stated).
  • 확인 상태: viewed

Figure 13 — Addition 학습 곡선과 오류율 대 숙고 시간

  • 무엇을 보여주는가: Figure 5 형식의 덧셈 결과.
  • 읽는 법: Figure 5 참조.
  • 핵심 관찰: 왼쪽에서 ACT 네트워크는 약 200,000 iteration 안에 0으로 떨어지고, 빨강(높은 τ)이 가장 먼저 떨어진다. ACT 없음(검정)은 1M iteration에도 약 0.4에 머문다(analyst-inference, 그래프 판독). 오른쪽에서 모든 ACT 평균점은 오류 0에서 ponder 약 1.5–12 범위에 줄지어 있다.
  • 의미와 주의: “높은 τ가 더 적은 학습 예제로 해결했다”는 본문 서술은 이례적이라고 저자도 쓴다(author-stated).
  • 확인 상태: viewed

Figure 14 — Addition 숙고 시간·오류율 대 난이도

  • 무엇을 보여주는가: 입력 벡터의 자릿수(1–5)에 따른 ponder와 오류율. 모든 시퀀스 길이 3.
  • 읽는 법: 왼쪽 y축 ponder(0–20), 오른쪽 y축 오류율(0–1).
  • 핵심 관찰: ACT 네트워크의 ponder는 자릿수에 대략 선형으로 늘고, 높은 τ(빨강)에서 기울기가 1에 가깝다. ACT 없음 오류는 1자리 약 0에서 5자리 약 0.97까지 오른다(analyst-inference, 그래프 판독). ACT 네트워크 오류는 바닥 근처에 머문다.
  • 의미와 주의: “자릿수당 계산 1단계”는 효율적 긴 덧셈 알고리즘에 대한 저자의 기대와 맞는다(author-stated).
  • 확인 상태: viewed

Figure 15 — 세 덧셈 시퀀스 동안의 숙고 시간

  • 무엇을 보여주는가: 한 네트워크(τ = 9e−4)가 실제 덧셈 시퀀스 3개를 처리할 때 단계별 ρ_t.
  • 읽는 법: 아래 x축 입력 수, 위 x축 출력 수. 검은 선 ρ_t(실제 단계 수는 올림), 회색 점선은 그 단계에서 더하는 두 수의 총 자릿수.
  • 핵심 관찰: 검은 선이 회색 선을 따라 오르내리며 대체로 그 위에 있다.
  • 의미와 주의: 회색 선이 숙고 시간의 대략적 하한으로 보여, 자릿수에 선형인 내부 알고리즘을 시사한다는 것이 저자의 해석이다(author-stated).
  • 확인 상태: viewed

Figure 16 — Sort 학습 예시

  • 무엇을 보여주는가: 정렬 과제의 입력-목표 예.
  • 읽는 법: 입력 벡터는 크기 2(실수 하나 + 시퀀스 끝 플래그). 검은 칸은 0 입력 또는 목표 없음. 목표는 정렬된 인덱스.
  • 핵심 관찰: 입력 −0.03, 1.08, −0.29, 0.55 → 목표 3, 1, 4, 2.
  • 의미와 주의: 수가 하나씩 들어오는 자연스러운 순차 표현이다. 앞 세 과제처럼 ACT에 유리하게 압축하지 않았다(author-stated, Section 3.4).
  • 확인 상태: viewed

Figure 17 — Sort 오류율

  • 무엇을 보여주는가: τ별 정렬 과제 평균 시퀀스 오류율.
  • 읽는 법: Figure 4와 같은 형식이지만 y축이 0.06부터 시작한다(0이 아님).
  • 핵심 관찰: No ACT 약 0.12, 최저점은 τ = 0.0005 부근 약 0.06(본문: “around 12% … around 6%”). τ가 커질수록 오류가 서서히 No ACT 쪽으로 오른다.
  • 의미와 주의: y축이 0에서 시작하지 않아 막대 높이 차이가 실제보다 커 보인다(analyst-inference).
  • 확인 상태: viewed

Figure 18 — Sort 학습 곡선과 오류율 대 숙고 시간

  • 무엇을 보여주는가: Figure 5 형식의 정렬 결과.
  • 읽는 법: Figure 5 참조.
  • 핵심 관찰: 학습 곡선은 τ 간 차이가 작다. 오른쪽에서 오류가 낮은 평균점은 ponder 약 4–10에 있다(analyst-inference, 그래프 판독).
  • 의미와 주의: 본문은 최고 네트워크가 ACT 없는 네트워크보다 약 9배 계산을 쓴다고 정리한다(author-stated). 오류 절반을 얻는 대가가 크다.
  • 확인 상태: viewed

Figure 19 — Sort 숙고 시간·오류율 대 난이도

  • 무엇을 보여주는가: 정렬할 시퀀스 길이(2–15)에 따른 ponder와 오류율.
  • 읽는 법: 왼쪽 y축 ponder, 오른쪽 y축 오류율.
  • 핵심 관찰: 모든 네트워크에서 오류가 길이에 따라 빠르게 늘어 길이 15에서 약 0.2–0.35(analyst-inference, 그래프 판독). 낮은 τ의 ponder는 길이에 따라 늘다가 완만해진다(sublinear).
  • 의미와 주의: 저자는 sublinear 증가가 로그 시간 알고리즘인지는 불분명하다고 쓴다(author-stated).
  • 확인 상태: viewed

Figure 20 — 세 정렬 시퀀스 동안의 숙고 시간

  • 무엇을 보여주는가: τ = 10⁻³ 네트워크가 길이가 다른 정렬 시퀀스 3개를 처리할 때의 ponder.
  • 읽는 법: 아래 x축 입력 실수, 위 x축 출력 인덱스. y축 ponder(패널마다 범위가 다름: 약 70, 100, 16).
  • 핵심 관찰: 입력이 끝나기 직전 근처에서 큰 spike가 있다(긴 두 시퀀스는 약 60과 약 100, 길이 5 시퀀스는 약 14; analyst-inference, 그래프 판독).
  • 의미와 주의: spike는 비교 대부분이 일어나는 지점일 것이라고 저자는 추정한다. 긴 시퀀스에서 spike가 훨씬 높아 길이에 비선형인 알고리즘을 시사한다(author-stated).
  • 확인 상태: viewed

Figure 21 — Wikipedia 오류율

  • 무엇을 보여주는가: τ별 문자 예측 BPC.
  • 읽는 법: x축 τ(0.001–0.1)와 No ACT, y축 BPC(1.50–1.60, 0에서 시작하지 않음).
  • 핵심 관찰: 막대가 약 1.53–1.59 사이에 흩어져 있고 τ에 따른 일관된 경향이 없다. No ACT는 약 1.58(analyst-inference, 그래프 판독).
  • 의미와 주의: 저자 요약은 “ACT 유무와 τ에 걸쳐 꽤 비슷하다”이다(author-stated). 축이 좁아 차이가 과장돼 보인다. 학습 세트 기준이다.
  • 확인 상태: viewed

Figure 22 — Wikipedia 학습 곡선(확대)과 오류율 대 숙고 시간

  • 무엇을 보여주는가: 2000–10000 iteration 구간 확대 학습 곡선과 BPC 대 ponder.
  • 읽는 법: Figure 5 형식. 오른쪽 ponder 축은 0.9–1.7.
  • 핵심 관찰: 입력당 ponder가 1.0–1.5 정도로 다른 과제보다 훨씬 낮다(analyst-inference, 그래프 판독). 학습 곡선상 ACT 네트워크가 다소 아래에 있다.
  • 의미와 주의: 저자는 ACT 네트워크가 “다소 더 데이터 효율적”이고, 추가 계산의 이점이 이 과제에서는 작다고 해석한다(author-stated).
  • 확인 상태: viewed

Figure 23 — Wikipedia 텍스트 구간의 숙고·loss·entropy

  • 무엇을 보여주는가: 문장 “and the many people caught in the middle of the two. In recent history, with scientists learning”을 처리하는 동안 문자별 예측 entropy(파랑), loss(빨강), ponder(검정). τ = 6e−3 네트워크.
  • 읽는 법: x축은 문자, 세 패널이 같은 x축을 공유.
  • 핵심 관찰: ponder는 단어 사이 공백마다 작게 솟고, “two.” 뒤 마침표·공백과 “history,” 뒤 쉼표에서 가장 높다. entropy·loss는 단어 안쪽 문자에서도 자주 높다.
  • 의미와 주의: 저자는 경계에서의 추가 계산이 다음 “덩어리”(단어·문장·절)를 예측하는 데 쓰인다고 추측하고, 사람의 자기조절 읽기 실험과 연결한다(author-stated). loss·entropy는 마침표·쉼표 뒤가 늘 공백이라 그 지점에서 오르지 않는다고 설명한다.
  • 확인 상태: viewed

Figure 24 — XML 태그가 있는 Wikipedia 구간의 숙고·loss·entropy

  • 무엇을 보여주는가: “United States security treaty 1157 15899658” 구간에서 같은 세 곡선. Figure 23과 같은 네트워크.
  • 읽는 법: Figure 23과 같음.
  • 핵심 관찰: ponder는 태그 여는 괄호 근처에서 솟는다. ID 숫자(1157, 15899658) 구간에서 entropy·loss는 높지만 ponder는 늘지 않는다.
  • 의미와 주의: 예측 불가능한 데이터에 계산을 더 써 봐야 예측이 나아지지 않으므로 숙고를 늘리지 않는다는 해석이다. 저자는 숙고 시간이 구조와 잡음을 구분하는 더 나은 신호가 되기를 “희망한다”고 쓴다(author-stated). 정량 비교는 없다.
  • 확인 상태: viewed

Wiki 연결

BibTeX

@article{graves2016adaptive,
  title   = {Adaptive Computation Time for Recurrent Neural Networks},
  author  = {Graves, Alex},
  journal = {arXiv preprint arXiv:1603.08983},
  year    = {2016}
}