복습 일정이 정해지는 방식
어떤 카드는 내일 돌아오고 다른 카드는 여덟 달 뒤에 돌아오는 이유, 그리고 최적화 도구가 내 복습 기록에서 배우는 것.
Read Frog는 오픈소스 간격 반복 알고리즘인 FSRS로 일정을 잡습니다. 이 페이지는 그것이 무엇을 왜 하는지에 대한 이야기이고, 어떤 값을 넣어야 하는지는 학습 설정을 보세요.
카드마다 세 가지 수치
FSRS는 각 카드에 대한 기억을 작은 모델로 유지하며, 그 모델은 세 가지 양으로 이루어집니다.
- 기억 안정성 — 이 카드가 얼마나 오래 외운 상태로 남는지입니다. 구체적으로는, 회상 확률이 약 90%로 떨어지기까지 며칠이 지날 수 있는지입니다. 새 카드의 안정성은 분 단위이고, 1년 동안 알고 있던 카드의 안정성은 개월 단위입니다.
- 난이도 — 이 카드가 나에게 얼마나 어려운지입니다. 다시나 어려움으로 답하면 올라가고, 쉬움으로 답하면 천천히 내려가며, 성공한 복습 한 번의 가치를 좌우합니다. 어려운 카드의 안정성은 쉬운 카드의 안정성보다 더 느리게 자랍니다.
- 회상 확률 — 지금 당장 이 카드를 떠올릴 수 있을 확률입니다. 복습 직후에는 거의 확실에서 시작해 그때부터 떨어지며, 안정성이 낮은 카드일수록 빠르게 떨어집니다.
저장되는 것은 안정성과 난이도뿐입니다. 회상 확률은 이 둘과 카드를 마지막으로 본 뒤 지난 시간에서 계산됩니다.
간격은 어디에서 나오나
다음 예정일은 그 카드의 회상 확률이 설정한 기억 유지율까지 떨어질 것으로 예측되는 시점입니다. 기본값은 90%입니다.
이 한 문장이 눈에 띄는 동작 대부분을 설명합니다.
- 간격은 지난 간격에 곱하는 배수가 아닙니다. 매번 카드의 새 안정성에서 다시 계산됩니다.
- 목표 기억 유지율을 올리면 모든 간격이 짧아집니다. 예측 곡선이 더 높은 값에 더 빨리 닿기 때문입니다.
- 안정성이 거의 움직이지 않은 카드는 좋음을 아무리 참을성 있게 눌러도 지난번보다 시간을 거의 더 받지 못합니다.
안정성을 움직이는 것은 내 답입니다. 오랜 공백 뒤에 떠올린 카드에 누른 좋음은 안정성을 크게 움직입니다. 그 긴 공백 자체가 기억이 튼튼했다는 증거이기 때문입니다. 마지막으로 본 지 10분 뒤의 같은 좋음은 거의 움직이지 않습니다. 방금 읽은 것을 떠올렸다는 사실은 거의 아무것도 증명하지 못하기 때문입니다.
다시, 어려움, 좋음, 쉬움을 친절하게가 아니라 솔직하게 써야 하는 이유도 그것입니다. 이 네 개가 입력 전부입니다. 실제로는 버벅이면서 늘 좋음을 누른 카드는, 그 카드를 잘 아는 사람에게 맞춰진 간격을 받습니다.
첫날, 그리고 어긋날 때
완전히 새 카드는 애초에 일(日) 단위를 받지 않습니다. 같은 세션 안에서 짧은 두 단계를 걷습니다. 약 1분, 그다음 약 10분입니다. 그래서 카드가 진짜 간격으로 떠나기 전에 몇 번 보게 됩니다. 세션 헤더의 학습 중 숫자가 바로 이것입니다. 그 단계를 지나는 중인 카드들입니다.
진짜 간격까지 올라온 카드에 다시로 답하는 것은 망각입니다. 카드는 10분 단계로 되돌아가고, 안정성은 떨어지고, 난이도는 올라갑니다. 그 뒤 더 낮은 지점에서 다시 올라가기 때문에, 잊어버린 카드 하나가 겉보기 진척 몇 주를 삼킬 수 있습니다.
계속 잊히는 카드는 결국 자리를 차지할 값을 하지 못합니다. 망각 8회 이후 Read Frog는 그 카드를 자동으로 영구 중지하고, 카드는 순환에서 빠집니다. 해당 Notebase의 카드 목록에서 영구 중지로 찾을 수 있습니다. 거기까지 간 카드는 보통 다시 외우기보다 다시 쓰기를 요구하는 카드입니다. 쪼개거나, 앞면에 맥락을 더하거나, 버리세요.
두 카드가 그렇게 달라지는 이유
위의 모든 것은 카드 단위이므로, 같은 날 만든 두 카드도 기록이 갈라지는 순간부터 갈라집니다. 그 위에 세 가지 규칙이 결과의 모양을 정합니다.
- 네 간격의 순서는 항상 유지됩니다. 쉬움은 좋음보다 짧아지지 않고, 좋음은 어려움보다 짧아지지 않습니다. 평가 버튼 위의 숫자는 이 카드에 대한 실제 예고이며, 절대 뒤집히지 않습니다.
- 간격에는 상한이 있습니다. 100년인데, 만날 일이 없을 만큼 높습니다.
- 간격에 흔들림을 주지 않습니다. 어떤 스케줄러는 함께 만든 카드가 계속 함께 다니지 않도록 약간의 무작위성을 섞습니다. Read Frog는 그러지 않으므로, 기록이 정말로 똑같은 두 카드는 정말로 똑같은 날짜를 받습니다.
최적화 도구
FSRS에는 다른 많은 사람의 복습 기록에 맞춰진 기본 파라미터가 함께 들어 있습니다. 내 기억, 내 자료, 내 평가 습관은 그 평균이 아니므로, Read Frog는 Notebase별로 내 기록으로 모델을 다시 학습시킵니다.
학습은 한 Notebase의 복습 로그를 가지고 파라미터 후보를 만듭니다. 그 후보가 지금 쓰이는 파라미터보다 내 실제 답을 더 잘 예측할 때만 채택합니다. 이때 기준은 각 파라미터가 자신이 학습하지 않은 복습을 얼마나 잘 예측했을지이므로, 내 기록을 그냥 암기한 파라미터는 이기지 못합니다. 같은 학습에서 권장 학습 단계와 재학습 단계도 같은 데이터로 다시 계산합니다.
대략 언제 일어나는지는 이렇습니다.
- Notebase는 카드 약 64개가 진짜 간격을 거쳐 돌아온 뒤에 대상이 됩니다. 몇 장에 몰린 복습은 여기서 큰 도움이 되지 않습니다. 모델에 필요한 것은 양이 아니라 폭입니다.
- 그 뒤에는 복습 약 64건이 더 쌓일 때마다 다시 학습합니다.
- 학습은 서버에서, 대략 주 1회 일어납니다. 시작할 것도, 기다릴 것도 없습니다.
학습으로 뭔가 바뀌면 Notebase 목록에 알림이 나타납니다. 새 복습 일정이 사용자의 기억 패턴에 더 잘 맞습니다 와 함께 얼마나 더 나은 점수를 받았는지, 복습 기록 몇 개에서 배웠는지가 표시됩니다. 닫고 계속하면 됩니다. 이미 잡힌 예정일은 다시 쓰이지 않고, 새 파라미터는 다음 답부터 적용됩니다.
Notebase가 그 기준에 닿기 전까지는 기본값으로 돌아가는데, 기본값도 좋습니다. 설정할 것도 고칠 것도 없습니다. 갓 만든 Notebase는 얼마 동안 그저 다른 사람들의 평균으로 일정을 받는 것입니다.
카드 하나를 들여다보기
템플릿 및 카드에서 모든 카드에는 기억 보기 버튼이 있습니다. 누르면 그 카드의 망각 곡선이 열립니다. 마지막 복습에서 시작하는 감쇠, 지금 위치, 예정일이 떨어지는 지점, 그리고 목표 기억 유지율이 가로선으로 그려지고, 그 아래에 평가와 경과 시간, 각 답 이전의 안정성이 담긴 전체 복습 기록이 붙습니다.
일정과 다투고 싶을 때 결론을 내는 정직한 방법입니다. 한참 지났다고 느껴지는 카드는 보통 내가 안정성을 과대평가한 카드이고, 간격이 터무니없이 길어 보이는 카드는 보통 그만큼을 벌어들인 카드입니다.
Notebase 전체로 보기
Notebase의 통계 탭과 전체를 아우르는 통계 페이지는 하루 복습량, 들인 시간, 그리고 장기 기억 증가 — 안정성이 21일을 넘긴 카드의 수 — 를 그립니다. 마지막 지표가 여기서 진척에 가장 가까운 측정값입니다. 얼마나 저장했는지도, 얼마나 복습했는지도 아니고, 얼마나 실제로 자리를 잡았는지입니다.
