よくある質問 (Frequently Asked Questions)

Last-modified: 2018-03-16 (金) 23:22:21

原文 = http://ankisrs.net/docs/manual.html#_frequently_asked_questions


目次



しばらく勉強しないでいたら、次の復習間隔がすごく長くなりました!

Anki を毎日使って、カードの問題に対して正解すれば、間隔は長くなっていきます。good (普通) のボタンを押すと 間隔が 約 2 倍 になると仮定しましょう。間隔は 5日・10日・20日・40日 のように長くなっていきます。

数週間・数ヶ月のブランクのあとで単語帳を開くと、学習者は 間隔がとても伸びることに驚きます。この動作の理由は、Anki が 復習間隔を決めるとき、スケジューリングした時間ではなく、実際にカードを 見なかった時間 をもとに計算するからです。このため、5日の間隔でスケジュールされたカードを、実際には 1ヶ月 勉強しなかった場合、次回の復習は 10日後 ではなく 約60日後 になります。

これは長所です。あなたが 1ヶ月 のブランクのあとでもカードの答えを憶えていたということは、もっと長い間隔のあとでも 忘れずにいられるでしょう。SRS の原理は、ブランクのあとで勉強するときも働きます。また、1ヶ月ものあいだ忘れずに済んだカードを、たった 10日後に復習するのは、合理的ではありません … 後戻りになります。

単語帳をリセットするのは、もっと悪い方法です。長い休みのあとで単語帳を再開した場合、多くのカードを忘れているでしょうが、しかし、すべてのカードを忘れた というわけではないでしょう。単語帳全体をリセットすると、すでに知っているカードを勉強するために費やした時間を 無駄にすることになります。

次に、復習するのが遅れてしまい、思い出すのに少し苦労したカードについて考えましょう。これを計算に入れるために、あなたが どのボタンを押したかによって、Anki は別々の方法で 休んだ期間を扱います。easy (簡単) ボタンを押すと、最後の間隔 と 休んだ期間 の合計を使って、次の復習間隔を計算します。good (普通) ボタンを押すと、休んだ期間の 半分だけ を使います。hard (難しい) ボタンを押すと、休んだ期間の 1/4だけ を使います。なので、カードの復習間隔が 5日 で、これに 20日間 のブランクをおいて答えた場合、次の復習間隔は およそ以下のようになります:

  • Hard (難しい) : (5 + 20/4) * 1.2 = 12 日
  • Good (普通) : (5 + 20/2) * 2.5 = 37.5 日
  • Easy (簡単) : (5 + 20) * 3.25 = 81.25 日

(実際には、単語帳内での得手不得手によって、係数は変わります)

カードが hard (難しい) と答えた場合、次の復習間隔は かなり保守的で、直前の間隔 (25日) よりも短くなります。カードが good (普通) と答えた場合、間隔は 約50% しか伸びません。easy (簡単) と答えた場合は、いつものようにアグレッシブに間隔を伸ばします。

なので、しばらく休んでから Anki を再開したとき、いつも通りに勉強することをお勧めします。それでもなお、単語帳を絶対にリセットしたいと決意したのなら、ブラウザーを開いて リセットしたいカードを選択し、 編集>スケジュールを変更 (Edit>Reschedule) を使ってください。

n択問題 を作れますか?

選択式の問題は、いくつかの理由により、復習の道具としては劣っています。にもかかわらず 学校のテストで 選択問題が用いられる理由は、採点しやすい、解答を自力で思い出すことができない受験者でも 正解の区別はできる、などがあります。

そのうえ、良い選択問題には 良い「誤答」…正解と紛らわしい答え…が必要です。コンピュータは 似たスペルの単語を検索することはできますが、それ以上のことはできません。複雑な問題に対して 良い誤答を選ぶことはできません。

あなたが受けようとしているテストが 以下のような選択問題なら:

Q: とても首が長い動物は?
A: 1. サル. 2. キリン. 3. ロバ. 4. ナメクジ.

この問題を Anki に入力するときは 以下のように書き換えます:

Q: とても首が長い動物は?
A: キリン.

または、選択肢を考えて書き加えます:

