FSRS: modern ve verimli bir aralıklı tekrar algoritması
(github.com/open-spaced-repetition)- Öğrenme tekrar takvimini optimize eden FSRS için
ABC of FSRSwikisi, fsrs4anki'den yeniawesome-fsrswikisine taşındı - Bağlantılı MaiMemo araştırma materyalleri, aralıklı tekrar zamanlaması optimizasyonu ve bellek dinamiklerinin modellenmesini sırasıyla ACM KDD ve IEEE TKDE makalelerinde ele alıyor
- Ayrı bir yazı, bir lisans öğrencisinin ACM KDD makalesi yayımlama deneyimi üzerinden aralıklı tekrar algoritması araştırma sürecini tanıtıyor
FSRS-Anki-20kveanki-revlogs-10k, zaman serisi özelliklerini içeren açık kaynak veri setleri olarak birlikte sunuluyor- FSRS, topluluk odaklı bağımsız bir açık kaynak proje ve MaiMemo Inc. gibi kuruluşların desteği, temel katkı sağlayanların sürdürülebilir katılımını destekliyor
Yeni wikiye taşınan ABC of FSRS
ABC of FSRSsayfası yeni wikiye taşındı- Yeni konum: https://github.com/open-spaced-repetition/awesome-fsrs/wiki/ABC-of-FSRS
Aralıklı tekrar araştırma materyalleri
- MaiMemo'nun 2 makalesine bağlantı veriliyor
- A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling: aralıklı tekrar zamanlaması optimizasyonunu ele alan bir ACM KDD makalesi
- Optimizing Spaced Repetition Schedule by Capturing the Dynamics of Memory: bellek dinamiklerini yakalayarak aralıklı tekrar zamanlaması optimizasyonunu ele alan bir IEEE TKDE makalesi
- Her iki makale için de Çince sürüm bağlantıları birlikte sunuluyor
Araştırma deneyimi yazısı
- How did I publish a paper in ACMKDD as an undergraduate?: aralıklı tekrar algoritmalarıyla ilgili araştırma deneyimini anlatan bir yazı
Açık veri setleri
- Zaman serisi özelliklerini içeren aralıklı tekrar ile ilgili açık kaynak veri setleri sunuluyor
Topluluk projesi ve destek
- FSRS, topluluk tarafından yürütülen bağımsız bir açık kaynak proje
- MaiMemo Inc. gibi kuruluşlara destekleri için teşekkür ediliyor
- MaiMemo'nun desteği, Jarrett Ye gibi temel katkı sağlayanların FSRS'ye zaman ve uzmanlık ayırabilmesini sağlıyor
- Bu tür iş birlikleri, FSRS'nin herkes için özgürce sunulan öncü bir aralıklı tekrar algoritması olarak kalmasına yardımcı oluyor
1 yorum
Hacker News yorumları
Aralıklı tekrarı iyileştirmenin ciddi biçimde hafife alınan bir yolu, kartları daha kolay hâle getirmektir. Etkili kartların şaşırtıcı derecede kolay olabileceğini öğrendim.
Başta Anki ile Fransızca kelime ezberlerken İngilizce↔Fransızca çift yönlü kartlar yapıyordum; kart sayısı yüzlere çıkınca eş anlamlılar o kadar arttı ki iş eziyete dönüştü.
Sonra Katzumoto’nun Japonca öğrenme tavsiyesini izleyip e-kitaplardan veya web sayfalarından tüm paragrafları yapıştırarak yalnızca tek bir kelimeyi gizleyen boşluk doldurma kartları yaptım; kolaydı ama etkiliydi.
Daha da tembelleşip kelimenin yalnızca yarısını gizledim ya da kelimeyi kalın yazıp bağlam içinde kabaca hatırlayabiliyorsam başarılı saydım; tersine, daha iyi çalıştı.
Bir kart çıktığında “Ah, yine şu kart mı?” diye düşündüğümde siliyordum; 3 kez yanlış yaparsam Anki’nin kartı kalıcı olarak askıya almasını ayarladım. Gerçekten bilmem gereken bir kelimeyse yakında daha iyi bir bağlamda yeniden karşıma çıkacağı için sorun olmuyordu ve Fransızca kelime dağarcığım hızla büyümeye devam etti.
En büyük iyileştirmenin daha iyi bir aralıklı tekrar algoritmasından çok kart biçimini iyileştirmekten geleceğini düşünüyorum; işe yarayamayacak kadar kolay kartlar yapmak da şaşırtıcı biçimde zor. Üç dilde 35.000’den fazla Anki tekrarı yapmış biri olarak vardığım sonuç bu.
Bir şeyi öğrenmenin ilk ayında Anki’ye binlerce kart doldurup, bir iki ay sonra tekrar yükünün altında ezilerek tekrarların angarya gibi gelmesi yüzünden bırakanları sık görüyorum.
Fark yaratan iki tavsiye var: Kartları biraz ‘fazla’ kolay yapmak ve hangi kartları ekleyeceğiniz konusunda epey seçici olmak.
Kartı ilk oluşturduğunuzda o konuyu yeni çalışıyor olduğunuz için zihninizde çok canlıdır; o anki kendiniz için ilginç ve zorlayıcı kartlar yapmak istersiniz. Ama 1-2 hafta sonra, kafa karıştırmak yerine hafızayı hafifçe yoklayacak kadar kolay kartlar daha iyidir.
Bir kitabın tüm cümlelerini olduğu gibi Anki’ye koymak yerine, bir meyve bahçesinde yürür gibi yavaşça dolaşıp en iyi bir iki elmayı toplamak daha iyidir. Çürük elmalar, yani ilginizi çekmeyen ya da çok zor kartlar, tüm desteyi kirletir ve tekrarın kendisinden kaçınmanıza yol açar.
Tekrarlar çoğunlukla hızlı geçildiği için kart başına öğrenme süresinde oluşturma zamanı şaşırtıcı derecede büyük pay tutuyor. Şimdilerde giderek daha az bağlam ekliyorum; sözlük eklentisinin oluşturduğu temel, basit kartlar çoğu zaman yeterli oluyor.
Kartın ön yüzüne özellikle bağlam eklemem neredeyse yalnızca o bağlam içinde görülen teknik bir terim olduğunda oluyor. Yani bağımsız olarak öğrenmeye değmediğinde.
Yine de tembel davranmanın ve kendinize karşı hoşgörülü olmanın iyi olduğunu düşünüyorum. Cevabı değerlendirirken de ana dil konuşuru düzeyinde kusursuz hâkimiyeti değil, gerçek hayatta karışıklığı önleyecek kadar anlayıp anlamadığımı ölçüt alarak oldukça gevşek davranıyorum.
Kart kalitesini büyük ölçüde artıracaktır.
Örneğin klavye üzerindeki notaları aralıklı tekrarla kaba kuvvetle ezberletebilirsiniz; ama pratikte bağlamı karıştırmak daha etkili oldu.
Bazı haftalar tembellik edip yalnızca nota adlarını çalışıyorum; başka haftalar Macar gamı gibi tuhaf gamlarla oynuyorum; başka zaman da arpej akorlar ya da power chord ilerleyişleriyle, belirli bir şarkının sesini ya da hissini yeniden üretmeye çalışıyorum.
Zamanla beyin bağlantılar kurmaya başlıyor. “Bu sadece Sol minör gamıymış”, “Bu Sol majör gamı ama şu notaları atlıyor”, “Bu kalıpla şöyle çalmayı deneyemez miyim?” gibi fark edişler oluşuyor.
Bildiğimi düşündüğüm şeylerden çok, bilmediğimi fark etme hızımın çok daha hızlı artması gibi tuhaf bir his de var. Yine de 5-10 dakikalık gitar ödevleri veren bir aralıklı tekrar algoritması kullanıp kas hafızasını ve sinirsel bağlantıları birlikte geliştirmeyi düşünüyorum.
İçerik yalnızca dilden ibaret olduğunda olduğundan daha çeşitli olduğu için sanırım kart biçiminin etkisi daha güçlü hissediliyor. Başkalarının yaptığı destelerde bile cevap tarafındaki ifadeleri sık sık düzeltiyorum; elde tutma oranında hissedilir bir fark yaratıyor.
Kısa, öz ve doğal akan cevaplar daha iyi tutunuyor. Garip hissettiren bir kart varsa çekinmeden düzeltmek daha iyi.
Anki ile on binlerce yabancı dil kelimesi ezberledim; kartta resim olması kelimeyi hatırlamama her zaman yardımcı oldu.
Şimdi ailemle oynadığımız bir bilgi yarışması oyunundaki 750 kartı ezberlemek gibi biraz aptalca sayılabilecek bir proje yapıyorum. Tüm soruların cevabı bir yıl olan kartlar. Örn: “Coca Cola Light hangi yıl çıktı?”
Midjourney ile kartlar için görseller üretmek hatırlamayı çok daha kolaylaştırıyor.
Her yüzyıl için temsilî bir kişi kullanan bir sistemim var. Einstein 1900-2000’i, Marie-Antoinette 1700-1800’ü temsil ediyor.
Nesneler 10 yıllık dönemleri temsil ediyor. 60’lar arabası 60’ları, omuz pedli ceket 80’leri temsil ediyor gibi. Son basamaktaki rakamı da benzer şekilde ele alıyorum.
Midjourney’e bu unsurları çizgi film tarzında görsellere dönüştürtüyorum; en komik ya da en saçma görseli kaydedip Anki kartının arka yüzüne koyuyorum. Görseli hatırlamak çoğu zaman yılın kendisini hatırlamaktan daha kolay oluyor.
İkincisi, görsellerin olmadığı gerçek durumlarda hatırlama performansı düşebilir; bu yüzden düzenli olarak görselli ve görselsiz şekilde ayrı ayrı test etmelisiniz.
Üçüncüsü, o yarışmanın Trivial Pursuit olup olmadığını merak ediyorum. Bir arkadaşım orijinal Genus edisyonu kartlarının tamamını özellikle ezberlemişti.
İlginç. Benchmark’lara göre bu algoritmayı kullanınca klasik Anki algoritmasına kıyasla %20–30 daha az kart tekrar etmek yeterli oluyormuş
Birkaç gün önce https://python.cards için kullandığım klasik SM-2 algoritmasının Python uygulamasını yayımlamıştım; FSRS’ye geçirebilirim: https://github.com/vlopezferrando/simple-spaced-repetition
Web uygulamasını açık kaynak olarak yayımlama ihtimali olup olmadığını da merak ediyorum. Öğrencilerin X öğrenmesi gibi belirli alanlarda flashcard göstermenin popüler bir yolu olabilir gibi görünüyor
Açıklamaya bakılırsa FSRS de hâlâ her karta kesin bir tekrar tarihi atıyor gibi. Anki’yi bu özellik yüzünden bırakmıştım
Üniversite öğrencisi değilim, sınava da hazırlanmıyorum; sadece canım istediğinde pratik yapmak istiyorum. Oturumlar arasında uzun boşluklar olabilir ve birikmiş kartlar yığılıyormuş hissi yaşamak istemiyorum
Anki harika bir uygulama ama keşke tekrar tarihi atamak yerine kartları rastgele örnekleyen, ancak acil tekrar edilmesi gerekme olasılığıyla orantılı seçen bir algoritma olsaydı
https://github.com/fasiha/ebisu gibi bir yaklaşımın Anki eklentisi olarak mümkün olması ya da açık bir kart formatı kullanan benzer bir uygulama bulunması güzel olurdu
Sadece “birikenleri” tamamen temizlediğinizde artık istediğiniz zaman pratik yapamazsınız; yeniden pratik yapılabilir hâle gelene kadar bir süre beklemeniz gerekir
Hatırladığım bilgileri tekrar etmek can sıkıcıydı, unuttuklarımın önemli bir kısmını ise tamamen unutmuştum. Bu yüzden tekrarın pek anlamı kalmıyor ve ilerleme çok yavaş oluyordu
Asıl nokta, neredeyse unutmak üzereyken tekrar etmek; bu da son tarih ve takvim yönetimi olmadan zor
Gerçekte son tarih kullanmıyoruz; istenen bazı analiz özellikleri dışında kullanıcıları birkaç zorluk seviyesinde tutmaya çalışıyoruz
Her zaman gecikmiş olanları %100 temizlemekten çok ilerlemeyi daha önemli görüyoruz. Gerçekten önemli bir kelimeyse favorilere eklenir ya da tekrar karşısına çıkar
Genel amaçlı bir flashcard uygulaması değil; yabancı dilde otomatik cümle madenciliğine çok odaklanıyor. Yine de FSRS’yi değiştirme deneyimimizle ilgili soruları memnuniyetle yanıtlarım
Ürünle ilgili bilgiye https://blog.phrasing.app/phrasing-first-look/ adresinden bakabilirsiniz
FSRS’yi 3 aydır kullanıyorum; eski SM2 zamanlama algoritmasını deneme yanılmayla ayarlama derdi nihayet çözülmüş oldu
Her destenin içeriği optimum tutma oranını ciddi biçimde etkileyebilir; artık birkaç ayda bir her destenin ağırlıklarını yeniden eğitince buna uygun şekilde adapte oluyor
Makale[0] de büyük ölçekli gerçek dünya ortamında aralıklı tekrar biliminin titiz bir analizini görmek istiyorsanız okunmaya değer
Kapsamlı benchmark’lar nedeniyle, çoğu kişi için koleksiyonuna göre ağırlıkları yeniden ayarlamak, binlerce inceleme birikene kadar büyük fayda sağlamayacaktır. Yazar 1.000 ve üzerini öneriyor
Kartları geciktirseniz de iyi çalışıyor. Hatırlama olasılığı kararlılığa ve son tekrar zamanına dayandığı, son tarih geçtikten sonra da hatırladıysanız kararlılık biraz daha uzun güncellendiği için
[0] https://dl.acm.org/doi/10.1145/3534678.3539081?cid=99660547150
[1] https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm
Flashcard’ları hobi olarak sevdiğim için her gün birkaç aralıklı tekrar uygulamasını eğlencesine kullanıyorum. FSRS’yi de denedim ve iyi, ama henüz en yeni SuperMemo kadar değil
Aynı ya da benzer materyali iki veya daha fazla uygulamaya koyunca fark görülüyor. Yine de FSRS şu anda mevcut olan neredeyse her şeyden çok daha iyi ve yakında SuperMemo’dan daha iyi olacak gibi
Mochi Cards’ı yaklaşık 1 yıl kullandım; fena değildi, varsayılan Anki kurulumundan biraz daha iyiydi. Mnemosyne de benzer. SuperMemo SaaS uygulaması da iyi, ama dil materyalini düzenleme biçimini sevmiyorum
Dil kelime hazinesi için Clozemaster kullanıyorum; doğru cevapladıktan sonra o cümleyi SuperMemo’ya koyuyorum. Çünkü SuperMemo algoritması o kadar daha iyi. Her kelime için ChatGPT açıklaması da var, onu da SuperMemo’ya ekliyorum
En zor kısım kesinlikle iyi kartlar yapmak. Daha fazla fikir edinmek için http://arxiv.org/abs/2401.01257 ve https://rust-book.cs.brown.edu yardımcı oluyor
SuperMemo kadar hızlı kart oluşturmamı sağlayan bir flashcard programı henüz bulamadım. SuperMemo’da bir metin bloğunu yapıştırıp (ctrl-n), boşluk silme için yapılacak kelimeyi seçip alt-x’e basmak yeterli. Aynı metin parçasında bunu birden çok kez yapabiliyorsunuz ve her seferinde yeni bir boşluk kartı tekrara giriyor
Diğer uygulamaların çoğunda kartları tek tek oluşturmak gerekiyor. Sanırım bunun nedeni kart ve deste metaforuna fazla sıkı bağlı olmaları. SuperMemo her şeyi ağaç yapısı içinde düzenliyor ve bu büyük fark yaratıyor. Aslında düzenlemek şart bile değil; ama insanlar öğrendikleri materyal zihinlerinde tertemiz destelere ayrılacakmış gibi davranıyor
Her boşluk grubunun kendine ait bir “kartı” oluyor
Aralıklı tekrarın önemi düşünüldüğünde, Anki’den farklı olarak modüler bir yaklaşım gerekmez mi diye düşünüyorum
Üç şey birbirinden ayrı değil mi?
Veri yapısı katı biçimde modüler değil, ama mevcut Anki desteleri ve eklenti uyumluluğunu koruyarak pratikte mümkün olduğu kadar buna yakın
Aslında artık yalnızca kayıtlar ve mevcut algoritma ayar değerleriyle tüm aralıkları ve zorlukları tamamen yeniden hesaplayan bir düğme var. Zaten FSRS kullanıyorsanız ve ayar değerleri değişmediyse, yeniden hesaplama her tekrardan sonraki artımlı hesaplamayla aynı olduğundan hiçbir etkisi yok
İlkesel olarak tam zamanında hesaplanan saf bir fonksiyon gibi görülebilir; mevcut uyumluluk ve performans nedeniyle üretilen verileri önbelleğe alan bir yapı diye düşünebilirsiniz
Konuyla ilgili yüzsüz bir öz tanıtım olarak, YouTube videolarından Anki kartları oluşturabilen ücretsiz ve açık kaynaklı bir araç yaptım: https://youtube2anki.fly.dev/
Geri bildirim almak isterim. Kod GitHub’da: https://github.com/vacmar01/youtube2anki
FSRS ve Anki hakkında Xiaojun ile birkaç kez konuştum. Anki+FSRS gibi geleneksel aralıklı tekrar sistemlerinde öğrenen kişi bilgiyi çoğu zaman hep aynı bağlamda tekrar eder; bu da bilgiyi daha büyük bir ağın parçası yerine yalıtılmış bir birim olarak anlamasına yol açabilir
Örneğin kelimeleri ayrı ayrı öğrenmek, dili gerçek hayatta kullanmaya yeterince hazırlamaz. Gerçek durumlarda bağlam, eşdizimler ve kullanım biçimleri büyük rol oynar
Yalıtılmış tekrardan daha iyi bir dil öğrenme yöntemi, kelimeleri çeşitli bağlam ve kombinasyonlar içinde görmeyi sağlayarak kelimelerin doğal olarak öbekler ve cümleler halinde nasıl oluştuğunu anlamaktır
Bu yüzden dil öğreniminde Anki kartları yerine gerçek hayattan kısa videolar gösteren bir şey geliştiriyorum. Her video küçük bir senaryo; dilin gerçek durumlarda nasıl kullanıldığını gösteriyor
Öğrenciler yalnızca kelime ezberlemekle kalmıyor, kullanımını görsel ipuçları ve jestleri de içeren doğal bir bağlamda görüyor. Bu yaklaşım, kelime ve ifadelerin gerçek uygulamasını anlamayı sağlayarak öğrenmeyi daha sürükleyici ve etkili kılabilir. Çünkü yabancı dil öğreniminde başarısızlığın başlıca nedeni sürdürememek
Anki’de eksik olan bir başka şey de “hatırlıyor musun?” değil, gerçek durum temelli quiz’ler. Öğrenciler öğrendiklerini eğlenceli ve düşük baskılı bir ortamda uygulamalı
SRS algoritması çözümün yalnızca bir parçası, her derde deva değil. Hafızada duygunun kodlama üzerindeki etkisi gibi birçok etken var. İlk öpücüğünüzü ya da mezuniyet gününüzü hatırlamak için SRS’ye ihtiyacınız yok
İnsanlar hiçbir SRS olmadan ana dillerini akıcı biçimde öğreniyor, ama yabancı dilde SRS kullansalar bile çoğu kişi akıcı olamıyor
Birinci dil edinimi ile ikinci dil edinimi elma ile pastırma kadar farklı. Bebeklerin ve yetişkinlerin beyinleri farklı; ihtiyaçları, yetileri ve bağlamları da çok farklı