Read Frog
Repaso

Cómo funciona la programación

Por qué una tarjeta vuelve mañana y otra dentro de ocho meses, y qué aprende el optimizador de tu propio historial de repaso.

Read Frog programa con FSRS, un algoritmo de repetición espaciada de código abierto. Esta página trata de qué está haciendo y por qué, no de qué números poner; para eso, consulta Ajustes de estudio.

Qué sigue el modelo

FSRS-7 registra el estado de memoria de cada tarjeta y lo usa para estimar la recuperabilidad.

  • Estabilidad (S): es el componente lento del estado de memoria de FSRS-7. La estabilidad rápida (Sf) es el componente rápido; junto con la dificultad (D) y los pesos del modelo determinan la estabilidad de memoria global.
  • Dificultad (D): lo difícil que es esta tarjeta concreta para ti. Sube cuando respondes Otra vez o Difícil, baja despacio cuando respondes Fácil, y gobierna cuánto vale cada repaso acertado: la estabilidad de una tarjeta difícil crece más despacio que la de una fácil.
  • Recuperabilidad (R): la probabilidad de que recordaras la tarjeta ahora mismo. Empieza casi en la certeza después de un repaso y decae con el tiempo según el estado completo del modelo.

El estado de memoria guardado de FSRS-7 contiene D, S y Sf. R se calcula a partir del estado completo del modelo y del tiempo transcurrido desde el último repaso.

De dónde sale el intervalo

La próxima fecha de vencimiento es el momento en el que se predice que tu recuperabilidad de esa tarjeta caerá hasta la retención de memoria que has pedido: el 90 % por defecto.

Esa única frase explica casi todo el comportamiento que vas a notar:

  • El intervalo no es un multiplicador del anterior. Se recalcula cada vez a partir de la nueva estabilidad de la tarjeta.
  • Subir la retención objetivo acorta todos los intervalos, porque la curva prevista alcanza antes un número más alto.
  • Una tarjeta cuya estabilidad apenas se ha movido recibe apenas más tiempo que la vez anterior, por mucha paciencia con la que sigas respondiendo Bien.

Tu respuesta es lo que mueve la estabilidad. Un Bien en una tarjeta que has recordado después de un intervalo largo la mueve mucho: el intervalo largo es en sí la prueba de que el recuerdo era fuerte. Ese mismo Bien diez minutos después de la última mirada la mueve muy poco, porque recordar algo que acabas de leer no demuestra casi nada.

Por eso también vale la pena usar Otra vez, Difícil, Bien y Fácil con honestidad y no con buena voluntad. Son toda la información de entrada. Una tarjeta que siempre marcas Bien mientras en realidad te cuesta recibe intervalos hechos para alguien que se la sabe.

El primer día, y equivocarse

Una tarjeta recién creada no recibe días. Recorre dos pasos cortos en la misma sesión —unos minutos y luego unos diez— así que la ves unas cuantas veces antes de que se vaya con un intervalo de verdad. Eso es lo que es el recuento de aprendizaje en la cabecera de la sesión: tarjetas a mitad de esos pasos.

Responder Otra vez en una tarjeta que ya había llegado a intervalos de verdad es un olvido. La tarjeta cae de nuevo a un paso de diez minutos, su estabilidad baja y su dificultad sube. Luego vuelve a subir desde una base más baja, y por eso una sola tarjeta olvidada puede costar varias semanas de progreso aparente.

Una tarjeta que no deja de olvidarse acaba dejando de merecer el sitio que ocupa. Después de ocho olvidos, Read Frog la suspende automáticamente y sale de la rotación. La encontrarás en Suspendidas, en la lista Tarjetas del Notebase. Una tarjeta que llega ahí normalmente está pidiendo que la reescribas y no que la reaprendas: divídela, añade contexto al anverso, o quítala.

Por qué dos tarjetas se diferencian tanto