Q: とても首が長い動物は? (イヌ/ネコ/キリン/ペンギン)
A: キリン.

カード同士をリンクできますか? 依存関係を作るには? 同意語をどう扱ったらいい?

Anki は、ひとつのノートから作られたカード群のリンクをサポートしますが、無関係なカードのリンクは できません。あなたが 日本語を勉強していて、単語について 理解 (recognize)・想起 (reproduce) の両方ができるようにしたいと想定します。単語 "おおきい" を入力します。これは "big" という意味です。すると Anki に 2枚のカードを生成させることができます … "おおきい"→"big", "big"→"おおきい"。

上のような状況では、Anki は復習タイミングをずらし、これら 2枚の 関連カード が たて続けに表示されないようにします。(関連カードの延期 の項目を参照してください。)

このようなリンクを、任意のカードにまで拡張したい と思う人もいます。「このカードを表示した後に このカードを表示する」機能や 「このカードを十分に憶えるまでは こっちのカードを表示しない」機能 がほしいそうです。これは理論上は 良いアイデアに思えるのですが、じつは現実的ではありません。

一つ目の理由はこうです。関連カードの場合と違って、全てのカードどうしの関係を あなたが 手動で 定義する必要があります。こうなると新たに ノート を Anki に入力するのが 複雑な作業になります。単語帳の中を探し回って カードどうしの関係を設定する必要があるからです。

二つ目の理由はこうです。Anki は、最適なタイミングでカードを復習できるように、アルゴリズムで計算しています。計算で求めた時期よりも 早く または 遅く カードを表示するように 制約条件を追加すると、間隔反復学習 (SRS) の効果が弱くなります。その結果、必要以上の勉強や、カードを忘れる ということになります。

Anki の 最も効果的な使い方は、各々の ノート を独立させることです。他のノートに依存しないようにするのです。類義語をつなげようと考えるのではなく、類義語を区別できるかどうか考えてください。同意語といっても、完全に交換可能というケースは稀です … ニュアンスの違いがあり、ある文中の単語を その同意語に置き換えると 違和感が生じることもあります。

日本語の例で続きを説明します。"でかい" という単語を憶えたいと想定します。これも大まかにいえば "big" という意味ですが、より口語的な表現です。この単語についても 理解・想起 の両方ができるようになりたければ、英語の面を "big (口語的)" とするのが良いです。外国語の勉強が進むにつれて、類義語の区別をつけるのが重荷になってきます。単語を想起する問題を 勉強の早期にやるのが良いのは、これが理由です。
基本単語を良く理解していれば、我々は 能動語彙に比べて 受動語彙のほうを ずっと多く憶えているので、理解ベースの勉強へと進むのは理にかなっています。

難しいカードは 簡単なカードよりも後に表示する ようにしたいなら、いくつかの方法があります。デフォルトでは、新規カードの表示順序は 単語帳にカードを追加した順 になっています。なので、あなたが読んでいる教材や情報ソースが あなたのレベルに適していれば、難易度の低いカードから順に表示されるでしょう。

任意の数の記入欄を ノートに追加することはできますか?

ノートは、たがいに 密接に 関連した情報を表すために、また その情報が カードのどこに現れるかを 楽に把握できるように 作られました。外国語を学ぶことを例にとれば、語句・訳 のペアや、語句・訳・発音 の3つ組 などを表すときに、ノートは便利です。これらの関係は すべて 1:1 です … 語句は ただひとつの発音・ただひとつの訳をもちます。(1)

ノートを使うと いくつかの情報を紐付けることができるので、なかには、あまり関連のない情報どうしを結びつけるためにノートを使おうとする人もいます。例えば、"completely" という単語を含む 2つの例文があるとすると:

  • He was completely confused.
  • That was completely uncalled for.

この人は ひとつのノートに これら 2つの例文を入力します。なぜなら、共通の単語があるから 互いに関係があると考えたからです。しかし、この人が 別の例文を見つけたら どうでしょう?

  • The book confused her.

既存の例文と 共通の単語 "confused" があります。この例文は "confused" のノートに入れるべきでしょうか? それとも "completely" のノートでしょうか? それとも両方に入れる?

前に出た語句・訳の組と異なって、例文に共通の単語があるときに 関係がある とみなすと、多:多 の関係になります。つまり、例文 A は 例文 B・C と関係があり、例文 B は 例文 A・D と関係があり、…というぐあいです。関係が複雑で重複もあるので、ノートは これをうまく表現できません。

人々がこのような関係を ノート で表したがる理由は、主に以下の 2つだと思います:

  • 「すべての情報を一ヶ所にまとめるほうが すっきりしてるから」。 確かにそうですが、実際にはあまり手間の節約になりません。各例文がそれぞれ別のノートに入力されていたとしても、"completely" という単語を含む例文をすべて見るには "completely" を検索するだけでいいのです。
  • 「共通の単語を含む例文は 復習の時間を空けたいから」。 これは FAQ の前のほうにある質問と関係があります。カードの間にリンクを定義するのは時間がかかる作業であり、もし 共通の単語を含むカードが 自動的に 他のカードと切り離されるようにしたければ、それは大きな計算量を必要とするうえに、あらゆるカードが他のカードと関係があるとみなされ 結局カードが何も表示されないという状況になります。確かに、共通の単語を含む 2つの例文が 立て続けに表示されるのは 理想的ではないですが、あなたがランダムな順番でカードを追加したら こんな状況は起こりにくいですし、こんな状況を防ぐための対策は コストに見合う価値があるとは思えません。また、こんな状況が起こったとしても、実世界で その単語に出くわす機会をなくすことはできません。

(1) 訳者によって ひとつの語句でも訳は異なり、方言によって発音が異なる、ということを、この議論では無視します。

AnkiWeb を自分でホスティングできますか?

残念ながら、AnkiWeb はホストされたサービスとしてのみ利用可能です。

Android 版が無料なのに iPhone 版が有料なのは なぜですか?

私は デスクトップ版のAnki、AnkiWeb、AnkiMobile にフルタイムで取り組んでおり、生活費を稼ぐ手段が必要です。デスクトップ版と Web 版をフリーで利用できるようにしたため、資金の捻出は iPhone app の売り上げに頼っています。

AnkiDroid は有志による別のグループが開発したものです。フリーのデスクトップ版をもとに開発され、単語帳の同期には AnkiWeb を利用しています。彼らは、Ankiデスクトッププログラムと同様、Android版を無料で配布することに決めました。

Anki は どんな SRS アルゴリズムを使っていますか?

初期の Anki は SuperMemo SM5 アルゴリズムに基づいていました。しかし、Anki のデフォルト動作では、カードに解答するよりも前に 次回の復習間隔を表示するので、SM5 アルゴリズムでは根本的な問題が起きることが明らかになりました。SM2 と それ以後のアルゴリズムの主な違いは:

  • SM2 は、カードに対する答えの良悪を使って、そのカードの次回の復習時期を決めます。
  • SM3+ は、カードに対する答えの良悪を使って、そのカード と そのカードに類似したカード の次回の復習時期を決めます。

後者のアプローチでは、1枚のカードに対する出来だけでなく、カードのグループの出来も考慮に入れることで、より正確な復習間隔を実現しています。あなたが毎日一貫して勉強しており、すべてのカードの難易度が同程度であれば、このアプローチはとてもうまくいくでしょう。しかし、ひとたび一貫性が崩れると (カードごとに難易度が違う、勉強する時間帯が日によって違う) 、SM3+ の復習間隔の予測は不正確になります … カードの復習スケジュールが 過密になったり 過疎になったりするのです。

さらに、SM3+ は動的に 「最適係数」表 ("optimum factors" table) を書き換えるので、「簡単」と答えたカードの復習間隔よりも 「難しい」と答えたカードの復習間隔のほうが長くなる、という状況が 頻繁に起こります。SuperMemo では 次回の復習時期が表示されないので、ユーザはこの現象に気づきません。