Todo lo de arriba es por tarjeta, así que dos tarjetas que creaste el mismo día divergen en cuanto sus historiales lo hacen. Más allá de eso, hay tres reglas que dan forma a lo que ves:

  • Los cuatro intervalos están siempre ordenados. Fácil nunca es más corto que Bien, y Bien nunca más corto que Difícil. Los números sobre los botones de calificación son previsiones reales para esta tarjeta, y nunca se invertirán.
  • Los intervalos tienen un techo, de 100 años, lo bastante alto como para que no llegues a encontrártelo.
  • Los intervalos no se dispersan. Algunos programadores añaden un poco de azar para que las tarjetas creadas juntas no sigan juntas. Read Frog no lo hace, así que dos tarjetas con historiales realmente idénticos reciben fechas realmente idénticas.

El optimizador

FSRS viene con parámetros por defecto ajustados sobre un gran conjunto de repasos de otras personas. Tu memoria, tu material y tus costumbres al calificar no son esa media, así que Read Frog vuelve a entrenar el modelo con tu propio historial, por Notebase.

Un entrenamiento trabaja sobre el registro de repasos de un Notebase y produce un conjunto candidato de parámetros. Solo conserva el candidato si predice tus respuestas reales mejor que los parámetros en uso, y se mide por lo bien que cada uno habría predicho repasos con los que no se ajustó, así que un conjunto que se limite a memorizar tu historial no gana. La misma ejecución recalcula también los pasos de aprendizaje y de reaprendizaje recomendados a partir de los mismos datos.

Más o menos, cuándo ocurre:

  • Un Notebase se vuelve elegible cuando unas 64 de sus tarjetas han vuelto después de un intervalo de verdad. Los repasos concentrados en un puñado de tarjetas no cuentan mucho aquí: el modelo necesita variedad, no volumen.
  • A partir de entonces, se reentrena cuando se han acumulado otros 64 repasos aproximadamente.
  • Las ejecuciones ocurren en el servidor, más o menos una vez a la semana. No hay nada que lanzar ni nada que esperar.

Cuando una ejecución ha cambiado algo, aparece un aviso en la lista de Notebases: el nuevo calendario de repaso refleja mejor tus patrones de memoria, con cuánto mejor puntuó y de cuántos registros de repaso aprendió. Descártalo y sigue; tus fechas de vencimiento actuales no se reescriben, y los parámetros nuevos se aplican a partir de tu siguiente respuesta.

Hasta que un Notebase llega a ese umbral funciona con los valores por defecto, y los valores por defecto son buenos. No hay nada que configurar ni nada que arreglar: un Notebase joven simplemente se programa durante un tiempo con las medias de otras personas.

Mirar una tarjeta

En Plantillas y tarjetas, cada tarjeta tiene un botón Ver memoria. Abre la curva del olvido de esa tarjeta —la caída desde su último repaso, dónde está ahora, dónde cae la fecha de vencimiento y tu retención objetivo como una línea que la cruza— sobre el historial completo de repasos, con la calificación, el tiempo transcurrido y la estabilidad de la memoria anterior a cada respuesta.

La estabilidad de la memoria que aparece sobre la curva es el tiempo que FSRS-7 predice antes de que la recuperabilidad baje al 90 %. Se calcula con el estado posterior completo (D, S y Sf) y los pesos del modelo que procesaron la última calificación; no es el intervalo realmente programado para la tarjeta. El objetivo de retención del Notebase, el intervalo máximo, la aleatorización de intervalos y los pasos de aprendizaje no la cambian.

Cada repaso guarda la estabilidad de la memoria anterior y posterior a la respuesta, así que deshacer restaura el valor anterior. Refleja la estimación del último repaso o de la migración. Un cambio de pesos del optimizador no recalcula los valores antiguos; se actualizan en el siguiente repaso o migración.

Es la forma honesta de resolver una discusión con el calendario. Una tarjeta que parece vencida suele resultar tener una estabilidad que habías sobrestimado, y una cuyo intervalo parece absurdamente largo suele habérselo ganado.

En todo un Notebase

La pestaña Estadísticas de un Notebase, y la página de Estadísticas de todos ellos, representan los repasos por día, el tiempo dedicado y el crecimiento de la memoria a largo plazo: el número de tarjetas cuya estabilidad de la memoria es de al menos 21 días. Eso último es lo más parecido a una medida de progreso que hay aquí: no cuánto has guardado, ni cuánto has repasado, sino cuánto se ha asentado de verdad.

En esta página