いくつかの選択肢を検討した結果、Anki作者は以下のように判断しました ; 復習間隔を最適化しようとするあまり 復習間隔が不正確になるリスクがある よりは、SM2 の派生形によって 最適にほど近い復習間隔を計算したほうが良い。SM2 アプローチは エンドユーザにとって 直感的で予測がつく動作です。しかし SM3+ アプローチは、ユーザから詳細を隠し、ユーザがシステムを信用することを要求します (しかしシステムはスケジューリングで間違えるのです)。

Anki のアルゴリズムは SM2 に基づいていますが、いくつかの違いがあります。

  • SM2 は 初期の間隔を 1日、次に 6日 としています。Anki では、初期の学習ステップをユーザーが自由に管理することができます。Anki が理解していることは、新しいカードを記憶するには そのカードを何度も見る必要があるということです。初期が 失敗だからといって そのカードを短い日数のうちに何度も出る罰が必要というわけではありません。学習段階の出来は、記憶保持段階の出来を決定づけるものではありません。
  • Anki は 6つではなく 4つの選択肢を使います。失敗の選択肢は 3つではなく 1つだけです。
    この理由は、全体の学習回数のうち 失敗の割合はかなり少なく、カードの難易度を調整するには 正解時に出来を選ぶだけで十分だからです。
  • カードに答えた日が 予定よりも後だった場合、その差分が 次回の復習を計算するときに折り込まれ、復習が遅くなったにもかかわらず憶えていたカードには ボーナスが与えられます。
  • デフォルトでは、SM2 と同様、 Anki の 失敗ボタン を押すと カードの復習間隔がリセットされます。しかしユーザには、完全にリセットするだけでなく、少し後戻りするという選択肢も提供されています。また、学習の進んだカードに解答できなかった場合、同じ日に復習するのではなく他の日に復習することもできます。
  • 非常に簡単 (Remembered easily) は難易度係数を下げるだけでなく、復習間隔にボーナスを加算します。
    このため、非常に簡単 と答えると、標準的な SM2アルゴリズムと比べて 少しアグレッシブになります。
  • 学習中のカード に 連続で失敗しても、カードの難易度は上がりません。標準的な SM アルゴリズムで頻出した不満のひとつに、何度も失敗したカードが「短い間隔地獄 (low interval hell)」にはまる現象があります。Anki では、学習初期の進行状況は カードの難易度に 影響を与えません。

SM2 アルゴリズムの説明は 以下を見てください。
http://www.supermemo.com/english/ol/sm2.htm

Anki のソースコード中でスケジュールに関する sched.py を確認することもできます。要約すると以下のようになります(斜体 で示されているオプションについては 単語帳オプション を参照してください):

押したボタンが・・・

Again
カードは再学習モードに置かれ、易しさは20%減少し(これは即ち、易しさ の値から 20 が差し引かれ)、現在の復習期間は new interval の値で掛け算されます(この期間はカードが再学習モードを抜けたときに適用されます)。
Hard
カードの易しさを15%減少させ、現在の復習期間は1.2倍されます。
Good
現在の復習期間に現在の易しさの値が掛け算されます。易しさは変更されません。
Easy
現在の復習期間に現在の易しさと easy bonus の値が掛け算され、易しさを15%増加させます。

Hard, Good, Easy では、次の復習期間は追加的に interval modifier が掛け算されます。カードが遅延して復習された場合、これらの計算が行われる前に、このFAQのように追加的な日数が現在の復習期間に追加されます。

カードのスケジュールの値にはいくつかの制限があります。まず、易しさは 130% よりも小さくなりません。なぜなら SuperMemo の調査では 130% より小さい易しさはカードの期日が短すぎて有用でなくなり、ユーザーに迷惑となるためです。次に、復習期間は maximum interval の値よりも大きくなることはありません。最後に、新しい復習期間(Again を回答した場合を除く)は常に前回の復習期間よりも少なくとも1日長くなります。

ノート

難易度ボタンの選択後、カードには少しのランダムな揺らぎを与えます。これにより同時に新規に導入され、同じ難易度ボタンを押されたカードが、復習タイミングが一緒となって同じ日に復習に現れるのを防止しています。この揺らぎは学習期間ボタンには現れないため、選択したボタンの次回の学習時期と実際の学習時期がわずかに異なっている場合には、その原因はおそらくこの揺らぎによるものです。