-30% na kursy No problem! z rocznym dostępem z kodem NPL30

Prawdziwa historia spaced repetitions

history

Dr Piotr Wozniak, czerwiec 2018

Spis treści

Wstęp

Prawdziwa historia

Popularna historia spaced repetition jest pełna mitów i nieprawd. Ten tekst ma opowiedzieć prawdziwą historię. Problem ze spaced repetition polega na tym, że stała się zbyt popularna jak na własną, skuteczną replikację. Jak szybko mutujący wirus, wciąż przeskakuje z aplikacji do aplikacji, opowiadając swoją historię i po drodze gromadząc błędy.

Kto wynalazł spaced repetition?

To jest historia tego, jak rozwiązałem problem zapominania. Odkryłem, jak uczyć się efektywnie. Skromność to strata czasu, dlatego dodam, że uważam, iż faktycznie wiem, jak znacząco wzmocnić ludzką inteligencję. W skrócie: pamięć leży u podstaw wiedzy, która leży u podstaw inteligencji. Jeśli potrafimy kontrolować to, co przechowujemy w pamięci i co zapominamy, możemy kontrolować naszą zdolność rozwiązywania problemów. W bardzo podobny sposób możemy również wzmacniać sztuczną inteligencję. To wielka ulga móc wreszcie napisać te dumne słowa po latach nakazu milczenia narzuconego przez względy komercyjne.

Na początku lat 90. myślałem, że wiem, jak wywrócić do góry nogami systemy edukacyjne na całym świecie i sprawić, by działały dla wszystkich uczniów. Jednak każda poważna zmiana wymaga przesunięcia paradygmatu kulturowego. Nie wystarczy, żeby biedny student z biednego komunistycznego kraju ogłosił potencjał zmiany. Zrobiłem to w mojej pracy magisterskiej, ale spotkałem się z niewielkim zainteresowaniem moimi pomysłami. Nawet moja własna rodzina była lekceważąca. Na szczęście na uniwersytecie poznałem kilku bystrych przyjaciół, którzy zadeklarowali, że wykorzystają moje pomysły do założenia firmy. Tak jak Microsoft zmienił świat komputerów osobistych, my mieliśmy zmienić sposób, w jaki ludzie się uczą. Mieliśmy potężne narzędzie do nauki: SuperMemo. Jednak aby SuperMemo mogło podbić świat, musiało na jakiś czas porzucić swoje korzenie. Żeby przekonać innych, SuperMemo musiało być owocem czystej nauki. Nie mogło być po prostu pomysłem skromnego studenta.

Aby zakorzenić SuperMemo w nauce, podjęliśmy poważny wysiłek, by opublikować nasze idee w czasopiśmie recenzowanym, przyjęliśmy mało znany naukowy termin „ spaced repetition ” i osadziliśmy naszą technologię nauki w kontekście teorii uczenia się i historii badań psychologicznych. Jestem bardzo sceptyczny wobec szkół, certyfikatów i tytułów. Mimo to posunąłem się nawet do zdobycia doktoratu z ekonomii uczenia się, żeby nadać moim słowom powagi.

Dziś, gdy spaced repetition w końcu pojawia się w setkach szanowanych narzędzi, aplikacji i usług do nauki, możemy wreszcie zgłosić roszczenie i zatknąć flagę na szczycie. Liczba użytkowników sięga setek milionów.

Jeśli przeczytasz SuperMemopedię tutaj, możesz dojść do wniosku, że „Nikt nigdy nie powinien przypisywać sobie zasługi odkrycia spaced repetition”. Pozwolę sobie się nie zgodzić. W tym tekście zgłoszę pełne roszczenie do tego odkrycia oraz solidne roszczenie do rozpowszechnienia tej idei. Mój wkład w to drugie maleje dzięki sile samej idei i rosnącemu gronu osób zaangażowanych w tę koncepcję (daleko wykraczającemu poza naszą firmę).

Utrwalanie mitów

To Krzysztof Biedalak (CEO) ma najmniej cierpliwości do fałszywych informacji dotyczących spaced repetition. Przypiszę więc ten konkretny tekst i wysiłek obalania mitów jego determinacji, by trzymać się prawdziwej historii. SuperMemo na DOS narodziło się 30 lat temu (1987). Oddajmy temu należny hołd.

Jeśli wierzysz, że Ebbinghaus wynalazł spaced repetition w 1885 roku, przepraszam. Kiedy opracowywaliśmy historię SuperMemo, umieściliśmy nazwisko czcigodnego niemieckiego psychologa na szczycie chronologicznej listy i tak narodził się mit. Ebbinghaus nigdy nie pracował nad spaced repetition.

Pisanie o historii spaced repetition nie jest łatwe. Za każdym razem, gdy to robimy, tworzymy więcej mitów poprzez zniekształcenia i nieporozumienia. Powiedzmy więc to jasno i dobitnie. Przed SuperMemo prowadzono ogromną liczbę badań nad pamięcią. Jednak za każdym razem, gdy hojnie oddaję komuś zasługi, pamiętajcie słowa Biedalaka:

Jeśli SuperMemo jest promem kosmicznym, musimy uznać wcześniejszą pracę wykonaną nad rowerami. Tymczasem nasza konkurencja jest zajęta próbami replikacji naszego promu, ale te wysiłki przypominają radziecki program Buran. Buran odbył przynajmniej jeden lot kosmiczny. Był bezzałogowy

Ten tekst ma na celu przedstawienie faktów i otwarte ujawnienie wczesnych kroków spaced repetition. To zabawna wycieczka w przeszłość, która sprawia mi szczególną przyjemność dzięki poczuciu „misja wykonana”. Teraz, gdy możemy nazwać nasz wysiłek globalnym sukcesem, nie ma potrzeby czynić go bardziej szacownym, niż w rzeczywistości jest. Nie ma potrzeby czynić go bardziej naukowym, bardziej historycznym, czy bardziej certyfikowanym.

Spaced repetition jest tu i zostanie na dobre. Udało się nam!

Podziękowania

Lista osób, które przyczyniły się do idei spaced repetition, jest zbyt długa, by zmieścić ją w tym krótkim artykule. Niektóre nazwiska nie pojawiają się, ponieważ po prostu zabrakło mi czasu, by opisać ich wkład. Dr Phil Pavlik ma na koncie chyba najświeższe pomysły w tej dziedzinie. Cała rzesza badaczy pamięci bada wpływ rozłożenia w czasie na pamięć. Duolingo i Quizlet to wiodący konkurenci, którzy mają ogromny wpływ na dobrą promocję tej idei. Nie zdołałem wymienić wielu moich fantastycznych nauczycieli, którzy zainspirowali moje myślenie. Cała rzesza ciężko pracujących i utalentowanych ludzi w SuperMemo World również zasługiwałaby na wzmiankę. Użytkownicy SuperMemo nieustannie wnoszą niesamowite sugestie, które napędzają dalszy postęp. Nagroda za najbardziej wpływowe wyjaśnienie spaced repetition powinna trafić do Gary’ego Wolfa z Wired, ale było ich znacznie więcej. Może innego dnia znajdę więcej czasu, by szczegółowo opisać wszystkich tych wspaniałych ludzi.

1985: Narodziny SuperMemo

Dążenie do lepszej nauki

Spędziłem 22 długie lata w systemie edukacji. Stare prawdy o szkolnictwie pasują do mojego przypadku idealnie. Nigdy nie lubiłem szkoły, ale zawsze lubiłem się uczyćNigdy nie pozwoliłem, by szkoła przeszkadzała mi w nauce. Wstępując na uniwersytet, po 12 latach w systemie szkół publicznych, wciąż kochałem naukę. Szkoła nie zniszczyła tej miłości z dwóch głównych powodów: (1) system był wobec mnie łagodny oraz (2) miałem pełną swobodę uczenia się tego, co lubię, w domu. W komunistycznej Polsce nigdy naprawdę nie doświadczyłem toksycznego bata ciężkiego szkolnictwa. System był niedbały, a ja kochałem wynikające z tego wolności.

Wszyscy wiemy, że najlepsza nauka wynika z pasji. Napędza ją popęd do nauki. Mój popęd do nauki był silny i mieszał się z odrobiną frustracji. Im więcej się uczyłem, tym bardziej widziałem siłę zapominania. Nie mogłem zaradzić zapominaniu poprzez więcej nauki. Moja pamięć nie była zła w porównaniu z innymi studentami, ale wyraźnie była dziurawym naczyniem.

W 1982 roku zwróciłem większą uwagę na to, co większość studentów odkrywa prędzej czy później: efekt testowania. Zacząłem formułować swoją wiedzę pod kątem aktywnego przypominania. Zapisywałem pytania po lewej stronie strony, a odpowiedzi w osobnej kolumnie po prawej:

W ten sposób mogłem zakrywać odpowiedzi kartką papieru i wykorzystywać aktywne przypominanie, by uzyskać lepszy efekt zapamiętywania z powtórki. Był to powolny proces, ale efektywność nauki wzrosła dramatycznie. Moje notatniki z tamtego okresu są opisane jako „materiał szybkiej asymilacji”, co odnosiło się do sposobu, w jaki zapisywana była moja wiedza.

W latach 1982-1983 wciąż rozbudowywałem swoją wiedzę „szybkiej asymilacji” w dziedzinach biochemii i angielskiego. Od czasu do czasu przeglądałem swoje strony z informacjami, by zredukować zapominanie. Moja retencja się poprawiała, ale to była tylko kwestia czasu, kiedy znów uderzę w ścianę. Im więcej miałem stron, tym rzadsze były powtórki, tym bardziej oczywisty stawał się problem przeciekającej pamięci. Oto przykład historii powtórek z tamtego okresu:

Między czerwcem 1982 a grudniem 1984 mój zeszyt z parami słów angielsko-polskich liczył 79 stron wyglądających tak:

Rysunek: Typowa strona z mojego zeszytu ze słówkami angielsko-polskimi, rozpoczętego w czerwcu 1982. Pary słów były wypisane po lewej stronie. Historia powtórek była zapisywana po prawej stronie. Błędy w przypominaniu były oznaczane kropkami pośrodku

Te 79 stron obejmowało zaledwie 2794 słowa. To tylko ułamek tego, czego potrzebowałem, a już był to spory ból głowy przy powtórkach. Co ciekawe, zacząłem uczyć się angielskiego w sposób aktywny, tzn. używając par słów polsko-angielskich, dopiero w 1984 roku, czyli z dwuletnim opóźnieniem. Po prostu za późno odkryłem, że pasywna znajomość słownictwa jest w porządku przy czytaniu, ale nie wystarcza, by mówić w danym języku. Ten rodzaj niewiedzy po 6 latach szkolnictwa jest normą. Szkoły dużo drylują, ale rzucają bardzo mało światła na to, co czyni naukę efektywną.

Pod koniec 1984 roku postanowiłem usprawnić proces powtórek i przeprowadzić eksperyment, który zmienił moje życie. Ostatecznie, trzy dekady później, jestem niesamowicie dumny, widząc, że wpłynął on na miliony ludzi. Otworzył śluzy. Mamy erę szybszej i lepszej nauki.

Oto jak ten wstępny okres został opisany w mojej pracy magisterskiej w 1990 roku:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Był rok 1982, kiedy poczyniłem swoje pierwsze obserwacje dotyczące mechanizmu pamięci, które później wykorzystano przy formułowaniu metody SuperMemo. Jako ówczesny student biologii molekularnej byłem przytłoczony ilością wiedzy wymaganej do zdania egzaminów z matematyki, fizyki, chemii, biologii itd. Problem nie polegał na niemożności opanowania wiedzy. Zwykle 2-3 dni intensywnej nauki wystarczały, by upakować głowę danymi potrzebnymi do zdania egzaminu. Frustrujące było to, że tylko znikoma część nowo zdobytej wiedzy pozostawała w pamięci po kilku miesiącach od egzaminu.

Moja pierwsza obserwacja, oczywista dla każdego uważnego studenta, była taka, że jednym z kluczowych elementów nauki było aktywne przypominanie. Ta obserwacja sugeruje, że pasywne czytanie książek nie wystarcza, jeśli nie towarzyszy mu próba przypomnienia sobie z pamięci wyuczonych faktów. Zasada opierania procesu nauki na przypominaniu będzie później określana jako zasada aktywnego przypominania. Proces przypominania jest znacznie szybszy i nie mniej skuteczny, jeśli pytania zadawane przez studenta są konkretne, a nie ogólne. Dzieje się tak, ponieważ odpowiedzi na ogólne pytania zawierają zbędne informacje potrzebne do opisania relacji między podskładnikami odpowiedzi.

Aby zilustrować problem, wyobraźmy sobie skrajną sytuację, w której student chce opanować wiedzę zawartą w pewnym podręczniku, używając w procesie przypominania tylko jednego pytania: Czego nauczyłeś się z podręcznika? Oczywiście informacje opisujące kolejność rozdziałów książki byłyby pomocne przy odpowiadaniu na to pytanie, ale są z pewnością zbędne dla tego, co student naprawdę chce wiedzieć. Zasada opierania procesu przypominania na konkretnych pytaniach będzie później określana jako zasada minimalnej informacji . Zasada ta wydaje się uzasadniona nie tylko z powodu eliminacji redundancji.

Mając na uwadze zasady aktywnego przypominania i minimalnej informacji, stworzyłem swoje pierwsze bazy danych (tj. zbiory pytań i odpowiedzi) używane w próbie zachowania zdobytej wiedzy w pamięci. W tamtym czasie bazy danych były przechowywane w formie pisemnej na papierze. Moja pierwsza baza danych została rozpoczęta 6 czerwca 1982 roku i składała się ze stron zawierających około 40 par słów każda. Pierwsze słowo w parze (interpretowane jako pytanie) było terminem angielskim, drugie (interpretowane jako odpowiedź) było jego polskim odpowiednikiem. Będę odnosił się do tych par jako do elementów (items). Powtarzałem poszczególne strony w bazie w nieregularnych odstępach (zależnych głównie od dostępności czasu), zawsze zapisując datę powtórki, elementy, które nie zostały zapamiętane, oraz ich liczbę. Ten sposób przechowywania zdobytej wiedzy w pamięci okazał się wystarczający dla bazy danych umiarkowanej wielkości, pod warunkiem że powtórki były wykonywane wystarczająco często.

Urodziny spaced repetition: 31 lipca 1985

Intuicje

W 1984 roku moje rozumowanie na temat pamięci opierało się na dwóch prostych intuicjach, które prawdopodobnie ma każdy student:

  • jeśli powtórzymy coś dwa razy, zapamiętujemy to lepiej. To dość oczywiste, prawda? Jeśli powtórzymy to 3 razy, prawdopodobnie zapamiętamy to jeszcze lepiej
  • jeśli zapamiętamy zbiór notatek, będą one stopniowo zanikać z pamięci, tzn. nie wszystkie naraz. Łatwo to zaobserwować w życiu. Wspomnienia mają różny czas trwania

Te dwie intuicje powinny skłonić każdego do zastanowienia: jak szybko i ile notatek tracimy, i kiedy powinniśmy powtórzyć następnym razem?

Do dziś zdumiewa mnie, że bardzo niewiele osób zadało sobie trud, by zmierzyć ten „optymalny odstęp”. Kiedy sam go zmierzyłem, byłem pewien, że znajdę dokładniejsze wyniki w książkach o psychologii. Nie znalazłem.

Eksperyment

Następujący prosty eksperyment doprowadził do narodzin spaced repetition. Został przeprowadzony w 1985 roku i po raz pierwszy opisany w mojej pracy magisterskiej w 1990 roku. Użyto go do ustalenia optymalnych odstępów dla pierwszych 5 powtórek stron wiedzy. Każda strona zawierała około 40 par słów, a optymalny odstęp miał przybliżać moment, w którym zapominane było mniej więcej 5-10% tej wiedzy. Naturalnie odstępy byłyby wysoce dopasowane do tego konkretnego rodzaju materiału do nauki i do konkretnej osoby, w tym przypadku mnie. Dodatkowo, aby przyspieszyć sprawę, próbki pomiarowe były małe. Zauważ, że nie był to projekt badawczy. Nie był przeznaczony do publikacji. Celem było jedynie przyspieszenie mojej własnej nauki. Byłem przekonany, że ktoś inny musiał zmierzyć te odstępy znacznie lepiej, ale 13 lat przed narodzinami Google uznałem, że zmierzenie odstępów będzie szybsze niż szperanie w bibliotekach w poszukiwaniu lepszych danych. Eksperyment zakończył się 24 sierpnia 1985 roku, co pierwotnie nazwałem urodzinami spaced repetition. Jednak pisząc ten tekst w 2018 roku, znalazłem oryginalne materiały do nauki i okazuje się, że moja gorliwość do nauki sprawiła, iż sformułowałem zarys algorytmu i zacząłem uczyć się biologii człowieka 31 lipca 1985 roku.

Z tego powodu mogę powiedzieć, że najdokładniejszą datą urodzin SuperMemo i obliczeniowego spaced repetition był 31 lipca 1985.

31 lipca, przed zakończeniem eksperymentu, wyniki wydawały się już wystarczająco przewidywalne. W kolejnych latach ustalenia tego konkretnego eksperymentu okazały się dość uniwersalne i można je było rozszerzyć na więcej dziedzin wiedzy oraz na całą zdrową populację dorosłych. Nawet w 2018 roku domyślne ustawienia Algorytm SM-17 nie odbiegają daleko od tych podstawowych ustaleń.

Spaced repetition narodziło się 31 lipca 1985 roku

Oto oryginalny opis eksperymentu z mojej pracy magisterskiej z drobnymi poprawkami gramatycznymi i stylistycznymi. Wyróżnienia w tekście dodano w 2018 roku, aby podkreślić ważne fragmenty. Jeśli wydaje się nudny i nieczytelny, porównaj z Ebbinghausem z 1885 roku. To ten sam styl pisania w dziedzinie pamięci. Różniły się tylko cele. Ebbinghaus starał się zrozumieć pamięć. 100 lat później ja chciałem po prostu uczyć się szybciej:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Eksperyment mający na celu przybliżenie długości optymalnych odstępów międzypowtórkowych (25 lutego 1985 – 24 sierpnia 1985):

  1. Eksperyment składał się z etapów A, B, C, … itd. Każdy z tych etapów miał na celu obliczenie drugiego, trzeciego, czwartego i kolejnych quasi-optymalnych odstępów międzypowtórkowych (pierwszy odstęp ustalono na jeden dzień, ponieważ wydawał się najbardziej odpowiedni na podstawie wcześniej zebranych danych). Kryterium ustalania quasi-optymalnych odstępów było, aby były one możliwie jak najdłuższe i pozwalały na utratę nie więcej niż 5% zapamiętanej wiedzy.
  2. Zapamiętana wiedza w każdym z etapów A, B, C składała się z 5 stron zawierających około 40 elementów w następującej formie:Pytanie: słowo angielskie,Odpowiedź: jego polski odpowiednik.
  3. Każda ze stron używanych w danym etapie była zapamiętywana w jednej sesji i powtarzana następnego dnia. Aby uniknąć nieporozumień, zauważ, że w celu uproszczenia dalszych rozważań używam terminu pierwsza powtórka w odniesieniu do zapamiętywania elementu lub grupy elementów. Ostatecznie oba procesy, zapamiętywanie i ponowna nauka, mają tę samą formę – odpowiadanie na pytania tak długo, aż liczba błędów spadnie do zera.
  4. W etapie A (25 lutego – 16 marca) trzecia powtórka została wykonana w odstępach 2, 4, 6, 8 i 10 dni odpowiednio dla każdej z pięciu stron. Obserwowana utrata wiedzy po tych powtórkach wyniosła odpowiednio 0, 0, 0, 1, 17 procent. Odstęp siedmiodniowy został wybrany, by przybliżyć drugi quasi-optymalny odstęp międzypowtórkowy oddzielający drugą i trzecią powtórkę.
  5. W etapie B (20 marca – 13 kwietnia) trzecia powtórka została wykonana po siedmiodniowych odstępach, natomiast czwarte powtórki nastąpiły po 6, 8, 11, 13, 16 dniach odpowiednio dla każdej z pięciu stron. Obserwowana utrata wiedzy wyniosła 3, 0, 0, 0, 1 procent. Odstęp 16-dniowy został wybrany, by przybliżyć trzeci quasi-optymalny odstęp. Uwaga: byłoby naukowo bardziej zasadne powtórzenie etapu B z dłuższymi wariantami trzeciego odstępu, ponieważ utrata wiedzy była niewielka nawet po najdłuższym z wybranych odstępów; jednak byłem wtedy zbyt niecierpliwy, by zobaczyć wyniki kolejnych kroków, żeby poświęcać czas na powtarzanie etapu B, który wydawał się wystarczająco udany (tzn. skutkował dobrą retencją)
  6. W etapie C (20 kwietnia – 21 czerwca) trzecie powtórki wykonano po siedmiodniowych odstępach, czwarte powtórki po 16-dniowych odstępach, a piąte powtórki po odstępach 20, 24, 28, 33 i 38 dni. Obserwowana utrata wiedzy wyniosła 0, 3, 5, 3, 0 procent. Etap C powtórzono dla dłuższych odstępów poprzedzających piątą powtórkę (31 maja – 24 sierpnia). Odstępy i utraty pamięci były następujące: 32-8%, 35-8%, 39-17%, 44-20%, 51-5% i 60-20%. Odstęp 35-dniowy został wybrany, by przybliżyć czwarty quasi-optymalny odstęp.

Nietrudno zauważyć, że każdy z etapów opisanego eksperymentu zajmował około dwa razy więcej czasu niż poprzedni. Ustalenie pierwszych dziesięciu quasi-optymalnych odstępów międzypowtórkowych mogłoby zająć kilka lat. Rzeczywiście, kontynuowałem eksperymenty tego rodzaju w kolejnych latach, aby zyskać głębsze zrozumienie procesu optymalnie rozłożonych w czasie powtórek zapamiętanej wiedzy. Jednak wówczas postanowiłem wykorzystać te ustalenia w moim codziennym procesie rutynowej nauki.

31 lipca 1985 roku mogłem już wyczuć wynik eksperymentu. Zacząłem używać SuperMemo na papierze do nauki biologii człowieka. To byłaby najlepsza data, którą można by nazwać urodzinami SuperMemo.

Wydarzenia z 31 lipca 1985 roku

31 lipca 1985 roku narodziło się SuperMemo. Miałem już dostępną większość danych z mojego eksperymentu ze spaced repetition. Jako gorliwy praktyk, nie czekałem na zakończenie eksperymentu. Chciałem zacząć uczyć się jak najszybciej. Mając zbudowany spory zbiór notatek z biologii człowieka, zacząłem przekształcać te notatki w format Special Memorization Test (SMT to była oryginalna nazwa dla SuperMemo i spaced repetition).

Rysunek: Biologia człowieka w formacie Special Memorization Test rozpoczęta 31 lipca 1985 (tzn. narodziny SuperMemo)

Moje obliczenia mówiły mi, że przy 20 min dziennie potrzebowałbym 537 dni, by przetworzyć moje notatki i skończyć zadanie do stycznia 1987 roku. Obliczyłem również, że każda strona testu prawdopodobnie kosztowałaby mnie 2 godziny życia. Mimo całej obietnicy i szybkości SuperMemo, ta świadomość była dość bolesna. Tempo nauki na studiach jest zdecydowanie zbyt szybkie jak na pojemność ludzkiej pamięci. Teraz, gdy mogłem uczyć się znacznie szybciej i lepiej, zdałem sobie sprawę, że nie pokryję nawet ułamka tego, co uważałem za możliwe. Szkoły nie mają sensu przy swojej objętości i tempie. Tego samego dnia dowiedziałem się, że polski rząd komunistyczny zniósł cła importowe na mikrokomputery. To powinno umożliwić w pewnym momencie kupienie komputera w Polsce. Otworzyło to drogę do SuperMemo na DOS 2,5 roku później.

31 lipca zanotowałem również, że gdyby wakacje mogły trwać wiecznie, osiągnąłbym znacznie więcej w nauce, a nawet więcej w życiu. Szkoła jest takim marnotrawstwem czasu. Jednak groźba poboru trzymała mnie w ryzach. Wkroczyłem na ścieżkę, która zmusiła mnie do zapisania się na uniwersytet na kolejne 5 lat. Jednak większość tego czasu poświęciłem SuperMemo i mam niewiele żalu.

Mój eksperyment ze spaced repetition zakończył się 24 sierpnia 1985 roku. Wtedy też zacząłem uczyć się słownictwa angielskiego. Do tego dnia zdołałem zapisać większość mojego materiału z biochemii na stronach do powtórek w SuperMemo.

Uwaga: Moja praca magisterska błędnie podaje 1 października 1985 jako dzień, w którym zacząłem uczyć się biologii człowieka (nie 31 lipca, jak widać na powyższym obrazku). 1 października 1985 był w rzeczywistości pierwszym dniem moich studiów informatycznych i poza tym niczym się nie wyróżniał. Wraz z rozpoczęciem studiów mój czas na naukę i energia do nauki zostały drastycznie ograniczone. Paradoksalnie, początek szkoły zawsze zdaje się zwiastować koniec dobrej nauki.

Pierwszy algorytm spaced repetition: Algorytm SM-0, 25 sierpnia 1985

W wyniku mojego eksperymentu ze spaced repetition, byłem w stanie sformułować pierwszy algorytm spaced repetition, który nie wymagał komputera. Cała nauka musiała odbywać się na papierze. Nie miałem komputera wtedy, w 1985 roku. Mój pierwszy mikrokomputer, ZX Spectrum, miałem dostać dopiero w 1986 roku. SuperMemo musiało poczekać na pierwszy komputer z napędem dyskietek (Amstrad PC 1512 w roku 1987).

Często słyszę to proste pytanie: „Jak możesz sformułować SuperMemo po eksperymencie, który trwał 6 miesięcy? Jak możesz przewidzieć, co wydarzy się za 20 lat?”

Pierwsze eksperymenty dotyczące długości optymalnego odstępu doprowadziły do wniosków, które umożliwiły przewidzenie najbardziej prawdopodobnej długości kolejnych odstępów międzypowtórkowych bez faktycznego mierzenia retencji poza kilkoma tygodniami! W skrócie, można to zilustrować następującym rozumowaniem. Jeśli pierwsze miesiące badań dały następujące optymalne odstępy: 1, 2, 4, 8, 16 i 32 dni, można było z ufnością mieć nadzieję, że kolejne odstępy będą rosnąć o czynnik dwa.

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Algorytm SM-0 używany w spaced repetition bez komputera (25 sierpnia 1985)

  1. Podziel wiedzę na jak najmniejsze możliwe elementy pytanie-odpowiedź
  2. Zgrupuj elementy w grupy zawierające 20-40 elementów. Grupy te są później nazywane stronami
  3. Powtarzaj całe strony, używając następujących odstępów (w dniach):I(1)=1 dzieńI(2)=7 dniI(3)=16 dniI(4)=35 dnidla i>4: I(i):=I(i-1)*2gdzie:
    • I(i) to odstęp używany po i-tej powtórce
  4. Skopiuj wszystkie elementy zapomniane po odstępie 35. dnia do nowo utworzonych stron (bez usuwania ich z wcześniej używanych stron). Te nowe strony będą powtarzane w taki sam sposób, jak strony z elementami uczonymi po raz pierwszy

Zauważ, że odstępy międzypowtórkowe po piątej powtórce zakładano, że zwiększają się dwukrotnie w kolejnych powtórkach. Fakt ten opierał się raczej na intuicji niż na eksperymencie. W ciągu dwóch lat korzystania z AlgorytmSM-0 zebrano wystarczające dane, by potwierdzić rozsądną dokładność tego założenia.

Do dziś słyszę, że niektórzy ludzie używają, a nawet preferują, papierową wersję SuperMemo. Tutaj znajduje się opis z 1992 roku.

Zauważ, że intuicja, iż odstępy powinny podwajać się, jest równie stara jak teoria uczenia się. W 1932 roku C. A. Mace zasugerował efektywne metody nauki w swojej książce „ The psychology of study”. Wspomniał o „ aktywnym powtarzaniu” i „ powtórnych rewizjach”, które powinny być rozłożone w stopniowo zwiększających się odstępach, mniej więcej „ odstępach jednego dnia, dwóch dni, czterech dni, ośmiu dni i tak dalej”. Ta propozycja została później podjęta przez innych autorów. Wśród nich byli Paul Pimsleur i Tony Buzan, którzy obaj zaproponowali własne intuicje, obejmujące bardzo krótkie odstępy (w minutach) lub „ostateczną powtórkę” (po kilku miesiącach). Wszystkie te pomysły nie przeniknęły dobrze do praktyki nauki poza elitami uczącymi się. Dopiero aplikacja komputerowa umożliwiła rozpoczęcie efektywnej nauki bez studiowania metodologii.

Ten intuicyjny czynnik mnożenia odstępu równy 2 pojawił się również w kontekście badania możliwości ewolucyjnej optymalizacji pamięci w odpowiedzi na statystyczne właściwości środowiska: „ Pamięć jest zoptymalizowana, aby spełniać probabilistyczne właściwości środowiska 

Mimo całej swojej prostoty, w mojej pracy magisterskiej nie zawahałem się nazwać mojej nowej metody „rewolucyjną”:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Choć tempo przyswajania mogło nie wydawać się oszałamiające, Algorytm SM-0 był rewolucyjny w porównaniu z moimi poprzednimi metodami z dwóch powodów:

  • z upływem czasu retencja wiedzy rosła zamiast maleć (jak to było w przypadku nauki przerywanej)
  • w perspektywie długoterminowej tempo przyswajania pozostawało niemal niezmienione (przy nauce przerywanej tempo przyswajania znacznie spadałoby z czasem)

[…]

Po raz pierwszy udało mi się pogodzić wysoką retencję wiedzy z rzadkimi powtórkami, co w konsekwencji prowadziło do stale rosnącej objętości zapamiętanej wiedzy bez konieczności zwiększania obciążenia czasowego!

Retencję na poziomie 80% osiągano łatwo, a można ją było jeszcze zwiększyć, skracając odstępy międzypowtórkowe. Wiązałoby się to jednak z częstszymi powtórkami, a co za tym idzie, zwiększeniem obciążenia czasowego. Przyjęte rozłożenie powtórek zapewniało zadowalający kompromis między retencją a obciążeniem pracą.

[…]Kolejne znaczące usprawnienie Algorytm SM-0 miało nastąpić dopiero w 1987 roku, po zastosowaniu komputera do nadzorowania procesu nauki. W międzyczasie zgromadziłem odpowiednio około 7190 i 2817 elementów w moich nowych bazach danych angielskiego i biologicznych. Przy szacowanym czasie pracy 12 minut dziennie dla każdej bazy danych, średnie tempo przyswajania wiedzy wynosiło odpowiednio 260 i 110 elementów/rok/minutę, podczas gdy retencja wiedzy wynosiła w najgorszym przypadku 80%.

Narodziny SuperMemo z perspektywy dekady

Dekadę po narodzinach SuperMemo, stało się ono dość dobrze znane w Polsce. Oto ta sama historia opowiedziana ponownie przez J. Kowalskiego, Enter w 1994 roku:

Był rok 1982, kiedy 20-letni student biologii molekularnej na Uniwersytecie im. Adama Mickiewicza w Poznaniu, Piotr Wozniak, był mocno sfrustrowany swoją niezdolnością do zachowania nowo poznanej wiedzy w mózgu. Dotyczyło to ogromnego materiału z biochemii, fizjologii, chemii i angielskiego, który należało opanować, chcąc rozpocząć udaną karierę w biologii molekularnej. Jednym z głównych bodźców do systematyczniejszego zajęcia się problemem zapominania było proste obliczenie dokonane przez Wozniaka, które pokazało mu, że kontynuując pracę nad opanowaniem angielskiego swoimi standardowymi metodami, potrzebowałby 120 lat, by przyswoić całe ważne słownictwo. To nie tylko skłoniło Wozniaka do pracy nad metodami nauki, ale również uczyniło go zdeterminowanym zwolennikiem idei jednego języka dla wszystkich ludzi (mając na uwadze czas i pieniądze wydawane przez ludzkość na tłumaczenia i naukę języków). Początkowo Wozniak wciąż powiększał stosy notatek z faktami i danymi, które chciałby zapamiętać. Nie zajęło dużo czasu odkrycie, że zapominanie wymaga częstych powtórek, a do zarządzania całą nowo zebraną i zapamiętaną wiedzą potrzebne jest systematyczne podejście. Korzystając z oczywistej intuicji, Wozniak podjął próbę zmierzenia retencji wiedzy po różnych odstępach międzypowtórkowych i w 1985 roku sformułował pierwszy zarys SuperMemo, który nie wymagał jeszcze komputera. Do 1987 roku Wozniak, wtedy student drugiego roku informatyki, był dość zdumiony skutecznością swojej metody i postanowił zaimplementować ją jako prosty program komputerowy. Skuteczność programu okazała się wykraczać daleko poza to, czego się spodziewał. Zapoczątkowało to ekscytującą wymianę naukową między Wozniakiem a jego kolegami z Politechniki Poznańskiej i Uniwersytetu im. Adama Mickiewicza. Kilkunastu studentów z jego wydziału podjęło się roli królików doświadczalnych i zapamiętało tysiące elementów, dostarczając stały strumień danych i krytycznego feedbacku. Dr Gorzelańczyk z Akademii Medycznej pomógł w sformułowaniu molekularnego modelu tworzenia pamięci i modelowaniu zjawisk zachodzących w synapsie. Dr Makałowski z Zakładu Biochemii Biopolimerów przyczynił się do analizy ewolucyjnych aspektów optymalizacji pamięci (uwaga: to on zasugerował również zarejestrowanie SuperMemo na Software for Europe). Janusz Murakowski, magister fizyki, obecnie zapisany na studia doktoranckie na University of Delaware, pomógł Wozniakowi rozwiązać problemy matematyczne związane z modelem nauki przerywanej i symulacją prądów jonowych podczas przenoszenia potencjału czynnościowego w komórkach nerwowych. Kilkunastu przyszłych nauczycieli akademickich, z prof. Zbigniewem Kierzkowskim na czele, pomogło Wozniakowi dostosować jego program studiów do jednego celu: połączenia wszystkich aspektów SuperMemo w jedną spójną teorię, która obejmowałaby molekularne, ewolucyjne, behawioralne, psychologiczne, a nawet społeczne aspekty SuperMemo. Wozniak, który twierdzi, że odkrył co najmniej kilka ważnych i nigdy niepublikowanych właściwości pamięci, zamierzał ugruntować swoje teorie, zdobywając doktorat z neuronauki w USA. Wiele godzin rozmów z Krzysztofem Biedalakiem, magistrem informatyki, sprawiło, że obaj wybrali inną drogę: próbę spełnienia wizji dotarcia z SuperMemo do studentów na całym świecie.

1986: Pierwsze kroki SuperMemo

SuperMemo na papierze

22 lutego 1984 roku obliczyłem, że przy moim tempie nauki i moich inwestycjach w naukę, opanowanie angielskiego zajęłoby mi 26 lat (w SuperMemo standard Advanced English to 4 lata przy 40 min/dzień). Wraz z pojawieniem się SuperMemo na papierze ta statystyka drastycznie się poprawiła.

Latem 1985 roku, używając SuperMemo na papierze, zacząłem uczyć się z wielkim entuzjazmem. Po raz pierwszy wiedziałem, że cała inwestycja w naukę się opłaci. Nic nie mogło umknąć uwadze. Ten wczesny entuzjazm sprawia, że zastanawiam się, dlaczego nie podzieliłem się dobrymi wieściami z innymi.

SuperMemo nie było „tajną bronią”, którą wielu użytkowników wykorzystuje, by imponować innym. Po prostu myślałem, że nauka musiała już odpowiedzieć na wszystkie pytania związane z efektywną nauką. Miałem wrażenie, że jedynie łatam swój słaby dostęp do zachodniej literatury odrobiną własnych badań. Moja ówczesna naiwność była astronomiczna. Mój angielski nie był wystarczająco dobry, by rozumieć wiadomości z zachodu. Ameryka była dla mnie krainą nadludzi, którzy uprawiają super-naukę, lądują na księżycu, dokonują wszystkich wielkich odkryć i wkrótce wyleczą raka i staną się nieśmiertelni. Jednocześnie była to kraina Reagana, który mógł zdmuchnąć Polskę z powierzchni Ziemi pociskami Pershing lub manewrującymi. To dawało mi kilka koszmarów. Chyba jedyne poważne źródło stresu na początku lat 80. Często zastanawiam się nad zdumiewającymi niespójnościami w mózgach maluchów czy dzieci. Dla mnie naiwność moich wczesnych dwudziestu lat mówi, że musiałem być spóźnionym kwiatem o bardzo nierównym rozwoju. Nieznajomość angielskiego przekładała się na nieznajomość świata. Byłem młodym dorosłym z obszarami siły i obszarami niesamowitej ignorancji. W tym kontekście spaced repetition wygląda jak dziecko potrzeby połączonej z ignorancją, pewnością siebie i pasją.

Uniwersytet

W październiku 1985 roku rozpocząłem swoje lata na uniwersytecie informatycznym. Straciłem pasję do uniwersytetu już w pierwszym tygodniu nauki. Zamiast programowania, byliśmy poddawani wyjątkowo nudnym wykładom z tematów wprowadzających z matematyki, fizyki, elektroniki itd. Przy napiętym harmonogramie mogłem z łatwością stać się osobą, która porzuciła SuperMemo. Na szczęście moja miłość do biochemii i moja potrzeba angielskiego nie pozwoliły mi zwolnić. Kontynuowałem swoje powtórki, od czasu do czasu dodając nowe strony. Przede wszystkim miałem nowe marzenie: mieć własny komputer i samodzielnie programować. Jedną z pierwszych rzeczy, które chciałem zaimplementować, było SuperMemo. Trzymałbym swoje strony na komputerze i miał je automatycznie planowane.

Wspomniałem mimochodem o mojej super-metodzie nauki mojemu koledze ze szkoły średniej, Andrzejowi „Mike’owi” Kubiakowi, dopiero latem 1987 roku (29 sierpnia). Graliśmy razem w piłkę nożną i muzykę. W końcu pokazałem mu, jak używać SuperMemo, 14 listopada 1987 roku. Zajęło mi 836 dni (2 lata, 3 miesiące i 2 tygodnie), by zwerbować pierwszego użytkownika SuperMemo. Mike był później moim królikiem doświadczalnym w wypróbowywaniu SuperMemo w nauce proceduralnej. Ćwiczył rytmy generowane komputerowo, korzystając z harmonogramu podobnego do SuperMemo. Dla Mike’a SuperMemo było miłością od pierwszego wejrzenia. Jego słownictwo poszybowało w górę. Pozostał wierny przez wiele lat, aż do momentu, gdy jakość jego angielskiego przewyższyła potrzebę dalszej nauki. Jest jogiem, a jego podróż do Indii i regularne używanie angielskiego utrwaliły niezbędną wiedzę na całe życie.

ZX Spectrum

W 1986 i 1987 roku coraz częściej myślałem o SuperMemo na komputerze. Co dziwne, początkowo niewiele myślałem o problemie rozdzielania stron na pojedyncze fiszki. To pokazuje, jak zamknięci w swoich schematach potrafimy być, wpadając w rutynę robienia tych samych rzeczy każdego dnia. Aby dojść do stanu z 2018 roku, SuperMemo musiało przejść przez dziesiątki przełomów i podobnie oczywistych mikrokroków. Z perspektywy czasu wszystko jest tak proste i oczywiste. Jednak istnieją ukryte granice ludzkiego myślenia, które uniemożliwiły czytaniu przyrostowemu wyłonić się dekadę wcześniej. Tylko ułamek tych ograniczeń leży w technologii.

W moim pierwszym roku na uniwersytecie miałem bardzo mało czasu i energii do zaoszczędzenia, a większość tego czasu zainwestowałem w zdobycie mojego pierwszego komputera: ZX Spectrum (styczeń 1986). Pożyczyłem taki od przyjaciela na jeden dzień jesienią 1985 roku i byłem kompletnie zachwycony. Zacząłem programować „na papierze” na długo przed zdobyciem tej zabawki. Moim pierwszym programem był „planowanie dnia”, prekursor Planu. Program był gotowy do wpisania do komputera, gdy po raz pierwszy włączyłem mój ZX Spectrum 4 stycznia 1986 roku. Od tego dnia większość dni spędzałem na programowaniu, ignorując szkołę i pisząc swoje programy na papierze nawet podczas lekcji.

Rysunek: Komputer domowy 8-bitowy ZX Spectrum.

Wojsko

Początek 1986 roku był naznaczony groźbą poboru. Myślałem, że kolejne 5 lat na uniwersytecie oznacza 5 kolejnych lat wolności. Jednak Wojsko miało inne pomysły. Dla nich drugi kierunek się nie liczył, i musiałem stanąć na głowie, by uniknąć służby. Mój gniew był potrojony przez fakt, że nigdy w życiu nie rozważałbym 12 miesięcy rozłąki z moim najlepszym nowym przyjacielem: ZX Spectrum. Powiedziałem człowiekowi w mundurze, że naprawdę nie chcą mieć wściekłego człowieka z bronią w swoich szeregach. Na szczęście, w bałaganie komunistycznej biurokracji, udało mi się wymknąć spod kontroli i kontynuować edukację. Do dziś jestem szczególnie wrażliwy na kwestie wolności. Pobór niewiele różni się od niewolnictwa. Nie był to pobór w imię zwalczania faszyzmu. Był to pobór dla bezmyślnego drylu, defilady krokiem gęsim, wczesnych pobudek, gorących posiłków w pośpiechu i stresu. Jeśli miało to służyć gotowości Bloku Komunistycznego, byłaby to gotowość Armii Dobrego Wojaka Szwejka. Dziś miliony dzieci są wysyłane do szkoły w podobnym, przypominającym pobór wysiłku, graniczącym z niewolnictwem. Proszę przeczytać mój tekst Nigdy nie posłałbym moich dzieci do szkoły po moje zdanie na temat przymusowego deptania praw człowieka dzieci. Jestem pewien, że niektóre z moich odczuć zostały ukształtowane przez poczucie zniewolenia z 1986 roku.

W dniu, gdy radioaktywna chmura z Czarnobyla przeszła nad Poznaniem w Polsce, byłem zajęty chodzeniem od punktu do punktu przez rozległe miasto, odwiedzając urzędy wojskowe i cywilne w wysiłku uniknięcia wojska. Udało mi się, a lato 1986 roku było jednym z najbardziej słonecznych. Spędzałem dni na programowaniu, bieganiu, nauce z SuperMemo (na papierze), pływaniu, piłce nożnej i dalszym programowaniu.

Lato 1986

Mój apetyt na nowe oprogramowanie był nienasycony. Napisałem program do komponowania muzyki, do przewidywania wyników mistrzostw świata, do kółka i krzyżyka w 3D, do pisania testów szkolnych i wiele innych. Dostałem kilka zleceń z Zakładu Biochemii (Uniwersytet im. Adama Mickiewicza). Mój bohater, prof. Augustyniak, potrzebował oprogramowania do symulacji topnienia DNA oraz do szybkiego wyszukiwania genów tRNA (lata później zaowocowało to publikacją). Zlecił mi również program do analizy regresji, który później zainspirował postęp w SuperMemo (zwłaszcza Algorytmy SM-6 i SM-8).

Podczas programowania cały czas miałem SuperMemo z tyłu głowy, jednak całe moje oprogramowanie charakteryzowało się brakiem jakiejkolwiek bazy danych. Programy trzeba było wczytywać z taśmy kasetowej, co było sporą uciążliwością (nie przeszkadzało mi to jeszcze w 1986 roku). Prościej było trzymać moją wiedzę SuperMemo na papierze. Zacząłem marzyć o większym komputerze. Jednak w komunistycznej Polsce koszt był poza zasięgiem. Kiedyś obliczyłem, że IBM PC kosztowałby tyle, co dożywotnie zarobki mojej mamy w systemie komunistycznym. Jeszcze w 1989 roku nie było mnie stać na wizytę w toalecie w Holandii, ponieważ była astronomicznie droga w porównaniu z zarobkami w Polsce.

PC 1512

Cała moja rodzina zebrała środki. Mój kuzyn, dr Garbatowski, załatwił specjalne konto walutowe do przelewów w markach niemieckich. Cudem udało mi się kupić Amstrad PC 1512 za 1000 DM z Niemiec. Komputer nie został przemycony, jak kiedyś podano w prasie. Moja nieudana próba przemytu miała miejsce dwa lata wcześniej, w odniesieniu do ZX Spectrum. Moi przyjaciele z Zairu mieli go dla mnie kupić w Berlinie Zachodnim. Ostatecznie kupiłem używany ZX Spectrum w Polsce, w dobrej cenie, od kogoś, kto myślał, że sprzedaje „tylko klawiaturę”.

Rysunek: Amstrad PC-1512 DD. Moja wersja miała tylko jeden napęd dyskietek. System operacyjny MS-DOS trzeba było ładować z jednej dyskietki, Turbo Pascal 3.0 z drugiej, SuperMemo z jeszcze innej. Zanim w 1991 roku miałem pierwszy dysk twardy, moja kolekcja angielskiego była podzielona na kawałki po 3000 elementów rozłożone na 13 dyskietkach. Miałem znacznie więcej dla innych dziedzin wiedzy. 21 stycznia 1997 roku SuperMemo World odnalazło ten oryginalny komputer i odkupiło go od jego właściciela: Jarka Kanteckiego. Komputer był w pełni sprawny przez całą dekadę. Teraz spoczywa gdzieś w zakurzonych archiwach firmy. Może kiedyś opublikujemy jego zdjęcie. Prezentowane zdjęcie pochodzi z Wikipedii

Mój niemiecki Amstrad-Schneider PC 1512 zamówiłem w polskiej firmie Olech. Olech miał go dostarczyć w czerwcu 1987 roku. Dostarczyli we wrześniu. Kosztowało mnie to całe lato stresu. Jakiś czas później Krzysztof Biedalak zamówił komputer z holenderskiej firmy Colgar i nigdy nie dostał ani komputera, ani zwrotu pieniędzy. Gdyby przydarzyło się to mnie, straciłbym zaufanie do ludzkości. To zabiłoby SuperMemo. To mogłoby zabić moją pasję do komputerów. Biedalak z kolei stoicko wrócił do ciężkiej pracy i odzyskał swoje pieniądze, a nawet więcej. To byłaby jedna z kluczowych różnic w osobowości między mną a Biedalakiem. Odporność na stres powinna być jednym ze składników rozwoju. Ja rozwinąłem swoją odporność na stres późno, poprzez trening samodyscypliny (np. zimowe pływanie czy maratony). Straciwszy swoje pieniądze, Biedalak się nie skarżył. Odzyskał je w mgnieniu oka. Wkrótce zazdrościłem mu nowego, błyszczącego komputera. Jego ciężka praca i determinacja w osiąganiu celów zawsze były kluczem do przetrwania firmy. To jego własne, prywatnie zarobione pieniądze pomogły SuperMemo World przetrwać pierwsze miesiące. Nie dostał prezentu od rodziców. Zawsze potrafił radzić sobie sam.

Symulowanie procesu nauki

22 lutego 1986 roku, używając mojego ZX Spectrum, napisałem program symulujący długoterminowy proces nauki z SuperMemo. Obawiałem się, że wraz z narastaniem materiału proces nauki znacznie się spowolni. Jednak moje wstępne wyniki były dość sprzeczne z intuicją: postęp jest niemal liniowy. Poza samym początkowym okresem nie ma dużego spowolnienia w nauce.

25 lutego 1986 roku rozszerzyłem program symulacji o nowe funkcje, które odpowiadałyby na „ palące pytania o pamięć”. Program działał na Spectrum przez 5 dni, zanim mogłem uzyskać pełne wyniki dla 80 lat nauki. Potwierdził moje wcześniejsze ustalenia.

23 marca 1986 roku udało mi się napisać ten sam program symulacyjny w Pascalu, który był językiem kompilowanym. Tym razem mogłem uruchomić symulację 80 lat w zaledwie 70 minut. Otrzymałem te same wyniki. Dziś SuperMemo wciąż umożliwia uruchamianie podobnych symulacji. Ta sama procedura zajmuje zaledwie sekundę lub dwie.

Rysunek: SuperMemo umożliwia symulację przebiegu nauki na przestrzeni 15 lat, wykorzystując rzeczywiste dane zebrane podczas powtórek.

Niektóre z wyników tej symulacji są aktualne do dziś. Poniżej przedstawiam niektóre z oryginalnych ustaleń. Niektóre mogły zostać poprawione w 1990 lub 1994 roku.

Krzywa uczenia się jest niemal liniowa

Krzywa uczenia się uzyskana za pomocą modelu, z wyjątkiem samego początkowego okresu, jest niemal liniowa.

Rysunek: Krzywa uczenia się dla ogólnego materiału, wskaźnik zapominania równy 10%, i dzienny czas pracy 1 minuta.

Nowe elementy zajmują 5% czasu

W procesie długoterminowym, przy wskaźniku zapominania równym 10% i przy ustalonym dziennym czasie pracy, średni czas poświęcony na zapamiętywanie nowych elementów to zaledwie 5% całkowitego czasu poświęconego na powtórki. Ta wartość jest niemal niezależna od wielkości materiału do nauki.

Tempo nauki

Zgodnie z symulacją, liczbę elementów zapamiętanych w kolejnych latach przy pracy jedna minuta dziennie można przybliżyć następującym równaniem:

NoweElementy=aar*(3*e -0.3*rok+1)

gdzie:

  • NoweElementy – elementy zapamiętane w kolejnych latach przy pracy jedna minuta dziennie,
  • rok – numer porządkowy roku,
  • aar – asymptotyczne tempo przyswajania, tzn. minimalne tempo nauki osiągane po wielu latach powtórek (zazwyczaj około 200 elementów/rok/min)

W procesie długoterminowym, przy wskaźniku zapominania równym 10%, średnie tempo nauki dla ogólnego materiału można przybliżyć do 200-300 elementów/rok/min, tzn. jedna minuta nauki dziennie skutkuje przyswojeniem 200-300 elementów rocznie. Użytkownicy SuperMemo zazwyczaj zgłaszają średnie tempo nauki od 50 do 2000 elementów/rok/min.

Obciążenie pracą

Dla ogólnego materiału i wskaźnika zapominania wynoszącego około 10%, funkcję czasu wymaganego dziennie na powtórki na element można w przybliżeniu wyrazić wzorem:

czas=1/500*rok -1.5+1/30000

gdzie:

  • czas – średni dzienny czas poświęcony na powtórki na element w danym roku (w minutach),
  • rok – rok procesu.

Ponieważ czas potrzebny na powtórki pojedynczego elementu jest niemal niezależny od całkowitej wielkości nauczonego materiału, powyższy wzór może być użyty do przybliżenia obciążenia pracą dla materiału do nauki dowolnej wielkości. Na przykład, całkowite obciążenie pracą dla kolekcji 3000-elementowej w pierwszym roku wyniesie 3000/500*1+3000/30000=6,1 (min/dzień).

Optymalny wskaźnik zapominania

Rysunek: Obciążenie pracą, w minutach dziennie, dla ogólnego materiału do nauki liczącego 3000 elementów, przy wskaźniku zapominania równym 10%.

Największe ogólne tempo przyswajania wiedzy uzyskuje się przy wskaźniku zapominania wynoszącym około 20-30%. Wynika to z kompromisu między redukcją obciążenia powtórkami a wzrostem obciążenia ponowną nauką w miarę wzrostu wskaźnika zapominania. Innymi słowy, wysokie wartości wskaźnika zapominania skutkują dłuższymi odstępami, ale zysk jest niwelowany przez dodatkowe obciążenie wynikające z większej liczby zapomnianych elementów, które trzeba się nauczyć ponownie.

Przy wskaźniku zapominania większym niż 20%, pozytywny efekt długich odstępów na pamięć, wynikający z efektu rozłożenia w czasie, jest niwelowany przez rosnącą liczbę zapomnianych elementów.

Rysunek: Zależność tempa przyswajania wiedzy od wskaźnika zapominania.

Gdy wskaźnik zapominania spada poniżej 5%, obciążenie powtórkami gwałtownie rośnie (patrz rysunek powyżej). Zalecana wartość wskaźnika zapominania stosowana w praktyce nauki to 6-14%.

Rysunek: Kompromis między retencją wiedzy ( wskaźnikiem zapominania) a obciążeniem pracą (liczbą powtórek przeciętnego elementu w 10 000 dni).

W późniejszych latach okazało się, że wartość optymalnego wskaźnika zapominania różni się w zależności od używanych narzędzi (np. Algorytm SM-17).

Pojemność pamięci

Maksymalną dożywotnią pojemność ludzkiego mózgu do przyswajania nowej wiedzy za pomocą procedur nauki opartych na omawianym modelu można oszacować na nie więcej niż kilka milionów elementów. Ponieważ nikt raczej nie spędzi całego swojego życia na nauce, wątpię, czy kiedykolwiek zobaczę kogoś z milionem elementów w pamięci.

1987: SuperMemo 1.0 na DOS

SuperMemo 1.0 na DOS: dzień po dniu (1987)

Plik historii SuperMemo mówi „ Wozniak napisał swoje pierwsze SuperMemo w 16 wieczorów”. Rzeczywistość była nieco bardziej skomplikowana i pomyślałem, że opiszę ją bardziej szczegółowo, korzystając z notatek z tamtych dni.

Nie potrafię odgadnąć, co miałem na myśli, pisząc 3 lipca 1987 roku, że „ mam pomysł na rewolucyjny program organizujący moją pracę i eksperymenty naukowe SMTests” (SMTests oznacza SuperMemo na papierze). Przejście z papieru na komputer wydaje się oczywistym krokiem. Musiała istnieć jakaś przeszkoda mentalna po drodze, która wymagała „myślenia poza schematami”. Niestety nie zapisałem szczegółów. Dziś ma to znaczenie tylko o tyle, że pokazuje, jak przeraźliwie wolno pozornie oczywisty pomysł może wkraść się do umysłu.

8 września 1987 roku dotarł mój pierwszy komputer PC z Niemiec (Amstrad PC 1512). Mój entuzjazm nie miał sobie równych! Nie mogłem spać. Pracowałem całą noc. Pierwszym programem, jaki planowałem napisać, miał być używany do przybliżeń matematycznych. SuperMemo było drugie w kolejce.

Rysunek: Amstrad PC-1512 DD. Moja wersja miała tylko jeden napęd dyskietek. System operacyjny MS-DOS trzeba było ładować z jednej dyskietki, Turbo Pascal 3.0 z drugiej, SuperMemo z jeszcze innej. Zanim w 1991 roku miałem pierwszy dysk twardy, moja kolekcja angielskiego była podzielona na kawałki po 3000 elementów rozłożone na 13 dyskietkach. Miałem znacznie więcej dla innych dziedzin wiedzy. 21 stycznia 1997 roku SuperMemo World odnalazło ten oryginalny komputer i odkupiło go od jego właściciela: Jarka Kanteckiego. Komputer był w pełni sprawny przez całą dekadę. Teraz spoczywa gdzieś w zakurzonych archiwach firmy. Może kiedyś opublikujemy jego zdjęcie. Prezentowane zdjęcie pochodzi z Wikipedii

16 października 1987 roku, w piątek, w 12 godzin napisałem swoje pierwsze SuperMemo w GW-Basic (719 minut nieprzerwanego programowania). Było wolne jak ślimak i pełne błędów. Niezbyt mi się podobało. Nie zacząłem się uczyć. Czy to mógł być koniec SuperMemo? Zły wybór języka programowania? Zabiegane dni w szkole zajmowały mi czas milionem nieistotnych spraw. Typowy efekt szkoły: uczyć się niczego o wszystkim. Brak czasu na kreatywność i własną naukę. Na szczęście przez cały ten czas używałem SuperMemo na papierze. Idea SuperMemo nie mogła umrzeć. Musiała prędzej czy później zostać zautomatyzowana.

14 listopada 1987 roku, w sobotę, SuperMemo na papierze zyskało swojego pierwszego użytkownika: Mike’a Kubiaka. Był bardzo entuzjastyczny. Ogień wciąż płonął. 18 listopada dowiedziałem się o Turbo Pascalu. Nie działał na moim komputerze. W tamtych czasach, jeśli miałeś złą kartę graficzną, mogłeś się nieźle namęczyć. Zamiast Herculesa, miałem tekstową, monochromatyczną (czarno-białą) CGA. Udało mi się rozwiązać problem, edytując programy w edytorze tekstu RPED zamiast w środowisku Turbo Pascal. Później zdobyłem właściwą wersję dla mojej karty wyświetlania. Nawiasem mówiąc, stare SuperMemo pokazują się w kolorach. Programowałem je w odcieniach szarości i nigdy nie wiedziałem, jak naprawdę wygląda w trybie kolorowym.

21 listopada 1987 roku był ważnym dniem. Była sobota. Dni wolne od szkoły są dniami kreatywności. Miałem nadzieję wstać o 9 rano, ale zaspałem o 72 minuty. To źle dla planu, ale zwykle dobrze dla mózgu i wydajności. Dzień zacząłem od SuperMemo na papierze (powtarzając angielski, biologię człowieka, informatykę itd.). Później tego dnia przeczytałem instrukcję mojego Amstrada PC, poznałem Pascal i Prolog, spędziłem trochę czasu, zastanawiając się, jak może działać ludzka kora mózgowa, poćwiczyłem trochę i późnym wieczorem, w nieco zmęczonym stanie umysłu, po namyśle, postanowiłem napisać SuperMemo na DOS. To byłaby moja druga próba. Tym razem jednak wybrałem Turbo Pascal 3.0 i nigdy tego nie żałowałem. Do dziś, jako bezpośrednia konsekwencja, kod SuperMemo 17 jest napisany w Pascalu (Delphi).

Dla porządku, nazwa SuperMemo została zaproponowana znacznie później. W tamtych dniach nazywałem mój program: SMTOP, czyli Super-Memorization Test Optimization Program. W 1988 roku Tomasz Kuehn upierał się, byśmy nazywali go CALOM, czyli Computer-Aided Learning Optimization Method.

22 listopada 1987 roku był lustrzanym odbiciem 21 listopada. Doszedłem do wniosku, że wiem, jak działa kora mózgowa i że pewnego dnia miło byłoby zbudować komputer wykorzystujący podobne zasady (sprawdź prace Jeffa Hawkinsa). Fakt, że wróciłem do programowania SuperMemo późnym wieczorem, czyli w bardzo złym czasie na twórczą pracę, zdaje się wskazywać, że pasja jeszcze nie zdążyła się w pełni rozkręcić.

23 listopada 1987 roku wyglądał identycznie. Nie jestem pewien, dlaczego w poniedziałek nie miałem żadnych obowiązków szkolnych, ale to mogło uratować SuperMemo. 24 listopada 1987 roku ekscytacja się rozkręciła i pracowałem 8 godzin bez przerwy (znowu wieczorem). Program miał proste menu i mógł dodawać nowe elementy do bazy danych.

25 listopada 1987 roku był stracony: musiałem iść do szkoły, byłem zmęczony i śpiący. Mieliśmy przeraźliwie nudne zajęcia z architektury komputerów, prawdopodobnie o dekadę za stanem rzeczy na zachodzie.

26 listopada był znów wolny i znów mogłem nadrobić pracę nad SuperMemo. Program urósł do ogromnych 15 400 bajtów. Doszedłem do wniosku, że program może być „ bardzo użyteczny” (sic!).

27 listopada dodałem jeszcze 3 godziny pracy po szkole.

28 listopada była sobota i mogłem dodać 12 entuzjastycznych godzin nieprzerwanego programowania. SuperMemo wyglądało teraz na niemal gotowe do użycia.

29 listopada, w niedzielę, głosowałem za reformami gospodarczymi i demokratyzacją w Polsce. Wieczorem nie zrobiłem większych postępów. Musiałem przygotować wypracowanie na lekcje angielskiego. Wypracowanie opisywało dzień, w którym eksperymentowałem z alkoholem, pewnego dnia w 1982 roku. Byłem abstynentem, ale jako biolog doszedłem do wniosku, że muszę wiedzieć, jak alkohol wpływa na umysł.

30 listopada był zmarnowany w szkole, ale mieliśmy miły spacer do domu z Biedalakiem. Odbyliśmy długą rozmowę po angielsku o naszej przyszłości. Ta przyszłość miała dotyczyć głównie nauki, prawdopodobnie w USA.

1-4 grudnia znów były stracone w szkole. Brak czasu na programowanie. W rozmowie z pewnym rosyjskim profesorem uświadomiłem sobie, że kompletnie zapomniałem rosyjski w ciągu krótkich 6 lat. Kiedyś byłem dumny ze sowojego płynnego rosyjskiego! Musiałem przekierować swój czas programowania na jakieś nudne oprogramowanie do projektowania obwodów elektronicznych. Musiałem to zrobić, by zaliczyć zajęcia z elektroniki. Miałem umowę z nauczycielem, że nie będę uczęszczał na zajęcia, tylko napiszę to oprogramowanie. Niczego się nie nauczyłem i do dziś opłakuję stratę czasu. Gdybym był wolny, mógłbym zainwestować tę energię w SuperMemo.

5 grudnia była sobota. Wolna od szkoły. Hurra! Jednak musiałem zacząć od zmarnowania 4 godzin na jakąś „procedurę kodów klawiszy”. W tamtych czasach nawet dekodowanie naciśniętego klawisza mogło być wyzwaniem. A potem kolejna godzina zmarnowana na zmianę atrybutów ekranu. Dodatkowo dodałem 6 godzin na napisanie „edytora elementów”. Dzięki temu mogłem wygodnie edytować elementy w SuperMemo. Rzeczy, które dziś uważasz za oczywiste i bezwysiłkowe: kursor w lewo, kursor w prawo, usuń, do góry, nowa linia itd., wymagały wtedy dnia programowania.

6 grudnia był uroczą niedzielą. Spędziłem 7 godzin na debugowaniu SuperMemo, dodając „ostatnie szlify” itd. Ekscytacja wciąż rosła. Za tydzień mógłbym zacząć używać mojego nowego przełomowego oprogramowania do szybkiej nauki.

W poniedziałek, 7 grudnia, po szkole, dodałem procedurę usuwania elementów.

8 grudnia, gdy Reagan i Gorbaczow podpisywali swój układ nuklearny, dodałem procedurę wyszukiwania elementów i wyświetlania niektórych statystyk elementów. SuperMemo „spuchło” do 43 800 bajtów.

9 grudnia był naznaczony szkołą i programowaniem na zajęcia z elektroniki.

10 grudnia świętowałem przerwy w dostawie prądu w szkole. Zamiast nudnych zajęć mogłem trochę dodatkowo poprogramować.

11 grudnia mieliśmy uroczy wykład z jednym z największych umysłów w szkole: prof. Janem Węglarzem. Upierał się, że mógł zdziałać więcej w Polsce niż za granicą. To był mocny przekaz. Jednak w 2018 roku jego wpis na Wikipedii mówi, że jego odkrycie metody dwufazowej zostało zignorowane, a później powielone na zachodzie, ponieważ zdecydował się publikować po polsku. Węglarz stworzył rzeczywiście znakomity zespół najlepszych umysłów badań operacyjnych w Poznaniu. Gdybym nie skłonił się w kierunku SuperMemo, z pewnością przyszedłbym z żebraczą czapką w poszukiwaniu możliwości zatrudnienia. Wieczorem dodałem procedurę sprawdzania liczby elementów do przejrzenia każdego dnia (dzisiejsze Obciążenie).

12 grudnia była sobota. Rozszerzyłem SuperMemo o edytor kolejki oczekujących, i wydawało się, że jestem gotowy zacząć naukę, jednak…

…13 grudnia zostałem trafiony bombą: „Brak pamięci”. Jakoś udało mi się naprawić problem, optymalizując kod. Ostatnią opcją, którą musiałem dodać, było umożliwienie programowi odczytu daty. Tak. To był poważny hack. Bez tego musiałbym wpisywać bieżącą datę na początku pracy z programem. Wreszcie, po długim oczekiwaniu, po południu, 13 grudnia 1987 roku, byłem w stanie dodać pierwsze elementy do mojej kolekcji z biologii człowieka: pytania o autonomiczny układ nerwowy. Do 23 grudnia 1987 roku moje połączone bazy danych papierowe i komputerowe zawierały 3795 pytań z biologii człowieka (z czego prawie 10% już w SuperMemo). Niestety, tego dnia musiałem usunąć pełne historie powtórek z SuperMemo. Nie było wystarczająco miejsca na dyskietkach 360K. Badania nad spaced repetition musiały poczekać jeszcze kilka lat.

Rysunek: SuperMemo 1.0 na DOS (1987).

Algorytm SM-2

Oto opis algorytmu używanego w SuperMemo 1.0. Opis zaczerpnięto z mojej pracy magisterskiej napisanej 2,5 roku później (1990). SuperMemo 1.0 zostało wkrótce zastąpione przez ładniejsze SuperMemo 2.0, które mogłem rozdawać przyjaciołom na uniwersytecie. Były niewielkie aktualizacje algorytmu, który został nazwany Algorytm SM-2 od wersji SuperMemo. Oznacza to, że nigdy nie istniał Algorytm SM-1.

Opanowałem 1000 pytań z biologii w pierwszych 8 miesiącach. Co więcej, zapamiętałem dokładnie 10 000 elementów par słów angielskich w pierwszych 365 dniach, pracując 40 min/dzień. Ta liczba była używana jako punkt odniesienia w reklamowaniu SuperMemo w jego pierwszych komercyjnych dniach. Nawet dziś 40 minut to zalecana codzienna inwestycja, by opanować Advanced English w 4 lata (40 000+ elementów).

Algorytm SM-2 pozostaje popularny do dziś i jest wciąż używany przez aplikacje takie jak Anki, Mnemosyne i inne.

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

3.2. Zastosowanie komputera do usprawnienia wyników uzyskiwanych podczas pracy z metodą SuperMemo

Napisałem pierwszy program SuperMemo w grudniu 1987 roku (Turbo Pascal 3.0, IBM PC). Miał on na celu usprawnienie metody SuperMemo na dwa podstawowe sposoby:

  • zastosowanie procedur optymalizacyjnych do jak najmniejszych możliwych elementów (w papierowym SuperMemo elementy były grupowane w strony),
  • rozróżnienie między elementami na podstawie ich różnego stopnia trudności.

Zauważywszy, że kolejne odstępy międzypowtórkowe rosną w przybliżeniu o stały czynnik (np. dwa w przypadku algorytmu SM-0 dla słownictwa angielskiego), postanowiłem zastosować następujący wzór do obliczania odstępów międzypowtórkowych:

I(1):=1

I(2):=6

dla n>2 I(n):=I(n-1)*EF

gdzie:

  • I(n) – odstęp międzypowtórkowy po n-tej powtórce (w dniach)
  • EF – współczynnik łatwości odzwierciedlający łatwość zapamiętywania i zachowania danego elementu w pamięci (później nazwany E-Factorem).

E-Factory mogły przyjmować wartości od 1,1 dla najtrudniejszych elementów do 2,5 dla najłatwiejszych. W momencie wprowadzania elementu do bazy danych SuperMemo zakładano, że jego E-Factor jest równy 2,5. W trakcie powtórek wartość ta była stopniowo obniżana w przypadku problemów z przypomnieniem. Im większe problemy element powodował przy przypominaniu, tym bardziej znaczące było obniżenie jego E-Factora.

Wkrótce po zaimplementowaniu pierwszego programu SuperMemo zauważyłem, że E-Factory nie powinny spadać poniżej wartości 1,3. Elementy z E-Factorami niższymi niż 1,3 były powtarzane irytująco często i zawsze wydawały się mieć nieodłączne wady w swojej formułowaniu (zwykle nie były zgodne z zasadą minimalnej informacji). Zatem niepozwalanie E-Factorom spaść poniżej 1,3 znacznie poprawiło przepustowość procesu i dostarczyło wskaźnika elementów, które powinny zostać przeformułowane. Wzór używany do obliczania nowych E-Factorów dla elementów został skonstruowany heurystycznie i niewiele się zmienił w kolejnych 3,5 latach stosowania komputerowej metody SuperMemo.

Aby obliczyć nową wartość E-Factora, student musi ocenić jakość swojej odpowiedzi na pytanie zadane podczas powtórki elementu (moje programy SuperMemo używają skali ocen 0-5 – zakres określony przez ergonomię korzystania z klawiatury numerycznej). Ogólna forma używanego wzoru była następująca:

EF’:=f(EF,q)

gdzie:

  • EF’ – nowa wartość E-Factora
  • EF – stara wartość E-Factora
  • q – jakość odpowiedzi
  • f – funkcja użyta do obliczenia EF’.

Funkcja f miała początkowo charakter multiplikatywny, a w późniejszych wersjach programu SuperMemo, gdy interpretacja E-Factorów uległa istotnej zmianie, została przekształcona w addytywną, bez istotnej zmiany zależności między EF’, EF i q. Aby uprościć dalsze rozważania, pod uwagę bierze się jedynie funkcję f w jej ostatecznej postaci:

EF’:=EF-0.8+0.28*q-0.02*q*q

co jest uproszczoną formą:

EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02))

Zauważ, że dla q=4 E-Factor się nie zmienia.

Rozważmy teraz ostateczną postać algorytmu SM-2, który z niewielkimi zmianami był używany w programach SuperMemo, wersje 1.0-3.0, między 13 grudnia 1987 a 9 marca 1989 (nazwa SM-2 została wybrana, ponieważ SuperMemo 2.0 było zdecydowanie najpopularniejszą wersją implementującą ten algorytm).

Algorytm SM-2 używany w komputerowym wariancie metody SuperMemo, obejmujący obliczanie współczynników łatwości (E-Factorów) dla poszczególnych elementów:

  1. Podziel wiedzę na możliwie najmniejsze elementy.
  2. Przypisz wszystkim elementom E-Factor równy 2.5.
  3. Powtarzaj elementy, stosując następujące interwały:I(1):=1I(2):=6dla n>2: I(n):=I(n-1)*EFgdzie:
    • I(n) – interwał między powtórzeniami po n-tym powtórzeniu (w dniach),
    • EF – E-Factor danego elementu
    Jeśli interwał jest liczbą niecałkowitą, zaokrąglij go w górę do najbliższej liczby całkowitej.
  4. Po każdym powtórzeniu oceń jakość odpowiedzi w skali 0-5:5 – odpowiedź doskonała4 – poprawna odpowiedź po wahaniu3 – poprawna odpowiedź przypomniana z poważną trudnością2 – niepoprawna odpowiedź; poprawna wydawała się łatwa do przypomnienia1 – niepoprawna odpowiedź; poprawna zapamiętana0 – całkowita niepamięć.
  5. Po każdym powtórzeniu zmodyfikuj E-Factor ostatnio powtórzonego elementu według wzoru:EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02))gdzie:
    • EF’ – nowa wartość E-Factora,
    • EF – stara wartość E-Factora,
    • q – jakość odpowiedzi w skali 0-5.
    Jeśli EF jest mniejszy niż 1.3, przyjmij EF równy 1.3.
  6. Jeśli jakość odpowiedzi była niższa niż 3, rozpocznij powtórzenia dla tego elementu od początku, nie zmieniając E-Factora (tj. użyj interwałów I(1), I(2) itd., tak jakby element był zapamiętany od nowa).
  7. Po każdej sesji powtórek danego dnia powtórz ponownie wszystkie elementy, które w ocenie jakości uzyskały wynik poniżej czterech. Kontynuuj powtórki, aż wszystkie te elementy uzyskają co najmniej cztery.

Procedura optymalizacji stosowana do wyznaczania E-Factorów okazała się bardzo skuteczna. W programach SuperMemo zawsze można znaleźć opcję wyświetlania rozkładu E-Factorów (później nazywanego E-Distribution). Kształt rozkładu E-Distribution w danej bazie danych ustalał się z grubsza w ciągu kilku miesięcy od rozpoczęcia powtórek. Oznacza to, że E-Factory nie zmieniały się już znacząco po tym okresie i można bezpiecznie założyć, że E-Factory odpowiadają w przybliżeniu rzeczywistemu współczynnikowi, o jaki powinny wzrastać interwały między powtórzeniami w kolejnych powtórzeniach.

W pierwszym roku stosowania algorytmu SM-2 (nauka słownictwa angielskiego) zapamiętałem 10 255 elementów. Czas potrzebny na tworzenie bazy danych i powtórki wynosił 41 minut dziennie. Odpowiada to tempu przyswajania 270 elementów/rok/minutę. Ogólna retencja wynosiła 89,3%, ale po wykluczeniu niedawno zapamiętanych elementów (interwały poniżej 3 tygodni), które nie mają jeszcze prawidłowo wyznaczonych E-Factorów, retencja wynosiła 92%. Porównując algorytmy SM-0 i SM-2, trzeba wziąć pod uwagę fakt, że w tym pierwszym przypadku retencja była sztucznie zawyżona z powodu podpowiedzi, jakie student otrzymuje podczas powtarzania elementów danej strony. Elementy poprzedzające ten, o który chodzi, mogą łatwo podpowiadać poprawną odpowiedź.Dlatego algorytm SM-2, choć nie powala wynikami w ujęciu ilościowym, oznaczał drugie poważne udoskonalenie metody SuperMemo po wprowadzeniu koncepcji optymalnych interwałów w 1985 roku. Rozdzielenie elementów wcześniej grupowanych na stronach oraz wprowadzenie E-Factorów były dwoma głównymi składnikami udoskonalonego algorytmu. Skonstruowany metodą prób i błędów, algorytm SM-2 potwierdził w praktyce słuszność niemal wszystkich podstawowych założeń, które doprowadziły do jego powstania.

1988: Dwa składniki pamięci

Dwuskładnikowy model pamięci długotrwałej leży u podstaw SuperMemo, i jest wyrażony wprost w Algorytmie SM-17. Rozróżnia on między tym, jak stabilna jest wiedza przechowywana w pamięci długotrwałej, a tym, jak łatwo ją przywołać. Pozostaje to mało znanym, a zarazem kluczowym faktem teorii uczenia się, że można biegle coś opanować, a mimo to pamiętać to słabo.

Płynność jest słabą miarą uczenia się w długim okresie

Składniki pamięci długotrwałej

Po raz pierwszy opisałem ideę dwóch składników pamięci w pracy na zajęcia z symulacji komputerowych 9 stycznia 1988 roku. W tej samej pracy doszedłem do wniosku, że w uczenie deklaratywne i proceduralne muszą być zaangażowane różne obwody.

Jeśli zatrzymasz się na chwilę, cała idea dwóch składników powinna być dość oczywista. Jeśli weźmiesz dwa elementy zaraz po powtórce, jeden z krótkim optymalnym interwałem, a drugi z długim optymalnym interwałem, stan pamięci obu musi się różnić. Oba mogą zostać przypomniane doskonale (maksymalna przywoływalność) i jednocześnie muszą się różnić tym, jak długo mogą przetrwać w pamięci (różna stabilność). Byłem zaskoczony, że nie mogłem znaleźć żadnej literatury na ten temat. Jeśli jednak literatura nie wspomina o istnieniu optymalnego interwału w spaced repetition, ten pozornie oczywisty wniosek może się ukrywać za innym, pozornie oczywistym pomysłem:  progresją rosnącego interwału w optymalnie rozłożonych powtórkach. To urocza ilustracja tego, jak postęp ludzkości jest przyrostowy i boleśnie powolny. Notorycznie słabo radzimy sobie z myśleniem nieszablonowym. Najciemniej jest pod latarnią. Tę słabość można przełamać eksplozją komunikacji w internecie. Opowiadam się za mniejszą liczbą recenzji naukowych, a większą odwagą w stawianiu hipotez. Mówię o fantastycznym przykładzie pochodzącym z pracy Robina Clarke’a odnoszącej się do choroby Alzheimera. Ścisła recenzja naukowa przypomina pruski system szkolny: w dążeniu do perfekcji tracimy kreatywność, potem człowieczeństwo, a ostatecznie przyjemność życia.

Kiedy po raz pierwszy przedstawiłem swoje pomysły mojemu nauczycielowi, dr. Katulskiemu, 19 lutego 1988 roku, nie zrobiło to na nim zbyt dużego wrażenia, ale zaliczył mi przedmiot symulacji komputerowych. Nawiasem mówiąc, jakiś czas później Katulski stał się jednym z pierwszych użytkowników SuperMemo 1.0 na DOS-a.

W mojej pracy magisterskiej (1990) dodałem nieco bardziej formalny dowód istnienia dwóch składników. Ta część mojej pracy pozostała niezauważona.

W 1994 roku J. Kowalski napisał w czasopiśmie Enter, Polska:

Doszliśmy do punktu, w którym ewolucyjna interpretacja pamięci wskazuje, że działa ona zgodnie z zasadami rosnących interwałów i efektu rozłożenia w czasie. Czy istnieje jakikolwiek dowód na ten model pamięci poza ewolucyjną spekulacją? W swojej rozprawie doktorskiej Wozniak szeroko omówił molekularne aspekty pamięci i przedstawił hipotetyczny model zmian zachodzących w synapsie w procesie uczenia się. Nowatorskim elementem przedstawionym w pracy było rozróżnienie między stabilnością a przywoływalnością śladów pamięciowych. Nie mogło to zostać użyte jako potwierdzenie słuszności SuperMemo z tego prostego powodu, że to właśnie SuperMemo stanowiło podstawę dla tej hipotezy. Jednak coraz więcej dowodów molekularnych zdaje się pokrywać z modelem stabilność-przywoływalność, dostarczając jednocześnie potwierdzenia poprawności założeń prowadzących do SuperMemo. Mówiąc wprost, przywoływalność jest właściwością pamięci, która określa poziom sprawności, z jaką synapsy mogą reagować na bodziec, a tym samym wywoływać wyuczoną reakcję. Im niższa przywoływalność, tym mniej prawdopodobne, że przypomnisz sobie poprawną odpowiedź na pytanie. Z kolei stabilność odzwierciedla historię wcześniejszych powtórzeń i określa, jak długo ślady pamięciowe mogą się utrzymać. Im wyższa stabilność pamięci, tym dłużej będzie trwało, zanim przywoływalność spadnie do zerowego poziomu, czyli do poziomu, na którym wspomnienia zostają trwale utracone. Według Wozniaka, gdy uczymy się czegoś po raz pierwszy, doświadczamy niewielkiego wzrostu stabilności i przywoływalności w synapsach zaangażowanych w kodowanie danego skojarzenia bodziec-reakcja. Z czasem przywoływalność szybko maleje; zjawisko to jest równoznaczne z zapominaniem. Jednocześnie stabilność pamięci pozostaje na w przybliżeniu tym samym poziomie. Jeśli jednak powtórzymy skojarzenie, zanim przywoływalność spadnie do zera, przywoływalność odzyskuje swoją początkową wartość, natomiast stabilność wzrasta do nowego poziomu, znacznie wyższego niż przy pierwotnym uczeniu się. Zanim nastąpi kolejne powtórzenie, ze względu na zwiększoną stabilność przywoływalność maleje wolniej, a interwał między powtórzeniami może być znacznie dłuższy, zanim dojdzie do zapomnienia. Warto też odnotować dwie inne ważne właściwości pamięci: (1) powtórki nie mają mocy zwiększania stabilności w czasie, gdy przywoływalność jest wysoka (efekt rozłożenia w czasie), (2) w momencie zapominania stabilność gwałtownie spada

Opublikowaliśmy nasze pomysły z drami Januszem Murakowskim i Edwardem Gorzelańczykiem w 1995. Murakowski udoskonalił dowód matematyczny. Gorzelańczyk rozwinął model molekularny. Nie usłyszeliśmy zbyt wiele entuzjazmu ani informacji zwrotnej ze strony środowiska naukowego. Idea dwóch składników pamięci jest jak wino – im starsza, tym lepiej smakuje. Wciąż zastanawiamy się, kiedy zyska szersze uznanie. W końcu nie żyjemy w czasach Mendla, żeby trzymać dobry klejnot ukryty w jakimś zapomnianym archiwum. Istnieją miliony użytkowników spaced repetition i nawet gdyby 0,1% z nich zainteresowało się teorią, usłyszeliby o naszych dwóch składnikach. Dziś nawet najnowszy algorytm w SuperMemo opiera się na modelu dwuskładnikowym i działa świetnie. Co ironiczne, użytkownicy skłaniają się ku prostszym rozwiązaniom, w których cała mechanika ludzkiej pamięci pozostaje ukryta. Nawet na supermemo.com dbamy o to, by nie straszyć klientów nadmiarem liczb na ekranie.

Koncepcja dwóch składników pamięci ma paralele we wcześniejszych badaniach, zwłaszcza u Bjorka.

W latach 40. XX wieku naukowcy badali siłę nawyku (habit strength) i siłę reakcji (response strength) jako niezależne składniki zachowania u szczurów. Koncepcje te zostały później przeformułowane w teorii dezużycia (disuse theory) Bjorka. Herbert Simon wydaje się dostrzegać potrzebę zmiennej stabilności pamięci w swojej pracy z 1966 roku. W 1969 roku Robert Bjork sformułował Paradoks Siły (Strength Paradox): odwrotną zależność między prawdopodobieństwem przypomnienia a efektem pamięciowym powtórki. Warto zauważyć, że jest to przeformułowanie efektu rozłożenia w czasie w kategoriach modelu dwuskładnikowego, co stanowi zaledwie krok od sformułowania rozróżnienia między zmiennymi pamięci. Doprowadziło to do Nowej Teorii Dezużycia Bjorka (1992), która rozróżniała między siłą przechowywania (storage strength) a siłą przywołania (retrieval strength). Są to bliskie odpowiedniki przywoływalności i stabilności, choć z nieco inną interpretacją mechanizmów leżących u podstaw tego rozróżnienia. Co najbardziej uderzające, Bjork wierzy, że gdy przywoływalność spada do zera, stabilne wspomnienia są nadal zachowane (w naszym modelu stabilność staje się nieokreślona). Na poziomie komórkowym Bjork może mieć rację, przynajmniej przez pewien czas, ale praktyka SuperMemo pokazuje siłę całkowitego zapominania, podczas gdy z neuronalnego punktu widzenia zachowywanie nieużywanych wspomnień byłoby wysoce nieefektywne, niezależnie od ich stabilności. Wreszcie, Bjork definiuje siłę przechowywania w kategoriach łączności (connectivity), co jest bardzo bliskie temu, co moim zdaniem dzieje się u dobrych uczniów: spójność wpływa na stabilność.

Dlaczego dwa składniki pamięci wciąż nie weszły do głównego nurtu badań? Twierdzę, że skoro ludzki umysł ma tendencję do krótkowzroczności – a wszyscy jej podlegamy, z natury – to umysł nauki może być naprawdę zdławiony przez wyczerpujące obowiązki, presję „publikuj albo giń”, walkę o granty, hierarchie, konflikty interesów, recenzje naukowe, obowiązki dydaktyczne, a nawet kodeks postępowania. Badacze pamięci mają tendencję do funkcjonowania w jednym wymiarze „siły pamięci”. W tym wymiarze nie są w stanie naprawdę docenić rzeczywistej dynamiki procesów molekularnych, które trzeba zbadać, by rozwiązać ten problem. Co ironiczne, postęp może przyjść od tych, którzy pracują w dziedzinie sztucznej inteligencji lub sieci neuronowych. Wybitne umysły, takie jak Demis Hassabis czy Andreas Knoblauch, dochodzą do bliźniaczych pomysłów w niezależnym procesie rozumowania, tworząc modele i symulacje. Biolodzy będą musieli zacząć słuchać języka matematyki lub informatyki.

Model dwuskładnikowy w Algorytmie SM-17

Dwuskładnikowy model pamięci długotrwałej leży u podstaw Algorytmu SM-17. Sukces Algorytmu SM-17 stanowi ostateczny praktyczny dowód poprawności tego modelu.

Wykres rzeczywistych zmian wartości dwóch składników pamięci daje wizualizację koncepcyjną zmieniającego się stanu pamięci:

Rysunek: Zmiany stanu pamięci w czasie dla przykładowego elementu. Oś pozioma przedstawia czas obejmujący całą historię powtórek. Górny panel pokazuje przywoływalność (dziesiąta potęga, R^10, dla łatwiejszej analizy). Siatka przywoływalności w szarym kolorze jest oznaczona jako R=99%, R=98% itd. Środkowy panel przedstawia optymalne interwały w kolorze granatowym. Daty powtórek są oznaczone niebieskimi liniami pionowymi i podpisane w kolorze błękitnym. Koniec optymalnego interwału, w którym R przecina linię 90%, jest oznaczony czerwonymi liniami pionowymi (tylko jeśli interwały są dłuższe niż optymalne interwały). Dolny panel wizualizuje stabilność (przedstawioną jako ln(S)/ln(days) dla łatwiejszej analizy). Wykres pokazuje, że przywoływalność spada szybko (wykładniczo) po wczesnych powtórkach, gdy stabilność jest niska, jednak spada zaledwie z 100% do 94% w ciągu długich 10 lat po 7. powtórce. Wszystkie wartości pochodzą z rzeczywistej historii powtórek oraz trójskładnikowego modelu pamięci.

Ze względu na to, że rzeczywiste zastosowanie SuperMemo wymaga radzenia sobie z materiałem o różnym stopniu trudności, trzecią zmienną uwzględnioną w modelu jest trudność elementu (D). Niektóre implikacje trudności elementu zostały już omówione w powyższym artykule. W szczególności wpływ złożonych wspomnień z podskładnikami o różnej stabilności pamięci (S).

Na potrzeby nowego algorytmu zdefiniowaliśmy trzy składniki pamięci następująco:

  • Stabilność pamięci (S) jest zdefiniowana jako interwał między powtórzeniami, który daje średnie prawdopodobieństwo przypomnienia równe 0,9 w momencie powtórki
  • Przywoływalność pamięci (R) jest zdefiniowana jako oczekiwane prawdopodobieństwo przypomnienia w dowolnym momencie, przy założeniu ujemnie wykładniczego zapominania jednorodnego materiału, ze stałą zaniku określoną przez stabilność pamięci (S)
  • Trudność elementu (D) jest zdefiniowana jako maksymalny możliwy wzrost stabilności pamięci (S) przy powtórce, odwzorowany liniowo na przedział 0..1, gdzie 0 oznacza najłatwiejsze możliwe elementy, a 1 oznacza najwyższą trudność braną pod uwagę w SuperMemo (obecnie granica odcięcia wynosi wzrost stabilności 6 razy mniejszy niż maksymalny możliwy)

Dowód

Poniżej rzeczywisty dowód z mojej pracy magisterskiej. Lepsze ujęcie tego dowodu znajduje się w dowodzie Murakowskiego.

10.4.2. Dwie zmienne pamięci: stabilność i przywoływalność

Istnieje ważny wniosek, który wynika bezpośrednio z teorii SuperMemo, mówiący, że istnieją dwie, a nie jedna, jak się powszechnie sądzi, niezależne zmienne opisujące przewodność synapsy i pamięć w ogóle. Aby zilustrować tę kwestię, rozważmy ponownie model kalpainowy pamięci synaptycznej. Z modelu tego wynika w oczywisty sposób, że jego autorzy zakładają, iż do opisania przewodności synapsy potrzebna jest tylko jedna zmienna niezależna. Napływ wapnia, aktywność kalpainy, degradacja fodryny oraz liczba receptorów glutaminianowych są przykładami takiej zmiennej. Zauważ, że wszystkie wymienione parametry są zależne, tzn. znając jeden z nich, moglibyśmy obliczyć wszystkie pozostałe; oczywiście tylko w przypadku, gdybyśmy byli w stanie skonstruować odpowiednie wzory. Zależność parametrów jest bezpośrednią konsekwencją związków przyczynowych między nimi wszystkimi.

Jednak proces optymalnego uczenia się wymaga dokładnie dwóch niezależnych zmiennych do opisania stanu synapsy w danym momencie:

  • Zmienna pełniąca rolę zegara mierzącego czas między powtórzeniami. Przykładowe parametry, które można tu zastosować, to:
    • e – czas, jaki upłynął od ostatniego powtórzenia (należy do przedziału <0,interwał-optymalny>),
    • l – czas, jaki musi upłynąć przed kolejnym powtórzeniem (T l=interwał-optymalny-T e),
    • f – prawdopodobieństwo, że synapsa utraci ślad pamięciowy w danym dniu (należy do przedziału <0,1>).
    Oczywiście można wyobrazić sobie niezliczoną liczbę parametrów, które mogłyby reprezentować zmienną zegara. Wszystkie te parametry są zależne, tzn. jeden z nich wystarczy do obliczenia wszystkich pozostałych.
  • Zmienna mierząca trwałość pamięci. Przykładowe parametry, które można tu zastosować, to:
    • I(n+1) – optymalny interwał, jaki powinien zostać użyty po następnym powtórzeniu (I(n+1)=I(n)*C, gdzie C jest stałą większą niż trzy),
    • I(n) – bieżący optymalny interwał,
    • n – liczba powtórzeń poprzedzających rozważany moment, itd.
    Ponownie parametry są zależne i tylko jeden z nich jest potrzebny do scharakteryzowania trwałości pamięci.

Zobaczmy teraz, czy powyższe zmienne są konieczne i wystarczające do scharakteryzowania stanu synaps w procesie uczenia się optymalnego w czasie. Aby pokazać, że zmienne są niezależne, wykażemy, że żadnej z nich nie można obliczyć na podstawie drugiej. Zauważmy, że parametr I(n) pozostaje stały w trakcie danego interwału między powtórzeniami, podczas gdy parametr T e zmienia się od zera do I(n). Pokazuje to, że nie istnieje funkcja f spełniająca warunek:

e=f(I(n))

Z drugiej strony, w momencie kolejnych powtórzeń T e zawsze wynosi zero, podczas gdy I(n) ma zawsze inną, rosnącą wartość. Dlatego nie istnieje funkcja g spełniająca warunek:

I(n)=g(T e)

Stąd niezależność I(n) i T e.

Aby pokazać, że żadne inne zmienne nie są potrzebne w procesie optymalnego uczenia się, zauważmy, że w dowolnym momencie możemy obliczyć wszystkie chwile przyszłych powtórzeń za pomocą następującego algorytmu:

  1. Niech upłynie I(n)-T e dni.
  2. Niech nastąpi powtórzenie.
  3. Niech T e wynosi zero, a I(n) wzrośnie C razy.
  4. Idź do 1.

Zauważ, że wartość C jest stałą charakterystyczną dla danej synapsy i jako taka nie zmienia się w procesie uczenia się. W dalszej części będę używać terminu przywoływalność na określenie pierwszej ze zmiennych oraz terminu stabilność na określenie drugiej. Aby uzasadnić wybór pierwszego terminu, zauważmy, że mamy skłonność myśleć, iż wspomnienia są silne po zadaniu związanym z uczeniem się, a następnie blakną, aż stają się już niemożliwe do przywołania. To właśnie przywoływalność decyduje o momencie, w którym wspomnień już nie ma. Warto również wspomnieć, że przywoływalność była tą zmienną, którą milcząco zakładano jako jedyną potrzebną do opisu pamięci (jak w modelu kalpainowym). Niewidoczność zmiennej stabilności wynikała z faktu, że badacze koncentrowali swoje wysiłki na pojedynczym zadaniu uczeniowym i obserwacji następujących po nim zmian w synapsach, podczas gdy znaczenie stabilności można zaobserwować jedynie w procesie wielokrotnego powtarzania tego samego zadania. Kończąc analizę zmiennych pamięci, zadajmy standardowe pytanie, które musi paść przy tworzeniu każdego modelu biologicznego. Jaka jest możliwa korzyść ewolucyjna wynikająca z istnienia dwóch zmiennych pamięci?

Przywoływalność i stabilność są obie niezbędne, by zakodować proces uczenia się, który pozwala kolejnym interwałom między powtórzeniami wydłużać się bez zapominania. Można łatwo wykazać, że taki model uczenia się jest najlepszy z punktu widzenia przeżywalności jednostki, jeśli uznamy fakt, że zapamiętywanie bez zapominania w krótkim czasie zapchałoby system pamięci, który jest skończony. Jeśli pamięć ma być zapominająca, musi mieć sposób na zatrzymywanie tych śladów, które wydają się ważne dla przetrwania. Powtórka jako czynnik wzmacniający pamięć jest takim sposobem. Zastanówmy się teraz, jaki jest najodpowiedniejszy moment na proces powtórkowy. Jeśli dane zjawisko jest napotykane po raz n-ty, prawdopodobieństwo, że zostanie napotkane po raz n+1, wzrasta, dlatego dłuższy czas przechowywania pamięci wydaje się korzystny. Dokładna funkcja opisująca najlepszy proces powtórkowy zależy od wielkości magazynu pamięci, liczby możliwych zjawisk napotykanych przez jednostkę i wielu innych czynników. Niemniej użyteczność rosnących interwałów potrzebnych do podtrzymywania pamięci poprzez powtórki jest niepodważalna, podobnie jak wartość ewolucyjna przywoływalności i stabilności pamięci. Można sobie wyobrazić wiele sytuacji zakłócających ten prosty obraz rozwoju pamięci w toku ewolucji. Na przykład zdarzenia związane z intensywnym stresem powinny być zapamiętywane lepiej. Rzeczywiście, fakt ten został potwierdzony w badaniach nad wpływem katecholamin na uczenie się. Być może, stosując stymulację hormonalną, można by poprawić wyniki studenta stosującego metodę SuperMemo.

Podsumowanie pośrednie

  1. Postulowano istnienie dwóch niezależnych zmiennych koniecznych do opisania procesu optymalnego uczenia się. Zmienne te nazwano przywoływalnością i stabilnością pamięci
  2. Przywoływalność pamięci odzwierciedla upływ czasu między powtórzeniami i wskazuje, w jakim stopniu ślady pamięciowe mogą być z powodzeniem wykorzystane w procesie przypominania
  3. Stabilność pamięci odzwierciedla historię powtórzeń w procesie uczenia się i wzrasta z każdą stymulacją synapsy. Określa ona długość optymalnego interwału między powtórzeniami

Rysunek: Hipotetyczny mechanizm zaangażowany w proces optymalnego uczenia się. (A) Zjawiska molekularne (B) Zmiany ilościowe w synapsie.

Dowód Murakowskiego

Oto udoskonalony dowód autorstwa Murakowskiego:

We wcześniejszych badaniach stwierdzono, że optymalne rozłożenie powtórek w uczeniu się par skojarzeniowych, rozumiane jako rozłożenie, które wymaga minimalnej liczby powtórzeń, aby w nieskończoność utrzymać stały poziom retencji wiedzy (np. 95%), można w przybliżeniu wyrazić za pomocą następujących wzorów ( Wozniak i Gorzelańczyk 1994).

  • (1) I 1=C 1
  • (2) I i=I i-1*C 2

gdzie:

  • i – interwał między powtórzeniami po i-tym powtórzeniu
  • 1 – długość pierwszego interwału (zależna od wybranego poziomu retencji wiedzy, zwykle równa kilku dniom)
  • 2 – stała oznaczająca wzrost interwałów między powtórzeniami w kolejnych powtórzeniach (zależna od wybranego poziomu retencji wiedzy oraz trudności zapamiętywanego elementu)

Powyższe wzory zostały wyznaczone dla ludzkich uczestników badania przy użyciu komputerowych procedur optymalizacyjnych, stosowanych do nadzorowania procesu samodzielnego uczenia się par słów za pomocą techniki aktywnego przypominania z odrzucaniem (active recall drop-out). […]

Jak zostanie pokazane poniżej, szeroko badana siła pamięci (lub potencjacja synaptyczna) nie wystarcza, by wyjaśnić regularny wzorzec optymalnego rozłożenia powtórek: […]

  1. Chcemy określić zbiór (molekularnych) zmiennych zaangażowanych w przechowywanie śladów pamięciowych, który wystarczy do wyjaśnienia optymalnego rozłożenia powtórek. Załóżmy początkowo dwa korelaty tych zmiennych w uczeniu się podlegającym optymalnemu rozłożeniu, wyrażonemu równaniami (1) i (2):r – czas, jaki pozostaje od chwili obecnej do końca bieżącego optymalnego interwału (optymalny interwał to interwał, po którego zakończeniu retencja spada do wcześniej zdefiniowanego poziomu, np. 95%)s – długość bieżącego optymalnego interwału.
  2. Dokładnie w momencie rozpoczęcia i-tego powtórzenia r=0, podczas gdy s is i-1>0 ( s i oznacza s dokładnie w momencie rozpoczęcia i-tego powtórzenia). Wskazuje to, że nie istnieje funkcja g 1 taka, że s=g 1r), tzn. s nie może być funkcją wyłącznie r.
  3. W trakcie interwału między powtórzeniami r(t 1)<> r(t 2), jeśli t 1<>t 2 (t oznacza czas, a r(t) oznacza r w momencie t). Z drugiej strony s(t 1)= s(t 2) ( s(t) oznacza s w momencie t). Pokazuje to, że nie istnieje funkcja g 2 taka, że r=g 2s), gdyż mielibyśmy: r(t 1)=g 2s(t 1))=g 2 ( s(t 2))= r(t 2), co prowadzi do sprzeczności. r nie może być funkcją wyłącznie s.
  4. W krokach 2 i 3 pokazaliśmy, że r i s są niezależne, ponieważ nie istnieją funkcje g 1 i g 2 takie, że s=g 1r) lub r=g 2s). Nie oznacza to oczywiście, że nie istnieje żaden parametr x oraz funkcje y s i y r takie, że s=y s(x) oraz r=y r(x).
  5. Można wykazać, że r i s wystarczają do obliczenia optymalnego rozłożenia powtórek (por. równania (1) i (2)). Załóżmy najpierw, że w systemie odpowiedzialnym za przechowywanie pamięci znane są dwie następujące funkcje f r i f sri=f rsi) oraz si=f ssi-1). W naszym przypadku funkcje te mają trywialną postać f rrisi oraz f ssisi-1*C 2 (gdzie C 2 jest stałą z równania (2)). W takim przypadku zmienne r i s są wystarczające, by reprezentować pamięć w dowolnym momencie t przy optymalnym rozłożeniu powtórek. Oto algorytm rozłożenia powtórek, który to potwierdza:
    1. załóżmy, że zmienne r i i s i opisują stan pamięci po i-tym powtórzeniu
    2. niech upłynie czas r i
    3. niech nastąpi powtórzenie
    4. niech funkcja f s zostanie użyta do obliczenia nowej wartości s i+1 na podstawie s i
    5. niech funkcja f r zostanie użyta do obliczenia nowej wartości r i+1 na podstawie s i+1
    6. i:=i+1
    7. idź do 2

Powyższe rozumowanie pokazuje, że zmienne r i s tworzą wystarczający zbiór niezależnych zmiennych potrzebnych do obliczenia optymalnego rozłożenia powtórek. Oczywiście, korzystając ze zbioru funkcji transformujących postaci r”=Tr( r’) oraz s”=Ts( s’), można wyobrazić sobie nieskończoną rodzinę par zmiennych r– s, które mogłyby opisywać stan systemu pamięci. Trudnym wyborem pozostaje wybranie takiej pary r– s, która najdogodniej odpowiada zjawiskom molekularnym zachodzącym na poziomie synapsy.

Autorzy proponują następującą terminologię i interpretację w systemie pamięci obejmującym istnienie pary zmiennych r– s: zmienna R, przywoływalność, określa prawdopodobieństwo, z jakim dany ślad pamięciowy może zostać przywołany w danym momencie, natomiast zmienna S, stabilność pamięci, określa tempo spadku przywoływalności w wyniku zapominania, a w konsekwencji długość interwałów między powtórzeniami przy optymalnym rozłożeniu powtórek.

Zakładając ujemnie wykładniczy spadek przywoływalności oraz interpretację stabilności jako odwrotności stałej zaniku przywoływalności, możemy dogodnie przedstawić zależność między R i S za pomocą następującego wzoru (t oznacza czas):

(3) R=e -t/S

Funkcje transformujące z pary r– s użyte w krokach 1-5 rozumowania, do proponowanej interpretacji R-S będą wyglądać następująco (przy założeniu definicji optymalnego interwału między powtórzeniami jako interwału dającego retencję wiedzy K=0,95):

(4) S=- s/ln(K)

(5) R=e -( s– r)/S

Zależność między stabilnością po i-tym powtórzeniu (S i) a stałymi C 1 i C 2, określającymi optymalne rozłożenie powtórek zgodnie z równaniami (1) i (2), można zatem zapisać jako:

(6) S i=-(C 1*C 2 i-1)/ln(K)

a wreszcie przywoływalność przy optymalnym rozłożeniu powtórek można wyrazić jako:

(7) R i(t)=exp (t*ln(K)/(C 1*C 2 i-1))

gdzie:

  • i – numer rozważanego powtórzenia
  • t – czas od i-tego powtórzenia
  • i(t) – przywoływalność po czasie t, jaki upłynął od i-tego powtórzenia, przy optymalnym rozłożeniu powtórek
  • 1 i C 2 – stałe z równań (1) i (2)
  • K – retencja wiedzy równa 0,95 (ważne jest, by zauważyć, że zależność wyrażona równaniem (7) może nie być prawdziwa dla retencji wyższej niż 0,95, ze względu na efekt rozłożenia w czasie wynikający z krótszych interwałów)

Dwa składniki pamięci w SuperMemo

SuperMemo zawsze opierało się na modelu dwuskładnikowym, który z czasem przybierał coraz bardziej wyraźną formę. Stała C 2 w równaniu (2) w powyższym dowodzie Murakowskiego reprezentuje wzrost stabilności. W 2018 roku wzrost stabilności jest reprezentowany w SuperMemo jako macierz SInc[]. C 2 mówi, o ile powinny wzrastać interwały między powtórzeniami w uczeniu się, aby spełnić kryteria dopuszczalnego poziomu zapominania. W rzeczywistości C 2 nie jest stałą. Zależy od wielu czynników. Najważniejsze z nich to:

  • trudność elementu (D)(zob. złożoność): im trudniejszy zapamiętywany fragment informacji, tym mniejsze C 2 (tj. trudny materiał musi być powtarzany częściej)
  • stabilność pamięci (S): im trwalsza/bardziej wytrzymała pamięć, tym mniejsza wartość C 2
  • prawdopodobieństwo przypomnienia ( przywoływalność)(R): im niższe prawdopodobieństwo przypomnienia, tym wyższa wartość C 2 (tj. z powodu efektu rozłożenia w czasie, elementy są lepiej zapamiętywane, jeśli powtarzane z opóźnieniem)

Ze względu na te wielorakie zależności, precyzyjna wartość C 2 nie jest łatwa do przewidzenia. SuperMemo rozwiązuje ten i podobne problemy optymalizacyjne, wykorzystując wielowymiarowe macierze do reprezentowania funkcji wieloargumentowych oraz dostosowując wartości tych macierzy na podstawie pomiarów dokonywanych podczas rzeczywistego procesu uczenia się. Początkowe wartości tych macierzy pochodzą z modelu teoretycznego lub z wcześniejszych pomiarów. Faktycznie używane wartości będą z czasem nieznacznie odbiegać od tych teoretycznie przewidywanych lub tych pochodzących z danych wcześniejszych użytkowników.

Na przykład, jeśli wartość C 2 dla danego elementu o określonej trudności i określonym stanie pamięci daje interwał między powtórzeniami dłuższy niż pożądany (tj. dający niższy niż pożądany poziom przypominania), wartość C 2 jest odpowiednio zmniejszana.

Oto ewolucja wzrostu stabilności (stała C 2) na przestrzeni lat:

  • w wersji papierowej SuperMemo (ołówek i papier, 1985) C 2 był rzeczywiście (niemal) stałą. Ustawiony na średnią wartość 1,75 (wahającą się od 1,5 do 2,0 z powodu błędów zaokrągleń i uproszczeń), nie uwzględniał trudności materiałustabilności ani przywoływalności wspomnień itd.
  • we wczesnych wersjach SuperMemo na DOS-a (1987) C 2, nazwany E-Factorem, po raz pierwszy odzwierciedlał trudność elementu. Był zmniejszany przy złych ocenach i zwiększany przy dobrych
  • SuperMemo 4 (1989) nie używało C 2, ale do obliczania interwałów między powtórzeniami po raz pierwszy zastosowało macierze optymalizacyjne
  • w SuperMemo 5 (1990) C 2, nazwany O-Factorem, został wreszcie przedstawiony jako macierz i uwzględniał zarówno wymiar trudności, jak i wymiar stabilności. Ponownie, wpisy macierzy podlegały cyklowi pomiar-weryfikacja-korekta, który, zaczynając od wartości początkowej opartej na wcześniejszych pomiarach, prowadził do zbieżności z wartością spełniającą kryteria uczenia się
  • w SuperMemo 6 (1991) C 2, w formie macierzy O-Factor, był wyprowadzany z trójwymiarowej macierzy, która uwzględniała wymiar przywoływalności. Ważną implikacją trzeciego wymiaru było to, że po raz pierwszy SuperMemo umożliwiło sprawdzanie krzywych zapominania dla różnych poziomów trudności i stabilności pamięci
  • w wersjach od SuperMemo 8 (1997) do SuperMemo 16, reprezentacja C 2 nie zmieniała się znacząco, jednak algorytm używany do zapewnienia szybkiego i stabilnego przejścia od danych teoretycznych do rzeczywistych stopniowo stawał się coraz bardziej złożony. Co najważniejsze, nowsze wersje SuperMemo lepiej wykorzystują wymiar przywoływalności w C 2. Dzięki temu, niezależnie od efektu rozłożenia w czasie, student może odstąpić od pierwotnych kryteriów uczenia się, np. by wkuwać przed egzaminem, bez wprowadzania szumu do procedury optymalizacji
  • w SuperMemo 17 (2016) C 2 przyjął wreszcie formę opartą na oryginalnym modelu dwuskładnikowym. Jest wyprowadzany z macierzy wzrostu stabilności (SInc), która ma trzy wymiary reprezentujące trzy zmienne determinujące wzrost stabilności: złożonośćstabilność i przywoływalność. Macierz SInc jest wypełniana danymi podczas nauki za pomocą złożonego algorytmu znanego jako Algorytm SM-17. Macierz wzrostu stabilności można sprawdzić w SuperMemo 17 poprzez Tools : Memory : 4D Graphs (zakładka Stability)

1989: SuperMemo dostosowuje się do pamięci użytkownika

Wprowadzenie elastycznej funkcji interwałów

SuperMemo 2 było świetne. Jego prosty algorytm przetrwał w różnych mutacjach do dziś w popularnych aplikacjach, takich jak Anki czy Mnemosyne. Jednak algorytm był „głupi” w tym sensie, że nie było sposobu na modyfikację funkcji optymalnych interwałów. Ustalenia z 1985 roku były wyryte w kamieniu. Złożoność pamięci i wzrost stabilności były wyrażane tą samą, pojedynczą liczbą: E-factorem. To trochę jak używanie jednej dźwigni w rowerze do zmiany biegów i kierunku jazdy.

Poszczególne elementy mogły dostosowywać rozłożenie powtórek poprzez zmiany szacowanej trudności. Zmiany te mogły kompensować błędy w funkcji optymalnych interwałów. Nawet jeśli algorytm wolno zbiegał do optimum, w teorii był zbieżny. Główną wadą było to, że w algorytmie SM-2 nowe elementy nie korzystały z doświadczenia elementów starych.

Algorytm SM-2 nie jest adaptowalny. Nowe elementy nie korzystają z doświadczenia elementów starych

Algorytm SM-4 był pierwszą próbą wyposażenia SuperMemo w uniwersalną adaptowalność. Został ukończony w lutym 1989 roku. Ostatecznie adaptowalność ujawniała się zbyt wolno, ale inspiracja zebrana przy okazji Algorytmu SM-4 była kluczowa dla dalszego postępu, zwłaszcza w zrozumieniu problemu stabilność-kontra-dokładność w spaced repetition. Krótko mówiąc, Algorytm SM-4 był zbyt stabilny, by być dokładny. Zostało to szybko naprawione w Algorytmie SM-5 zaledwie 7 miesięcy później. Oto fragment mojej pracy magisterskiej, wyjaśniający szczegóły:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Główną wadą Algorytmu SM-2 wydaje się być arbitralny kształt funkcji optymalnych interwałów. Choć bardzo skuteczna w praktyce i potwierdzona latami eksperymentalnych powtórek, funkcja ta nie mogła rościć sobie prawa do naukowo udowodnionej słuszności, ani nie potrafiła wykryć ogólnego wpływu kilkudniowych odchyleń optymalnych interwałów na proces uczenia się. Mając te wady na uwadze, zdecydowałem się wykorzystać rutynowe powtórki SuperMemo do walidacji funkcji optymalnych interwałów!

Korzystając z procedur optymalizacyjnych podobnych do tych zastosowanych przy wyznaczaniu E-Factorów, chciałem, aby program korygował początkowo zaproponowaną funkcję, ilekroć poprawki wydawały się uzasadnione.

Aby osiągnąć ten cel, stabelaryzowałem funkcję optymalnych interwałów.

Rysunek: Macierz optymalnych interwałów pojawiła się w SuperMemo 4 w 1989 roku i przetrwała do dziś w SuperMemo 17 z niewielkimi zmianami. Zdjęcie przedstawia macierz z SuperMemo 5 i pokazuje istotne odejście od oryginalnych wartości macierzy. W SuperMemo 4 adaptacje przebiegały znacznie wolniej

Poszczególne wpisy macierzy optymalnych interwałów (później nazywanej macierzą OI) zostały początkowo zaczerpnięte ze wzorów użytych w Algorytmie SM-2.

SuperMemo 4 (luty 1989), w którym wdrożono nowe rozwiązanie, używało macierzy OI do wyznaczania wartości interwałów między powtórzeniami:

I(n):=OI(n,EF)

gdzie:

  • I(n) – n-ty interwał między powtórzeniami dla danego elementu (w dniach),
  • EF – E-Factor elementu,
  • OI(n,EF) – wpis macierzy OI odpowiadający n-temu powtórzeniu i E-Factorowi EF.

Jednak macierz OI nie była ustalona raz na zawsze. W trakcie powtórek poszczególne wpisy macierzy były zwiększane lub zmniejszane w zależności od ocen. Na przykład, jeśli wpis wskazywał optymalny interwał X, a użyty interwał wynosił X+Y, podczas gdy ocena po tym interwale wynosiła nie mniej niż cztery, to nowa wartość wpisu mieściłaby się między X a X+Y.

Tak więc wartości wpisów OI w stanie równowagi powinny ustalić się w punkcie, w którym strumień elementów o słabej retencji równoważy strumień elementów o dobrej retencji pod względem wpływu na macierz.W konsekwencji SuperMemo 4 miało dać ostateczną definicję funkcji optymalnych interwałów.

Sztywne SuperMemo 4

Nie zajęło mi wiele czasu, by zorientować się, że cykl weryfikacji-korekty w nowym algorytmie był zbyt długi. Nie różniło się to zbytnio od przeprowadzania eksperymentu z 1985 roku na komputerze. Aby wyznaczyć interwały liczone w dekadach, potrzebowałem, by minęła dekada, żeby przetestować wyniki powtórki. Doprowadziło to do powstania Algorytmu SM-5 siedem miesięcy później. Oto problem z Algorytmem SM-4, opisany w mojej pracy magisterskiej:

Algorytm SM-4 został zaimplementowany w SuperMemo 4 i był używany między 9 marca 1989 a 17 października 1989. Choć główna koncepcja modyfikacji funkcji optymalnych interwałów wydawała się dużym krokiem naprzód, implementacja algorytmu okazała się porażką. Podstawowa niedoskonałość algorytmu wynikała najwyraźniej ze wzorów zastosowanych w modyfikacji macierzy OI.

Były dwie najbardziej rażące wady:

  • modyfikacje były zbyt subtelne, by w rozsądnie krótkim czasie w widoczny sposób przebudować macierz OI,
  • przy dłuższych interwałach między powtórzeniami efekt modyfikacji musiał czekać bardzo długo, zanim został na stałe utrwalony, tzn. mijało sporo czasu, zanim wynik modyfikacji kilkumiesięcznego interwału mógł zostać zauważony i w razie potrzeby skorygowany

Po siedmiu miesiącach stosowania Algorytmu SM-4 macierze OI poszczególnych baz danych nie wyglądały wiele inaczej niż w stanie początkowym. Fakt ten można by wyjaśnić poprawnością moich wcześniejszych przewidywań dotyczących rzeczywistych wartości optymalnych interwałów między powtórzeniami, jednak jak później udowodniono za pomocą Algorytmu SM-5, faktyczną przyczyną stabilności macierzy były wady formuł optymalizacyjnych. Jeśli chodzi o tempo przyswajania i retencję, nie ma wiarygodnych dowodów na to, że Algorytm SM-4 przyniósł jakikolwiek postęp. Niewielka poprawa mogła równie dobrze wynikać z ogólnego udoskonalenia oprogramowania oraz poprawy zasad formułowania elementów

Pozostałości SuperMemo 4 w nowych wersjach SuperMemo

Co ciekawe, macierz optymalnych interwałów wciąż można zobaczyć w nowszych wersjach SuperMemo. Macierz ta nie jest używana przez algorytm, jednak jest wyświetlana w statystykach SuperMemo, ponieważ informuje użytkownika o wpływie złożoności na perspektywy elementów w procesie uczenia się.

Jeśli porównasz macierz wygenerowaną przez SuperMemo 5 po 8 miesiącach użytkowania, zauważysz znaczące podobieństwo do macierzy wygenerowanej po dwóch dekadach użytkowania Algorytmu SM-8:

Rysunek: Macierz optymalnych interwałów nie jest już używana w Algorytm SM-17. Można ją jednak wciąż wygenerować za pomocą procedur Algorytmu SM-15. Kolumny odpowiadają łatwości materiału wyrażonej jako A-Factor. Wiersze odpowiadają stabilności pamięci wyrażonej jako kategoria powtórzenia

Algorytm SM-4

Oto zarys Algorytmu SM-4, opisany w mojej pracy magisterskiej:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

Algorytm SM-4 używany w SuperMemo 4.0:

  1. Podziel wiedzę na możliwie najmniejsze elementy
  2. Przypisz wszystkim elementom E-Factor równy 2.5
  3. Stabelaryzuj macierz OI dla różnych numerów powtórzeń i kategorii E-Factora
  4. Użyj następującego rozłożenia powtórek, aby uzyskać początkową macierz OI:OI(1,EF):=1OI(2,EF):=6dla n>2 OI(n,EF):=OI(n-1,EF)*EF gdzie:
    • OI(n,EF) – optymalny interwał między powtórzeniami po n-tym powtórzeniu (w dniach) dla elementów z E-Factorem równym EF,
  5. Użyj macierzy OI do wyznaczenia interwałów między powtórzeniami:I(n,EF):=OI(n,EF) gdzie:
    • I(n,EF) – n-ty interwał między powtórzeniami dla elementu, którego E-Factor wynosi EF (w dniach),
    • OI(n,EF) – wpis macierzy OI odpowiadający n-temu powtórzeniu i E-Factorowi EF
  6. Po każdym powtórzeniu oszacuj jakość odpowiedzi powtórkowej w skali 0-5 (zob. Algorytm SM-2).
  7. Po każdym powtórzeniu zmodyfikuj E-Factor ostatnio powtórzonego elementu według wzoru:EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02)) gdzie:
    • EF’ – nowa wartość E-Factora,EF – stara wartość E-Factora,q – jakość odpowiedzi w skali 0-5.
    Jeśli EF jest mniejszy niż 1.3, przyjmij EF równy 1.3.
  8. Po każdym powtórzeniu zmodyfikuj odpowiedni wpis macierzy OI.
  9. Przykładowy wzór mógłby wyglądać następująco (rzeczywisty wzór użyty w SuperMemo 4 był bardziej złożony):OI’:=interval+interval*(1-1/EF)/2*(0.25*q-1)OI :=(1-fraction)*OI+fraction*OI’ gdzie:
    • OI – nowa wartość wpisu OI,OI’ – wartość pomocnicza wpisu OI używana w obliczeniach,OI – stara wartość wpisu OI,interval – interwał użyty przed rozważanym powtórzeniem (tj. ostatni użyty interwał dla danego elementu),fraction – dowolna liczba między 0 a 1 (im większa, tym szybsze zmiany macierzy OI),EF – E-Factor powtarzanego elementu,q – jakość odpowiedzi w skali 0-5.
    Zauważ, że dla q=4 OI się nie zmienia oraz że dla q=5 OI wzrasta 4 razy mniej, niż maleje dla q=0.Zauważ też, że maksymalna zmiana OI wynosi (I(n)-I(n-1))/2 w kategoriach rozłożenia powtórek stosowanego w Algorytmie SM-2 (tj. (OI-OI/EF)/2).
  10. Jeśli ocena jakości była niższa niż 3, rozpocznij powtórki dla tego elementu od początku, nie zmieniając E-Factora.
  11. Po każdej sesji powtórek danego dnia powtórz ponownie wszystkie elementy, które w ocenie jakości uzyskały wynik poniżej czterech. Kontynuuj powtórki, aż wszystkie te elementy uzyskają co najmniej cztery

Problemy z macierzą interwałów

Oprócz wolnej zbieżności, Algorytm SM-4 pokazał, że użycie macierzy interwałów prowadzi do kilku problemów, które można by łatwo rozwiązać, zastępując interwały O-factorami. Te dodatkowe wady doprowadziły do szybkiego wdrożenia Algorytmu SM-5 jeszcze w 1989 roku. Oto krótka analiza wyjaśniająca wady użycia macierzy optymalnych interwałów:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ten tekst jest częścią: „ Optymalizacja uczenia się ” autorstwa Piotra Wozniaka (1990)

  • W trakcie powtórek może się zdarzyć, że jeden z interwałów zostanie obliczony jako krótszy niż poprzedni. Jest to z pewnością niezgodne z ogólnymi założeniami metody SuperMemo. Co więcej, słuszność takiego wyniku została obalona przez rezultaty zastosowania Algorytmu SM-5. Tę wadę można by zapobiec, uniemożliwiając interwałom wzrost lub spadek poza pewne wartości, jednak takie podejście ogromnie spowolniłoby proces optymalizacji, wiążąc optymalne interwały zbędnymi zależnościami. Omawiany przypadek rzeczywiście zaobserwowano w jednej z baz danych. Rozbieżność ta nie została wyeliminowana do końca okresu, w którym stosowano Algorytm SM-4, mimo że rozważane interwały wynosiły zaledwie dwa tygodnie
  • E-Factory poszczególnych elementów są stale modyfikowane, w związku z czym w macierzy OI element może przejść z jednej kategorii trudności do innej. Jeśli liczba powtórzeń dla tego elementu jest wystarczająco duża, spowoduje to poważne zakłócenia w procesie powtórkowym tego elementu. Zauważ, że im wyższa liczba powtórzeń, tym większa różnica między optymalnymi interwałami w sąsiednich kolumnach kategorii E-Factora. Zatem jeśli E-Factor wzrasta, użyty dla elementu optymalny interwał może być sztucznie długi, podczas gdy w sytuacji odwrotnej interwał może być zbyt krótki

Algorytm SM-4 próbował powiązać długość optymalnego interwału z numerem powtórzenia. Podejście to wydaje się nieprawidłowe, ponieważ pamięć jest znacznie bardziej wrażliwa na długość poprzednio zastosowanego interwału między powtórzeniami niż na numer powtórzenia.

SuperMemo 5

Idea macierzy optymalnych interwałów narodziła się 11 lutego 1989 roku. 1 marca 1989 roku zacząłem używać SuperMemo 4 do nauki esperanto. Bardzo szybko zauważyłem, że idea wymaga rewizji. Zbieżność algorytmu była rozpaczliwie powolna.

Do 5 maja miałem już nowy pomysł. Były to w istocie narodziny funkcji wzrostu stabilności, z tą różnicą, że w optymalnym przeglądzie SuperMemo nie byłoby wymiaru przywoływalności. Nowy algorytm miałby wykorzystywać macierz optymalnych współczynników. Zapamiętywałby, o ile powinny wzrastać interwały w zależności od złożoności pamięci i bieżącej stabilności pamięci. Powolna zbieżność Algorytmu SM-4 zainspirowała też potrzebę randomizacji interwałów (20 maja).

W międzyczasie postęp musiał zostać ponownie odłożony z powodu obowiązków szkolnych. Wraz z Krzysztofem Biedalakiem postanowiliśmy napisać program do tworzenia testów szkolnych, który mógłby być używany z SuperMemo. Projekt ten ponownie posłużył do wymigania się od innych obowiązków na zajęciach u otwartego na nowości dr. Katulskiego, który stał się już wtedy zwolennikiem wszystkiego, co związane z SuperMemo.

Lato spędziłem na praktykach zawodowych w Holandii, gdzie postęp był powolny z powodu różnych obowiązków. Jednym z głównych powodów powolności była skrajna dieta wynikająca z konieczności oszczędzania pieniędzy na spłatę długów za PC 1512. Miałem też nadzieję zarobić coś dodatkowego, by kupić dysk twardy do mojego komputera. Cała moja praca była możliwa dzięki uprzejmości Petera Klijna z Uniwersytetu w Eindhoven. Po prostu oddał mi swój komputer PC do prywatnego użytku na cały okres pobytu. Nie chciał, by moja dobra praca nad SuperMemo została spowolniona. Był to pierwszy raz, gdy mogłem trzymać wszystkie swoje pliki na dysku twardym, i było to jak przesiadka ze starego roweru do Tesli Model S.

Dopiero 16 października 1989 roku ukończono nowy Algorytm SM-5 i zacząłem używać SuperMemo 5. Zanotowałem w swoich notatkach: „ Nadchodzi wielka rewolucja”. Postęp był rzeczywiście ogromny.

Miałem kilku użytkowników SuperMemo 2, którzy byli gotowi przejść na SuperMemo 5. Zażądałem tylko jednej ceny: mieli zacząć z macierzą optymalnych współczynników zainicjowaną do konkretnej wartości. Miało to zwalidować algorytm i upewnić się, że nie ma on żadnych z góry przyjętych uprzedzeń. Wszystkie wstępnie ustawione macierze optymalizacyjne zbiegały się ładnie i szybko. Fakt ten posłużył następnie do twierdzenia o uniwersalnej zbieżności, a algorytm został opisany jako taki w pierwszej w historii publikacji na temat algorytmów spaced repetition.

Algorytm SM-5

SuperMemo stosuje prostą zasadę: „użyj, zweryfikuj i skoryguj”. Po powtórzeniu nowy interwał jest obliczany z pomocą macierzy OF. „Odpowiedni wpis” do obliczenia interwału zależy od powtórzenia (kategorii) i trudności elementu. Po upłynięciu interwału SuperMemo wywołuje kolejne powtórzenie. Ocena służy do poinformowania SuperMemo, jak dobrze interwał się „sprawdził”. Jeśli ocena jest niska, mamy powody sądzić, że interwał był zbyt długi, a wpis macierzy OF zbyt wysoki. W takich przypadkach nieznacznie zmniejszamy wpis OF. Odpowiedni wpis to ten, który był wcześniej użyty do obliczenia interwału (tj. zanim interwał się rozpoczął). Innymi słowy, jest to wpis, który (1) jest używany do obliczenia interwału (po n-tym powtórzeniu), a następnie (2) jest używany do skorygowania macierzy OF (po n+1 powtórzeniu).

Oto zarys Algorytmu SM-5, przedstawiony w mojej pracy magisterskiej:

Ostrzeżenie archiwalne: Dlaczego używać dosłownych archiwów?

Ostateczne sformułowanie algorytmu użytego w SuperMemo 5 przedstawiono poniżej (Algorytm SM-5):

  1. Podziel wiedzę na możliwie najmniejsze elementy
  2. Przypisz wszystkim elementom E-Factor równy 2.5
  3. Stabelaryzuj macierz OF dla różnych numerów powtórzeń i kategorii E-Factora. Użyj następującego wzoru:OF(1,EF):=4dla n>1 OF(n,EF):=EFgdzie:
    • OF(n,EF) – optymalny współczynnik odpowiadający n-temu powtórzeniu i E-Factorowi EF
  4. Użyj macierzy OF do wyznaczenia interwałów między powtórzeniami:I(n,EF)=OF(n,EF)*I(n-1,EF)I(1,EF)=OF(1,EF)gdzie:
    • I(n,EF) – n-ty interwał między powtórzeniami dla elementu o danym E-Factorze EF (w dniach)
    • OF(n,EF) – wpis macierzy OF odpowiadający n-temu powtórzeniu i E-Factorowi EF
  5. Po każdej powtórce oceń jakość odpowiedzi w skali 0-5 (por. Algorytm SM-2)
  6. Po każdej powtórce zmodyfikuj E-Factor niedawno powtórzonego elementu według wzoru:EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02))gdzie:
    • EF’ – nowa wartość E-Factora
    • EF – stara wartość E-Factora
    • q – jakość odpowiedzi w skali 0-5
    Jeśli EF jest mniejszy niż 1.3, ustaw EF na 1.3
  7. Po każdej powtórce zmodyfikuj odpowiedni wpis macierzy OF. Przykładowe wzory, skonstruowane arbitralnie i stosowane w modyfikacji, mogą wyglądać tak:OF’:=OF*(0.72+q*0.07)OF :=(1-fraction)*OF+fraction*OF’gdzie:
    • OF – nowa wartość wpisu OF
    • OF’ – pomocnicza wartość wpisu OF używana w obliczeniach
    • OF – stara wartość wpisu OF
    • fraction – dowolna liczba z przedziału od 0 do 1 (im większa, tym szybsze zmiany macierzy OF)
    • q – jakość odpowiedzi w skali 0-5
    Zauważ, że dla q=4 wartość OF się nie zmienia. Rośnie dla q>4 i maleje dla q<4.
  8. Jeśli ocena jakości była niższa niż 3, rozpocznij powtórki tego elementu od początku, nie zmieniając E-Factora
  9. Po każdej sesji powtórek danego dnia powtórz ponownie wszystkie elementy, które uzyskały ocenę poniżej czterech w ocenie jakości. Kontynuuj powtórki, aż wszystkie te elementy uzyskają co najmniej cztery

Zgodnie z wcześniejszymi obserwacjami wpisy macierzy OF nie mogły spaść poniżej 1.2. W Algorytm SM-5, z definicji, interwały nie mogą się skracać w kolejnych powtórkach. Interwały są co najmniej 1.2 razy dłuższe niż ich poprzedniki. Zmiana kategorii E-Factor zwiększa kolejny zastosowany interwał tylko tyle razy, ile wymaga tego odpowiedni wpis macierzy OF.

Krytyka Algorytmu SM-5

Instrukcja Anki zawiera fragment zaskakująco krytyczny wobec Algorytm SM-5 (kwiecień 2018). Słowa te są tym bardziej zaskakujące, że Algorytm SM-5 nigdy nie został opublikowany w całości (powyższa wersja to jedynie zgrubny zarys). Mimo że słowa krytyki wypowiedziano najwyraźniej w dobrej wierze, sugerują one możliwość, że jeśli Algorytm SM-2 był lepszy od Algorytm SM-5, to być może jest też lepszy od Algorytmu SM-17. Gdyby tak było, zmarnowałbym ostatnie 30 lat badań i programowania. Do dziś Wikipedia „krytykuje” „SM3+”. „SM3+” to etykieta użyta po raz pierwszy w instrukcji Anki, która pojawiła się na dziesiątkach stron w internecie (zwłaszcza tych, które wolą trzymać się starszego algorytmu ze względu na jego prostotę). Porównanie między Algorytmem SM-2 a Algorytmem SM-17 przedstawiono tutaj.

Błędne twierdzenie w instrukcji Anki

Moja praca magisterska, opublikowana we fragmentach w 1998 roku na supermemo.com, zawierała jedynie zgrubny opis Algorytmu SM-5. Dla jasności, dziesiątki drobnych procedur nie zostały opublikowane. Procedury te wymagałyby wielu majstrowania, aby zapewnić dobrą zbieżność, stabilność i dokładność. Ten rodzaj majstrowania wymaga miesięcy nauki połączonej z analizą. Nigdy nie istniała gotowa do użycia wersja Algorytmu SM-5.

Kod źródłowy Algorytmu SM-5 nigdy nie został opublikowany ani udostępniony, a oryginalny algorytm mogli testować jedynie użytkownicy SuperMemo 5, w MS DOS. SuperMemo 5 stało się darmowe (freeware) w 1993 roku. Warto zauważyć, że losowe rozproszenie interwałów wokół wartości optymalnej było kluczowe dla ustanowienia zbieżności. Bez rozproszenia postęp algorytmu byłby dojmująco powolny. Podobnie wygładzanie macierzy było niezbędne dla spójnego zachowania niezależnego od bogactwa danych zebranych dla różnych poziomów stabilności i złożoności elementu.

Liczne ewaluacje przeprowadzone w 1989 roku i później wskazywały na bezsprzeczną wyższość AlgorytmSM-5 i późniejszych algorytmów nad Algorytmem SM-2 w każdej badanej metryce. Algorytm SM-17 mógłby faktycznie posłużyć do zmierzenia efektywności Algorytmu SM-5, gdybyśmy mieli ochotników gotowych ponownie zaimplementować ten starożytny kod na potrzeby naszych uniwersalnych metryk. Zrobiliśmy to dotąd dla Algorytmu SM-2, ponieważ koszt implementacji był znikomy. Nie trzeba dodawać, że Algorytm SM-2 pozostaje daleko w tyle pod względem mocy predykcyjnej, zwłaszcza dla nieoptymalnych poziomów retrievability.

Nawet podstawowe zrozumienie leżącego u podstaw modelu powinno jasno pokazać, że dobra implementacja przyniosłaby ogromne korzyści. SuperMemo 5 dostosowywało swoją funkcję interwałów do pamięci użytkownika. SuperMemo 2 było ustalone raz na zawsze. Jestem bardzo dumny, że dzikie domysły poczynione w 1985 i 1987 roku wytrzymały próbę czasu, ale żaden algorytm nie powinien ufać osądowi skromnego studenta z 2-letnim doświadczeniem we wdrażaniu algorytmów spaced repetition. Zamiast tego SuperMemo 4 i wszystkie kolejne implementacje czyniły coraz mniej domysłów i zapewniały coraz lepszą i szybszą adaptowalność. Ze wszystkich tych implementacji tylko SuperMemo 4 adaptowało się wolno i zostało zastąpione po 7 miesiącach lepszą implementacją.

W krytyce Anki nie ma złej woli, ale nie zdziwiłbym się, gdyby autor dążył do implementacji i szybkiego przejścia do samouczącego się systemu, zamiast poświęcać czas na majstrowanie przy procedurach, które nie działały tak, jak oczekiwał. W przeciwieństwie do tego, już w 1989 roku wiedziałem, że Algorytm SM-2 jest wadliwy, wiedziałem, że Algorytm SM-5 jest lepszy, i nie żałowałem czasu ani wysiłku, aby udoskonalić nową koncepcję do jej maksymalnego teoretycznego potencjału.

Fragment instrukcji Anki (kwiecień 2018):

Anki opierało się pierwotnie na algorytmie SuperMemo SM5. Jednak domyślne zachowanie Anki, polegające na ujawnianiu kolejnego interwału przed udzieleniem odpowiedzi na kartę, ujawniło pewne fundamentalne problemy z algorytmem SM5. Kluczowa różnica między SM2 a późniejszymi wersjami algorytmu jest następująca:

  • SM2 wykorzystuje wyniki na karcie, aby ustalić następny termin jej powtórki
  • SM3+ wykorzystuje wyniki na karcie, aby ustalić następny termin powtórki tej karty i podobnych kart

To drugie podejście obiecuje dokładniejszy dobór interwałów poprzez uwzględnienie nie tylko wyników pojedynczej karty, lecz także wyników grupy kart. Jeśli jesteś bardzo konsekwentny w nauce i wszystkie karty mają bardzo podobny poziom trudności, takie podejście może działać całkiem dobrze. Jednak gdy do równania wprowadzone zostaną niespójności (karty o różnym poziomie trudności, nauka o różnych porach każdego dnia), SM3+ jest bardziej podatne na błędne oszacowania kolejnego interwału – co skutkuje planowaniem kart zbyt często lub zbyt daleko w przyszłość.

Co więcej, ponieważ SM3+ dynamicznie dostosowuje tabelę „czynników optymalnych”, może często dojść do sytuacji, w której odpowiedź „trudne” na karcie skutkuje dłuższym interwałem niż odpowiedź „łatwe”. Kolejne terminy są ukryte przed użytkownikiem w SuperMemo, więc użytkownik nigdy nie jest tego świadomy.Po ocenie alternatyw autor Anki uznał, że niemal optymalne interwały uzyskiwane przez pochodną SM2 są lepsze niż próba uzyskania optymalnych interwałów przy ryzyku błędnych oszacowań. Podejście SM2 jest przewidywalne i intuicyjne dla użytkowników końcowych, podczas gdy podejście SM3+ ukrywa szczegóły przed użytkownikiem i wymaga, aby użytkownicy zaufali systemowi (nawet gdy system może popełniać błędy w planowaniu).

Kilka szczegółów dla zainteresowanych:

  • fakt, że SuperMemo 5 wykorzystywało wcześniejsze wyniki wszystkich elementów, aby maksymalizować wyniki na nowych elementach, jest zaletą, a nie „problemem”. Co więcej, to właśnie klucz do potęgi adaptowalności
  • niespójne ocenianie było problemem dla wszystkich algorytmów. Przeciętnie adaptowalność pomaga wykryć przeciętny efekt niewłaściwego użycia, zwłaszcza jeśli niespójności są konsekwentne (tj. użytkownik popełnia podobne uchybienia w podobnych okolicznościach)
  • mieszane poziomy trudności są obsługiwane przez SuperMemo 5 znacznie lepiej, ponieważ podczas gdy w SuperMemo 2 zarówno trudność, jak i wzrost stabilności są zakodowane w E-Factorze, w SuperMemo 5 i późniejszych te dwie właściwości pamięci są rozdzielone
  • prognozy interwałów okazały się lepsze w SuperMemo 5, a twierdzenie „bardziej podatne na błędne oszacowania” można wyjaśnić jedynie błędami implementacji
  • niższe oceny mogłyby prowadzić do dłuższych interwałów, jeśli wygładzanie macierzy nie zostanie wdrożone. Ta część algorytmu została w mojej pracy opisana jedynie słownie
  • interwały i daty powtórek zawsze były eksponowane w SuperMemo, nawet w większości prostszych implementacji (np. dla urządzeń przenośnych, smartfonów itd.). Nic nie jest ukryte przed użytkownikiem. Przede wszystkim statystyki wskaźnika zapominania i obciążenia są w pełni widoczne i pozwalają sprawdzić, czy SuperMemo dotrzymuje obietnicy retencji i jakim kosztem dla obciążenia pracą

Spośród wszystkich powyższych twierdzeń tylko jedno może być prawdziwe. SuperMemo 2 może rzeczywiście być bardziej intuicyjne. Ten problem trapi SuperMemo od lat. Każda wersja jest bardziej złożona i trudno jest ukryć część tej złożoności przed użytkownikami. Będziemy jednak próbować.

Nasza oficjalna odpowiedź opublikowana na supermemopedia.com w 2011 roku wydaje się dziś dość trafna:

To wspaniałe, że Anki wprowadza własne innowacje, jednocześnie przypisując należne zasługi SuperMemo. Prawdą jest, że Algorytm SM-2 firmy SuperMemo działa świetnie w porównaniu, na przykład, z systemem Leitnera czy SuperMemo na papierze. Jednak wyższość Algorytmu SM-5 nad SM-2 jest bezsprzeczna. Zarówno w praktyce, jak i w teorii. To Algorytm SM-2 ma interwały zakodowane na sztywno i zależne wyłącznie od trudności elementu, którą przybliża się za pomocą heurystycznego wzoru (tj. wzoru opartego na domyśle wywiedzionym z ograniczonego doświadczenia sprzed 1987 roku). Prawdą jest, że nie można „popsuć” Algorytm SM-2, karmiąc go fałszywymi danymi. Dzieje się tak jedynie dlatego, że jest on nieadaptowalny. Zapewne wolisz swój edytor tekstu z konfigurowalnymi czcionkami, mimo że możesz zepsuć tekst, stosując Wingdings.

Algorytm SM-2 po prostu w prosty sposób mnoży interwały przez tzw. E-Factor, będący sposobem wyrażenia trudności elementu. W przeciwieństwie do tego Algorytm SM-5 zbiera dane o wynikach użytkownika i odpowiednio modyfikuje funkcję optymalnych interwałów. Innymi słowy, dostosowuje się do wyników ucznia. Algorytm SM-6 idzie jeszcze dalej i modyfikuje funkcję optymalnych interwałów tak, aby osiągnąć pożądany poziom retencji wiedzy. Wyższość tych nowszych algorytmów została zweryfikowana na więcej niż jeden sposób, na przykład poprzez pomiar spadku obciążenia pracą w czasie w bazach danych o stałej wielkości. W badanych przypadkach (mała próba) spadek obciążenia pracą przy nowszych algorytmach był niemal dwukrotnie szybszy w porównaniu ze starszymi bazami danych przetwarzanymi za pomocą Algorytm SM-2 (ten sam rodzaj materiału: słownictwo angielskie).

Wszystkie algorytmy SuperMemo grupują elementy w kategorie trudności. Algorytm SM-2 przypisuje każdej kategorii sztywny zestaw interwałów. Algorytm SM-5 również przypisuje każdej kategorii ten sam zestaw interwałów, jednak są one dostosowywane na podstawie wyników użytkownika, tj. nie są ustalone raz na zawsze.

Konsekwencja jest rzeczywiście ważniejsza w Algorytm SM-5 niż w Algorytm SM-2, ponieważ fałszywe dane doprowadzą do „fałszywej adaptacji”. Jednak zawsze źle jest podawać nieprawdziwe/oszukane oceny w SuperMemo, niezależnie od tego, jakiego algorytmu używasz.Przy niepełnej wiedzy o pamięci adaptowalność jest zawsze lepsza niż sztywne modele. Dlatego wciąż lepiej jest dostosować się do niedokładnej średniej (jak w Algorytm SM-5) niż opierać interwały na niedokładnym domyśle (jak w Algorytm SM-2). Nie trzeba dodawać, że ostatnie słowo należy do Algorytm SM-8 i późniejszych, ponieważ dostosowują się one do zmierzonej średniej.

Ewaluacja SuperMemo 5 (1989)

SuperMemo 5 było tak oczywiście lepsze, że nie zbierałem wielu danych, aby to udowodnić. Wykonałem jedynie kilka porównań do mojej pracy magisterskiej i nie pozostawiały one wątpliwości.

Ostrzeżenie archiwalne: Dlaczego korzystamy z dosłownych archiwów?

3.8. Ewaluacja Algorytmu SM-5

Algorytm SM-5 jest w użyciu od 17 października 1989 roku i przekroczył wszelkie oczekiwania, zapewniając efektywną metodę wyznaczania pożądanej funkcji optymalnych interwałów, a w konsekwencji poprawiając tempo przyswajania (15 000 elementów przyswojonych w ciągu 9 miesięcy). Rys. 3.5 wskazuje, że tempo przyswajania było co najmniej dwukrotnie wyższe niż to wskazane przez połączone zastosowanie algorytmów SM-2 i SM-4!

Rysunek: Zmiany obciążenia pracą w bazach danych nadzorowanych przez algorytmy SM-2 i SM-5.

Retencja wiedzy wzrosła do około 96% dla baz danych sprzed 10 miesięcy. Poniżej wymieniono niektóre dane o retencji wiedzy w wybranych bazach danych, aby pokazać porównanie między algorytmami SM-2 i SM-5:

  • Data – data pomiaru,
  • Baza danych – nazwa bazy danych; ALL oznacza wszystkie bazy danych uśrednione
  • Interwał – średni aktualny interwał stosowany dla elementów w bazie danych
  • Retencja – retencja wiedzy w bazie danych
  • Wersja – wersja algorytmu zastosowana do bazy danych
DataBaza danychInterwałRetencjaWersja
Dec 88EVD17 dni81%SM-2
Dec 89EVG19 dni82%SM-5
Dec 88EVC41 dni95%SM-2
Dec 89EVF47 dni95%SM-5
Dec 88wszystkie86 dni89%SM-2
Dec 89wszystkie190 dni92%SM-2, SM-4 i SM-5

W procesie powtórek odnotowano następujący rozkład ocen:

JakośćUłamek
00%
10%
211%
318%
426%
545%

Ten rozkład, zgodnie z założeniami leżącymi u podstaw Algorytmu SM-5, daje średnią jakość odpowiedzi równą 4. Wskaźnik zapominania wynosi 11% (elementy o jakości niższej niż 3 uznaje się za zapomniane). Zauważ, że dane o retencji wskazują, iż tylko 4% elementów w bazie danych nie jest zapamiętanych. Dlatego wskaźnik zapominania przewyższa odsetek zapomnianych elementów 2,7 razy.W bazie danych sprzed 7 miesięcy stwierdzono, że 70% elementów nie zostało zapomnianych ani razu w trakcie powtórek poprzedzających pomiar, podczas gdy tylko 2% elementów zostało zapomnianych więcej niż 3 razy.

Teoretyczny dowód wyższości nowszych algorytmów

Krytyka SuperMemo 5 przez Anki domaga się prostego dowodu w świetle współczesnej teorii spaced repetition. Możemy pokazać, że dzisiejszy model pamięci można odwzorować na modele leżące u podstaw obu algorytmów: Algorytmu SM-2 i Algorytmu SM-5, a kluczową różnicą między nimi jest brakująca adaptowalność funkcji optymalnych interwałów (reprezentowana w Algorytmie SM-5 jako macierz OF).

Niech SInc=f(C,S,R) będzie funkcją wzrostu stabilności, która przyjmuje jako argumenty złożoność C, stabilność S oraz retrievability R. Funkcja ta określa progresywny wzrost interwałów powtórek w optymalnej nauce.

Oba algorytmy, SM-2 i SM-5, ignorują wymiar retrievability. Teoretycznie, gdyby oba algorytmy działały idealnie, moglibyśmy założyć, że dążą do R=0.9. Jak można zmierzyć w SuperMemo, oba algorytmy nie osiągają tego celu, ponieważ nie znają odpowiednich krzywych zapominania. Po prostu nie zbierają danych o krzywej zapominania. Ta funkcja została wprowadzona dopiero w Algorytm SM-6 w 1991 roku.

Jeśli jednak założymy, że heurystyki z 1985 i 1987 roku były doskonałymi domysłami, to teoretycznie algorytm mógłby używać SInc=F(C,S) ze stałym R równym 90%.

Ponieważ SM-2 używa tej samej liczby, EF, zarówno dla wzrostu stabilności, jak i dla złożoności elementu, dla SM-2 mamy równanie SInc=f(C,S) reprezentowane przez EF=f'(EF,interval), gdzie łatwo można pokazać na danych, że f<>f’. Zdumiewające, że heurystyka użyta w SM-2 sprawiła, że ta funkcja działała, rozprzęgając rzeczywisty związek między EF a złożonością elementu. Ponieważ dane pokazują, że SInc wciąż maleje wraz z S, oznacza to, że w Algorytm SM-2, z definicji, wszystkie elementy musiałyby zyskiwać na złożoności przy każdej powtórce, gdyby EF miał reprezentować złożoność elementu. W praktyce Algorytm SM-2 używa EF=f'(EF,interval), co przekłada się na SInc(n)=f(SInc(n-1),interval).

Załóżmy, że heurystyka EF=f(EF,interval) była doskonałym domysłem, jak twierdzą użytkownicy Algorytmu SM-2. Niech SInc będzie reprezentowane przez O-factor w Algorytmie SM-5. Moglibyśmy wtedy przedstawić SInc=f(C,S) jako OF=f(EF,interval).

Dla Algorytmu SM-2 OF byłby stały i równy EF, w Algorytm SM-5 OF jest adaptowalny i może być modyfikowany w zależności od wyników algorytmu. Wydaje się dość oczywiste, że karanie algorytmu za słabe wyniki poprzez spadek wpisów macierzy OF i nagradzanie go poprzez wzrost wpisów OF jest lepsze niż utrzymywanie OF na stałym poziomie.

Zabawnym zwrotem akcji jest to, że o ile zwolennicy Algorytmu SM-2 twierdzą, iż działa on świetnie, zwolennicy neuronowego SuperMemo wciąż oskarżali algorytmy algebraiczne o: brak adaptowalności. W rzeczywistości adaptowalność Algorytmu SM-17 jest jak dotąd najlepsza, ponieważ opiera się na najdokładniejszym modelu pamięci.

Można sobie wyobrazić, że heurystyki użyte w SM-2 były tak dokładne, że pierwotny domysł dotyczący OF=f(EF,interval) nie wymagał modyfikacji. Jednak jak pokazano w praktycznym zastosowaniu, macierz OF szybko ewoluuje i zbiega do wartości opisanych w Wozniak, Gorzelańczyk 1994. Różnią się one istotnie od założenia zakodowanego na sztywno w Algorytmie SM-2.

Podsumowanie:

  • dziś: SInc=f(C,S,R), 3 zmienne, f jest adaptowalne
  • sm5: SInc=f(C,S,0.9), 2 zmienne, f jest adaptowalne
  • sm2: SInc=f(SInc,S,0.9) – 1 zmienna, f jest stałe

Zbieżność

Algorytm SM-5 wykazał szybką zbieżność, co zostało szybko wykazane przez użytkowników, którzy zaczynali z jednowartościowymi macierzami OF. Był to spory kontrast w porównaniu z Algorytmem SM-4.

Ostrzeżenie archiwalne: Dlaczego korzystamy z dosłownych archiwów?

3.6. Doskonalenie z góry ustalonej macierzy czynników optymalnych

Procedury optymalizacji zastosowane w transformacjach macierzy OF okazały się zadowalająco efektywne, prowadząc do szybkiej zbieżności wpisów OF do ich ostatecznych wartości.

Jednak w rozpatrywanym okresie (17 października 1989 – 23 maja 1990) tylko te czynniki optymalne, które charakteryzowały się krótkimi cyklami modyfikacji-weryfikacji (krótszymi niż 3-4 miesiące), wydają się osiągnąć swoje wartości równowagi.

Minie jeszcze kilka lat, zanim będzie można wyciągnąć bardziej solidne wnioski dotyczące ostatecznego kształtu macierzy OF. Najbardziej interesującym faktem widocznym po analizie 7-miesięcznych macierzy OF jest to, że pierwszy interwał międzypowtórkowy powinien wynosić aż 5 dni dla E-Factor równego 2.5, a nawet 8 dni dla E-Factor równego 1.3! Dla drugiego interwału odpowiednie wartości wynosiły odpowiednio około 3 i 2 tygodnie.

Nowo uzyskaną funkcję optymalnych interwałów można sformułować następująco:

I(1)=8-(EF-1.3)/(2.5-1.3)*3

I(2)=13+(EF-1.3)/(2.5-1.3)*8

dla i>2 I(i)=I(i-1)*(EF-0.1)

gdzie:

  • I(i) – interwał po i-tej powtórce (w dniach)
  • EF – E-Factor rozpatrywanego elementu.

Aby przyspieszyć proces optymalizacji, tę nową funkcję należy wykorzystać do wyznaczenia początkowego stanu macierzy OF (Krok 3 algorytmu SM-5). Poza pierwszym interwałem ta nowa funkcja nie różni się istotnie od tej stosowanej w Algorytm SM-0 do SM-5. Fakt ten można by przypisać nieefektywności procedur optymalizacyjnych, które przecież są obciążone stosowaniem z góry ustalonej macierzy OF. Aby upewnić się, że nie jest to prawdą, poprosiłem trzech kolegów o użycie eksperymentalnych wersji SuperMemo 5.3, w których stosowano jednowartościowe macierze OF (wszystkie wpisy równe 1.5 w dwóch eksperymentach i 2.0 w pozostałym eksperymencie).Mimo że bazy eksperymentalne były w użyciu jedynie przez 2-4 miesiące, macierze OF zdają się powoli zbiegać do formy uzyskanej przy użyciu z góry ustalonej macierzy OF. Jednak z góry ustalone macierze OF dziedziczą sztuczną korelację między E-Factorami a wartościami wpisów OF w odpowiedniej kategorii E-Factora (tj. dla n>3 wartość OF(n,EF) jest bliska EF). Zjawisko to nie występuje w macierzach jednowartościowych, które mają tendencję do dostosowywania macierzy OF ściślej do wymagań stawianych przez takie arbitralnie wybrane elementy algorytmu jak początkowa wartość E-Factorów (zawsze 2.5), funkcja modyfikująca E-Factory po powtórkach itd.

Wygładzanie macierzy

Część krytyki ze strony autora Anki mogła wynikać z niestosowania wygładzania macierzy, które było istotnym elementem algorytmu i jest nadal stosowane w Algorytmie SM-17.

Ostrzeżenie archiwalne: Dlaczego korzystamy z dosłownych archiwów?

3.7. Propagacja zmian w obrębie macierzy czynników optymalnych

Zauważywszy wcześniej wspomniane prawidłowości w relacjach między wpisami macierzy OF, postanowiłem przyspieszyć proces optymalizacji poprzez propagację modyfikacji w obrębie macierzy. Jeśli czynnik optymalny rośnie lub maleje, możemy wywnioskować, że czynnik OF odpowiadający wyższemu numerowi powtórki również powinien wzrosnąć lub zmaleć.

Wynika to z zależności OF(i,EF)=OF(i+1,EF), która jest w przybliżeniu prawdziwa dla wszystkich E-Factorów i i>2. Podobnie możemy rozważyć pożądane zmiany czynników, pamiętając, że dla i>2 mamy OF(i,EF’)=OF(i,EF )*EF’/EF (zwłaszcza jeśli EF’ i EF są wystarczająco bliskie). Zastosowałem propagację zmian jedynie w obrębie macierzy OF, która nie została jeszcze zmodyfikowana przez sprzężenie zwrotne z powtórek. Okazało się to szczególnie skuteczne w przypadku jednowartościowych macierzy OF zastosowanych w eksperymentalnych wersjach SuperMemo wspomnianych w poprzednim akapicie.

Proponowany schemat propagacji można podsumować następująco:

  1. Po wykonaniu Kroku 7 Algorytmu SM-5 zlokalizuj wszystkie sąsiednie wpisy macierzy OF, które nie zostały jeszcze zmodyfikowane w trakcie powtórek, tj. wpisy, które nie weszły w cykl modyfikacji-weryfikacji. Sąsiednie wpisy rozumiane są tu jako te, które odpowiadają numerowi powtórki +/- 1 oraz kategorii E-Factora +/- 1 (tj. E-Factor +/- 0.1)
  2. Modyfikuj sąsiednie wpisy, ilekroć jedna z poniższych relacji nie zachodzi:
    • dla i>2 OF(i,EF)=OF(i+1,EF) dla wszystkich EF
    • dla i>2 OF(i,EF’)=OF(i,EF )*EF’/EF
    • dla i=1 OF(i,EF’)=OF(i,EF )
    Wybrana relacja powinna zachodzić w wyniku modyfikacji
  3. Dla wszystkich wpisów zmodyfikowanych w Kroku 2 powtórz całą procedurę, lokalizując ich jeszcze niezmodyfikowanych sąsiadów.

Propagacja zmian wydaje się nieunikniona, jeśli pamiętać, że funkcja optymalnych interwałów zależy od takich parametrów jak:

  • zdolności ucznia
  • nawyki samooceny ucznia (jakość odpowiedzi jest podawana zgodnie z subiektywną opinią ucznia)
  • charakter zapamiętywanej wiedzy itd.

Dlatego niemożliwe jest dostarczenie idealnej, z góry ustalonej macierzy OF, która pozwoliłaby zrezygnować z procesu modyfikacji-weryfikacji i, w mniejszym stopniu, ze schematów propagacji.

Losowe rozproszenie interwałów

Jednym z kluczowych usprawnień w Algorytmie SM-5 było losowe rozproszenie interwałów. Z jednej strony dramatycznie przyspieszyło to proces optymalizacji, z drugiej wywołało spore zamieszanie u użytkowników niemal wszystkich przyszłych wersji SuperMemo: „dlaczego te same elementy z tą samą oceną otrzymują za każdym razem inny interwał?”. Drobne odchylenia są cenne. Ujawniło się to wyraźnie, gdy „nagi” Algorytm SM-17 został wydany we wczesnym SuperMemo 17. Można było zaobserwować, że użytkownicy trzymający w swoich kolekcjach wiele pijawek łatwo trafiali w „minima lokalne”, z których nigdy nie mogli wyjść. Losowe rozproszenie zostało przywrócone z pewnym opóźnieniem. Okres „nagości” był potrzebny do dokładnych obserwacji algorytmu, zwłaszcza w wieloletnim procesie nauki, jak mój własny.

Ostrzeżenie archiwalne: Dlaczego korzystamy z dosłownych archiwów?

3.5. Losowe rozproszenie interwałów optymalnych

Aby jeszcze bardziej usprawnić proces optymalizacji, wprowadzono mechanizm, który może wydawać się przeczyć zasadzie optymalnego rozłożenia powtórek w czasie. Przypomnijmy sobie istotną wadę Algorytm SM-5: modyfikacja czynnika optymalnego może zostać zweryfikowana pod kątem poprawności dopiero po spełnieniu następujących warunków:

  • zmodyfikowany czynnik jest używany w obliczeniach interwału międzypowtórkowego
  • obliczony interwał upływa i przeprowadzana jest powtórka, dająca jakość odpowiedzi, która ewentualnie wskazuje na potrzebę zwiększenia lub zmniejszenia czynnika optymalnego

Oznacza to, że nawet duża liczba przypadków użytych w modyfikacji czynnika optymalnego nie zmieni go istotnie, dopóki nowo obliczona wartość nie zostanie użyta do wyznaczenia nowych interwałów i zweryfikowana po ich upływie.

Proces weryfikacji zmodyfikowanych czynników optymalnych po okresie niezbędnym do ich zastosowania w powtórkach będzie dalej nazywany cyklem modyfikacji-weryfikacji. Im wyższy numer powtórki, tym dłuższy cykl modyfikacji-weryfikacji i tym większe spowolnienie procesu optymalizacji.

Aby zilustrować problem ograniczenia modyfikacji, rozważmy obliczenia z Rys. 3.4.

Można łatwo wywnioskować, że dla zmiennej INTERVAL_USED większej niż 20 wartość MOD5 będzie równa 1.05, jeśli QUALITY równa się 5. Ponieważ QUALITY=5, MODIFIER będzie równy MOD5, tj. 1.05. Stąd nowo proponowana wartość czynnika optymalnego (NEW_OF) może być tylko o 5% większa od poprzedniej (NEW_OF:=USED_OF*MODIFIER). Dlatego zmodyfikowany czynnik optymalny nigdy nie przekroczy limitu 5%, chyba że USED_OF wzrośnie, co jest równoznaczne z zastosowaniem zmodyfikowanego czynnika optymalnego w obliczeniach interwałów międzypowtórkowych.

Mając to na uwadze, postanowiłem pozwolić, aby interwały międzypowtórkowe różniły się w pewnych przypadkach od optymalnych, aby obejść ograniczenie narzucone przez cykl modyfikacji-weryfikacji.

Proces losowej modyfikacji interwałów optymalnych będę nazywał rozproszeniem.

Jeśli niewielkiej frakcji interwałów pozwoli się być krótszymi lub dłuższymi, niż powinno to wynikać z macierzy OF, wówczas te odbiegające interwały mogą przyspieszyć zmiany czynników optymalnych, pozwalając im spaść lub wzrosnąć poza granice mechanizmu przedstawionego na Rys. 3.4. Innymi słowy, gdy wartość czynnika optymalnego znacznie odbiega od pożądanej, jego przypadkowa zmiana spowodowana odbiegającymi interwałami nie zostanie zniwelowana przez strumień standardowych powtórek, ponieważ jakości odpowiedzi będą raczej sprzyjać zmianie niż jej przeciwdziałać.

Inną zaletą stosowania interwałów rozłożonych wokół optymalnych jest wyeliminowanie problemu, który często był przedmiotem skarg użytkowników SuperMemo – grudkowatości harmonogramu powtórek. Przez grudkowatość harmonogramu powtórek rozumiem kumulację pracy powtórkowej w określonych dniach, podczas gdy sąsiednie dni pozostają stosunkowo nieobciążone. Jest to spowodowane faktem, że studenci często zapamiętują dużą liczbę elementów w pojedynczej sesji i elementy te mają tendencję do trzymania się razem w kolejnych miesiącach, oddzielane jedynie na podstawie swoich E-Factorów.

Rozproszenie interwałów wokół optymalnych eliminuje problem grudkowatości. Rozważmy teraz wzory, które zastosowano w najnowszym oprogramowaniu SuperMemo do rozpraszania interwałów w pobliżu wartości optymalnej. Interwały międzypowtórkowe, które nieznacznie różnią się od tych uznawanych za optymalne (zgodnie z macierzą OF), będą nazywane interwałami niemal optymalnymi. Interwały niemal optymalne będą obliczane według następującego wzoru:

NOI=PI+(OI-PI)*(1+m)

gdzie:

  • NOI – interwał niemal optymalny
  • PI – poprzednio zastosowany interwał
  • OI – interwał optymalny obliczony z macierzy OF (por. Algorytm SM-5)
  • m – liczba należąca do przedziału <-0.5,0.5> (patrz niżej)

lub korzystając z wartości OF:

NOI=PI*(1+(OF-1)*(1+m))

Modyfikator m będzie określał stopień odchylenia od interwału optymalnego (maksymalne odchylenie dla wartości m=-0.5 lub m=0.5 i brak odchylenia w ogóle dla m=0).

Aby znaleźć kompromis między przyspieszoną optymalizacją a eliminacją grudkowatości z jednej strony (obie wymagają silnie rozproszonego rozłożenia powtórek) a wysoką retencją z drugiej (wymagane ścisłe stosowanie interwałów optymalnych), modyfikator m powinien w większości przypadków mieć wartość bliską zeru.

Do wyznaczenia funkcji rozkładu modyfikatora m użyto następujących wzorów:

  • prawdopodobieństwo wyboru modyfikatora z przedziału <0,0.5> powinno wynosić 0.5:całka od 0 do 0.5 z f(x)dx=0.5
  • przyjęto, że prawdopodobieństwo wyboru modyfikatora m=0 jest sto razy większe niż prawdopodobieństwo wyboru m=0.5:f(0)/f(0.5)=100
  • przyjęto, że funkcja gęstości prawdopodobieństwa ma postać ujemnie wykładniczą z parametrami a i b, wyznaczanymi na podstawie dwóch poprzednich równań:f=a*exp(-b*x)

Powyższe wzory dają wartości a=0.04652 i b=0.09210 dla m wyrażonego w procentach.

Z funkcji rozkładu

całka od -m do m z a*exp(-b*abs(x))dx = P (P oznacza prawdopodobieństwo)

możemy uzyskać wartość modyfikatora m (dla m>=0):

m=-ln(1-b/a*P)/b

Zatem ostateczna procedura obliczania interwału niemal optymalnego wygląda tak:

a:=0.047;

b:=0.092;

p:=random-0.5;

m:=-1/b*ln(1-b/a*abs(p));

m:=m*sgn(p);

NOI:=PI*(1+(OF-1)*(100+m)/100);

gdzie:

  • random – funkcja zwracająca wartości z przedziału <0,1) z jednostajnym rozkładem prawdopodobieństwa
  • NOI – interwał niemal optymalny
  • PI – poprzednio użyty interwał
  • OF – odpowiedni wpis macierzy OF

1990: Uniwersalny wzór na pamięć

Optymalna powtórka a przerywana powtórka

Do 1990 roku nie miałem wątpliwości. Miałem w rękach poważne odkrycie. Rozwiązałem problem zapominania. Znałem optymalny czas powtórek dla prostych wspomnień. Gdy tylko uzyskałem zgodę na opisanie moich odkryć w mojej pracy magisterskiej, mój apetyt na odkrycia wciąż rósł. Miałem nadzieję, że uda mi się znaleźć uniwersalny wzór na pamięć długotrwałą. Wzór, który pomógłby mi śledzić zachowanie pamięci dla dowolnego wzorca ekspozycji lub przypominania.

Miałem już zbiór danych, który mógł pomóc mi znaleźć ten wzór. Zanim odkryłem optymalne rozłożenie powtórek w czasie w 1985 roku, używałem stron z pytaniami do powtarzania wiedzy. Powtórki były chaotyczne i zależały od dostępności czasu, potrzeby lub nastroju. Nazwałem to „ nauką przerywaną”. Miałem dane o przypominaniu dla poszczególnych stron i dla każdej powtórki. Były to idealne dane, które nie miały okresowości SuperMemo. Dokładnie takie dane, jakich potrzeba do rozwiązania problemu pamięci. Miałem jednak te dane wyłącznie na papierze.

Wiosną 1990 roku zwerbowałem moją siostrę do przepisywania danych. Nie, nie mam młodszej siostry, która chętnie by to zrobiła. Moja siostra była starsza ode mnie o 17 lat. Będąc nieco bezwzględnym jak na tamte czasy, wykorzystałem jej miłość, aby zmusić ją do niewdzięcznej pracy. Czuję się z tym winny. Zmarła zaledwie dwa lata później. Nigdy nie miałem okazji odwdzięczyć się jej za wkład w teorię spaced repetition, której nigdy nawet nie miała okazji zrozumieć. Zaczynając od 1 maja 1990 roku, wykorzystywała mój czas z dala od komputera, aby przenosić dane z papieru do komputera. Zajęło jej to wiele dni powolnego przepisywania. Warto było.

Model nauki przerywanej

Przez całe lato 1990 roku, zamiast skupiać się na mojej pracy magisterskiej, pracowałem nad „ modelem nauki przerywanej”. Nie było dla mnie niczym niezwykłym pracować 10 godzin bez przerwy, iść spać o 7 rano z pustymi rękami lub zostawiać komputer przetwarzający liczby przez całą noc.

Wytrwałość i majstrowanie się opłacają. Tylko nastolatków na to stać i powinni mieć na to przestrzeń i wolność. Mimo że miałem 28 lat, byłem całkiem dobrze tolerowany w domu. Jak niedojrzały nastolatek. Mieszkałem w mieszkaniu mojej siostry, gdzie mogłem żerować na jej dobroci. Długie godziny przy komputerze usprawiedliwiano jako „ pracę nad moją pracą magisterską”. Prawda była taka, że nikt mnie o to nie prosił, nikt tego nie wymagał, nie posuwało to nawet zbytnio SuperMemo do przodu. Był to czysty przypadek naukowej ciekawości. Po prostu chciałem wiedzieć, jak działa pamięć.

Miałem dziesiątki stron pytań i ich historię powtórek. Próbowałem przewidzieć „luki w pamięci na stronę”. Do przewidywania luk użyłem odchylenia standardowego (root-mean-square) (oznaczanego dalej jako Dev

). Do 10 lipca 1990 roku, wtorku, osiągnąłem Dev<3 i czułem, że problem jest niemal „rozwiązany”. 12 lipca 1990 roku poprawiłem wynik do Dev=2.877 (nawiasem mówiąc, moja praca mówi o 2.887241). Jednak do 27 sierpnia 1990 roku uznałem problem za nierozwiązywalny. Moje notatki z tego dnia mówią:

Osobista anegdota. Dlaczego korzystamy z anegdot?

27 sierpnia 1990: Rozwiązałem problem nauki przerywanej, pokazując, że jest on nierozwiązywalny! Jeden parametr nie jest w stanie opisać siły pamięci związanej z całą stroną elementów. Pokazuje to, że nie istnieją optymalne interwały dla elementów o niskich E-Factorach !

30 sierpnia 1990 roku opisałem ten model w mojej pracy magisterskiej. Tekst obejmował 15 stron, które nie stanowią dobrej lektury. Założę się, że nikt nigdy nie miał cierpliwości, aby przeczytać to wszystko. Ten rozdział nie został nawet opublikowany na supermemo.com, gdy moja praca magisterska została udostępniona w internecie we fragmentach pod koniec lat 90.

Jednak wnioski wyciągnięte na podstawie tego modelu miały głęboki wpływ na moje myślenie o pamięci w kolejnych dekadach. Cała idea leżąca u podstaw tego modelu jest zresztą zbliżona do optymalizacji zastosowanych przy tworzeniu Algorytm SM-17 (2014-2016).

Gdy uznałem problem za nierozwiązywalny, miałem na myśli to, że nie potrafiłem dokładnie opisać pamięci „trudnych stron”, ponieważ materiały heterogeniczne wymagają bardziej złożonych modeli. Jednak notatki z 31 sierpnia 1990 roku brzmią o wiele bardziej optymistycznie:

Osobista anegdota. Dlaczego korzystamy z anegdot?

31 sierpnia 1990: Nieustanna praca nad modelem nauki przerywanej. W nocy komputer nie przybliżył mnie do rozwiązania. Miałem jednak świetny pomysł, aby obliczyć optymalne interwały, korzystając z rekordowej funkcji modelu IL. Gdy zobaczyłem wyniki na ekranie, nie mogłem uwierzyć własnym [wykropkowane] oczom. Były to dokładnie te same interwały, które znalazłem w 1985 roku, próbując sformułować metodę SuperMemo. Byłem szczęśliwy jak pies z dwoma ogonami, skacząc po całym domu. Mogę więc powiedzieć, że naprawdę rozwiązałem problem IL (porównaj 27 sierpnia 1990). Ale ten sukces nie był wszystkim, co dane mi było odkryć dzisiaj. Odkryłem, że:

[…] moje wzory działają tylko wtedy, gdy interwały nie są znacznie krótsze niż poprzednia siła.

Przeszłość (1990) a teraźniejszość (2018)

Wnioski na końcu tego rozdziału oraz sama procedura przypominają metodologię, którą zastosowałem w 2005 roku, szukając uniwersalnego wzoru na wzrost stabilności pamięci , a następnie w 2014 roku, gdy Algorytm SM-17 oparto na znacznie dokładniejszym matematycznym opisie pamięci. Podobnie jak najnowszy algorytm SuperMemo, ten model umożliwiał obliczenie retencji dla dowolnego harmonogramu powtórek. Naturalnie był znacznie mniej dokładny, ponieważ opierał się na gorszych danych. Co więcej, to, co SuperMemo 17 robi w czasie rzeczywistym, w 1990 roku wymagało wielu godzin obliczeń.

Ten stary, pozornie nudny fragment mojej pracy magisterskiej z czasem zyskał na znaczeniu. Śmiem twierdzić, że tę pracę od Algorytmu SM-17 , który powstał całe 25 lat później, dzieliły jedynie gorsze dane. Cytuję ten tekst z drobnymi poprawkami notacyjnymi i stylistycznymi, pomijając rozdział o krzywych zapominania, który był błędny z powodu wysoce niejednorodnego materiału użytego w obliczeniach:

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

Ten tekst jest częścią: ” Optymalizacja uczenia się ” autorstwa Piotr Wozniak (1990)

Model uczenia się z przerwami

Model SuperMemo stanowi podstawę do obliczania interwałów optymalnych , które powinny oddzielać powtórki w procesie czasowo optymalnego uczenia się.

Nie pozwala on jednak przewidzieć zmian zmiennych pamięciowych, jeśli powtórki odbywają się w nieregularnych odstępach.

Poniżej przedstawiam próbę rozszerzenia modelu SuperMemo tak, by mógł on zostać użyty do opisu procesu uczenia się z przerwami.

Rozdziale 3 wspomniałem o sposobie, w jaki uczyłem się angielskiego i biologii, zanim powstał algorytm SM-0.

Dane zebrane w tym okresie (1982-1984) stanowią doskonałą podstawę do budowy modelu uczenia się z przerwami. Elementy , sformułowane zgodnie z zasadą minimalnej informacji (zwykle w formie par słów), były grupowane w strony podlegające nieregularnemu procesowi powtórek. Zebrane dane, dostępne w formie odczytywalnej komputerowo, obejmują opis powtórek 71 stron oraz dodatkowo 80 podobnych stron uczestniczących w procesie nadzorowanym przez harmonogram SM-0.

Podobieństwo do Algorytmu SM-17

Zauważ, że sformułowanie problemu przypomina procedurę użytą do obliczenia macierzy wzrostu stabilności (SInc[]) w Algorytmie SM-17Stabilność pamięci została przeskalowana tak, by można ją było interpretować jako interwał. Nawet symbole są podobne: S i odchylenie D, a błędy na stronie zastępują R.

Uwielbiałem eksperymentować z różnymi algorytmami optymalizacyjnymi. Nadal można wizualnie zaobserwować w SuperMemo 17 , jak algorytm przeprowadza optymalizacje dopasowania powierzchni (zobacz rysunek). Robienie tego z 12 zmiennymi mogło być nieco nieefektywne, ale nigdy nie przejmowałem się metodą, dopóki uzyskiwałem interesujące wyniki dające nowy wgląd w to, jak działa pamięć.

Dla osób zaznajomionych z Algorytmem SM-17 zmieniliśmy notację w poniższym tekście. Ponadto symbole takie jak In i Ln w druku mogłyby być łatwo mylone z logarytmami.

Lista zmian:

  • Ln -> Laps n
  • In -> Int n
  • Dn -> Dev n
  • R -> RepNo

Sformułowanie problemu uczenia się z przerwami

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

11.1. Sformułowanie problemu uczenia się z przerwami

  1. Jest 161 stron.
  2. Każda strona zawiera około 40 elementów.
  3. Dla każdej strony opis procesu uczenia się (zebrany podczas powtórek eksperymentalnych) ma następującą postać:
  4. Int i – interwał między powtórkami użyty przed i-tą powtórką (mieści się w zakresie od 1 do 800),
  5. Laps i – liczba błędów pamięci podczas i-tej powtórki (mieści się w zakresie od 0 do 40),
  6. n – całkowita liczba powtórek (mieści się w zakresie od 3 do 20).
  7. Znajdź funkcje f i g opisane wzorami:
  8. S(n) – dowolna zmienna odpowiadająca sile pamięci po n-tej powtórce (porównaj Rozdział 10),
  9. Int n – interwał użyty przed n-tą powtórką; zaczerpnięty z danych zebranych podczas uczenia się z przerwami,
  10. Laps n – liczba błędów pamięci w n-tej powtórce; zaczerpnięta z danych zebranych podczas uczenia się z przerwami,
  11. Laps(n) – oszacowanie liczby błędów pamięci w n-tej powtórce (powinno odpowiadać Laps n)
  12. S1 – stała,
  13. Dev – funkcja opisująca różnicę między wartościami zwracanymi przez funkcje f i g a wartościami zebranymi podczas uczenia się z przerwami (odzwierciedla różnicę między danymi eksperymentalnymi a teoretycznie przewidywanymi)
  14. RepNo – całkowita liczba powtórek zarejestrowanych na wszystkich stronach
  15. Dev i – składowa funkcji Dev opisująca odchylenie dla i-tej strony,
  16. Laps(j) – liczba błędów obliczona dla i-tej strony i j-tej powtórki za pomocą funkcji f i g,
  17. Laps j – liczba błędów pamięci dla i-tej strony i j-tej powtórki; zaczerpnięta z danych zebranych podczas uczenia się z przerwami,
  18. sqrt(x) – pierwiastek kwadratowy z x,
  19. sqr(x) – druga potęga x.

Zauważ, że funkcje f i g dostarczą podstawy do wartościowych rozważań biologicznych tylko wtedy, gdy będą proste i zdefiniowane przez ograniczoną liczbę parametrów (np. a*ln()+b lub a*exp()+b itd.). W przeciwnym razie zawsze można by skonstruować gigantyczny, pozbawiony sensu wzór, który automatycznie sprowadza Dev do zera.

Rozwiązanie problemu uczenia się z przerwami

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

11.2. Rozwiązanie problemu uczenia się z przerwami

Szukając funkcji f i g minimalizujących wartość Dev, użyłem numerycznej procedury minimalizacji opisanej w Wozniak, 1988b [ A new algorithm for finding local maxima of a function within the feasible region. Credit paper ].

Przykładowe funkcje użyte w poszukiwaniach mogły wyglądać następująco:

S(1)=x[1]

S(n)=x[2]*Int n*exp(-Laps n*x[3])+x[4])

Laps(n)=x[5]*(1-exp(-Int n/S(n-1)))


gdzie:

  • x[i] – zmienne obliczane przez procedurę minimalizacji,
  • S(n), Laps(n), Laps n i Int n – zdefiniowane jak w 11.1.

Zauważ, że funkcja f opisująca S(n) nie wykorzystuje S(n-1) jako argumentu (sformułowanie problemu dopuszcza, ale nie wymaga, by nowa siła była obliczana na podstawie poprzedniej siły).

Aby zachować prostotę i zaoszczędzić czas, ustaliłem limit 12 zmiennych używanych w procesie minimalizacji.

Przetestowałem szeroki wachlarz funkcji matematycznych skonstruowanych zgodnie z oczywistymi intuicjami dotyczącymi pamięci (np. że wraz z upływem czasu liczba błędów pamięci będzie rosnąć).

Obejmowały one funkcje wykładnicze, logarytmiczne, potęgowe, hiperboliczne, sigmoidalne, w kształcie dzwonu, wielomianowe oraz ich rozsądne kombinacje.

W większości przypadków procedura minimalizacji zmniejszała wartość Dev do mniej niż 3, a funkcje f i g przybierały podobny kształt niezależnie od swojej natury.

Najniższa wartość Dev uzyskana przy użyciu mniej niż 12 zmiennych wyniosła 2.887241.

Funkcje f i g przedstawiały się następująco:

constant S(1)=0.2104031;

function Sn(Intn,Lapsn,S(n-1));
begin
   S(n):=0.4584914*(Intn+1.47)*exp(-0.1549229*Lapsn-0.5854939)+0.35;
   if Lapsn=0 then
       if S(n-1)>In then
           S(n):=S(n-1)*0.724994
       else
           S(n):=Intn*1.1428571;
end;

function Lapsn(Intn,S(n-1));
var quot;
begin
   quot:=(Intn-0.16)/(S(n-1)-0.02)+1.652668;
   Lapsn:=-0.0005408*quot*quot+0.2196902*quot+0.311335;
end;

Bez znaczącej zmiany wartości Dev funkcje te można łatwo przekształcić do następującej postaci:

S(1)=1

for Int n>S(n-1): S(n)=1.5*Int n*exp(-0.15*Laps n)+1

Laps(n)=Int n/S(n-1)

Zauważ, że:

  • poszczególne elementy funkcji zostały pominięte lub zaokrąglone, gdy taka operacja nie wpływała znacząco na wartość Dev,
  • siła została przeskalowana tak, by można ją było interpretować jako interwał, dla którego liczba błędów wynosi 1, a wskaźnik zapominania wynosi 2,5% (na stronie jest 40 elementów, a 1/40=2,5%),
  • wzór na siłę może być prawdziwy tylko wtedy, gdy Int n nie jest dużo mniejszy niż S(n-1). Wynika to z faktu, że wartość S(n-1) musi zostać użyta przy obliczaniu S(n), jeśli liczba błędów jest niska, np. dla Int n<=S(n-1): S(n)=S(n-1)*(1+0.5/(1-exp(S(n-1))*(1-exp(-Int n)))

Funkcja g celowo nie uwzględniała S(n-1), aby uniknąć rekurencyjnej kumulacji błędów w obliczeniach dla kolejnych powtórek (zauważ, że użyty wzór nie uwzględnia historii procesu),

  • wzorów nie można używać do opisu procesu, w którym interwały są wielokrotnie dłuższe niż optymalne. Wynika to z faktu, że dla Int n->? wartość Laps(n) przekracza 100%,
  • wzory opisują uczenie się zbiorczych elementów charakteryzujących się mniej więcej jednorodnym rozkładem E-Factors. Dlatego nie mogą być stosowane uniwersalnie do elementów o zmiennym stopniu trudności.

Jak dotąd powyższe wzory stanowią najlepszy opis procesu uczenia się z przerwami i będą dalej nazywane modelem uczenia się z przerwami (w skrócie model IL).

Symulacje oparte na modelu uczenia się z przerwami

Dzięki znalezionemu powyżej wzorowi mogłem przeprowadzić całą serię eksperymentów symulacyjnych, które pomogły mi odpowiedzieć na wiele hipotetycznych scenariuszy dotyczących zachowania pamięci w różnych okolicznościach. Te symulacje kształtowały rozwój SuperMemo przez wiele kolejnych lat. W szczególności kompromis między obciążeniem a retencją odegrał główną rolę w optymalizacji uczenia się od czasów SuperMemo 6 (1991). Do dziś to wskaźnik zapominania (lub możliwość przypomnienia) stanowi główne kryterium w nauce, a nie intuicyjnie naturalny wzrost stabilności pamięci , który może występować przy niższych poziomach przypominania. Ustalony poziom błędów pamięci pełnił poniżej rolę wskaźnika zapominania.

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

11.4. Weryfikacja modelu uczenia się z przerwami

Aby zweryfikować spójność modelu uczenia się z przerwami z teorią SuperMemo, spróbujmy obliczyć optymalne interwały, które powinny oddzielać powtórki.

Optymalny interwał zostanie wyznaczony przez moment, w którym liczba błędów osiągnie wybraną wartość Laps o.

Algorytm przebiega następująco:

  1. i:=1
  2. S(i):=1
  3. Znajdź Int(i+1) takie, że Laps(i+1) równa się Laps o. Użyj wzoru:
    Int(n)=Laps o*S(n-1) (zaczerpniętego z modelu IL)
    gdzie: Int(n) oznacza optymalny interwał n-1.
  4. i:=i+1
  5. S(i):=1.5*Int(i)*exp(-0.15*Laps o)+1 (zaczerpnięte z modelu IL)
  6. goto 3

Jeśli Laps o wynosi 2,5 ( wskaźnik zapominania 6,25%), a stosowany jest dokładny wariant modelu uczenia się z przerwami, można zaobserwować zdumiewającą zgodność (porównaj eksperyment przedstawiony na stronie 16, Rozdział 3.1):

  • Rep – numer powtórki
  • Interval – optymalny interwał poprzedzający powtórkę, wyznaczony przez Laps o=2.5 na podstawie modelu IL,
  • Factor – optymalny współczynnik równy ilorazowi optymalnego interwału i poprzednio użytego optymalnego interwału,
  • SM-0 – optymalny interwał obliczony na podstawie eksperymentów prowadzących do powstania algorytmu SM-0
RepIntervalFactorSM-0
21.81
37.84.367
416.82.1516
530.41.8035
650.41.66
780.21.59
81241.55
91901.53
102881.52
114361.51
126541.50
139811.50
1414621.49
1521791.49
1632471.49
1748381.49
1872091.49

Oczywiście dokładna zgodność jest w pewnym stopniu przypadkowa, ponieważ eksperyment prowadzący do sformułowania algorytmu SM-0 nie był aż tak precyzyjny.

Warto zauważyć, że współczynniki optymalne mają tendencję do stopniowego zmniejszania się! Fakt ten zdaje się potwierdzać niedawne obserwacje oparte na analizie macierzy współczynników optymalnych używanej w algorytmie SM-5.

Jeśli Laps o wynosi 4 ( wskaźnik zapominania 10%, jak w algorytmie SM-5), to sekwencja współczynników optymalnych przypomina kolumnę macierzy OF w algorytmie SM-5. Także retencja wiedzy niemal idealnie pokrywa się z tą znajdowaną w bazach danych SM-5.

RepIntervalRetencjaFactor
2393.21678
31693.809464.89
44393.971842.74
510294.040832.39
623294.068862.27
751794.084182.23
8113894.092562.20
9250294.097372.20
10548194.099672.19

Wartość retencji uzyskano, uśredniając jej wartość obliczoną dla każdego dnia optymalnego procesu:

R=(R(1)+R(2)+…+R(n))/n

R(d)=100-2.5*Laps(d-dlr)


gdzie:

  • R – średnia retencja
  • R(d) – retencja w d-tym dniu procesu
  • Laps(Int) – oczekiwana liczba błędów po interwale I
  • dlr – dzień procesu, w którym zaplanowano ostatnią powtórkę

Kompromis między obciążeniem a retencją

Mimo niedokładności wynikających z niejednorodnego materiału, można było wyciągnąć solidny wniosek na temat wpływu wskaźnika zapominania na ilość czasu, jaki trzeba zainwestować w naukę. Te obserwacje przetrwały próbę czasu:

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

Ten tekst jest częścią: ” Optymalizacja uczenia się ” autorstwa Piotr Wozniak (1990)

Bardzo interesujące wnioski można wyciągnąć, porównując dane dotyczące retencji i obciążenia obliczone za pomocą modelu uczenia się z przerwami:

  • Index – wskaźnik zapominania (Laps o*2.5) określający optymalne interwały w procesie czasowo optymalnego uczenia się zaplanowanego przy użyciu modelu IL
  • Retention – ogólna retencja uzyskana przy danym wskaźniku zapominania (obliczona po upływie 10 000 dni)
  • Repetitions – liczba powtórek zaplanowanych w pierwszych 10 000 dniach procesu przy danym wskaźniku zapominania,
  • Factor – asymptotyczna wartość współczynnika optymalnego (z 10 000-nego dnia procesu)
IndexRetentionRepetitionsFactor
2.597.76co 2 dni1.0000
4.596.88651.0300
5.096.64301.1600
5.596.39221.3000
6.2596.01171.4900
7.595.37131.7700
10.094.10102.1900
12.592.7892.4700

Rysunek 11.2 pokazuje, że wskaźnik zapominania stosowany przy wyznaczaniu optymalnych interwałów powinien mieścić się w przedziale od 5 do 10%.

Rys. 11.2. Kompromis między obciążeniem a retencją: Z jednej strony, jeśli wskaźnik zapominania jest niższy niż 5%, obciążenie gwałtownie rośnie, nie wpływając istotnie na retencję. Z drugiej strony, powyżej wskaźnika zapominania równego 10%, obciążenie niemal się nie zmienia, podczas gdy retencja systematycznie spada. Oczywiście kompromis między obciążeniem a retencją odpowiada wprost kompromisowi między tempem przyswajania a retencją. Zwiększając dostępność czasu X razy (czyli zmniejszając obciążenie X razy), można X razy zwiększyć tempo przyswajania (por. Chapter 5). Zauważ, że zależność między wskaźnikiem zapominania a retencją w tym modelu jest niemal liniowa. (źródło: Optimization of learningModel of intermittent learning Piotr Wozniak, 1990)

Kolejna ważna obserwacja wynika z obliczenia wskaźnika zapominania, dla którego przyrost siły pamięci jest największy.

Z modelu uczenia się przerywanego wynika, że

S(n)=1.5*Laps(n)*S(n-1)*exp(-0.15*Laps(n))+1

Po zróżniczkowaniu względem zmiennej Laps(n) otrzymujemy:

S'(n)=1.5*S(n-1)*exp(-0.15*Laps(n))*(1-0.15*Laps(n))

W końcu, po przyrównaniu do zera, otrzymujemy:

Laps(n)=7.8

co odpowiada wskaźnikowi zapominania równemu 20%! Taki wskaźnik zapominania odpowiada interwałom dwukrotnie dłuższym niż optymalne, wyznaczone przez wskaźnik równy 10% (jak w Algorytmie SM-5). Nie należy jednak zapominać, że to retencja wiedzy, a nie siła pamięci, jest jedynym czynnikiem wymienianym za obciążenie. Dlatego powyższe odkrycie nie unieważnia zasadności Algorytmu SM-5.

Wnioski: model uczenia się przerywanego

Ostateczne wnioski wyciągnięte na końcu rozdziału wytrzymały próbę 3 dekad. Nietrafne okazało się jedynie twierdzenie o nieeksponencjalnym kształcie krzywych zapominania. Ponieważ cały model opierał się na danych niejednorodnych, eksponencjalna natura zapominania nie mogła zostać ujawniona.

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Ten tekst jest częścią: ” Optimization of learning ” autorstwa Piotra Wozniaka (1990)

Podsumowanie pośrednie

  • Model uczenia się przerywanego skonstruowano tak, by umożliwić oszacowanie retencji wiedzy przy różnych harmonogramach powtórek
  • Model wyraźnie wskazuje, że krzywa zapominania nie jest eksponencjalna [ błąd: zob. Exponential nature of forgetting]
  • Model w zadowalający sposób odpowiada danym eksperymentalnym
  • Z uderzającą dokładnością model przybliża optymalne interwały i retencję wiedzy wynikające z modelu SuperMemo
  • Model wskazuje, że optymalne czynniki maleją w kolejnych powtórkach i asymptotycznie zbliżają się do wartości granicznej
  • Model wskazuje, że pożądana wartość wskaźnika zapominania stosowana w nauce optymalnej czasowo powinna mieścić się w przedziale od 5% do 10%
  • Model wskazuje niemal liniową zależność między wskaźnikiem zapominania a retencją wiedzy
  • Model pokazuje, że największy przyrost siły pamięci następuje wtedy, gdy interwały są w przybliżeniu 2 razy dłuższe niż stosowane w metodzie SuperMemo. Odpowiada to wskaźnikowi zapominania równemu 20%

1991: Wykorzystanie krzywych zapominania

Bolesne narodziny SuperMemo World (1991)

Rok 1991 był najważniejszym rokiem od narodzin SuperMemo. Był to rok wielkich decyzji, stresu, dramatów, odkryć i ciężkiej pracy. Na początku roku byliśmy trzema największymi wyznawcami SuperMemo: BiedalakMurakowski i ja. Wszyscy byliśmy w tym samym punkcie życia: przechodziliśmy z lat beztroski na uniwersytecie do niepewności samodzielnej dorosłości. Z góry marzyliśmy o wielkiej nauce w USA: Biedalak marzył o sztucznej inteligencji, Murakowski o fizyce kwantowej, a ja chciałem odkryć tajemnice pamięci molekularnej. Z perspektywy czasu, doktoranci z bloku wschodniego z dobrymi wynikami, egzaminami i solidnymi rekomendacjami są całkiem mile widziani w USA. Sprawy się komplikują, jeśli domagają się pełnego wsparcia finansowego. Nie miałem ani grosza. Co więcej, gorliwi Wschodnioeuropejczycy byli często traktowani jak sumienna siła robocza. Zapał do własnych projektów i wielkich idei mógł być mniej mile widziany. Nigdy się tego nie dowiem. Wszyscy trzej wyznawcy mieli różne wizje SuperMemo.

3 stycznia 1991 roku rozpocząłem implementację nowego algorytmu spaced repetition dla SuperMemo 6. Tego samego dnia Murakowski wyjechał do Londynu, gdzie zamierzał realizować swoje edukacyjne marzenia, jednocześnie próbując sprzedawać SuperMemo 2. Nie sprzedawał przez kanał dystrybucji ani w sklepie. Musiał chodzić od osoby do osoby, tłumaczyć zalety programu i, miejmy nadzieję, zbierać parę groszy, by podtrzymać nadzieję.

W międzyczasie Biedalak i ja regularnie spotykaliśmy się na 10-kilometrowy jogging połączony z zimowym pływaniem i sesją burzy mózgów w drodze powrotnej do domu. Rozmawialiśmy głównie o studiach w USA i sprzedaży SuperMemo. Coraz częściej pojawiał się pomysł założenia własnej firmy.

Rozpocząłem pracę nad nowym algorytmem spaced repetition z kilkoma pomysłami, które miały na zawsze zmienić SuperMemo. Algorytm SM-6, użyty w SuperMemo 6, był przełomem, który miał napędzać dalszy rozwój przez kolejne 25 lat. Miał ponownie wykorzystać prostą procedurę eksperymentalną, która doprowadziła do spaced repetition w 1985 roku, ale w sposób zautomatyzowany. Miał zbierać dane o wynikach i wybierać najlepszy moment na powtórkę: miał rysować krzywą zapominania użytkownika. Oznaczało to również, że użytkownik mógłby decydować o akceptowalnym prawdopodobieństwie zapomnienia dla każdego pojedynczego elementu (czyli o optymalnym poziomie kompromisu retencja-obciążenie).

W tamtym czasie wciąż byłem związany z dyskietkami 360 kB. Z tego powodu SuperMemo wciąż nie mogło przechowywać wszystkich historii powtórek, które w pełni odtwarzałyby podejście z 1985 roku na masową skalę. Jednak 6 stycznia 1990 roku wpadłem na prosty pomysł. Mogłem po prostu zbierać dane o krzywych zapominania dla klas elementów o różnej trudności i stabilności. Zamiast pełnego zapisu, aktualizowałbym jedynie przybliżenie tego, ile elementów w danej klasie jest zapamiętanych w danym momencie (czyli przy danym poziomie łatwości przypomnienia). Ten pomysł przetrwał do dziś w samym sercu SuperMemo. Nawet dysponując dziś pełnym zapisem historii powtórek, SuperMemo wciąż natychmiast zna oczekiwaną łatwość przypomnienia elementów w danej klasie.

Na życiowym rozdrożu byłem wreszcie wolny od szkoły. Istnieje potężna emocja, z którą mierzą się miliony nastolatków i młodych dorosłych: traumatyczne przejście od niewolnika zwanego „uczniem” lub „studentem” do wolności bycia „bezrobotnym dorosłym”. Wstrząs psychologiczny może być jeszcze bardziej dramatyczny, jeśli ktoś przechodzi z roli „dobrego studenta” do „bezrobotnego 28-latka mieszkającego z mamą”. Jak przełącznik światła: cały świat zdaje się zmieniać z pogodnego wsparcia w ponure potępienie zmieszane z litością.

Kontynuowałem naukę i pracowałem nad nowymi pomysłami dla SuperMemo w atmosferze wolności zmieszanej z niepewnością. Dla mnie niepewność jest energetykiem. Jednak 12 lutego 1991 roku dowiedziałem się, że u mojej mamy zdiagnozowano nowotwór w stadium terminalnym. Do mieszanki wolności i niepewności dołączyło poczucie mroku. Dla mnie mrok również może być energetykiem. Potroiłem moją naukę o raku, jakbym miał nadzieję samodzielnie odkryć jakąś magiczną terapię. Pokazuje to, jak nieuzasadniony optymizm może być kluczem do produktywności i przetrwania trudnych czasów. Pracując ciężej, mogłem rozproszyć mrok. Wysoka produktywność to pewny antydepresant. Ciężka praca nie zostawiała miejsca na mroczne myśli. Byłem pewny, że wyleczę moją mamę!

Nawiasem mówiąc, w momencie diagnozy mamy pisałem też program symulujący optymalne zachowanie pamięci w reakcji na środowisko; sposób na udowodnienie, jaka matematyka czyniłaby dwuskładnikowy model pamięci optymalnym. Po diagnozie wyrzuciłem ten wysiłek ze swojego harmonogramu, by uczyć się o raku. Nigdy nie ukończyłem tego programu i ten pomysł wciąż tkwi w zawieszeniu, odepchnięty przez inne projekty.

6 marca 1991 roku, podczas jednego z naszych dni joggingu połączonego z burzą mózgów z Biedalakiem, ktoś rzucił nazwę SuperMemo World. Niewiele wtedy wiedzieliśmy, że cztery miesiące później będzie to nazwa naszej firmy, która przetrwała do dziś 27 lat.

12 marca 1991 roku wykonałem swoje pierwsze powtórki z nowym algorytmem w SuperMemo 6, podczas gdy moja mama leżała na łożu śmierci. Tydzień później zmarła spokojnie we śnie w młodym wieku 70 lat. W podobnych okolicznościach zwykły obraz obejmuje spotkania rodzinne, żałobę, pogrzeb i całą gamę tradycji zakorzenionych w religii, których nigdy nie mogłem uznać za racjonalne. Zamiast tego, 9 godzin po śmierci mamy, pracowałem nad lepszą metodą szybkiego przybliżania macierzy OF. W tej pracy wykorzystałem doświadczenie z pracy, którą kiedyś wykonałem dla ZX Spectrum. Zastosowałem regresję liniową wzdłuż kolumn trudności i regresję ujemnie wykładniczą wzdłuż wierszy powtórek. Lata później odkryłem, że dla tych ostatnich bardziej odpowiednia jest regresja potęgowa. Dopiero Algorytmie SM-8, opracowany cztery lata później, w pełni wykorzystał te pomysły. Wspominam o tym jednak głównie po to, by pokazać, jak ciężka praca i produktywność mogą być świetnym lekarstwem na mrok i możliwą depresję. W tamtym czasie odkryłem, że wpływ traumy emocjonalnej podlega krzywej dobowej. Rano pracowałem ciężko, ale wieczorem mrok wciąż wkradał się z powrotem do mojego umysłu. Sen był wyzwoleniem i najlepszym antydepresantem. Od tamtych wczesnych dni głęboko wierzę, że sen i nauka niosą rozwiązanie problemu depresji, jednak nigdy nie miałem prawdziwej okazji, by nad tym popracować. Pomogłoby, gdybym sam trochę pocierpiał, ale albo mam jakąś dobrą odporność wrodzoną, albo, co bardziej prawdopodobne, instynktownie stosuję narzędzia dobrego snu i wysokiej produktywności w trudnych czasach. Odkąd Sapolsky nazwał depresję „najgorszą chorobą świata”, chciałem znaleźć formułę zapobiegania depresji. Czuję, że istnieje prosta formuła. Może sam ten naiwny, dziecięcy optymizm jest częścią rozwiązania?

13 kwietnia 1991 roku zdecydowaliśmy, że SuperMemo 2 powinno zostać wydane jako freeware. Mieliśmy nadzieję, że pomoże to edukować potencjalnych użytkowników za granicą na temat siły spaced repetition. Jednak początkowo musieliśmy na własny koszt wysyłać dyskietki z darmowym SuperMemo. Dopiero w 1993 roku wgraliśmy SuperMemo na lokalny BBS o nazwie „Onkonet”. Minęło jeszcze kilka lat, zanim mogliśmy wgrywać kolejne wersje na Simtel i strony z freeware. Ten pomysł z freeware miał ciekawy efekt uboczny: pod koniec roku było jasne, że ludzie zaczną korzystać z programu, a potem zrezygnują. Był to sygnał nieodłącznego problemu spaced repetition: słaba motywacja wynikająca ze słabych umiejętności skutkowałaby wysokim odsetkiem rezygnacji. Usłyszeliśmy też, że inni próbowali sprzedawać SuperMemo 2, jakby to był produkt komercyjny.

2 maja 1991 roku zaimplementowałem opcję ustawiania żądanego wskaźnika zapominania w SuperMemo 6. 5 lipca 1991 roku narodziło się SuperMemo World. Jedną z pierwszych inwestycji był komputer PC z dyskiem twardym, który wreszcie pomógł mi odejść od powolnej ery dyskietek.

23 listopada 1991 roku: SuperMemo ogłoszono finalistą konkursu Software for Europe. To uratowało SuperMemo World.

Powolny start komercyjnego SuperMemo

Kiedy zakładaliśmy SuperMemo World z Krzysztofem Biedalakiem 5 lipca 1991 roku, przyszłość wyglądała tak jasno, że potrzebowaliśmy okularów przeciwsłonecznych. Ziemia zamieszkana jest przez wysoce inteligentną populację, która musi się czegoś uczyć. Cała ta populacja to nasz rynek. Jedynym problemem było to, jak przekonać wszystkich tych mądrych ludzi, że dwóch biednych studentów wykształconych za żelazną kurtyną ma coś wartościowego do zaoferowania. Nie mogliśmy wykorzystać do tego internetu. SuperMemo jest starsze niż sam internet. Nie było nas stać na reklamę z braku kapitału. W Polsce w 1991 roku nie istniała kultura kapitału wysokiego ryzyka. Wszystko, co mogliśmy zrobić, to umieścić pierwsze kilka kopii SuperMemo w teczkach i postawić je na półkach pobliskich sklepów komputerowych. Ponieważ celowaliśmy w globalną dominację, nie mieliśmy nawet instrukcji po polsku. Zamiast pierwszej sprzedaży czekało nas długie lato ciszy i narastających wątpliwości.

Rysunek: W 1991 roku dostarczyliśmy pierwsze kopie SuperMemo 5 dla DOS do sklepów w Poznaniu (Polska) w różowych teczkach z naklejką. Instrukcja nie zawierała tłumaczenia na polski. Co zdumiewające, znaleźliśmy kilku kupców. Pierwsza sprzedaż miała miejsce między 9 a 11 września 1991 roku (sklep komputerowy Axe Prim)
(zrekonstruowano na podstawie oryginalnych teczek i naklejek)

Dlaczego trudno było sprzedać pierwszą kopię? Mogę zrekonstruować ten scenariusz na podstawie słów jednego z naszych pierwszych klientów, który faktycznie odwiedził sklep i obejrzał pierwsze publicznie wystawione SuperMemo. Na półce z programami komputerowymi, obok błyszczących pudełek Microsoftu, zauważył wyświechtaną teczkę z zachęcającymi słowami: „ Twoje przełomowe oprogramowanie do szybkiej nauki ”. Wziął teczkę i otworzył instrukcję, która była stosem słabo skserowanych stron po angielsku. Wzniosłymi słowami przeczytał historię, w którą trudno było uwierzyć. Wszystko było zbyt piękne, by mogło być prawdziwe. Szybsza nauka, świetna retencja, nowa metoda naukowa, niewielki koszt czasu itd. Nie rozważał inwestycji, pakiet był dość kosztowny (około 100 dolarów, co w Polsce w 1991 roku było sporą sumą), jednak podszedł do sprzedawcy, by dowiedzieć się, kim są ludzie stojący za SuperMemo. Właściciel sklepu znał SuperMemo dość dobrze i wszystko wyjaśnił. Historia zaczęła wydawać się wiarygodna. Klient nigdy nie zapomniał tego epizodu. Kilka miesięcy później usłyszał o SuperMemo z jakiegoś lokalnego czasopisma i stał się jednym z pierwszych płacących klientów. Jego kupon rejestracyjny dotarł w styczniu 1992 roku, a historia jego aktualizacji pokazuje, że pozostał z SuperMemo przez dekady, a teraz jego syn jest jednym ze stałych klientów.

Jednak latem 1991 roku nie mieliśmy żadnej sprzedaży, a jesienią wszyscy poza mną zaczęli mieć poważne wątpliwości. Nie co do SuperMemo, ale co do rentowności biznesu.

Warto wiedzieć, jak się poznaliśmy. Z Biedalakiem byliśmy przyjaciółmi od zawsze. Chodziłem do szkoły z jego bratem, mieszkaliśmy 200 metrów od siebie i zakwalifikowaliśmy się na ten sam rok informatyki na uniwersytecie. Nie potrafię powiedzieć, jak przekonałem Biedalaka, że SuperMemo jest świetne. Byliśmy po prostu zbyt blisko i on zawsze był w kręgu. Ta część była łatwa. Tomek Kuehn był jednym z pierwszych wielkich wyznawców SuperMemo. Był też świetnym programistą, wielką inspiracją i natychmiast pojął ten pomysł. Sam napisał dwie wersje SuperMemo: na Atari 800 w 1988 roku i na Atari ST w 1989 roku. W styczniu 1989 roku sprzedał nawet 10 kopii SuperMemo 2, korzystając z ogłoszenia w jednym z czasopism komputerowych: Komputer. Przypuszczam, że nie odzyskał zainwestowanych pieniędzy. Po ukończeniu studiów miał już własny biznes: sklep komputerowy. Ten sklep był też jednym z pierwszych, które prezentowały SuperMemo swoim klientom. Jego wspólnikiem i przyjacielem był Marczello Georgiew, którego też nie trzeba było długo przekonywać. Wreszcie, poznałem Janusza Murakowskiego podczas egzaminów GRE w Budapeszcie w 1990 roku. Wielki umysł matematyczny, być może najszybciej nawrócony na SuperMemo w historii. Podczas naszej podróży pociągiem z powrotem do Polski wspomniałem o SuperMemo. Był natychmiast zafascynowany. Kilka dni później był już entuzjastycznym użytkownikiem SuperMemo 2 (od 13 czerwca 1990 roku). W naszym firmowym hymnie rapowym śpiewaliśmy „ jesteśmy facetami, którzy sprzedają SuperMemo”. Bardzo trudno było przekonać ludzi, że SuperMemo działa, ale chłopaki w zespole zawsze byli pełni entuzjazmu.

Do listopada 1991 roku entuzjazm zaczął topnieć. Gdybyśmy kontynuowali bez sukcesu, stopniowo traciliśmy zespół proporcjonalnie do ich zaangażowania i pasji. Po kilku kolejnych miesiącach firma mogłaby umrzeć. SuperMemo by nie umarło. Z pewnością szukałbym kupca albo kontynuował w taki czy inny sposób. Byłem zbyt związany z produktem. Sam go używałem, a cała moja wiedza była zainwestowana w moje bazy danych. Mogłem pomyśleć o powrocie do idei doktoratu w USA. Podobnie jak potrafiłem połączyć pracę na uniwersytecie w Holandii w 1989 roku z programowaniem „po godzinach”, prawdopodobnie kontynuowałbym, aż do jakiegoś przełomu, np. w internecie. Może byłby to produkt open source? Na szczęście dr Wojciech Makałowski z Zakładu Biochemii Biopolimerów zasugerował, byśmy zgłosili SuperMemo do konkursu Software for Europe. Dzięki jakiemuś cudownemu zrządzeniu losu zakwalifikowaliśmy się do finału i natychmiast zauważyły to polskie media, zwłaszcza czasopisma komputerowe. Od tego momentu SuperMemo miało łatwą jazdę z polską prasą, która stawała się coraz bardziej zaintrygowana. Andrzej Horodeński był pierwszy, a Paweł Wimmer był drugi i najwierniejszy do dziś. Wimmer faktycznie używał SuperMemo 2, które prawdopodobnie otrzymał od Tomasza Kuehna w czasie jego ogłoszenia w czasopiśmie KOMPUTER w 1989 roku.

1,5 roku po swoich narodzinach SuperMemo World stało się wreszcie rentowne. Nieźle.

SuperMemo World było fantastycznym przedsięwzięciem od samego początku. Nie mieliśmy zastrzyku kapitału wysokiego ryzyka w Polsce w 1991 roku, więc musieliśmy radzić sobie sami, sprzedając to, co inni uważali za „wężowy olej”. Mogliśmy z łatwością ponieść porażkę, ale przetrwaliśmy dzięki samej sile pasji, wiary i wielkiej dawki szczęścia.

Początki Algorytmu SM-6

Algorytm SM-6 został po raz pierwszy użyty w SuperMemo 6 (1991), jednak nadal ewoluował w SuperMemo 7 (1992). Nigdy nie istniała wersja SM-7, mimo wielu zmian. Warto zwłaszcza odnotować, że od 1994 roku w SuperMemo 7 dla Windows do przybliżania krzywych zapominania używano funkcji wykładniczej. Z czasem udoskonalano także przybliżenia macierzy OF.

Rysunek: SuperMemo 7 dla Windows (1992) wyświetlające krzywą zapominania opartą na średnich.

Rysunek: SuperMemo 7 dla Windows (1994) wyświetlające krzywą zapominania przybliżoną funkcją wykładniczą. Oś pionowa przedstawia przypomnienie w procentach. Oś pozioma odpowiada czasowi wyrażonemu przez U-Factor

Najważniejszym elementem Algorytm SM-6 było zbieranie danych o tempie zapominania. Krzywe zapominania pozwalają łatwo i dokładnie wyznaczyć optymalne interwały. Wyeliminowało to potrzebę powolnego i niedokładnego podejścia typu bang-bang stosowanego w Algorytm SM-5:

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Ten tekst jest częścią: ” Economics of Learning ” autorstwa Piotra Wozniaka (1995)

Algorytmie SM-5 proces wyznaczania wartości pojedynczego wpisu macierzy czynników optymalnych wyglądał następująco (patrz wcześniej):

  1. Ustaw wartość początkową na średnią wartość czynnika optymalnego (OF) uzyskaną we wcześniejszych eksperymentach
  2. Jeśli ocena wygenerowana przez dany wpis była (1) większa niż pożądana wartość, zwiększ wartość OF, (2) mniejsza niż pożądana wartość, zmniejsz OF, lub (3) równa pożądanej wartości, nie zmieniaj OF

Powyższe podejście pokazuje, że optymalną wartość OF można było osiągnąć dopiero po dużej liczbie powtórek, a co gorsza, im większy numer porządkowy powtórki, tym dłużej trwało wykonanie cyklu modyfikacja-weryfikacja (czyli cyklu, w którym wpis OF jest zmieniany i weryfikowany po zaplanowaniu kolejnej powtórki z odpowiednio długim interwałem).

Wprowadzenie pojęcia wskaźnika zapominania

Nowością Algorytmu SM-6 jest przybliżanie nachylenia krzywej zapominania odpowiadającej danemu wpisowi macierzy czynników optymalnych i obliczanie nowej wartości odpowiedniego czynnika optymalnego bezpośrednio z przybliżonej krzywej. Innymi słowy, w Algorytmie SM-6 cykl modyfikacja-weryfikacja nie jest potrzebny, ponieważ ustala się deterministyczną zależność między krzywą zapominania a optymalnym interwałem między powtórkami. Modyfikacja czynnika optymalnego następuje natychmiast po powtórce, po przybliżeniu nowej krzywej zapominania wyprowadzonej z danych obejmujących ocenę podaną w ostatniej odpowiedzi. Ta modyfikacja nie tylko pozwoliła znacznie przyspieszyć proces wyznaczania optymalnych wartości macierzy czynników optymalnych, ale też umożliwiła ustalenie pożądanego poziomu retencji wiedzy, jaki zostanie osiągnięty w toku procesu nauki (zob. przykładowa krzywa zapominania).

Pożądany poziom retencji wiedzy jest wyznaczany przez odsetek elementów, których nie pamięta się podczas powtórek. Ten odsetek nazywany jest wskaźnikiem zapominania (elementy klasyfikuje się jako zapamiętane lub zapomniane na podstawie ocen podanych przez studenta w samoocenie swoich postępów).

Rysunek: Przykładowa krzywa zapominania wykreślona w toku powtórek (na podstawie ponad 40 000 zarejestrowanych przypadków powtórek).

Na przedstawionym powyżej rysunku upływ czasu przedstawiony jest przez interwał w dniach. Oś pionowa przedstawia retencję wiedzy wyrażoną jako procent. Linia pozioma umieszczona na poziomie retencji 90% wyznacza żądany wskaźnik zapominania, czyli pożądany odsetek elementów, które powinny zostać zapomniane w momencie powtórki. Optymalny interwał naturalnie wypada wtedy w punkcie przecięcia linii żądanego wskaźnika zapominania z krzywą zapominania. W powyższym przykładzie optymalny interwał wynosi siedem dni. Przedstawiona krzywa zapominania została wykreślona na podstawie 40489 zarejestrowanych przypadków powtórek. Wyjaśnienie wartości R-Factor (RF), O-Factor (OF) itd. znajduje się dalej w tekście. Ze względu na wysoce nieregularną naturę macierzy czynników optymalnych obliczanej bezpośrednio z krzywych zapominania, w Algorytmie SM-6 macierz używana do rozkładania powtórek w czasie stanowi wygładzoną wersję tak zwanej macierzy czynników retencji (macierz RF), która jest wyprowadzana bezpośrednio z krzywych zapominania odpowiadających poszczególnym wpisom macierzy OF. Innymi słowy, krzywe zapominania wyznaczają wartość wpisów macierzy RF, a w obliczaniu optymalnych interwałów wykorzystuje się jedynie wygładzony odpowiednik tej ostatniej, czyli macierz OF.

Algorytm SM-6

Poniższy opis algorytmu został zaczerpnięty, z pewnymi wyjaśnieniami, z mojej pracy doktorskiej i odnosi się do stanu rzeczy z 1994 roku:

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Ten tekst jest częścią: ” Economics of Learning ” autorstwa Piotra Wozniaka (1995)

  1. Przyswajana wiedza jest dzielona na możliwie najmniejsze fragmenty zwane elementami
  2. Elementy są formułowane w postaci pytanie-odpowiedź
  3. Elementy są zapamiętywane za pomocą techniki odpadania we własnym tempie, tj. przez odpowiadanie na zadawane pytania tak długo, aż udzielone zostaną wszystkie poprawne odpowiedzi
  4. Po zapamiętaniu elementu pierwsza powtórka jest planowana po interwale, który jest taki sam dla wszystkich elementów. Jego wartość jest wyznaczana przez pożądany poziom retencji wiedzy, który z kolei można przełożyć na interwał, korzystając ze średniej krzywej zapominania pobranej ze średniej bazy danych przeciętnego studenta ( Wozniak 1994a). Pożądaną retencję określa się za pomocą tak zwanego wskaźnika zapominania, który odpowiada odsetkowi elementów zapominanych przy powtórkach (by dowiedzieć się, jak obliczyć retencję na podstawie wskaźnika zapominania i odwrotnie). Zauważ, że pierwszy interwał może być losowo skrócony lub wydłużony w celu przyspieszenia procesu optymalizacji (zróżnicowane interwały zwiększają dokładność przybliżania krzywej zapominania).
  5. Pierwszy interwał jest obliczany tak, jak dla przeciętnego studenta i przeciętnej bazy danych. Jednak gdy tylko zarejestrowana wartość wskaźnika zapominania odbiega od żądanego poziomu, długość pierwszego interwału jest odpowiednio modyfikowana. Nowa wartość interwału jest wyprowadzana z przybliżenia ujemnie wykładniczej krzywej zapominania wykreślanej w toku powtórek. Z każdym zarejestrowanym wynikiem powtórki wykres staje się coraz dokładniejszy, a stosowana wartość optymalnego interwału między powtórkami ustala się w punkcie, który zapewnia wybrany poziom retencji wiedzy. Po każdej powtórce student wystawia ocenę, która określa dokładność i łatwość odtworzenia poprawnej odpowiedzi.
  6. Na podstawie ocen elementy są klasyfikowane do kategorii trudności. Ich trudność jest ponownie szacowana przy każdej kolejnej powtórce. Trudność każdego elementu jest charakteryzowana przez wspomniane wcześniej czynniki E (E oznacza „easiness”, czyli łatwość). Czynniki E są równe 2,5 dla wszystkich elementów przy wejściu do procesu nauki i są modyfikowane po kolejnych powtórkach. Na przykład oceny powyżej czterech skutkują niewielkim zwiększeniem czynnika E (dobre oceny wskazują na łatwe elementy), podczas gdy oceny poniżej czterech zmniejszają czynnik E. Historycznie czynniki E były używane do określania, ile razy interwały powinny rosnąć w kolejnych powtórkach elementów danej trudności. Obecnie czynniki E są używane jedynie do indeksowania macierzy czynników optymalnych i czynników retencji i mogą mieć niewielkie znaczenie dla faktycznego wzrostu interwału.
  7. Do elementów o różnej trudności stosuje się różne optymalne interwały.
  8. Różne interwały są stosowane do elementów, które były powtarzane różną liczbę razy.
  9. Funkcja optymalnych interwałów jest stale modyfikowana, aby wytworzyć pożądaną retencję wiedzy określoną przez wskaźnik zapominania. Innymi słowy, algorytm wykrywa, jak dobrze student radzi sobie z powtórkami, i odpowiednio dostosowuje długość interwałów między powtórkami.
  10. Funkcja optymalnych interwałów jest reprezentowana jako macierz czynników optymalnych, w skrócie macierz OF, zdefiniowana następująco: dla n=1: I(n,EF)=OF(n,EF), dla n>1: I(n,EF)=I(n-1,EF)*OF(n,EF), gdzie:
    • I(n,EF) – n-ty interwał dla trudności EF
    • OF(n,EF) – czynnik optymalny dla n-tej powtórki i trudności EF
    Wpisy macierzy czynników optymalnych są modyfikowane w toku powtórek, aby zapewnić pożądany poziom retencji wiedzy
  11. Macierz czynników optymalnych powstaje przez wygładzenie tak zwanej macierzy czynników retencji, w skrócie macierzy RF. Macierz czynników retencji jest zdefiniowana w taki sam sposób jak macierz czynników optymalnych.
  12. Wpisy macierzy czynników retencji mają na celu oszacowanie wartości wpisów macierzy czynników optymalnych. Każdy czynnik optymalny odpowiada optymalnemu interwałowi, który zapewnia pożądaną retencję przy powtórce (określoną przez żądany wskaźnik zapominania). Każdy wpis macierzy czynników retencji odpowiada innej wartości czynnika E i numerowi powtórki
  13. Wpisy macierzy czynników retencji, zwane czynnikami R , są obliczane na podstawie krzywych zapominania, których kształt jest szkicowany na podstawie historii powtórek
  14. Upływ czasu na wykresie krzywej zapominania jest mierzony za pomocą tak zwanego czynnika U , który jest ilorazem bieżącego i poprzedniego interwału, z wyjątkiem pierwszej powtórki, gdzie czynnik U równa się interwałowi w dniach (jak na rysunku). Zapis powtórek pozwala obliczyć retencję dla różnych wartości czynnika U. Wykres retencji w funkcji upływu czasu (czynnika U) przedstawia krzywą zapominania. Punkt przecięcia krzywej zapominania z pożądanym poziomem retencji wyznacza optymalny czynnik R, który po wygładzeniu macierzy czynników retencji daje optymalny czynnik O
  15. Każda kategoria trudności i numer powtórki mają własny zapis powtórek używany do wykreślenia osobnej krzywej zapominania. Innymi słowy, różne interwały będą stosowane do elementów o różnej trudności oraz do elementów powtarzanych różną liczbę razy.
  16. Interwały stosowane w nauce, w tym pierwszy interwał, są nieznacznie rozproszone wokół wartości optymalnej, aby zwiększyć dokładność szkicowania krzywej zapominania, a w konsekwencji zwiększyć tempo zbieżności procedury optymalizacji. Dzięki niewielkiemu rozproszeniu interwałów przybliżenie krzywej zapominania korzysta z bardziej rozproszonego zbioru punktów na wykresie

1994: Eksponencjalna natura zapominania

Krzywa zapominania: funkcja potęgowa czy wykładnicza

Kształt krzywej zapominania ma kluczowe znaczenie dla zrozumienia pamięci. Matematyka stojąca za tą krzywą może nawet mieć znaczenie dla zrozumienia roli snu (patrz dalej). Kiedy Ebbinghaus po raz pierwszy wyznaczył tempo zapominania, uzyskał całkiem ładny zbiór danych dobrze pasujący do funkcji potęgowej. Dziś jednak wiemy, że zapominanie jest wykładnicze. Rozbieżność tę wyjaśniono tutaj.

Krzywa zapominania zaadaptowana z prac Hermanna Ebbinghausa (1885). Krzywa została odtworzona na podstawie oryginalnych danych tabelarycznych opublikowanych przez Ebbinghausa (Piotr Wozniak, 2017)

Błędne myślenie pomogło spaced repetition

Przez wiele lat rzeczywisty kształt krzywej nie odgrywał większej roli w spaced repetition. Moje wczesne intuicje były bardzo różne w zależności od kontekstu. Jeszcze w 1982 roku myślałem, że ewolucja zaprojektowała zapominanie po to, by mózg nie wyczerpał przestrzeni pamięci. Optymalny czas na zapomnienie byłby wyznaczany przez statystyczne właściwości środowiska. Zanik byłby zaprogramowany tak, by maksymalizować przetrwanie. Gdy tylko powtórka się nie odbyła, pamięć byłaby usuwana, by zwolnić miejsce na nową naukę.

Myliłem się, sądząc, że może istnieć optymalny czas na zapomnienie, i ten błąd okazał się pomocny przy wynalezieniu spaced repetition. Ta intuicja o „optymalnym czasie” pomogła przy pierwszym eksperymencie w 1985 roku. Optymalny czas na zapomnienie sugerowałby sigmoidalną krzywą zapominania z wyraźnym punktem przegięcia wyznaczającym optymalność. Przed powtórką zapominanie byłoby minimalne. Opóźniona powtórka skutkowałaby szybkim zapominaniem. Dlatego znalezienie optymalnego interwału wydawało się tak kluczowe. Gdy później zaczęły napływać dane, wciąż, z powodu mojego błędu potwierdzenia, nie potrafiłem dostrzec swojej pomyłki. W mojej pracy magisterskiej napisałem o sigmoidalnym zapominaniu: „ wynika to bezpośrednio z obserwacji, że przed upływem optymalnego interwału liczba luk pamięciowych jest znikoma”. Musiałem zapomnieć o moim własnym wykresie krzywej zapominania sporządzonym pod koniec 1984 roku.

Dziś wydaje się to niedorzeczne, ale nawet mój model uczenia się przerywanego dostarczał pewnego wsparcia dla tej teorii. Przybliżenie wykładnicze dawało szczególnie wysoki błąd odchylenia dla danych zebranych podczas pracy nad modelem uczenia się przerywanego, a superpozycja krzywych sigmoidalnych dla różnych czynników E mogła z łatwością imitować wczesną liniowość. Przybliżenie liniowe zdawało się świetnie pasować do modelu uczenia się przerywanego w zakresie przypomnienia dostępnym w danych. Nic dziwnego, że przy całych stronach niejednorodnego materiału eksponencjalna natura zapominania pozostawała dobrze ukryta.

Sprzeczne modele

Niewiele zastanawiałem się nad krzywymi zapominania. Jednak mój model biologiczny sięgający 1988 roku mówił o wykładniczym zaniku łatwości przypomnienia. Najwyraźniej w tamtych czasach krzywa zapominania i łatwość przypomnienia mogły istnieć w mojej głowie jako niezależne byty.

W mojej pracy zaliczeniowej na zajęcia z symulacji komputerowej (dr Katulski, styczeń 1988), moje rysunki wyraźnie pokazują wykładnicze krzywe zapominania:

Rysunek: Hipotetyczny mechanizm biorący udział w procesie optymalnej nauki. (A) Zjawiska molekularne (B) Zmiany ilościowe w synapsie.

W tamtym czasie mogłem już wybrać lepszy pomysł z literatury. W latach 1986-1987 spędzałem dużo czasu w bibliotece uniwersyteckiej, szukając dobrych badań na temat spaced repetition. Nie znalazłem żadnych. Być może znałem już krzywą zapominania Ebbinghausa. Jest ona wspomniana w mojej pracy magisterskiej.

Zbieranie danych

Zebrałem dane do mojego pierwszego wykresu krzywej zapominania pod koniec 1984 roku. Ponieważ cała nauka była prowadzona dla samej nauki przez 11 miesięcy, a koszt wykresu był minimalny, zapomniałem o tym wykresie i leżał on nieużywany przez 34 lata w moich archiwach:

Rysunek: Moja pierwsza w życiu krzywa zapominania dla retencji angielskiego słownictwa, wykreślona jeszcze w 1984 roku, czyli kilka miesięcy przed zaprojektowaniem SuperMemo na papierze. Wykres ten nie był częścią eksperymentu. Był po prostu skumulowaną oceną wyników uczenia się przerywanego angielskiego słownictwa. Wykres szybko został zapomniany. Odkryto go ponownie 34 lata później. Po zapamiętaniu 49 stron zawierających ~40 par słów angielskich przeglądano je w różnych interwałach i rejestrowano liczbę błędów przypomnienia. Po odrzuceniu wartości odstających i uśrednieniu krzywa wydaje się dużo mniej stroma niż krzywa uzyskana przez Ebbinghausa (1885), w której użył on sylab bezsensownych i innej miary zapominania: oszczędności przy ponownej nauce

Mój eksperyment z 1985 roku można również uznać za dość szumiącą próbę zebrania danych o krzywej zapominania. Jednak pierwsze SuperMemo nie przejmowały się krzywą zapominania. Optymalizacja miała naturę bang-bang, mimo że dziś zbieranie danych o retencji wydaje się tak oczywistym rozwiązaniem (jak w 1985 roku).

Dopóki nie zacząłem zbierać danych za pomocą oprogramowania SuperMemo, gdzie każdy element mógł być analizowany niezależnie, nie mogłem w pełni uwolnić się od wczesnych błędnych wyobrażeń o zapominaniu.

SuperMemo 1 dla DOS (1987) zbierało pełne historie powtórek, które umożliwiłyby ustalenie natury zapominania. Jednak w ciągu 10 dni (23 grudnia 1987 roku) musiałem porzucić pełny zapis powtórek. W tamtym czasie miałem 360 KB przestrzeni dyskowej. To prawda. Uruchamiałem SuperMemo ze starych dyskietek typu 5,25 cala. Pełny zapis historii powtórek powrócił do SuperMemo dopiero 8 długich lat później (15 lutego 1996 roku) po gorączkowym wysiłku dr. Janusza Murakowskiego, który uważał każdą upływającą minutę za marnotrawstwo cennych danych, które mogłyby zasilać przyszłe algorytmy i badania nad pamięcią. Dwie dekady później mamy więcej danych, niż jesteśmy w stanie efektywnie przetworzyć.

Bez historii powtórek wciąż mogłem badać zapominanie za pomocą danych o krzywej zapominania zbieranych niezależnie. 6 stycznia 1991 roku wymyśliłem, jak rejestrować dane krzywej zapominania w małym pliku, który nie rozdmuchiwałby rozmiaru bazy danych (czyli bez pełnego zapisu historii powtórek).

Dopiero SuperMemo 6, w 1991 roku, zaczęło zbierać dane krzywej zapominania w celu wyznaczania optymalnych interwałów. Robiło to samo, co mój pierwszy eksperyment, tyle że robiło to automatycznie, na masową skalę i dla wspomnień podzielonych na pojedyncze pytania (to rozwiązało problem niejednorodności). SuperMemo 6 początkowo używało metody połowienia przedziału (binary chop), by znaleźć najlepszy moment odpowiadający wskaźnikowi zapominania. Do dobrego dopasowania przybliżenia wciąż brakowało 3 lat.

Pierwsze dane krzywej zapominania

Do maja 1991 roku miałem pierwsze dane, na które mogłem zerknąć, i było to duże rozczarowanie. Przewidywałem, że będę potrzebował roku, by dostrzec jakąkolwiek regularność. Jednak co kilka miesięcy odnotowywałem swoje rozczarowanie minimalnym postępem. Postęp w zbieraniu danych był boleśnie powolny, a oczekiwanie wręcz nieznośne. Rok później wciąż nie byłem bliżej celu. Jeśli Ebbinghausowi udało się wykreślić dobrą krzywą przy użyciu sylab bezsensownych, jego trud związany z brakiem spójności musiał się opłacić. Przy danych sensownych prawda wyłaniała się bardzo powoli. Nawet mimo wygody, że wszystko robił za mnie komputer, podczas gdy dobrze się bawiłem, ucząc się.

3 września 1992 roku SuperMemo 7 dla Windows umożliwiło pierwszy przyjemny rzut oka na prawdziwą krzywą zapominania. Widok był hipnotyzujący:

Rysunek: SuperMemo 7 dla Windows napisano w 1992 roku. Od 3 września 1992 roku potrafiło wyświetlać wykres krzywej zapominania użytkownika. Oś pozioma oznaczona U-Factor odpowiadała dniom na tym konkretnym wykresie. Załamania między dniami 14 a 20 były jednym z powodów, dla których trudno było ustalić naturę zapominania. Trudno było obalić stare, błędne hipotezy. Do dnia 13 zapominanie wydawało się niemal liniowe i mogłoby też dobrze pasować do funkcji wykładniczej. Znalezienie odpowiedzi zajęło jeszcze dwa lata zbierania danych (źródło: SuperMemo 7: User’s Guide)

Przybliżenia krzywej zapominania

Do 1994 roku wciąż nie byłem pewien natury zapominania. Wziąłem dane zebrane w poprzednich 3 latach (1991-1994) i postanowiłem raz na zawsze rozwikłać zagadkę krzywej. Skupiłem się na własnych danych z ponad 200 000 powtórek. Jednak nie było to łatwe. Jeśli SuperMemo planuje powtórkę przy R=0,9, można narysować prostą linię od R=1,0 do R=0,9 i całkiem dobrze poradzić sobie z zaszumionymi danymi:

Rysunek: Trudność w przybliżaniu krzywej zapominania. Jeszcze w 1994 roku trudno było zrozumieć naturę zapominania w SuperMemo, ponieważ większość danych zbierano zwykle w zakresie wysokiego przypomnienia.

Moje notatki z 6 maja 1994 roku ilustrują stopień niepewności:

Osobista anegdota. Dlaczego stosujemy anegdoty?

6 maja 1994: Cały dzień szalonych prób lepszego przybliżenia krzywych zapominania. Najpierw spróbowałem R=1-i n/(H n+i n), gdzie i – interwał, H – okres półtrwania pamięci, a n – czynnik kooperatywności. Późnym wieczorem udało mi się to uruchomić, choć dość wolno, ale… okazało się, że r=exp(-a*i) działa niewiele gorzej! Nawet stare przybliżenie liniowe nie było dużo gorsze (sigmoida: D=8,6%, wykładnicza D=8,8%, a liniowa D=10,8%). Może krzywe zapominania rzeczywiście są wykładnicze? Idę spać o 2:50

Nie było łatwo rozdzielić funkcje liniowe, potęgowe, wykładnicze, Zipfa, Hilla i inne. Przybliżenia wykładnicze, potęgowe, a nawet liniowe dawały całkiem dobre wyniki, zależnie od okoliczności, które trudno było rozdzielić. Dopiero patrząc na krzywe zapominania dobrze posortowane według złożoności przy wyższych poziomach stabilności, mimo że te wykresy były ubogie w dane, mogłem dostrzec eksponencjalną naturę zapominania wyraźniej.

Jednym z tropów fałszywych w 1994 roku było to, że naturalnie miałem najwięcej danych zebranych dla pierwszej powtórki. Nowe elementy na wejściu do procesu wciąż tworzą niejednorodną grupę, która podlega potęgowemu prawu zapominania.

Krzywa zapominania pierwszej powtórki dla świeżo przyswojonej wiedzy zebrana za pomocą SuperMemo.

Później, gdy są posortowane według złożoności i stabilności, zaczynają stawać się wykładnicze. W Algorytmie SM-6 złożoność i stabilność były niedoskonale wyrażane odpowiednio przez czynniki E i numer powtórki. Skutkowało to niedoskonałościami algorytmicznymi, które prowadziły do niedoskonałego sortowania. Dodatkowo SuperMemo pozostaje w obszarze wysokiej retencji, gdzie zapominanie jest niemal liniowe.

Do maja 1994 roku główna krzywa pierwszej powtórki w mojej bazie Advanced English zebrała 18 000 punktów danych i wydawała się najlepszym materiałem analitycznym. Jednak ta krzywa obejmuje cały materiał do nauki wchodzący w proces, niezależnie od jego trudności. Nie wiedziałem wtedy, że ta krzywa jest objęta prawem potęgowym. Moje najlepsze odchylenie wynosiło 2,0.

Podobną krzywą z 2018 roku można zobaczyć tutaj:

Rysunek: Krzywa zapominania uzyskana w 2018 roku za pomocą SuperMemo 17 dla przeciętnej trudności (A-Factor=3,9). Przy 19 315 powtórkach i odchyleniu najmniejszych kwadratów równym 2,319 jest ona dość podobna do krzywej z 1994 roku, z tą różnicą, że najlepiej przybliża ją funkcja wykładnicza (przykład funkcji potęgowej zob.: krzywa zapominania).

Zapominanie wykładnicze przeważa

Do lata 1994 roku byłem dość pewny eksponencjalnej natury zapominania. W 1995 roku opublikowaliśmy „2 components of memory” ze wzorem R=exp(-t/S). Nasza publikacja pozostaje w dużej mierze ignorowana przez naukę głównego nurtu, ale jest wszechobecna w internecie, gdy mowa o krzywych zapominania.

Co ciekawe, w 1966 roku laureat Nagrody Nobla Herbert Simon zerknął na Prawo Josta wyprowadzone z prac Ebbinghausa z 1897 roku. Simon zauważył, że eksponencjalna natura zapominania wymaga istnienia pewnej właściwości pamięci, którą dziś nazywamy stabilnością pamięci. Simon napisał krótki artykuł i zajął się setkami innych projektów, którymi był zaprzątnięty. Jego tekst został w dużej mierze zapomniany, jednak okazał się prorocze. W 1988 roku podobne rozumowanie doprowadziło do idei dwuskładnikowego modelu pamięci długotrwałej.

Dziś możemy dodać jeszcze jedną implikację: jeśli zapominanie jest wykładnicze, oznacza to stałe prawdopodobieństwo zapomnienia w jednostce czasu, co implikuje interferencję sieci neuronowej, co z kolei implikuje, że sen może budować stabilność nie przez wzmacnianie wspomnień, ale po prostu przez usuwanie przyczyny interferencji: niepotrzebnych synaps. Giulio Tononi mógłby więc mieć rację co do netto ubytku synaps podczas snu. Uważa on jednak, że ten ubytek ma charakter homeostatyczny. Wykładnicze zapominanie wskazuje, że może to być coś znacznie więcej. Może to być forma „ inteligentnego zapominania” rzeczy, które interferują z kluczowymi wspomnieniami wzmacnianymi na jawie.

Ujemnie wykładnicza krzywa zapominania

Dopiero w 2005 roku napisaliśmy obszerniej o eksponencjalnej naturze zapominania. W pracy przedstawionej przez dr. Gorzelańczyka na konferencji modelowania w Polsce napisaliśmy:

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Choć zawsze podejrzewano, że zapominanie ma naturę wykładniczą, udowodnienie tego faktu nigdy nie było proste. Zanik wykładniczy pojawia się standardowo w układach biologicznych i fizycznych, od rozpadu promieniotwórczego po wysychanie drewna. Występuje wszędzie tam, gdzie oczekiwane tempo zaniku jest proporcjonalne do wielkości próby, a prawdopodobieństwo rozpadu pojedynczej cząstki jest stałe. Następujące problemy utrudniały modelowanie zapominania od czasów Ebbinghausa (Ebbinghaus, 1885):

  • mały rozmiar próby
  • niejednorodność próby
  • mylenie krzywych zapominania z krzywymi ponownej nauki, krzywymi ćwiczeń, krzywymi oszczędności, krzywymi liczby prób do nauczenia się, krzywymi błędów i innymi z rodziny krzywych uczenia się

Wykorzystując SuperMemo, możemy przezwyciężyć wszystkie te przeszkody w badaniu natury zaniku pamięci. Jako popularna aplikacja komercyjna, SuperMemo zapewnia niemal nieograniczony dostęp do ogromnych zbiorów danych zebranych od studentów z całego świata. Wykresy krzywej zapominania dostępne dla każdego użytkownika programu ( Narzędzia : Statystyki : Analiza : Krzywe zapominania) są wykreślane na stosunkowo jednorodnych próbach danych i stanowią wiarygodne odzwierciedlenie zaniku pamięci w czasie (w przeciwieństwie do innych form krzywych uczenia się). Dążenie do jednorodności znacząco wpływa jednak na wielkość próby. Warto zauważyć, że krzywe zapominania dla materiału o różnej stabilności pamięci i różnej trudności wiedzy różnią się między sobą. O ile stabilność pamięci wpływa na tempo zaniku, o tyle niejednorodny materiał do nauki tworzy superpozycję indywidualnych krzywych zapominania, z których każda charakteryzuje się innym tempem zaniku. W konsekwencji nawet w zbiorach zawierających setki tysięcy pojedynczych informacji uczestniczących w procesie nauki, można wyodrębnić jedynie stosunkowo małe, jednorodne próby danych. Próby te rzadko przekraczają kilka tysięcy przypadków powtórek. Nawet wtedy takie zbiory danych daleko przewyższają jakość próby dostępną badaczom badającym właściwości pamięci w warunkach kontrolowanych. Jednak stochastyczna natura zapominania wciąż utrudnia ostateczne rozstrzygnięcie co do matematycznej natury funkcji zaniku (zob. dwa poniższe przykłady). Po przeanalizowaniu kilkuset tysięcy próbek zbliżyliśmy się najbardziej do wykazania, że zapominanie jest formą zaniku wykładniczego.

Rysunek: Przykładowa krzywa zapominania wykreślona przez SuperMemo. Próba bazy danych obejmująca niemal milion przypadków powtórek została przesiana pod kątem przeciętnej trudności i niskiej stabilności (A-Factor=3,9, S w [4,20]), co dało 5850 przypadków powtórek (mniej niż 1% całej próby). Czerwona linia jest wynikiem analizy regresji z R=e -kt/S. Dopasowanie krzywej za pomocą innych funkcji elementarnych pokazuje, że zanik wykładniczy najlepiej pasuje do danych. Miarą czasu użytą na wykresie jest tak zwany czynnik U, zdefiniowany jako iloraz obecnego i poprzedniego interwału między powtórkami. Zauważ, że zanik wykładniczy w zakresie R od 1 do 0,9 można wiarygodnie przybliżyć linią prostą, co nie miałoby miejsca, gdyby zanik był charakteryzowany funkcją potęgową.

Rysunek: Przykładowa krzywa zapominania wykreślona przez SuperMemo. Próba bazy danych obejmująca niemal milion przypadków powtórek została przesiana pod kątem przeciętnej trudności i średniej stabilności (A-Factor=3,3, S > 1 rok), co dało 1082 przypadki powtórek. Czerwona linia jest wynikiem analizy regresji z R=e -kt/S.

Krzywa zapominania: wzór na łatwość przypomnienia

Algorytmie SM-17 łatwość przypomnienia R odpowiada prawdopodobieństwu przypomnienia i przedstawia wykładniczą krzywą zapominania. Łatwość przypomnienia jest wyprowadzana ze stabilności i interwału:

R[n]:=exp -k*t/S[n-1]

gdzie:

To eleganckie podejście teoretyczne staje się nieco bardziej złożone, gdy weźmiemy pod uwagę, że zapominanie może nie być idealnie wykładnicze, jeśli elementy są trudne lub o mieszanej trudności. Dodatkowo krzywe zapominania w SuperMemo mogą być zakłócane przez strategie użytkowników.

W Algorytmie SM-8 mieliśmy nadzieję, że informację o łatwości przypomnienia da się wyprowadzić z ocen. Okazało się to fałszywe. Korelacja między ocenami a łatwością przypomnienia jest bardzo niewielka i wynika głównie z faktu, że złożone elementy otrzymują gorsze oceny i mają tendencję do szybszego zapominania (przynajmniej na początku).

Retencja a wskaźnik zapominania

Eksponencjalna natura zapominania sprawia, że związek między zmierzonym wskaźnikiem zapominania a retencją wiedzy można dokładnie wyrazić za pomocą następującego wzoru:

Retention = -FI/ln(1-FI)

gdzie:

  • Retention – łączna retencja wiedzy wyrażona jako ułamek (0..1),
  • FI – wskaźnik zapominania wyrażony jako ułamek (wskaźnik zapominania równy jest 1 minus retencja wiedzy przy powtórkach).

Na przykład, domyślnie, dobrze przeprowadzone spaced repetition powinno dać retencję 0,949 (czyli 94,9%) przy wskaźniku zapominania równym 0,1 (czyli 10%). 94,9% pokazuje, jak bardzo zanik wykładniczy przypomina na początku funkcję liniową. Dla zapominania liniowego wartość ta wynosiłaby 95,000% (czyli 100% minus połowa wskaźnika zapominania).

Krzywa zapominania dla źle sformułowanego materiału

W 1994 roku miałem szczęście, że moje bazy danych były w dużej mierze dobrze sformułowane. Często nie było tak w przypadku użytkowników SuperMemo. Dla źle sformułowanych elementów krzywa zapominania jest spłaszczona. Nie jest ona czysto wykładnicza (jako superpozycja kilku krzywych wykładniczych). SuperMemo nigdy nie może przewidzieć momentu zapomnienia pojedynczego elementu. Zapominanie jest procesem stochastycznym i może działać jedynie na średnich. Często powielanym błędnym przekonaniem o SuperMemo jest to, że przewiduje ono dokładny moment zapomnienia: to nieprawda i jest to niemożliwe. To, co robi SuperMemo, to poszukiwanie interwałów, przy których elementy danej trudności prawdopodobnie wykażą dane prawdopodobieństwo zapomnienia (np. 10%). Te spłaszczone krzywe zapominania doprowadziły do paradoksu. Zaniedbywanie złożonych elementów może prowadzić do świetnego przetrwania po długich przerwach w powtarzaniu. Nawet dla czysto ujemnie wykładniczej krzywej zapominania, 10-krotne odchylenie w szacowaniu interwału spowoduje różnicę w retencji wyrażoną jako R2=exp 10*ln(R1). Odpowiada to spadkowi z 98% do 81%. Dla spłaszczonej krzywej zapominania typowej dla źle sformułowanych elementów, ten spadek może wynosić zaledwie 98%->95%. Prowadzi to do wniosku, że utrzymywanie złożonego materiału na niższych priorytetach jest dobrą strategią nauki.

Prawo potęgowe pojawia się przy superpozycji wykładniczych krzywych zapominania

Aby zilustrować znaczenie jednorodnych prób w badaniu krzywych zapominania, przyjrzyjmy się efektowi mieszania trudnej wiedzy z łatwą wiedzą na kształt krzywej zapominania. Poniższy rysunek pokazuje, dlaczego niejednorodne próby mogą prowadzić do błędnych wniosków o naturze zapominania. Niejednorodna próba w tej demonstracji jest najlepiej przybliżona funkcją potęgową! Fakt, że krzywe potęgowe pojawiają się w wyniku uśredniania wykładniczych krzywych zapominania, był wcześniej zgłaszany przez innych (Anderson&Tweney 1997; Ritter&Schooler, 2002).

Rysunek: Superpozycja krzywych zapominania może prowadzić do zamaskowania eksponencjalnej natury zapominania. Skomponowano teoretyczną próbę dwóch typów śladów pamięciowych: 50% śladów w próbie ze stabilnością S=1 (cienka żółta linia) i 50% śladów w próbie ze stabilnością S=40 (cienka fioletowa linia). Nałożona krzywa zapominania będzie oczywiście wykazywać łatwość przypomnienia R=0,5*Ra+0,5*Rb=0,5*(e -k*t+e -k*t/40). Krzywa zapominania takiej złożonej próby jest przedstawiona ziarnistą czarną linią na wykresie. Gruba niebieska linia pokazuje przybliżenie wykładnicze (R2=0,895), a gruba czerwona linia pokazuje przybliżenie potęgowe tej samej krzywej (R2=0,974). W tym przypadku to funkcja potęgowa daje najlepsze dopasowanie do danych, mimo że zapominanie podzbiorów próby jest ujemnie wykładnicze.

SuperMemo 17 zawiera również pojedynczą krzywą zapominania, która najlepiej jest przybliżana funkcją potęgową. Jest to pierwsza krzywa zapominania po zapamiętaniu elementów. W momencie zapamiętywania nie znamy złożoności elementu. Dlatego materiał jest niejednorodny i otrzymujemy potęgową krzywą zapominania.

Rysunek: Krzywa zapominania pierwszej powtórki dla świeżo przyswojonej wiedzy zebrana za pomocą SuperMemo. W tym przypadku zastosowano przybliżenie potęgowe ze względu na niejednorodność materiału do nauki świeżo wprowadzonego w proces nauki. Brak podziału według złożoności pamięciowej skutkuje superpozycją zapominania wykładniczego o różnych stałych zaniku. Na wykresie półlogarytmicznym krzywa regresji potęgowej jest logarytmiczna (na żółto) i wygląda niemal jak prosta linia. Krzywa pokazuje, że w przedstawionym przypadku przypomnienie spada zaledwie do 58% w cztery lata, co można wyjaśnić dużym ponownym wykorzystaniem zapamiętanej wiedzy w prawdziwym życiu. Pierwszy optymalny interwał dla powtórki przy łatwości przypomnienia 90% wynosi 3,96 dnia. Krzywą zapominania można opisać wzorem R=0,9907*power(interwał,-0,07), gdzie 0,9907 to przypomnienie po jednym dniu, a -0,07 to stała zaniku. W tym przypadku wzór daje 90% przypomnienia po 4 dniach. Do wykreślenia przedstawionego wykresu użyto 80 399 przypadków powtórek. Bardziej stromy spadek przypomnienia wystąpi, jeśli materiał zawiera wyższy odsetek wiedzy trudnej (zwłaszcza źle sformułowanej wiedzy) lub u nowych studentów o mniejszych umiejętnościach mnemonicznych. Nieregularność krzywej przy interwałach 15-20 wynika z mniejszej próby powtórek (późniejsze kategorie interwałów na skali logarytmicznej obejmują szerszy zakres interwałów)

1995: Hipermedialne SuperMemo

Narodziny Algorytm SM-8 w górskiej chatce

W 1995 roku SuperMemo zostało napisane od podstaw i była to świetna okazja, by wdrożyć nowy algorytm spaced repetition oparty na danych zebranych w ciągu 4 lat stosowania Algorytmu SM-6.

W marcu 1995 roku na targach CeBIT w Hanowerze zobaczyliśmy fantastyczne nowe środowisko programistyczne od Borlanda: Delphi. Podniosło ono stary Borland Pascal na nowy poziom i otworzyło dziesiątki możliwości rozwojowych dla SuperMemo. Zdecydowaliśmy się przeprojektować program zgodnie z liniami nakreślonymi w mojej rozprawie doktorskiej. Oprócz spaced repetition chcieliśmy mieć strukturę wiedzy i hipermedia. Zamiast masy elementów użytkownicy mieliby budować drzewo wiedzy. Zamiast starego szablonu pytanie, odpowiedź, obraz i dźwięk, chcieliśmy mieć wszystkie możliwe typy komponentów, które można by mieszać w nowe formy hipermedialne wyrażania wiedzy. Istniało też marzenie o programowalnym SuperMemo, w którym programiści mogliby pisać własne procedury dla dowolnej formy treningu, w tym treningu proceduralnego, bezwzrokowego pisania na klawiaturze czy rozwiązywania równań kwadratowych. Jednocześnie zebraliśmy dużo danych, które wskazywały, że algorytm używany w SuperMemo można ulepszyć. Na przykład matematyczna natura macierzy czynników optymalnych stała się dość oczywista.

W maju 1995 roku zabrałem swój komputer Pentium do odległej górskiej chatki w południowej Polsce, by popracować nad tymi pomysłami. Był to okres 100 dni całkowitej izolacji, przerwany jedynie krótką wizytą Krzysztofa Biedalaka, podczas której ponownie zsynchronizowaliśmy naszą wizję przyszłego SuperMemo. Do września 1995 roku nowy algorytm był gotowy i przetestowany na moich własnych danych. Z powrotem w Poznaniu zacząłem stopniowo przenosić cały mój proces nauki z wielu kolekcji w SuperMemo 7 do nowego środowiska nazwanego „Genius”. Genius stał się SuperMemo 8 dopiero dwa lata później, gdy nowy program zyskał całą funkcjonalność pierwotnie dostępną w SuperMemo 7.

Głównymi danymi, które pomogły w rozwoju Algorytm SM-8, były krzywe zapominania i dane macierzy OF zebrane za pomocą SuperMemo 6 i SuperMemo 7. Dane te odebrały algorytmowi sporą część zgadywania. Praca była dość łatwa w porównaniu z Algorytmem SM-17 (2014-2016), kiedy miałem góry historii powtórek do przetworzenia, a wymagania co do precyzji i dobrych metryk potroiły się. Podczas gdy opracowanie Algorytmu SM-17 zajęło dwa lata, Algorytm SM-8 zaprojektowano, zaimplementowano i dobrze przetestowano w zaledwie 100 dni.

Główne idee stojące za Algorytm SM-8:

  • precyzyjne matematyczne wyznaczanie macierzy OF w oparciu o przybliżenia na żywo. Zamiast wygładzania macierzy znanego z SuperMemo 5, chciałem znać dokładną funkcję matematyczną, która mogłaby opisywać macierz i wykonywać aktualizacje na żywo. Łatwo było ustalić, że funkcja potęgowa ujemna wyznaczałaby OF=f(RepNo) (co dzisiejszym językiem jest wyrażeniem SInc=f(S)). Nieco więcej zgadywania wymagał wpływ trudności na SInc. Wybrałem liniowe przybliżenie funkcji odwzorowującej trudność ( A-Factor) na stałą zaniku dla SInc (D-Factor), która wyrażała spadek przyrostu stabilności wraz ze stabilnością/interwałem. Ten liniowy zakład przetrwał do dziś. Było to dobre przypuszczenie.
  • z dobrą definicją macierzy OF mogłem zapewnić precyzyjną definicję trudności elementu: zamiast płynnego czynnika E, który mógł być ręcznie kontrolowany przez oceny wedle woli użytkownika, chciałem mieć bezwzględny czynnik trudności A-factor, zdefiniowany jako przyrost stabilności po pierwszej powtórce zaplanowanej dla R=0,9. Umożliwiło to SuperMemo dostosowywanie trudności elementu po każdej powtórce przez korygowanie dopasowania wyników elementu do oczekiwanych wyników na podstawie macierzy OF
  • szybsze wyznaczanie trudności startowej przez skorelowanie pierwszej oceny z A-factor. Jest to słaby mechanizm o niewielkim znaczeniu, co pokazuje fakt, że nawet przy historiach wielu powtórek trudność elementu wciąż pozostaje pojęciem mglistym. W tym kontekście warto przypominać użytkownikom, że najlepszym podejściem jest dobre formułowanie elementów i utrzymywanie ich w łatwości
  • przybliżanie pierwszego interwału po utracie pamięci za pomocą dopasowania wykładniczego opartego na liczbie luk pamięciowych. Największą wartością tego podejścia było obalenie mitu, że skracanie długości interwałów w przypadku luk pamięciowych może przyspieszyć naukę (niektórzy autorzy oprogramowania opartego na Algorytmie SM-2 opowiadali się za takim rozwiązaniem, które okazało się błędne)
  • pomysł skorelowania ocen ze wskaźnikiem zapominania okazał się porażką i nie przyczynił się do ulepszenia algorytmu. Ta prawda ujawniała się powoli. Doszliśmy do ostatecznego werdyktu dopiero po niemal dekadzie: oceny słabo korelują ze wskaźnikiem zapominania. Intuicja zrodzona wraz z Algorytmem SM-2 jest tylko słabo trafna

Co ciekawe, Algorytm SM-8 nie wymagał pełnej historii powtórek dla elementów. Pełne historie powtórek miały zostać zaimplementowane dopiero w lutym 1996 roku. Zaletą było łatwiejsze wdrożenie. Wadą był fakt, że gdy użytkownik ręcznie ingerował w proces nauki, algorytm nie miał zapisu tej ingerencji i nie mógł się obronić przed ewentualnym napływem błędnych danych. Naturalnie, dopiero pełny zapis historii powtórek umożliwił wdrożenie Algorytmu SM-17 dwie dekady później.

Moja pierwsza „żywa” powtórka w Algorytmie SM-8 na moich własnych danych odbyła się 16 sierpnia 1995 roku, w środę. Do testu „poświęciłem” małą, 100-elementową kolekcję z listą mnemoniczną do zapamiętywania liczb. Przez następne dwa lata stopniowo konwertowałem wszystkie inne moje kolekcje do pracy z nowym algorytmem i w nowym środowisku SuperMemo. W 1997 roku cała moja wiedza została wreszcie zintegrowana w jedną, dobrze zorganizowaną bazę danych. W latach 1995-1997 taką bazę danych nazywaliśmy „systemem wiedzy”. Dziś nazywamy ją po prostu kolekcją (jako zbiór fragmentów wiedzy).

Do dziś rdzeń algorytmu narodzonego w 1995 roku działa w tle w SuperMemo 17, a użytkownik wciąż może wybierać interwały oparte na tym starym algorytmie, jeśli nie jest zadowolony z propozycji Algorytmu SM-17.

Bezwzględna trudność elementu

W SuperMemo 1.0 aż do SuperMemo 3.0 czynniki E definiowano tak samo jak czynniki O (czyli jako iloraz kolejnych interwałów). Były one przybliżoną miarą trudności elementu (im wyższy czynnik E, tym łatwiejszy element). Jednak optymalizacja spaced repetition wymuszała, by czynniki E odpowiadały przyrostowi stabilności, który maleje wraz ze stabilnością. Innymi słowy, z definicji, w Algorytm SM-2 elementy byłyby oznaczane jako coraz „trudniejsze” w miarę poddawania ich kolejnym powtórkom. Jest to nieco sprzeczne z intuicją, a użytkownicy zdawali się tego nigdy nie zauważać.

Począwszy od SuperMemo 4.0, czynniki E były używane do indeksowania macierzy czynników O. Wciąż odzwierciedlały trudność elementu. Wciąż były używane do obliczania czynników O. Mogły jednak różnić się od czynników O, co pozwalało lepiej odzwierciedlać trudność.

W SuperMemo 4 aż do SuperMemo 7 trudność materiału w danej bazie danych kształtowała zależność między czynnikami O a czynnikami E. Na przykład w łatwej kolekcji czynnik O w punkcie startowym (czyli ten odpowiadający pierwszej powtórce i zakładanej początkowej trudności) byłby stosunkowo wysoki. Ponieważ wyniki w powtórkach wyznaczają czynniki E, elementy o tej samej trudności w łatwej kolekcji naturalnie miałyby niższy czynnik E niż dokładnie te same elementy w trudnej kolekcji. Wszystko to zmieniło się w SuperMemo 8, gdzie wprowadzono czynniki A. Czynniki A są „związane” z drugim wierszem macierzy czynników O. Czyni je to bezwzględną miarą trudności elementu. Ich wartość nie zależy od zawartości kolekcji . Na przykład wiadomo, że jeśli czynnik A wynosi 1,5, trzecia powtórka odbędzie się w interwale o 50% dłuższym niż pierwszy interwał.

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Czynnik A to liczba przypisana do każdego elementu w kolekcji. Czynnik A określa, jak bardzo rosną interwały w procesie nauki. Im wyższy czynnik A, tym szybciej rosną interwały. Czynniki A odzwierciedlają trudność elementu. Im wyższy czynnik A, tym łatwiejszy element. Najtrudniejsze elementy mają czynnik A równy 1,2. Czynnik A jest zdefiniowany jako iloraz drugiego optymalnego interwału i pierwszego optymalnego interwału stosowanych w powtórkach

Interwał po utracie pamięci

Przybliżenie interwału po utracie pamięci w Algorytm SM-8 obaliło dwa mity:

  • skracanie interwałów po luce pamięciowej jest dobrym pomysłem (ten pomysł był wielokrotnie propagowany w latach 1991-2000)
  • pierwszy interwał powinien zawsze wynosić 1 dzień (jak w niektórych starszych rozwiązaniach SuperMemo)

Na przedstawionym poniżej wykresie widać, że wraz z kolejnymi lukami pamięciowymi optymalny interwał po utracie pamięci staje się nieznacznie krótszy. Wyraża to jedynie fakt, że wysokie liczby luk osiągane są jedynie przez źle sformułowane elementy lub elementy naprawdę trudne do zapamiętania ze względu na ich naturę semantyczną lub interferencję wiedzy. Dla wspomnień zaczynających się od Lapse=10 zaproponowałem termin „ toksyczny”, by wyrazić ich wpływ na proces nauki. Jeśli mózg odrzucił daną informację tyle razy, powinniśmy otrzymać sygnał: ta wiedza jest źle sformułowana albo stała się toksyczna z innych powodów (np. stres związany z nauką, np. w szkole).

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Pierwszy interwał – długość pierwszego interwału po pierwszej powtórce zależy od liczby razy, ile dany element został zapomniany. Zauważ, że pierwsza powtórka oznacza tu pierwszą powtórkę po zapomnieniu, nie pierwszą powtórkę w ogóle. Innymi słowy, element powtórzony dwukrotnie będzie miał numer powtórki równy jeden po tym, jak zostanie zapomniany; numer powtórki nie będzie równy trzy. Wykres pierwszego interwału pokazuje wykładniczą krzywą regresji, która przybliża długość pierwszego interwału dla różnej liczby luk pamięciowych (w tym kategorii zerowych luk odpowiadającej nowo zapamiętanym elementom). Na poniższym wykresie niebieskie kółka odpowiadają danym zebranym w procesie nauki (im większe kółko, tym więcej zarejestrowano powtórek).

Rysunek: Na powyższym wykresie, który obejmuje dane z ponad 130 000 powtórek, nowo zapamiętane elementy są optymalnie powtarzane po siedmiu dniach. Jednak elementy, które zostały zapomniane 10 razy (co w SuperMemo jest rzadkością), będą wymagały interwału dwóch dni. (Ze względu na skalowanie logarytmiczne rozmiar kółka nie jest liniowo proporcjonalny do próby danych; liczba przypadków powtórek dla Lapses=0 jest znacznie większa niż dla Lapses=10, co widać w Rozkłady : Luki)

Pierwsza ocena a czynnik A

Korelowanie pierwszej oceny z szacowaną trudnością elementu miało pomóc sklasyfikować elementy według trudności przy wejściu do procesu nauki. Korelacja wydaje się słaba i silnie zależy od systemu ocen użytkownika. Dla niektórych użytkowników praktycznie nie ma korelacji (obrazek nr 1). Dla innych korelacja jest na tyle dobra, by obejmować pełny zakres trudności (czynnik A) (obrazek nr 2).

Dodatkowo, w Algorytmie SM-11 wywodzącym się z Algorytmu SM-8, użytkownikowi pozwolono wykonywać przedwczesne powtórki. Powtórki te uwzględniałyby efekt rozstawienia powtórek, jednak wciąż wpływałyby na wykres i zawyżałyby ocenę dla trudnych elementów. Przy intensywnym korzystaniu z czytania przyrostowego spłaszczałoby to wykres.

Algorytm SM-17 nie wykorzystuje korelacji ocena-trudność i wyprowadza trudność z całej historii powtórek. Praktyka pokazuje, że nawet wtedy oszacowanie jest trudne do wykonania, a dobrą praktyką nauki jest utrzymywanie wszystkich elementów w łatwości (czyli w akceptowanym mnemonicznym dopasowaniu do reszty wiedzy studenta).

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Pierwsza ocena a czynnik A – wykres G-AF koreluje pierwszą ocenę uzyskaną przez element z ostatecznym oszacowaniem jego wartości czynnika A. Przy każdej powtórce stare oszacowanie czynnika A bieżącego elementu jest usuwane z wykresu, a dodawane jest nowe oszacowanie. Wykres ten jest używany przez Algorytm SM-15 do szybkiego oszacowania pierwszej wartości czynnika A w momencie, gdy wszystko, co wiemy o elemencie, to pierwsza ocena zdobyta w jego pierwszej powtórce.

Ocena a wskaźnik zapominania

Korelując oceny z oczekiwanym wskaźnikiem zapominania (przewidywaną łatwością przypomnienia), miałem nadzieję móc obliczyć szacowany wskaźnik zapominania (poprepetycyjne oszacowanie rzeczywistej łatwości przypomnienia). Korelacja ta okazała się słaba z powodu tego, że wszyscy użytkownicy mają tendencję do stosowania własnych systemów ocen, które są często niespójne. Korelacja między oceną a R wynika przede wszystkim z faktu, że złożone elementy otrzymują gorsze oceny i mają tendencję do szybszego zapominania (przynajmniej na początku). W tym sensie oceny lepiej odzwierciedlają złożoność niż łatwość przypomnienia.

Na poniższym obrazku cały zakres oczekiwanego wskaźnika zapominania zdaje się skupiać wokół oceny 3.

Dla Grade<=3 możemy odczytać maksymalny szacowany wskaźnik zapominania, a dla Grade>=4 możemy odczytać minimalny szacowany wskaźnik zapominania. W tym świetle, system dwóch ocen miałby dokładnie taki sam efekt na algorytm jak system sześciu ocen.

U innych użytkowników krzywa może nawet osiągać szczyt na pewnych poziomach oczekiwanego wskaźnika zapominania, jakby ocenianie odzwierciedlało chęć zapamiętania elementów naprawdę trudnych do zapamiętania (łagodne ocenianie).

Algorytm SM-17 intensywnie wykorzystuje łatwość przypomnienia szacowaną po powtórce, jednak wyprowadza ją z samych danych o przypomnieniu i oczekiwanej łatwości przypomnienia. Korelacje ocena-łatwość przypomnienia są również zbierane, jednak ich waga jest znikoma.

Ostrzeżenie o archiwum: Dlaczego stosujemy archiwa dosłowne?

Ocena a wskaźnik zapominania – wykres FI-G koreluje oczekiwany wskaźnik zapominania z oceną uzyskaną przy powtórkach. Aby zrozumieć ten wykres, trzeba zrozumieć Algorytm SM-15. Możesz sobie wyobrazić, że wykres krzywej zapominania mógłby na osi pionowej wykorzystywać średnią ocenę zamiast retencji. Gdybyś skorelował tę ocenę ze wskaźnikiem zapominania, otrzymałbyś wykres FI-G. Wykres ten jest używany do obliczenia szacowanego wskaźnika zapominania, który z kolei jest używany do normalizacji ocen (dla opóźnionych lub przedwczesnych powtórek) oraz do oszacowania nowej wartości czynnika A elementu. Ocena jest obliczana za pomocą wzoru: Grade=exp A*FI+B , gdzie A i B są parametrami regresji wykładniczej wykonanej na surowych danych zebranych podczas powtórek.

Wykres FI-G jest aktualizowany po każdej powtórce z wykorzystaniem oczekiwanego wskaźnika zapominania i rzeczywistych wyników ocen. Oczekiwany wskaźnik zapominania można łatwo wyprowadzić z interwału zastosowanego między powtórkami oraz optymalnego interwału obliczonego z macierzy OF. Im wyższa wartość oczekiwanego wskaźnika zapominania, tym niższa ocena. Na podstawie oceny i wykresu FI-G możemy obliczyć szacowany wskaźnik zapominania, który odpowiada poprepetycyjnemu oszacowaniu prawdopodobieństwa zapomnienia właśnie powtórzonego elementu na hipotetycznym etapie przed powtórką. Ze względu na stochastyczną naturę zapominania i przypomnienia, ten sam element może zostać przypomniany lub nie, w zależności od aktualnego ogólnego stanu poznawczego mózgu; nawet jeśli siła i łatwość przypomnienia wspomnień wszystkich uczestniczących synaps jest/była identyczna! W ten sposób możemy mówić o prawdopodobieństwie przypomnienia przed powtórką elementu, który właśnie został przypomniany (lub nie). To prawdopodobieństwo wyraża szacowany wskaźnik zapominania.

Algorytm SM-15

Algorytm SM-8 był udoskonalany przez lata i ewoluował w Algorytm SM-11 (2002), a następnie w Algorytm SM-15 (2011). Tutaj przedstawiam jedynie najnowszą wersję: Algorytm SM-15 (używaną w SuperMemo 15, SuperMemo 16 oraz jako zapasową w SuperMemo 17).

Kluczowe usprawnienia wprowadzone do Algorytm SM-8 w ciągu dwóch dekad to:

  • ulepszone indeksowanie stabilności: zamiast numerów powtórek, począwszy od SuperMemo 8 (1997), algorytm wykorzystywał pojęcie „kategorii powtórki”, które z grubsza odpowiada stabilności
  • tolerancja dla powtórek wyprzedzonych i opóźnionych, począwszy od SuperMemo 11 (2002): dodano heurystykę uwzględniającą efekt rozłożenia w czasie
  • rozszerzenie reprezentacji czasu w U-Factors z 60 dni do 15 lat (2011)
  • korekta danych krzywej zapominania dla opóźnień powtórek wykraczających poza pierwotny zakres U-Factor (2011)

Ostrzeżenie archiwalne: Dlaczego stosujemy archiwa dosłowne?

Algorytm SM-15 rozpoczyna próbę obliczania optymalnych odstępów między powtórkami poprzez zapisywanie historii przypominania dla poszczególnych elementów (tzn. ocen uzyskanych podczas nauki). Ta historia służy do oszacowania aktualnej siły danego śladu pamięciowego oraz trudności leżącej u jego podstaw wiedzy (elementu). Trudność elementu wyraża złożoność wspomnień i odzwierciedla wysiłek potrzebny do wytworzenia jednoznacznych i stabilnych śladów pamięciowych. SuperMemo przyjmuje żądany wskaźnik przypominania jako kryterium optymalizacji (np. 95%) i oblicza odstępy spełniające to kryterium. Funkcja optymalnych odstępów jest reprezentowana w formie macierzy (macierz OF) i podlega modyfikacji na podstawie wyników procesu nauki. Choć spełnienie kryterium optymalizacji jest stosunkowo łatwe, złożoność algorytmu wynika z konieczności uzyskania maksymalnej możliwej szybkości zbieżności w świetle znanych modeli pamięci.

Ważne! Algorytm SM-15 służy wyłącznie do obliczania odstępów między powtórkami elementów. Tematy są przeglądane w odstępach obliczanych przez zupełnie inny algorytm (nieopisany tutaj). Harmonogram przeglądu tematów jest zoptymalizowany pod kątem zarządzania kolejnością czytania, a nie wspomagania pamięci. Trwałe wspomnienia powstają w SuperMemo przede wszystkim dzięki elementom, które są przeglądane zgodnie z harmonogramem obliczanym przez Algorytm SM-15.

Oto bardziej szczegółowy opis Algorytm SM-15:

  1. Optymalny odstęp: Odstępy między powtórkami są obliczane według następującego wzoru:I(1)=OF[1,L+1]I(n)=I(n-1)*OF[n,AF]gdzie:
    • OF – macierz współczynników optymalnych, modyfikowana w trakcie powtórek
    • OF[1,L+1] – wartość komórki macierzy OF pobrana z pierwszego wiersza i kolumny L+1
    • OF[n,AF] – wartość komórki macierzy OF odpowiadająca n-tej powtórce oraz trudności elementu AF
    • L – liczba przypadków zapomnienia danego elementu (od ” memory Lapses„)
    • AF – liczba odzwierciedlająca bezwzględną trudność danego elementu (od ” Absolute difficulty Factor„)
    • I(n) – n-ty odstęp między powtórkami dla danego elementu
  2. Powtórki wyprzedzone: Ze względu na możliwe wyprzedzenie w wykonywaniu powtórek (np. wymuszony przegląd przed egzaminem), rzeczywisty współczynnik optymalny (OF) używany do obliczenia optymalnego odstępu jest pomniejszany o dOF według wzorów uwzględniających efekt rozłożenia w czasie w nauce:dOF=dOF maxa/(t halfa)dOF max=(OF-1)*(OI+t half-1)/(OI-1)gdzie:
    • dOF – pomniejszenie OF wynikające z efektu rozłożenia w czasie
    • a – wyprzedzenie powtórki w dniach w porównaniu z optymalnym harmonogramem (zauważ, że nie ma zmiany OF, gdy a=0, tzn. powtórka odbywa się dokładnie w optymalnym terminie)
    • dOF max – asymptotyczna granica dOF dla nieskończonego a (zauważ, że dla a=OI-1 pomniejszenie wyniesie OF-1, co odpowiada brakowi wzrostu odstępu między powtórkami)
    • half – wyprzedzenie, przy którym uzyskuje się połowę oczekiwanego wzrostu stabilności synaptycznej w wyniku powtórki (obecnie wartość ta odpowiada w przybliżeniu 60% długości optymalnego odstępu dla dobrze uporządkowanego materiału)
    • OF – współczynnik optymalny (tzn. OF[n,AF] dla n-tego odstępu i danej wartości AF)
    • OI – optymalny odstęp (wyznaczony na podstawie macierzy OF)
  3. Powtórki opóźnione: Ze względu na możliwe opóźnienia w wykonywaniu powtórek, macierz OF w rzeczywistości nie jest indeksowana numerami powtórek, lecz kategoriami powtórek. Na przykład, jeśli 5. powtórka jest opóźniona, macierz OF służy do obliczenia kategorii powtórki, czyli teoretycznej wartości numeru powtórki odpowiadającej odstępowi zastosowanemu przed powtórką. Kategoria powtórki może na przykład przyjąć wartość 5.3, co daje I(5)=I(4)*OF[5.3,AF], gdzie OF[5.3,AF] ma wartość pośrednią wyznaczoną na podstawie OF[5,AF] i OF[6,AF]
  4. Macierz optymalnych odstępów: SuperMemo nie przechowuje macierzy optymalnych odstępów tak jak niektóre wcześniejsze wersje. Zamiast tego przechowuje macierz współczynników optymalnych, którą można przeliczyć na macierz optymalnych odstępów (zgodnie ze wzorem z Punktu 1). Macierz współczynników optymalnych OF, użyta w Punkcie 1, została wyprowadzona z matematycznego modelu zapominania oraz z podobnych macierzy zbudowanych na danych zebranych w ciągu lat powtórek w kolekcjach tworzonych przez wielu użytkowników. Jej wartości początkowe odpowiadają wartościom stwierdzonym dla ucznia poniżej przeciętnej. Podczas powtórek, w miarę zbierania coraz większej ilości danych o pamięci ucznia, macierz jest stopniowo modyfikowana tak, by jak najbardziej zbliżyć się do rzeczywistych właściwości pamięci danego ucznia. Po latach powtórek nowe dane mogą zostać wykorzystane do wygenerowania dokładniejszej początkowej macierzy OF. W SuperMemo 17 macierz tę można wyświetlić w 3D za pomocą Tools : Statistics : Analysis : 3-D Graphs : O-Factor Matrix
  5. Trudność elementu: Współczynnik bezwzględnej trudności elementu ( A-Factor), oznaczony jako AF w Punkcie 1, wyraża trudność elementu (im wyższy, tym łatwiejszy element). Warto zauważyć, że AF=OF[2,AF]. Innymi słowy, AF oznacza współczynnik wzrostu optymalnego odstępu po drugiej powtórce. Jest to również równoważne najwyższemu współczynnikowi wzrostu odstępu dla danego elementu. W przeciwieństwie do E-Factors w Algorytm SM-6, stosowanym w SuperMemo 6 i SuperMemo 7, A-Factors wyrażają bezwzględną trudność elementu i nie zależą od trudności innych elementów w tej samej kolekcji materiału do nauki
  6. Wyprowadzanie macierzy OF z macierzy RF: Optymalne wartości komórek macierzy OF są wyprowadzane poprzez sekwencję procedur aproksymacyjnych z macierzy RF, która jest zdefiniowana w taki sam sposób jak macierz OF (patrz Punkt 1), z tą różnicą, że jej wartości pochodzą z rzeczywistego procesu nauki ucznia, dla którego prowadzona jest optymalizacja. Początkowo macierze OF i RF są identyczne; jednak komórki macierzy RF są modyfikowane po każdej powtórce, a nowa wartość macierzy OF jest obliczana z macierzy RF za pomocą procedur aproksymacyjnych. W efekcie macierz OF stanowi wygładzoną formę macierzy RF. Mówiąc prościej, macierz RF w danym momencie odpowiada swojej najlepiej dopasowanej wartości wyprowadzonej z procesu nauki; jednak każda komórka jest traktowana jako najlepiej dopasowana z osobna, tzn. w oderwaniu od wartości pozostałych komórek RF. Jednocześnie macierz OF jest traktowana jako najlepiej dopasowana jako całość. Innymi słowy, macierz RF jest obliczana komórka po komórce w trakcie powtórek, natomiast macierz OF jest wygładzoną kopią macierzy RF
  7. Krzywe zapominania: Poszczególne komórki macierzy RF są obliczane na podstawie krzywych zapominania aproksymowanych osobno dla każdej komórki. Każda krzywa zapominania odpowiada innej wartości numeru powtórki i innej wartości A-Factor (lub liczbie lapsów pamięciowych w przypadku pierwszej powtórki). Wartość komórki macierzy RF odpowiada momentowi w czasie, w którym krzywa zapominania przecina punkt zachowania wiedzy wyznaczony przez żądany wskaźnik zapominania. Na przykład, dla pierwszej powtórki nowego elementu, jeśli wskaźnik zapominania wynosi 10%, a po czterech dniach zachowanie wiedzy wskazywane przez krzywą zapominania spada poniżej wartości 90%, wartość RF[1,1] przyjmuje się jako cztery. Oznacza to, że wszystkie elementy wchodzące do procesu nauki będą powtarzane po czterech dniach (przy założeniu, że macierze OF i RF nie różnią się w pierwszym wierszu pierwszej kolumny). Spełnia to główne założenie SuperMemo, że powtórka powinna następować w momencie, gdy prawdopodobieństwo zapomnienia równa się 100% minus wskaźnik zapominania wyrażony w procentach. W SuperMemo 17 krzywe zapominania można obejrzeć za pomocą Tools : Statistics : Analysis : Forgetting Curves (lub w 3D za pomocą Tools : Statistics : Analysis : 3-D Curves):RysunekTools : Statistics : Analysis : Forgetting Curves dla 20 kategorii numeru powtórki pomnożonych przez 20 kategorii A-Factor. Na obrazku niebieskie kółka reprezentują dane zebrane podczas powtórek. Im większe kółko, tym większa liczba zarejestrowanych powtórek. Czerwona krzywa odpowiada najlepiej dopasowanej krzywej zapominania uzyskanej metodą regresji wykładniczej. Dla materiału słabo uporządkowanego krzywa zapominania jest krzywoliniowa, tzn. nie jest dokładnie wykładnicza. Pozioma linia w kolorze aqua odpowiada żądanemu wskaźnikowi zapominania, natomiast pionowa zielona linia pokazuje moment w czasie, w którym aproksymowana krzywa zapominania przecina linię żądanego wskaźnika zapominania. Ten moment w czasie wyznacza wartość odpowiedniego R-Factor, a pośrednio także wartość optymalnego odstępu. Dla pierwszej powtórki R-Factor odpowiada pierwszemu optymalnemu odstępowi. Wartości O-Factor i R-Factor są wyświetlane u góry wykresu. Po nich następuje liczba przypadków powtórek użytych do sporządzenia wykresu (tzn. 21 303). Na początku procesu nauki nie ma historii powtórek ani danych umożliwiających obliczenie R-Factors. Upłynie trochę czasu, zanim pojawią się twoje pierwsze krzywe zapominania. Z tego powodu początkowa wartość macierzy RF pochodzi z modelu ucznia poniżej przeciętnej. Model przeciętnego ucznia nie jest stosowany, ponieważ zbieżność od parametrów gorszego ucznia w górę jest szybsza niż zbieżność w kierunku przeciwnym. Parametr Deviation wyświetlany u góry mówi, jak dobrze krzywa ujemnie wykładnicza pasuje do danych. Im mniejsze odchylenie, tym lepsze dopasowanie. Odchylenie jest obliczane jako pierwiastek kwadratowy ze średniej kwadratów różnic (jak w metodzie najmniejszych kwadratów).Rysunek: Trójwymiarowa reprezentacja rodziny krzywych zapominania dla pojedynczej trudności elementu i zmiennych poziomów stabilności pamięci (znormalizowanych dla U-Factor).Rysunek: Skumulowana krzywa zapominania dla materiału do nauki o mieszanej złożoności i mieszanej stabilności. Wykres uzyskano przez nałożenie 400 krzywych zapominania znormalizowanych dla stałej zaniku 0,003567, co odpowiada przypominaniu na poziomie 70% przy 100% przedstawionego przedziału czasowego (tzn. R=70% na prawym krańcu wykresu). Na wykresie uwzględniono 401 828 przypadków powtórek. Poszczególne krzywe są reprezentowane przez żółte punkty danych. Krzywa skumulowana jest reprezentowana przez niebieskie punkty danych pokazujące średnie przypominanie dla wszystkich 400 krzywych. Wielkość kółek odpowiada wielkości próbek danych.
  8. Wyprowadzanie macierzy OF z krzywych zapominania: Macierz OF jest wyprowadzana z macierzy RF poprzez:
    1. aproksymację potęgową z punktem stałym spadku R-Factor wzdłuż kolumn macierzy RF (punkt stały odpowiada drugiej powtórce, w której krzywa aproksymacji przechodzi przez wartość A-Factor),obliczenie dla wszystkich kolumn D-Factor, który wyraża stałą zaniku aproksymacji potęgowej,regresję liniową zmiany D-Factor w kolumnach macierzy RF, orazwyprowadzenie całej macierzy OF na podstawie nachylenia i wyrazu wolnego prostej najlepiej dopasowanej na wykresie D-Factor. Dokładne wzory użyte w tym ostatnim kroku wykraczają poza zakres tego omówienia.
    Zauważ, że pierwszy wiersz macierzy OF jest obliczany w inny sposób. Odpowiada on najlepiej dopasowanej krzywej wykładniczej uzyskanej z pierwszego wiersza macierzy RF. Wszystkie powyższe kroki są wykonywane po każdej powtórce. Innymi słowy, teoretycznie optymalna wartość macierzy OF jest aktualizowana natychmiast po zebraniu nowych danych o krzywej zapominania, tzn. w momencie, w trakcie powtórki, gdy uczeń, podając ocenę, stwierdza poprawne lub błędne przypomnienie (czyli zapomnienie) (w Algorytmie SM-6 trzeba było użyć osobnej procedury Approximate, by znaleźć najlepiej dopasowaną macierz OF, a macierz OF używana podczas powtórek mogła znacząco odbiegać od swojej najlepiej dopasowanej wartości)
  9. Trudność elementu: Początkowa wartość A-Factor jest wyprowadzana z pierwszej oceny uzyskanej przez element oraz z wykresu korelacji pierwszej oceny i A-Factor ( wykres G-AF). Wykres ten jest aktualizowany po każdej powtórce, w której szacowana jest nowa wartość A-Factor skorelowana z pierwszą oceną elementu. Kolejne przybliżenia rzeczywistej wartości A-Factor są wykonywane po każdej powtórce przy użyciu ocen, macierzy OF oraz wykresu korelacji pokazującego zgodność oceny z oczekiwanym wskaźnikiem zapominania ( wykres FI-G). Ocena użyta do obliczenia początkowej wartości A-Factor jest znormalizowana, tzn. skorygowana o różnicę między rzeczywiście zastosowanym odstępem a optymalnym odstępem dla wskaźnika zapominania równego 10%
  10. Korelacja ocen z oczekiwanym wskaźnikiem zapominania: Wykres FI-G jest aktualizowany po każdej powtórce przy użyciu oczekiwanego wskaźnika zapominania i rzeczywistych wyników ocen. Oczekiwany wskaźnik zapominania można łatwo wyprowadzić z odstępu zastosowanego między powtórkami oraz optymalnego odstępu obliczonego z macierzy OF. Im wyższa wartość oczekiwanego wskaźnika zapominania, tym niższa ocena. Na podstawie oceny i wykresu FI-G (patrz: wykres FI-G w Tools : Statistics : Analysis : Graphs) możemy obliczyć szacowany wskaźnik zapominania, który odpowiada powtórkowemu oszacowaniu prawdopodobieństwa zapomnienia właśnie powtórzonego elementu na hipotetycznym etapie sprzed powtórki. Ze względu na stochastyczny charakter zapominania i przypominania, ten sam element może, ale nie musi, zostać przypomniany w zależności od aktualnego ogólnego stanu poznawczego mózgu; nawet jeśli siła i przywoływalność wspomnień wszystkich zaangażowanych synaps jest/była identyczna! W ten sposób możemy mówić o prawdopodobieństwie przypomnienia elementu sprzed powtórki, który właśnie został przypomniany (lub nie). Prawdopodobieństwo to jest wyrażane przez szacowany wskaźnik zapominania
  11. Obliczanie A-Factors: Na podstawie (1) szacowanego wskaźnika zapominania, (2) długości odstępu i (3) macierzy OF, możemy łatwo obliczyć najdokładniejszą wartość A-Factor. Zauważ, że A-Factor służy jako indeks do macierzy OF, natomiast szacowany wskaźnik zapominania pozwala znaleźć kolumnę macierzy OF, dla której optymalny odstęp odpowiada rzeczywiście zastosowanemu odstępowi skorygowanemu o odchylenie szacowanego wskaźnika zapominania od żądanego wskaźnika zapominania. Przy każdej powtórce obliczana jest średnia ważona starej wartości A-Factor i nowej szacowanej wartości A-Factor. Nowo uzyskany A-Factor jest używany do indeksowania macierzy OF przy obliczaniu nowego optymalnego odstępu między powtórkami

Podsumowując: powtórki skutkują obliczeniem zestawu parametrów charakteryzujących pamięć ucznia: macierzy RF, wykresu G-AF oraz wykresu FI-G. Są one również używane do obliczania A-Factors poszczególnych elementów, charakteryzujących trudność materiału do nauki. Macierz RF jest wygładzana, tworząc macierz OF, która z kolei służy do obliczania optymalnego odstępu między powtórkami dla elementów o różnej trudności ( A-Factor) i różnej liczbie powtórek (lub lapsów pamięciowych w przypadku pierwszej powtórki). Początkowo wszystkie parametry pamięci ucznia przyjmuje się jak dla ucznia poniżej przeciętnej (poziom poniżej przeciętnej daje szybszą zbieżność niż przeciętny lub powyżej przeciętnego), natomiast wszystkie A-Factors przyjmuje się jako równe (nieznane).

1997: Zastosowanie sieci neuronowych

Sieci neuronowe: rosnące zainteresowanie

W połowie lat 80. przeczytałem książkę Michaela Arbiba ” Brains, Machines and Mathematics„. Ugruntowała ona mój pogląd na mózg jako wydajną maszynę obliczeniową.

Dla każdego, kogo interesuje działanie mózgu – a to niemal wszyscy – sieci neuronowe są naturalnie fascynujące. Studiując informatykę, zyskałem nowe, obliczeniowe spojrzenie na mózg i sieci neuronowe. Ponieważ sieci neuronowe mają niezwykłą zdolność do samodzielnego modelowania, wydaje się naturalne, by wykorzystać je do badania danych pamięciowych i udzielania odpowiedzi na pytanie, jak działa pamięć. Sieci neuronowe mają jednak jedną poważną wadę – niełatwo dzielą się swoimi ustaleniami. To trochę jak problem z samym mózgiem: potrafi on czynić rzeczy niemal magiczne, a mimo to trudno powiedzieć, co dokładnie dzieje się w jego wnętrzu. Pisanie oprogramowania sieci neuronowych jest zabawne – próbowałem swoich sił w tej dziedzinie w 1989 roku. Nieco mniej zabawne jest obserwowanie sieci neuronowej w działaniu.

Podejście algebraiczne w SuperMemo wyprzedziło sieci neuronowe z dwóch powodów: (1) moje pytania o pamięć zawsze wydawały się zbyt proste, by angażować do nich sieci neuronowe, oraz (2) sieci potrzebują danych, dane potrzebują nauki, nauka potrzebuje algorytmu, a algorytm potrzebuje odpowiedzi na proste pytania. W tym wyścigu typu „co było pierwsze: jajko czy kura” mój mózg zawsze był o krok przed tym, co mógłbym wywnioskować z dostępnych danych za pomocą sieci neuronowej.

Wyższość podejścia algebraicznego staje się oczywista, gdy weźmiemy pod uwagę, że optymalny odstęp można znaleźć po prostu nanosząc krzywą zapominania na wykres i stosując regresję, by znaleźć punkt, w którym przypominanie spada poniżej 90%. Było to jeszcze bardziej skrajne w moim eksperymencie z 1985 roku, gdzie moja „krzywa zapominania” składała się zaledwie z 5 punktów. Mogłem wybrać ten, który po prostu najbardziej mi się podobał. To było ćwiczenie na poziomie przedszkolnym. Nie potrzeba było ciężkiej artylerii.

W 1990 roku, pracując nad modelem nauki przerywanej, byłem najbliżej zastosowania sieci neuronowych. Po trwającej 7 godzin dyskusji z Murakowskim 6 lipca 1990 roku doszliśmy do wniosku, że sieć neuronowa mogłaby dostarczyć pewnych odpowiedzi. Jednak mój komputer już przetwarzał dane za pomocą algebraicznych metod wspinaczki po wzgórzu (hill-climbing). Zasadniczo jest to podobne do ekstrakcji cech w sieciach neuronowych. Gdy tylko uzyskałem swoje odpowiedzi, ta motywacja zniknęła.

Mimo to w połowie lat 90. otrzymywaliśmy coraz więcej pytań o adaptacyjność algorytmu i możliwość zastosowania sieci neuronowych. Pytania te zadawali głównie ci, którzy niezbyt dobrze rozumieją SuperMemo. Model stojący za SuperMemo jest prosty, narzędzia optymalizacyjne są proste i działają całkiem dobrze, ku naszemu zadowoleniu. Sam pierwszy algorytm obliczeniowy, Algorytm SM-2, jest używany do dziś. Ludzkie niezadowolenie z pamięci zwykle bierze się z nierozsądnych oczekiwań budowanych przez programy szkolne oraz z naszej słabej umiejętności formułowania wiedzy do zdrowej konsumpcji. Ten ostatni nawyk jest też utrwalany przez wyniesiony ze szkoły przymus wkuwania na pamięć. Algorytmy SuperMemo nie mogą zaradzić temu niezadowoleniu z nauki. Zawsze działały dobrze, a ostatnie 30 lat przyniosło postęp, który da się zmierzyć matematycznie, ale który niełatwo przekłada się na wzrost przyjemności z nauki.

Nacisk na sieci neuronowe

W latach 90. korespondencja do SuperMemo World często zawierała sugestie, że podejście oparte na sieciach neuronowych byłoby lepsze. Nawet dekada korzystania z SuperMemo nie powstrzymywała pewnego ucznia od napisania:

SuperMemo nie uwzględnia różnych zdolności i potrzeb użytkowników. Zamiast tego zakłada, że każdy uczący się jest „złym uczniem”. W związku z tym każdy uczący się otrzyma taki sam odstęp powtórek, a leżący u jego podstaw algorytm jest sztywno zakodowany, co może nie być zbyt efektywne, jeśli jesteś lepszym/innym typem uczącego się. […] Sieci neuronowe uwzględniają fakt, że istnieją bardzo różne typy uczących się, którzy potrzebują różnych optymalnych odstępów powtórek. Podczas powtarzania nowych słów, „informując” programy, jak dobrze/źle im poszło, uczący się coraz bardziej ujawnia, jakim typem uczącego się naprawdę jest. Dzięki tej informacji zwrotnej programy są w stanie w razie potrzeby dostosować i zoptymalizować leżące u ich podstaw odstępy powtórek

Słowa te wskazują na brak zrozumienia SuperMemo. SuperMemo nie stosuje „modelu złego ucznia”. Zaczyna jedynie od krótszych odstępów, zanim zbierze pierwsze dane o pamięci ucznia. Wybór krótszych odstępów wynika z szybszej aproksymacji modelu optymalnego. Innymi słowy, SuperMemo dostosowuje się do poszczególnych uczniów, a „model ucznia poniżej przeciętnej” można przypisać jedynie punktowi startowemu, zanim zebrane zostaną jakiekolwiek dane.

W SuperMemo model przeciętnego ucznia jest używany wyłącznie jako warunek początkowy w procesie wyznaczania modelu pamięci rzeczywistego ucznia.

W optymalizacji trajektorii o skończonej liczbie wymiarów zbieżność jest najszybsza przy dobrym oszacowaniu stanu początkowego. Choć w SuperMemo nie jest to aż tak istotne ze względu na prostą, trójwymiarową naturę funkcji optymalnych odstępów, to w ogólnym przypadku poszukiwanie rozwiązań może się nie powieść, a optymalizacja nie zadziała. W przeciwieństwie do jednowartościowych macierzy używanych w starszych wersjach SuperMemo do celów badawczych, algorytm sieci neuronowej bez wstępnego trenowania wygenerowałby chaos. Dlatego wcześniejsze dane z nauki są wykorzystywane do aktualizacji modelu przeciętnego lub poniżej przeciętnego ucznia stosowanego w SuperMemo, dla uzyskania maksymalnej szybkości zbieżności.

Zauważ, że podejście oparte na przeciętnym uczniu ma jeszcze mniejsze znaczenie w Algorytm SM-17 ze względu na zastosowanie najlepiej dopasowanych aproksymacji dla wielu parametrów i funkcji w procesie nauki (np. trudności elementu, funkcji wzrostu stabilności itp.). Oznacza to, że SuperMemo zawsze wykorzysta dostępne dane najlepiej, jak to możliwe (korzystając z naszej obecnej najlepszej wiedzy o modelach pamięci).

Przybliżony kształt krzywej zapominania jest znany od ponad wieku (patrz: Error of Ebbinghaus forgetting curve). SuperMemo zbiera precyzyjne dane o kształcie krzywych zapominania dla elementów o różnej trudności i różnej stabilności pamięci. Na podstawie krzywych zapominania SuperMemo łatwo wyprowadza optymalny odstęp. Dane pochodzą tylko od jednego ucznia, a każda powtórka przyczynia się do precyzji obliczeń. Innymi słowy, z każdą minutą spędzoną z SuperMemo program poznaje cię coraz lepiej. Co więcej, zna cię wystarczająco dobrze już po miesiącu lub dwóch. Nigdy nie musisz martwić się o skuteczność algorytmu.

Wokół sieci neuronowych panuje aura tajemniczości. Mają one rzekomo ujawniać ukryte właściwości badanych zjawisk. Łatwo zapomnieć, że sieci mogą łatwo zawieść, gdy dostarczy się im błędnych informacji lub gdy zabraknie jakichś istotnych danych. Tak było w przypadku jedynej funkcjonalnej sieci neuronowej zastosowanej w spaced repetition: MemAid autorstwa Davida Calinskiego.

Błąd w projekcie sieci MemAid wynikał z użycia na wejściu pary Odstęp + Liczba powtórek do reprezentowania stanu pamięci, podczas gdy te dwie zmienne nie odpowiadają parze Stabilność : Przywoływalność. Udowodniono, że Stabilność i Przywoływalność są konieczne do reprezentowania stanu trwałego śladu pamięciowego. Innymi słowy, sieć nie otrzymuje wszystkich informacji potrzebnych do obliczenia optymalnego odstępu. Lepszy projekt kodowałby całą historię powtórek, np. za pomocą zmiennych stabilności i przywoływalności. Pełna historia powtórek jest potrzebna, by uwzględnić efekt rozłożenia w czasie przy masowej prezentacji lub znaczący wzrost stabilności przy pozytywnych ocenach w powtórkach opóźnionych. Projekt Calinskiego spełniałby jednak podstawowe wymagania nauki w „optymalnych” odstępach z niewielkimi odchyleniami od zasad spaced repetition (podobnie jak Algorytm SM-2).

Czy SuperMemo jest nieelastyczne?

Nieprawdą jest, że SuperMemo jest stronnicze, podczas gdy sieć neuronowa nie jest. Nic nie stoi na przeszkodzie, by macierze optymalizacyjne w SuperMemo odbiegały od modelu pamięci i dawały nieoczekiwany wynik. Prawdą jest, że na przestrzeni lat, wraz z coraz większą wiedzą o działaniu pamięci, algorytm używany w SuperMemo został wyposażony w ograniczenia i dostosowane podalgorytmy. Żaden z nich nie był jednak wynikiem przypadkowego zgadywania. Postępująca „stronniczość” algorytmów SuperMemo jest jedynie odzwierciedleniem ustaleń z poprzednich lat. To samo nieuchronnie dotyczyłoby każdej implementacji sieci neuronowej, gdyby chciała ona zmaksymalizować swoją skuteczność.

Nieprawdą jest też, że pierwotnie ustawione wartości macierzy optymalizacyjnych w SuperMemo są formą stronniczości. Są one odpowiednikiem wstępnego trenowania sieci neuronowej. Sieć neuronowa, która nie została wstępnie wytrenowana, również będzie wolniej zbiegać do modelu optymalnego. Dlatego SuperMemo jest „wstępnie wytrenowane” modelem przeciętnego ucznia.

Tempo wzrostu odstępu jest wyznaczane przez macierz optymalnych odstępów i wcale nie jest stałe. Co więcej, macierz optymalnych odstępów zmienia się w czasie w zależności od wyników użytkownika. Wrażenie stałego lub sztywnego algorytmu może pojawić się dopiero po miesiącach lub latach użytkowania (szybkość zmian jest odwrotnie proporcjonalna do ilości dostępnych danych z nauki). Ta zbieżność odzwierciedla niezmienność ludzkiego systemu pamięci. Nie ma znaczenia, czy do problemu optymalizacji zastosujesz podejście algebraiczne, czy neuronowe. Ostatecznie dojdziesz do funkcji spaced repetition odzwierciedlającej rzeczywiste właściwości twojej pamięci. W tym świetle szybkość zbieżności powinna być traktowana jako miara jakości algorytmu. Innymi słowy, im szybciej funkcja odstępu staje się „ustalona”, tym lepiej.

Wreszcie istnieje jeszcze jeden obszar, w którym sieci neuronowe muszą albo wykorzystać istniejącą wiedzę o modelach pamięci (czyli nieść ze sobą pewną dawkę stronniczości), albo stracić na skuteczności. Eksperymentalne sieci neuronowe SuperMemo, MemAid, a także FullRecall wykazywały wszystkie tę samą wrodzoną słabość. Sieć osiąga stabilność, gdy odstępy dają pożądany efekt (np. konkretny poziom mierzonego wskaźnika zapominania). Za każdym razem, gdy sieć odbiega od modelu optymalnego, dostarcza się jej heurystycznego oszacowania wartości optymalnego odstępu w zależności od oceny uzyskanej podczas powtórek (np. ocena=5 odpowiadałaby 130% optymalnego odstępu w SuperMemo NN lub 120% w MemAid). Algebraiczne SuperMemo natomiast potrafi obliczyć oszacowanie trudności, wykorzystać dokładny pomiar retencji i wyprodukować dokładną korektę wartości macierzy wzrostu stabilności. Innymi słowy, nie zgaduje wartości optymalnego odstępu. Oblicza jego dokładną wartość dla danej konkretnej powtórki. Korekty macierzy pamięci są ważone i dają stabilną, nieoscylującą zbieżność. Innymi słowy, to model pamięci umożliwia wyeliminowanie czynnika zgadywania. Pod tym względem algebraiczne SuperMemo jest mniej stronnicze niż neuronowe SuperMemo.

Bezcelowość dalszego dopracowywania algorytmu spaced repetition

Algorytm SM-17 jest dużym krokiem naprzód, jednak wielu użytkowników nie zauważy tego usprawnienia i pozostanie przy starszych algorytmach. Ten problem percepcji doprowadził do powstania „mitu SM3+”, który starałem się rozwiać w tym artykule. Jednocześnie wartość nowego algorytmu dla dalszego postępu badań jest ogromna. Innymi słowy, istnieje duży dysonans między potrzebami praktycznymi a teoretycznymi. Moje słowa z wywiadu dla Enter z 1994 roku wciąż pozostają aktualne:

Widzieliśmy już, że ewolucja przemawia za SuperMemo, że ustalenia z dziedziny psychologii są zbieżne z tą metodą oraz że fakty biologii molekularnej i wnioski płynące z modelu Wozniaka zdają się iść w parze. Nadszedł czas, by zobaczyć, jak opisane mechanizmy zostały wprowadzone w życie w samym programie. W trakcie powtórek SuperMemo nanosi na wykres krzywą zapominania dla ucznia i planuje powtórkę w momencie, w którym retencja, czyli proporcja zapamiętanej wiedzy, spada do wcześniej określonego poziomu. Innymi słowy, SuperMemo sprawdza, ile pamiętasz po tygodniu, a jeśli pamiętasz mniej niż pożądane, prosi cię o wykonywanie powtórek w odstępach krótszych niż tydzień. W przeciwnym razie sprawdza retencję po dłuższym okresie i odpowiednio wydłuża odstępy. Niewielką komplikację do tego prostego obrazu wprowadza fakt, że elementy o różnej trudności trzeba powtarzać w różnych odstępach oraz że odstępy rosną w miarę postępu procesu nauki. Co więcej, optymalne odstępy między powtórkami muszą być znane dla przeciętnej osoby i muszą być stosowane, zanim program zdoła zebrać dane o rzeczywistym uczniu. Oczywiście, by uruchomić całą tę machinę, potrzebny jest cały aparat matematyczny. Ogólnie rzecz biorąc, Wozniak mówi, że w jego życiu było co najmniej 30 dni, kiedy miał wrażenie, że algorytmy używane w SuperMemo zostały znacząco ulepszone. Każdy z tych przypadków wydawał się przełomem. Cały proces rozwoju był po prostu długim ciągiem prób i błędów, testowania, ulepszania, wdrażania nowych pomysłów itd. Niestety, te dobre dni już minęły. Od 1991 roku nie było żadnego przełomowego usprawnienia algorytmu. Pewną pociechą może być fakt, że od tego czasu oprogramowanie zaczęło szybko się rozwijać, dostarczając użytkownikowi nowych opcji i rozwiązań. Czy więc SuperMemo może być jeszcze lepsze, szybsze, skuteczniejsze? Wozniak jest pesymistą. Wszelkie dalsze dopracowywanie algorytmów, zastosowanie sztucznej inteligencji czy sieci neuronowych utonęłoby w szumie zakłóceń. W końcu nie uczymy się w izolacji od świata. Gdy program planuje kolejną powtórkę za 365 dni, a fakt zostanie przypadkiem przypomniany wcześniej, SuperMemo nie ma sposobu, by dowiedzieć się o tym przypadkowym przypomnieniu, i wykona powtórkę w wcześniej zaplanowanym momencie. Nie jest to optymalne, ale nie da się tego naprawić poprzez usprawnienie algorytmu. Ulepszanie SuperMemo teraz przypomina strojenie odbiornika radiowego w hałaśliwej hali montażowej samochodów. Ludzie z SuperMemo World są teraz mniej skupieni na nauce. Ich zdaniem, po wynalazku naukowym nadszedł czas na wynalazek społeczny SuperMemo.

Projekt sieci neuronowej Dregera

20 maja 1997 roku mój internetowy kolega z ery BBS sprzed czasów sieci web, Bartek Dreger, wpadł na świetny pomysł. On również napisze swoją pracę magisterską o SuperMemo w Instytucie Informatyki Politechniki Poznańskiej. Byłoby to 8 lat po mojej własnej, z tą różnicą, że on użyłby sieci neuronowych, by sprawdzić, jak sobie radzą. Choć był niemal dwie dekady młodszy, jego plan zakładał wypróbowanie tego projektu w tym samym znakomitym zespole badań operacyjnych Węglarza, o którym często wspominam w innych miejscach tego tekstu. Już w 1990 roku dr Nawrocki wpadł na pomysł, by użyć sieci neuronowych do usprawnienia SuperMemo. Opiekunem naukowym miał być świetny umysł prof. Romana Słowińskiego. To naprawdę mogło się udać.

Do czerwca 1997 roku dołączył do projektu kolejny mój internetowy kolega, Piotr Wierzejewski. Następnie na pokład weszło jeszcze 3 studentów informatyki. Powstał uroczy zespół pięciu młodych umysłów, których łączny wiek wynosił 100 lat. Wkrótce projekt rozszerzono o pomysł SuperMemo online o nazwie: WebSorb (od absorbowania wiedzy z sieci web). Jak to często bywa w entuzjastycznych młodych zespołach, zaczęliśmy nakładać sobie na talerz zbyt wiele, i ostatecznie osiągnięto jedynie ułamek zamierzonych celów. Tylko pomysł SuperMemo online nadal ewoluował i rozgałęział się w krętym stylu, przy czym rodziło się i umierało kilka miniprojektów (np. e-SuperMemo, Quizer, Super-Memorizer, Memorathoner itd.), aż do powstania 3GEMs, które stało się supermemo.net, a które ostatecznie przekształciło się w dzisiejsze supermemo.com.

Największą zaletą młodości w podobnych projektach jest kreatywność i pasja. Największą przeszkodą jest nauka szkolna, a później inne obowiązki, w tym posiadanie dzieci. Ten fantastyczny zespół świetnych umysłów padł ofiarą odwiecznego problemu szkoły: przekształcenia projektu zrodzonego z pasji w projekt, który stał się szkolnym obowiązkiem z terminami, raportami, testami, egzaminami i ocenami. Jak wyjaśniono tutaj, SuperMemo również narodziło się w tym ryzykownym szkolnym środowisku. Kluczem do sukcesu jest walka o wolność. Zniewolenie niszczy pasje. Idea SuperMemo przetrwała presję szkoły dzięki mojemu dążeniu do wolności edukacyjnej.

Neuronowe SuperMemo : dlaczego model pamięci jest kluczowy w algorytmach SuperMemo

Ekstrakcja cech proponowana dla sieci neuronowych spaced repetition opiera się na dobrze udowodnionym istnieniu dwóch komponentów pamięci długotrwałej, opisanych tutaj.

Dwie zmienne pamięciowe wystarczają, by reprezentować stan atomowego śladu pamięciowego w procesie nauki. Zmienne te umożliwiają obliczanie optymalnych odstępów i uwzględnianie efektu rozłożenia w czasie. Znana jest również funkcja wzrostu stabilności pamięci przy powtórkach opóźnionych. Z tych powodów prosty algorytm optymalizacyjny pozwala łatwo i szybko wyznaczyć optymalne rozłożenie powtórek w SuperMemo. Sieć neuronowa musiałaby zakodować pełną historię powtórek dla każdego elementu, a najbardziej oczywistym wyborem kodowania są stabilność pamięci (S) i przywoływalność pamięci (R). Innymi słowy, te same założenia leżą u podstaw projektowania algorytmów rozłożenia powtórek: algebraicznych czy neuronowych. Nie trzeba dodawać, że rozwiązanie algebraiczne jest łatwe i szybkie. Zbiega szybko. Nie wymaga wstępnego trenowania (model pamięci jest zawarty w macierzy optymalnych odstępów).

Sieć neuronowa pracująca na pełnych historiach powtórek da taki sam wynik jak algorytm wspinaczki po wzgórzu (hill-climbing) używany do budowania stabilności pamięci. Hill-climbing jest po prostu lepszym/szybszym narzędziem do tego zadania. Będzie nosić te same ograniczenia, co sieci neuronowe, tzn. odpowiedzi będą tak dobre, jak postawione pytanie.

Neuronowe SuperMemo: projekt

Wraz z Bartkiem Dregerem zaprojektowaliśmy prosty system ANN (sztucznej sieci neuronowej) do obsługi problemu spaced repetition (grudzień 1997). Zauważ, że ten projekt nie byłby możliwy bez wiedzy dr. Krzysztofa Krawca, który pomógł dopracować projekt:

Ostrzeżenie archiwalne: Dlaczego stosujemy archiwa dosłowne?

Problem rozłożenia powtórek polega na obliczaniu optymalnych odstępów między powtórkami w procesie ludzkiej nauki. Odstępy są obliczane dla poszczególnych elementów informacji (nazywanych dalej elementami) i dla danej osoby. Całość danych wejściowych stanowią oceny uzyskiwane przez ucznia podczas powtórek elementów w procesie nauki. Problem ten był dotąd najskuteczniej rozwiązywany za pomocą kolejnych serii algorytmów znanych komercyjnie jako SuperMemo, opracowanych przez dr. Wozniaka w SuperMemo World, Polska. Model pamięci Wozniaka, wykorzystywany przy opracowywaniu najnowszej wersji algorytmu ( Algorytm SM-8), nie może być uznawany za ostateczny algebraiczny opis ludzkiej pamięci długotrwałej. W szczególności związek między złożonością wzorca synaptycznego a trudnością elementu nie jest dobrze poznany. Więcej światła na tę zależność może rzucić zastosowanie sieci neuronowej dostarczającej odpowiedniego mapowania między stanem pamięci, ocenianiem a trudnością elementu.

Przy zastosowaniu obecnie najbardziej zaawansowanych rozwiązań, techniczna wykonalność zastosowania sieci neuronowej w procesie nauki działającym w czasie rzeczywistym wydaje się zależeć od odpowiedniego wykorzystania zrozumienia procesu nauki, by właściwie zdefiniować problemy, jakie zostaną postawione sieci neuronowej. Nie można byłoby oczekiwać, że sieć wygeneruje rozwiązanie po otrzymaniu na wejściu historii ocen udzielonych w trakcie powtórek tysięcy elementów. Złożoność obliczeniowa i pamięciowa takiego podejścia naturalnie znacznie przekroczyłaby zdolność sieci do uczenia się i reagowania w czasie rzeczywistym.

Korzystając z modelu Wozniaka dwóch komponentów pamięci długotrwałej, postulujemy, że poniższe rozwiązanie oparte na sieci neuronowej może dać szybką zbieżność i wysoką dokładność rozłożenia powtórek.

Dwie zmienne pamięciowe potrzebne do opisania stanu danego engramu to przywoływalność (R) i stabilność (S) pamięci ( Wozniak, Gorzelańczyk, Murakowski, 1995). Poniższe równanie wiąże R i S:

(1) R=e -k/S*t

gdzie:

  • k jest stałą
  • t oznacza czas

Korzystając z równania (1), możemy wnioskować o zmianach przywoływalności w czasie przy danej stabilności, a także wyznaczyć optymalny odstęp między powtórkami dla danej stabilności i danego wskaźnika zapominania.

Dokładny algebraiczny kształt funkcji opisującej zmianę stabilności po powtórce nie jest znany. Dane eksperymentalne wskazują jednak, że stabilność zwykle wzrasta od 1,3 do 3 razy przy prawidłowo zaplanowanych powtórkach i zależy od trudności elementu (im większa trudność, tym mniejszy wzrost). Dostarczając aproksymację optymalnego rozłożenia powtórek uzyskaną z danych eksperymentalnych wygenerowanych przez macierze optymalizacyjne Algorytmu SM-8, sieć neuronową można wstępnie wytrenować do obliczania funkcji stabilności:

(2) S i+1=f s(R,Si,D,G)

gdzie:

  • i oznacza stabilność po i-tej powtórce
  • R oznacza przywoływalność przed powtórką
  • D oznacza trudność elementu
  • G oznacza ocenę wystawioną w i-tej powtórce

Funkcja stabilności jest pierwszą funkcją, którą ma wyznaczyć sieć neuronowa. Drugą jest funkcja trudności elementu z analogicznymi parametrami wejściowymi:

(3) D i+1=f d(R,S,Di,G)

gdzie:

  • i oznacza przybliżoną trudność elementu po i-tej powtórce
  • R oznacza przywoływalność przed powtórką
  • S oznacza stabilność po i-tej powtórce
  • G oznacza ocenę wystawioną w i-tej powtórce

W związku z tym sieć neuronowa z czterema wejściami (D, R, S i G) i dwoma wyjściami (S i D) może posłużyć do zamknięcia całej wiedzy potrzebnej do obliczenia odstępów między powtórkami (patrz: Implementacja sieci neuronowej rozłożenia powtórek).

W celu zweryfikowania wykonalności powyższego podejścia zastosowane zostanie następujące podejście:

  1.  Wstępne trenowanie sieci neuronowej zostanie przeprowadzone na podstawie przybliżonych funkcji S i D wyprowadzonych z funkcji zastosowanych w Algorytmie SM-8 oraz zebranych na ich podstawie danych eksperymentalnych
  2. Tak wstępnie wytrenowana sieć zostanie zaimplementowana jako SuperMemo Plug-In DLL, który zastąpi standardowy sm8opt.dll używany przez SuperMemo 8 dla Windows. Uczenie sieci będzie kontynuowane w rzeczywistym procesie nauki podczas testów alfa DLL sieci neuronowej. Procedura zaprojektowana specjalnie na potrzeby eksperymentu zostanie użyta do dostarczenia skumulowanych wyników i wynikowej sieci neuronowej. Procedura wykorzysta sieci neuronowe użyte w testach alfa do wytrenowania sieci, która weźmie udział w testach beta. Sieci z testów alfa zostaną zasilone macierzą parametrów wejściowych, a ich wynik posłuży jako dane treningowe dla sieci wynikowej
  3. W ostatnim kroku testy beta sieci neuronowej zostaną udostępnione wszystkim wolontariuszom przez Internet bezpośrednio ze strony SuperMemo. Wolontariusze zostaną poproszeni jedynie o przesłanie swoich sieci wynikowych na końcowy etap eksperymentu, na którym powstanie ostateczna sieć. Ponownie, wszystkie sieci z testów beta zostaną użyte do wytrenowania sieci wynikowej. Przyszli użytkownicy neuronowego SuperMemo (jeśli projekt okaże się udany) otrzymają sieć z niezłym rozumieniem ludzkiej pamięci, zdolną do dalszego dopracowywania swoich reakcji na zakłócenia procesu nauki wynikające z codziennych aktywności konkretnego ucznia i konkretnego materiału do nauki.

Głównym problemem we wszystkich algorytmach rozłożenia powtórek jest opóźnienie między porównaniem wyniku funkcji optymalnych odstępów a rezultatem zastosowania danego odstępu między powtórkami w praktyce. Przy każdej powtórce trzeba pamiętać stan sieci z poprzedniej powtórki, by wygenerować nowy stan sieci. W praktyce oznacza to konieczność przechowywania ogromnej liczby stanów sieci pomiędzy powtórkami.

Na szczęście model Wozniaka implikuje, że funkcje S i D są niezależne od czasu (co ciekawe, prawdopodobnie są też niezależne od użytkownika!); dlatego w celu uproszczenia procedury można zastosować następujące podejście:

Moment w czasieT1T2T3
Decyzja111=N 1(I 1)222=N 2(I 2)333=N 3(I 3)
Wynik poprzedniej decyzjiO* 11=O* 1-O 1O* 22=O* 2-O 2
Ocena do celów uczeniaO’ 1=N 2(I 1)E’ 1=O* 1-O’ 1O’ 2=N 3(I 2)E’ 2=O* 2-O’ 2

Gdzie:

  • i jest błędem związanym z O i (patrz: korekta błędu dla stabilności pamięci i korekta błędu dla trudności elementu)
  • E’ i jest błędem związanym z O’ i
  • i to dane wejściowe w chwili T i
  • i to stan sieci w chwili T i
  • i to decyzja wyjściowa N i przy danym I i, czyli decyzja podjęta po i-tej powtórce w chwili T i
  • O* i to optymalna decyzja wyjściowa, którą powinno się uzyskać w chwili T i zamiast O i; można ją obliczyć na podstawie oceny i O i (ocena wskazuje, jak powinno zmienić się O i, by uzyskać lepsze przybliżenie)
  • O’ i to decyzja wyjściowa N i+1 przy danym I i, czyli decyzja po i-tej powtórce, która zostałaby podjęta w chwili T i+1
  • i to moment i-tej powtórki danego elementu

Powyższe podejście wymaga przechowywania dla każdego elementu jedynie I i-1 pomiędzy powtórkami zachodzącymi w chwilach T i-1 i T i, co daje istotną oszczędność ilości danych przechowywanych podczas procesu nauki (E’ i jest tak samo cenne do trenowania jak E i). Dzięki temu proponowane rozwiązanie jest pod względem złożoności pamięciowej porównywalne z Algorytmem SM-8! W trakcie całego procesu trzeba pamiętać tylko jeden (bieżący) stan sieci neuronowej.

Oto obecne założenia implementacyjne omawianego projektu:

  • sieć neuronowa: jednokierunkowa, warstwowa, z odporną propagacją wsteczną (resilient back-propagation); warstwa wejściowa z czterema neuronami, warstwa wyjściowa z dwoma neuronami oraz dwie warstwy ukryte (po 15 neuronów każda)
  • interpretacja trudności elementu: taka sama jak w Algorytmie SM-8, tzn. zdefiniowana przez A-Factor
  • każdy element przechowuje: datę ostatniej powtórki, stabilność (przy ostatniej powtórce), przywoływalność (przy ostatniej powtórce), trudność elementu, ostatnią ocenę
  • domyślny wskaźnik zapominania: 10%
  • wejście DLL sieci (przy każdej powtórce): numer elementu i bieżąca ocena
  • wyjście DLL sieci (przy każdej powtórce): data następnej powtórki
  • język implementacji DLL sieci neuronowej: C++
  • powłoka DLL sieci neuronowej, SuperMemo 98 dla Windows (taka sama jak 32-bitowa powłoka SM8OPT.DLL)

Neuronowe SuperMemo: implementacja

Sieci praktycznie podano algorytm spaced repetition na tacy. Jej jedyną rolą byłoby dopracowywanie skuteczności w czasie. Dokładnie to samo robią wszystkie algorytmy SuperMemo od czasu Algorytmu SM-5. W tym sensie projekt nie oczekiwał od sieci odkrycia. Oczekiwał usprawnień na bazie odkrycia. Model był wbudowany w sam projekt.

Ostrzeżenie archiwalne: Dlaczego stosujemy archiwa dosłowne?

Podstawowe założenie

Stan pamięci będzie opisywany tylko dwiema zmiennymi: przywoływalnością (R) i stabilnością (S) ( Wozniak, Gorzelańczyk, Murakowski, 1995). Poniższe równanie wiąże R i S:

(1) R=e -k/S*t

gdzie:

  • k jest stałą
  • t oznacza czas

Dla uproszczenia przyjmiemy k=1, aby jednoznacznie zdefiniować stabilność.

Wejście i wyjście

Sieć ma wyznaczyć następujące funkcje:

(2) S i+1=f s(R, S i, D, G)

(3) D i+1=f d(R, S, D i, G)

Sieć neuronowa ma generować na wyjściu stabilność (S) i trudność elementu (D) na podstawie R, S, D i G podanych na wejściu:

(4) (Ri, Si, Di, Gi) => (D i+1,S i+1)

gdzie:

  • i oznacza przywoływalność przed i-tą powtórką
  • i oznacza stabilność przed i-tą powtórką
  • i+1 oznacza stabilność po i-tej powtórce
  • i oznacza trudność elementu przed i-tą powtórką
  • i+1 oznacza trudność elementu po i-tej powtórce
  • i oznacza ocenę wystawioną w i-tej powtórce

Korekta błędu dla trudności D

Docelowa trudność zostanie zdefiniowana, tak jak w Algorytmie SM-8, jako stosunek między drugim a pierwszym odstępem. Wtyczka sieci neuronowej (NN.DLL) zapisze tę wartość dla wszystkich poszczególnych elementów i wykorzysta ją do trenowania sieci:

(5) D o=I 2/I 1

gdzie:

  • o to trudność wzorcowa używana w korekcie błędu (im wyższe D o, tym mniejsza trudność)
  • 1 to pierwszy optymalny odstęp obliczony dla danego elementu (taki sam dla wszystkich elementów)
  • 2 to drugi optymalny odstęp obliczony dla elementu

Ważne! Optymalne odstępy I 1 i I 2 nie są tymi, które zaproponowała sieć przed weryfikacją, lecz tymi używanymi w korekcie błędu po tym, jak zaproponowany odstęp został już wykonany i zweryfikowany (patrz: korekta błędu dla stabilności S)!

Początkowa wartość trudności zostanie ustawiona na 3,5, tzn. D 1=3,5. Jest to podyktowane wyłącznie podobieństwem do Algorytm SM-8. Ponieważ początkowa trudność nie jest znana, nie można jej użyć do wyznaczenia pierwszego odstępu. Po uzyskaniu pierwszej oceny korekta błędu wciąż jest niemożliwa, ponieważ drugi optymalny odstęp nie jest jeszcze znany. Gdy tylko stanie się on znany, D o może zostać użyte do korekty błędu D na wyjściu.

Aby uniknąć problemów ze zbieżnością sieci, do wyznaczenia poprawnego wyjścia dla D zostanie użyty następujący wzór:

(6) D opt=0.9*D i+0.1*D o

gdzie:

  • opt to trudność używana w korekcie błędu po i-tej powtórce
  • i to trudność przed i-tą powtórką
  • o to trudność wzorcowa z równania (5)

Współczynnik zbieżności 0,9 w równaniu (6) jest umowny i może się zmieniać w zależności od skuteczności sieci.

Korekta błędu dla stabilności S

Poniższy wzór, wyprowadzony z równania (1) dla wskaźnika zapominania równego 10% i k=1, ułatwia przeliczanie stabilności na optymalny odstęp: I=-ln(0,9)*S

W optymalnym przypadku sieć powinna generować żądany wskaźnik zapominania dla każdej powtórki. Zmienny wskaźnik zapominania można łatwo zastosować, gdy znana jest stabilność S (patrz równanie (1)). Dla uproszczenia w dalszej analizie przyjmiemy więc wskaźnik zapominania równy 10%.

Aby przyspieszyć zbieżność, sieć będzie mierzyć wskaźnik zapominania dla 25 klas powtórek. Klasy te są wyznaczone przez (1) pięć kategorii trudności: 1-1,5, 1,5-2,5, 2,5-3,5, 3,5-5 oraz powyżej 5, oraz (2) pięć kategorii odstępów: 1-5, 5-20, 20-100, 100-500 oraz powyżej 500 dni. Pomiary wskaźnika zapominania dla tych kategorii będziemy oznaczać jako FI(D m,I n). Dodatkowo mierzony będzie ogólny wskaźnik zapominania FI tot, wykorzystywany w korekcie błędu stabilności.

Ostatecznym celem jest osiągnięcie wskaźnika zapominania na poziomie 10% we wszystkich kategoriach. W korekcie błędu dla stabilności zostanie użyty następujący wzór:

(7) FI opt(m,n)=(10*FI tot+Cases(m,n)*FI(m,n))/(10+Cases(m,n))

gdzie:

  • FI opt(m,n) to wskaźnik zapominania używany w korekcie błędu po powtórce należącej do kategorii (m,n)
  • FI tot to ogólny wskaźnik zapominania mierzony w powtórkach
  • Cases(m,n) to liczba przypadków powtórek użytych do zmierzenia wskaźnika zapominania w kategorii (m,n)

Wzór z równania (7) ma na celu przesunięcie wagi korekty błędu z ogólnego wskaźnika zapominania na wskaźnik zapominania zarejestrowany w danych kategoriach, w miarę wzrostu liczby przypadków w poszczególnych kategoriach. Oczywiście dla Cases(m,n)=0 mamy FI opt(m,n)=FI tot. Dla Cases(m,n)=10 wagi ogólnego FI i FI kategorii się równoważą, a przy dużej liczbie przypadków FI opt(m,n) zbliża się do FI(m,n).

Poniższa tabela ilustruje zakładaną zależność między FI opt(m,n), ocenami i zastosowaną korektą odstępu:

Ocena012345
FI opt(m,n)>10%40%60%80%brak korektybrak korektybrak korekty
FI opt(m,n)=10%brak korektybrak korektybrak korektybrak korektybrak korektybrak korekty
FI opt(m,n)<10%brak korektybrak korektybrak korekty110%120%130%

SuperMemo oceny poniżej 3 są interpretowane jako zapomnienie, natomiast oceny równe 3 lub wyższe są rozumiane jako wystarczające przypomnienie. Dlatego dla ocen pozytywnych przy zadowalającym FI nie stosuje się korekty, a dla ocen negatywnych, jeśli FI jest wyższe niż żądane, również nie stosuje się korekty. Przykładowa korekta dla nadmiernego tempa zapominania i oceny=2 przy zastosowanym odstępie 10 dni wyniosłaby 80%. W konsekwencji sieć zostanie poinstruowana, by przyjąć Odstęp=8 jako poprawny. Poprawna stabilność zostałaby wtedy wyprowadzona z S=-8/ln(0,9) i użyta w korekcie błędu. Wartości korekt odstępów są umowne, ale nie mogą podważać zbieżności sieci. W przypadku mało prawdopodobnych problemów ze stabilnością korekty mogą zostać zmniejszone (zauważ, że szum środowiskowy w procesie nauki znacznie przewyższy wpływ nieskutecznego doboru współczynników korekty!). Podobne korekty były stosowane w kolejnych algorytmach SuperMemo z zachęcającymi wynikami.

Warunki brzegowe

Na sieć neuronową zostaną nałożone następujące dodatkowe ograniczenia, by przyspieszyć zbieżność:

  • wzrost odstępu w dwóch kolejnych powtórkach musi wynosić co najmniej 1,1 (w konsekwencji trudność nie może być mniejsza niż 1,1)
  • wzrost odstępu nie może przekroczyć 8 po pierwszej powtórce oraz 4 w kolejnych powtórkach
  • pierwszy odstęp musi mieścić się w przedziale od 1 do 40 dni
  • miara trudności nie może przekraczać 8

Warunki te nie wprowadzają stronniczości do sieci, ponieważ zostały ponad wszelką wątpliwość potwierdzone jako prawdziwe w praktyce stosowania SuperMemo i jego implementacji w ciągu ostatnich dziesięciu lat.

Wstępne trenowanie

Na etapie pretreningu wykorzystana zostanie następująca postać równań (2) i (3):

(8) D i+1:=D i+(0.1-(5-G)*(0.08+(5-G)*0.02))

(9) S i+1:=S i*D i*(0.5+1/i)

Przy D 1=3.5 oraz S 1=-3/ln(0.9).

Równanie (8) zostało wyprowadzone z Algorytm SM-2 (patrz równanie E-Factor). Równanie (9) zostało w przybliżeniu wyprowadzone z macierzy OF w Algorytm SM-8. D 1=3.5 odpowiada tej samej wartości co w Algorytm SM-8. S 1=-3/ln(0.9) odpowiada pierwszemu interwałowi wynoszącemu 3 dni i indeksowi zapominania równemu 10%. Wartość 3 dni jest zbliżona do średniej w szerokim przekroju uczniów i trudności materiału do nauki. Pretrening wykorzysta również warunki brzegowe wspomniane w poprzednim akapicie.

Sieć neuronowa sprawiała wiele problemów – z implementacją, błędami, zbieżnością, interferencją i tym podobnymi. Jedynym skutecznym sposobem przetestowania sieci było podłączenie jej do prawdziwego SuperMemo i sprawdzenie, jak działa na rzeczywistych danych. Wpadłem na pomysł algorytmów typu plug-in w formie biblioteki DLL. Dzięki temu moglibyśmy badać warianty algorytmów w tej samej powłoce programu. Wypróbowaliśmy Algorytm SM-2Algorytm SM-8 i teraz to samo miała zrobić sieć neuronowa. Niestety implementacja tej biblioteki DLL okazała się zbyt trudnym wyzwaniem. Gdy entuzjastyczna młodzież skończyła studia, szybko się rozproszyła, znalazła pracę gdzie indziej, poukładała życie rodzinne, i nigdy nie miałem okazji wypróbować tego plug-inu we własnej nauce w mojej ulubionej powłoce, którą było wtedy SuperMemo 9 (znane też jako SuperMemo 98).

Sieć neuronowa SuperMemo była projektem studenckim, którego jedynym celem było sprawdzenie przydatności sieci neuronowych w spaced repetition. Nie trzeba dodawać, że sieci neuronowe są narzędziem przydatnym. Co więcej, wszelkie sensowne narzędzia optymalizacyjne, przy odpowiednim dopracowaniu, muszą prowadzić do wyników podobnych do tych, które obecnie osiąga SuperMemo. Innymi słowy, dopóki program do nauki jest w stanie szybko zbiec do optymalnego modelu i zapewnić pożądany poziom utrwalenia wiedzy, samo narzędzie optymalizacyjne użyte do osiągnięcia tego celu ma znaczenie drugorzędne.

Biorąc pod uwagę liczbę problemów na wcześniejszych etapach, wątpię, by udana implementacja plug-inu zmieniła moje podejście do sieci neuronowych. Jestem programistą i majsterkowiczem, lubię widzieć to, co tworzę. Sieć neuronowa wydawała mi się zbyt czarną skrzynką. Co do zespołu – wszyscy odnieśli dziś sukces zawodowy. Ci młodzi ludzie przyczynili się później do innych projektów SuperMemo. Młodość jest twórcza, młodość jest nieprzewidywalna, i cieszę się, że podjęliśmy się tego projektu.

David Calinski i FullRecall

David Calinski (ur. 1981) był jednym z wczesnych, młodzieńczych entuzjastów SuperMemo w latach 90. Wykazywał żywe zainteresowanie przyspieszoną nauką, psychologią, psychiatrią i innymi dziedzinami.

Szybko rozpoznałem jego talenty i miałem nadzieję zaangażować go w niektóre projekty SuperMemo, m.in. SuperMemo dla Linuksa, jednak wielu geniuszy woli działać w pojedynkę. W pewnym momencie przeszedł z SuperMemo na własną aplikację (FullRecall, patrz dalej) i od tego momentu nie porzucił już swojego projektu.

Nasze dyskusje na temat sieci neuronowych zaczęły się w 2001 roku. David był fanem SuperMemo, jednak przyznał też, że nigdy naprawdę nie zgłębił algorytmu. Doprowadziło to do krytyki:

Nie znam dokładnych szczegółów algorytmu(-ów) SM (nigdy mnie to specjalnie nie interesowało), ale ważna jest tu główna idea. Algorytm w SM otrzymuje pewne dane (np. liczbę powtórek, trudność elementu, aktualną ocenę itd. itp.) i zwraca obliczony optymalny, kolejny interwał. Ten algorytm, nawet jeśli jest „mądry” i jakoś się koryguje, i tak pozostanie głupi – nie skoryguje się bardziej, niż został do tego zaprojektowany.

Ma rację, Algorytm SM-17 jest z natury związany z two component model of long-term memory, jednak jest to szczęśliwy związek. Może go przerwać jedynie kontrdowód, który nie pojawił się przez ostatnie trzy dekady.

Stanowisko Davida jest w pełni uzasadnione. Wszystko sprowadza się do modelowania i wiedzy wcześniejszej. Dla Davida Algorytm SM-8 był skomplikowany. Sieci neuronowe wydają się prostym sposobem na pozbycie się tej złożoności. Dla mnie mój własny algorytm jest tak prosty jak tabliczka mnożenia. Ta różnica w modelowaniu często prowadzi do rozbieżności poznawczych i to jest dobra rzecz. Bez tych różnic wiedzielibyśmy dziś znacznie mniej o sieciach neuronowych w spaced repetition!

W 2004 roku napisałem do Davida: „Dalsze usprawnienia algorytmu stosowanego w SuperMemo prawdopodobnie nie przyniosą dalszego przyspieszenia nauki. Jest jednak wciąż pole do poprawy w obsłudze nietypowych przypadków, takich jak drastycznie opóźnione powtórki, prezentacja masowa, obsługa elementów, których treść się zmieniła, obsługa powiązań semantycznych między elementami itd. Co ciekawe, największy postęp w algorytmie prawdopodobnie wyniknie z lepszej definicji modelu ludzkiej pamięci długotrwałej. W szczególności coraz lepiej rozumiana jest funkcja opisująca zmiany stabilności pamięci dla różnych poziomów odtwarzalności. Mogłoby to znacznie uprościć algorytm. Prostsze modele wymagają mniejszej liczby zmiennych, co ułatwia optymalizację. Algorytm oparty na stabilności i odtwarzalności śladów pamięciowych mógłby też skutkować lepszą obsługą elementów o niskiej odtwarzalności. Jednak ponieważ nietypowe przypadki elementów stanowią mniejszość procesu nauki, a testowanie nowego algorytmu zajęłoby kilka lat, nie jest jasne, czy taka implementacja kiedykolwiek zostanie podjęta”.

David opracował własną sieć neuronową, MemAid. Później przekształcił ją w produkt komercyjny. Przejście z wersji darmowej na płatną było trudne, gdyż użytkownicy z oczywistych powodów wolą, gdy ceny spadają, a nie rosną. Mimo wszystkich wzlotów i upadków David wytrwał, a jego majsterkowicza natura i pasja do nauki i programowania zawsze dawały mu przewagę. Podobnie jak Anki, starał się utrzymać swój program jako wieloplatformowy, co narzucało pewne ograniczenia i wymagania dotyczące prostoty. Jak sam mówił: „Kocham szybkość i brak granic, brak zależności od jednego rozwiązania, systemu, komputera itd.”

Dziś FullRecall jest darmowy. Zobacz listę zmian.

Rysunek: Rozkład interwałów w FullRecall. Powtórki planowane z pomocą sieci neuronowej

Otwartoźródłowy projekt MemAid zamknięto w 2006 roku, ale FullRecall był kontynuowany. Podobnie jak inny projekt zainspirowany MemAid: Mnemosyne. Mnemosyne zdecydowało się jednak na własną wersję Algorytm SM-2. Do dziś Mnemosyne generuje dane, które mogą być wykorzystywane przez entuzjastów spaced repetition lub badaczy w The Mnemosyne Project.

Podobnie jak Calinski, Peter Bienstman sceptycznie podchodzi do nowszych algorytmów: „SuperMemo używa teraz SM-11. Jesteśmy jednak nieco sceptyczni, czy ogromna złożoność nowszych algorytmów SM daje statystycznie istotną korzyść. Ale to jeden z faktów, które mamy nadzieję ustalić dzięki naszemu zbieraniu danych.”

„Statystycznie istotna korzyść” zależy od kryteriów. Dla użytkowników sam algorytm może mieć znaczenie drugorzędne. Dla badań Algorytm SM-17 jest kopalnią złota (podobnie jak dane, które mogą generować wszystkie programy takie jak Mnemosyne).

Dlaczego sieć neuronowa w FullRecall jest wadliwa?

Dwie zmienne pamięciowe są zarówno konieczne, jak i wystarczające do reprezentowania atomowego śladu pamięciowego w spaced repetition. Co więcej, te dwie zmienne mogą zostać wykorzystane do wyjaśnienia efektu rozłożenia w czasie w prezentacji masowej. Mogą też wyjaśnić korzyść płynącą z wysokiego indeksu zapominania dla długoterminowego utrwalenia, o czym mowa była wcześniej. Te dwie zmienne pamięci długotrwałej, które nazwaliśmy stabilnością i odtwarzalnością, są niezbędne do reprezentowania stanu pamięci. Każda sieć neuronowa, która ma znaleźć wzorce w zależności między rozłożeniem w czasie a przypominaniem, musi otrzymać na wejściu pełny stan pamięci, w przeciwnym razie nigdy nie obliczy optymalnego rozłożenia. Ten stan może przybrać formę pełnej historii powtórek. Może to też być para stabilność : odtwarzalność (jeśli da się ją obliczyć). Może to być również dowolny inny kod nad historią powtórek, z którego można obliczyć stan pamięci.

Projekt sieci FullRecall nie spełnia tych kryteriów:

  • wejście: last_interval_computed_by_ann [0-2048 dni] (zero, jeśli nie jest to powtórka, lecz pierwsza prezentacja)
  • wejście: real_interval_since_last_review [0-2048 dni] (ten sam komentarz co powyżej)
  • wejście: number_of_repetitions_of_an_item_so_far [0-128]
  • wejście: current_grade [0-5, 5 to najlepsza ocena]
  • wyjście, które daje nam ANN: new_interval [0-2048]

Ani interwał, ani liczba powtórek nie odzwierciedlają stabilności ani odtwarzalności pamięci. Można uzyskać wysoką liczbę powtórek w prezentacji masowej podlegającej efektowi rozłożenia w czasie przy znikomym wzroście stabilności pamięci. Jednocześnie długie interwały przy nieoptymalnych harmonogramach mogą skutkować niskimi wartościami zarówno stabilności, jak i odtwarzalności. Krótko mówiąc, przy tym samym interwale stan pamięci będzie zależał od rozkładu powtórek w czasie.

Można to pokazać na przykładzie: dla 10 powtórek i 1000 dni, 9 powtórek w ciągu 9 dni w połączeniu z interwałem 991 dni da stabilność bliską zeru (przy założeniu braku interferencji). Jednocześnie dla tej samej pary danych wejściowych, optymalnie rozłożone powtórki mogą dać odtwarzalność bliską 100% i stabilność pozwalającą na optymalne interwały bliskie 1000 dni.

Jedynym scenariuszem, w którym sieć mogłaby dobrze działać, jest sytuacja, gdy użytkownik ściśle przestrzega optymalnego harmonogramu spaced repetition. To z kolei może wynikać jedynie z sieci wstępnie wytrenowanej, np. za pomocą Algorytmu SM-2. W takim scenariuszu sieć będzie niestabilna i nie zbiegnie do optimum, ponieważ wszelkie odstępstwa od optymalnego harmonogramu, w tym te spowodowane błędem samej sieci, przesuną stan sieci od pierwotnego stanu, w którym była ona jeszcze w stanie obliczyć stan pamięci na podstawie swoich wejść.

Stabilność i odtwarzalność są wystarczające w wyidealizowanym przypadku pojedynczego, jednosynaptycznego skojarzenia. W rzeczywistości sieć semantyczna zaangażowana w dane skojarzenie prawdopodobnie obejmuje wiele takich idealnych, jednostkowych śladów pamięciowych. Dlatego SuperMemo posługuje się pojęciem absolutnej trudności elementu. W Algorytmie SM-17 absolutna trudność elementu jest określana przez maksymalny wzrost stabilności pamięci dla pierwszej optymalnie zaplanowanej powtórki przy domyślnym indeksie zapominania równym 10%. Sieć FullRecall również nie otrzymuje żadnej wiarygodnej miary trudności elementu. To dodatkowo pogłębi nieefektywność sieci.

Sieć FullRecall, według relacji użytkowników, ma podobno działać całkiem dobrze. W świetle powyższej analizy sieć mogłaby wykorzystywać dobrze dobrane warunki brzegowe, jednak byłoby to równoznaczne z powrotem do Algorytmu SM-2 stosowanego w starszych wersjach SuperMemo. Nie trzeba dodawać, że ten stary algorytm SuperMemo jest bardziej obciążony błędem systematycznym i mniej plastyczny niż nowsze, oparte na macierzach algebraiczne wersje stosowane w SuperMemo.

Jeśli sieć FullRecall zostanie wstępnie wytrenowana, np. za pomocą Algorytmu SM-2, a uczeń rygorystycznie trzyma się swojego harmonogramu powtórek, sieć może działać w miarę dobrze, ponieważ interwał dobrze koreluje ze stabilnością pamięci, zwłaszcza jeśli informacja jest wzbogacona o liczbę powtórek. Jednak bez odpowiednich warunków brzegowych, w incremental reading, sieć z pewnością zawiedzie, gdyż może otrzymywać fałszywe informacje o stanie pamięci. W zależności od scenariusza, ta sama para Powtórki : Interwał może wystąpić zarówno dla Stabilności=0, jak i dla maksymalnej stabilności odpowiadającej wspomnieniom trwającym całe życie. Podobnie odtwarzalność może się różnić w zakresie 0-1 dla tej samej pary wejściowej w sieci. Na przykład częste przeglądanie podzbioru przed egzaminem, po którym następuje dłuższa przerwa w nauce (np. spowodowana przeciążeniem), może odpowiadać bardzo niskiej stabilności i odtwarzalności, mimo że dostarcza takich samych danych wejściowych jak poprawnie wykonana seria powtórek rozłożonych w tym samym okresie (z wysoką stabilnością i odtwarzalnością powyżej 0,9). W incremental reading przeciążenie, auto-postpone, item advance, przegląd podzbioru i efekt rozłożenia w czasie byłyby dla sieci niewidoczne.

Zakładając dobry projekt, wady FullRecall ujawnią się jedynie przy przerywanej nauce, co może uruchomić warunki brzegowe. Nie powinno to umniejszać wartości samego oprogramowania. Chodzi jedynie o podkreślenie, że projektowanie sieci neuronowej nie jest łatwe i może okazać się gorsze.

Krótko mówiąc, jej dane wejściowe nie odzwierciedlają wszystkich informacji potrzebnych do obliczenia optymalnych interwałów. W szczególności liczba powtórek jest bardzo słabą miarą stabilności czy odtwarzalności pamięci. Lepszym podejściem byłoby zakodowanie całej historii powtórek lub obliczenie stanu pamięci za pomocą zmiennych stabilności i odtwarzalności. Zarówno stabilność, jak i odtwarzalność muszą dać się obliczyć na podstawie danych wejściowych sieci.

Przyszłość sieci neuronowych w SuperMemo

W naszych dyskusjach z Calinskim (w 2001 roku) podsumowałem swoje zastrzeżenia i zapowiedziałem, że będę kontynuował tę samą, starą, „konserwatywną” ścieżkę. 17 lat później cieszę się z tej decyzji. Nie było wielkiego postępu w dziedzinie wykorzystania sieci neuronowych w spaced repetition. Być może samo SuperMemo jest hamulcem postępu w tym obszarze. Tymczasem jednak Algorytm SM-17 odsłonił dalszy potencjał do usprawnień w spaced repetition i w rozumieniu ludzkiej pamięci. Jeśli czas pozwoli, postęp będzie kontynuowany.

SuperMemo będzie kontynuować stosowanie swoich algebraicznych algorytmów z następujących powodów:

  • Znany model: Sieci neuronowe są lepsze w przypadkach, gdy nie znamy leżącego u podstaw modelu badanego zjawiska. Model zapominania jest dobrze znany, co ułatwia dostrajanie metod optymalizacji algebraicznej stosowanych do obliczania interwałów między powtórkami. Dobrze znany model sprawia też, że SuperMemo jest odporne na niezrównoważone zbiory danych, które mogłyby dręczyć sieci neuronowe, zwłaszcza na wczesnych etapach nauki. Wreszcie, słuszność two component model of memory została udowodniona na wiele sposobów, a rezygnacja z tego modelu przy projektowaniu sieci, w imię przełamywania uprzedzeń, byłaby marnotrawstwem. Takie podejście może mieć wartość jedynie badawczą
  • Nadmierne uczenie się (overlearning): Ze względu na ważoną przypadkami zmianę wartości w tablicach, tablice optymalizacyjne stosowane w SuperMemo nie podlegają „nadmiernemu uczeniu się”. Pretrening nie jest potrzebny, ponieważ przybliżony kształt funkcji optymalnych interwałów jest znany z góry. Nie ma problemu z reprezentacją danych, ponieważ wszystkie nietypowe dane wejściowe zostaną z czasem „odważone”
  • Równoważność: Matematycznie rzecz biorąc, dla funkcji ciągłych, sieci o n wejściach są równoważne n-wymiarowym tablicom przy odwzorowywaniu funkcji o n argumentach, z wyjątkiem „problemu rozdzielczości argumentów”. Zakres problemu rozdzielczości argumentów, tj. skończona liczba przedziałów wartości argumentów, silnie zależy od konkretnej funkcji. Krótki rzut oka na tablice optymalizacyjne wyświetlane przez SuperMemo wskazuje, że „rozdzielczość argumentów” jest znacznie lepsza, niż faktycznie potrzeba dla tego konkretnego typu funkcji, zwłaszcza w świetle znacznego „szumu” w danych. Algorytmy wspinaczkowe (hill-climbing) stosowane w SuperMemo przypominają algorytmy mające na celu ponowne ważenie sieci
  • Badania: Użycie macierzy w SuperMemo ułatwia zobaczenie „pamięci w działaniu”. Sieci neuronowe nie są tak dobrze obserwowalne. Nie ujawniają skutecznie swoich odkryć. Nie widać, jak pojedyncza krzywa zapominania wpływa na funkcję optymalnych interwałów. Oznacza to, że czarnoskrzynkowa natura sieci neuronowych czyni je mniej interesującym narzędziem do badania pamięci
  • Zbieżność: Złożoność algorytmu nie wynika ze złożoności modelu pamięci. Większość złożoności wynika z użycia narzędzi mających przyspieszyć zbieżność procedury optymalizacyjnej bez naruszania jej stabilności. To dostrajanie jest możliwe tylko dzięki naszej dobrej znajomości leżącego u podstaw modelu pamięci, a także rzeczywistym danym z nauki zebranym przez lata, które pomagają nam precyzyjnie określić najlepszą funkcję aproksymującą dla poszczególnych elementów modelu
  • Krzywa zapominania: Jedynym sposobem na określenie optymalnego interwału dla danego indeksu zapominania jest znajomość (przybliżonej) krzywej zapominania dla danej klasy trudności i stabilności pamięci. Jeśli sieć neuronowa nie próbuje odwzorować krzywej zapominania, będzie zawsze oscylować wokół wartości optymalnego interwału (przy czym dobre oceny będą tę wartość zwiększać, a złe – zmniejszać). Ze względu na szum w danych jest to problem jedynie teoretyczny, ale ilustruje on siłę stosowania symbolicznej reprezentacji zależności stabilność-odtwarzalność-trudność-czas zamiast praktycznie nieskończonej liczby możliwych zbiorów danych krzywej zapominania. Jeśli sieć neuronowa nie wykorzystuje ważonego odwzorowania krzywej zapominania, nigdy nie osiągnie zbieżności. Innymi słowy, będzie stale oscylować wokół optymalnego modelu. Jeśli sieć neuronowa uwzględni historię stanu i/lub wykorzysta krzywą zapominania, przyjmie to samo podejście co obecny algorytm SuperMemo, które to podejście sieć miała przecież zastąpić

Innymi słowy, sieci neuronowe mogłyby być użyte do obliczania interwałów, ale nie wydają się być najlepszym narzędziem pod względem mocy obliczeniowej, wartości badawczej, stabilności, a przede wszystkim szybkości zbieżności. Projektując optymalną sieć neuronową, napotykamy podobne trudności jak przy projektowaniu algebraicznej procedury optymalizacyjnej. Ostatecznie, jakiekolwiek warunki brzegowe zostałyby ustalone w „klasycznym” SuperMemo, prędzej czy później pojawią się także w projekcie sieci (jak widać w: Neural Network SuperMemo).

Podobnie jak we wszystkich aproksymacjach funkcji, wybór narzędzia i drobne poprawki algorytmiczne mogą mieć ogromne znaczenie dla szybkości zbieżności i dokładności odwzorowania. Sieci neuronowe mogłyby znaleźć zastosowanie w odwzorowywaniu mniej znanych funkcji pomocniczych, które służą przyspieszeniu zbieżności algorytmu algebraicznego. Na przykład do dziś nie w pełni rozwiązano problem szacowania trudności elementu. Po prostu mówimy użytkownikom, by utrzymywali swoją wiedzę w prostej formie, co jest uniwersalną rekomendacją każdego nauczyciela świadomego mnemonicznych ograniczeń ludzkiej pamięci.

1999: Wybór nazwy: „spaced repetition”

Poszukiwanie dobrej, unikalnej nazwy

Termin ” spaced repetition ” jest bardzo stary i był używany od dziesięcioleci w branży reklamowej i w badaniach behawioralnych. Jednak jego współczesne znaczenie, oparte na optymalnych interwałach powtórek, ustaliło się dopiero, gdy nazwa ta zaczęła oznaczać metodę SuperMemo (od 1999 roku).

We wczesnych dniach SuperMemo World aktywnie poszukiwaliśmy dobrze rozpoznawalnego terminu naukowego, którego moglibyśmy używać, mówiąc o ” metodzie SuperMemo” w kontekstach naukowych. Strategia marketingowa firmy zakładała odejście od wizerunku ” programu opracowanego przez studenta” na rzecz ” programu opartego na metodzie naukowej„. Niestety literatura dotycząca pamięci i nauki była uboga w publikacje inne niż krótkoterminowe badania efektu rozłożenia w czasie, z godnym uwagi wyjątkiem badań H. Bahricka nad utrwalaniem hiszpańskiego słownictwa.

Badacze pamięci od dawna badali różne „harmonogramy powtórek„. Czasem stosowali interwały liczone w minutach. Czasem stosowali „elementy pośredniczące„, by rozdzielić powtórkę. Najbardziej rozpowszechnione były trzy wzorce powtórek: (1) masowy z wieloma powtórkami w krótkim czasie, (2) rozłożony z powtórkami rozproszonymi w czasie oraz (3) rosnący ze zwiększającym się interwałem. Spaced repetition opiera się na stopniowo rosnącym harmonogramie. Przez dziesięciolecia literatura dotycząca pamięci nie mogła ustalić jednego konkretnego terminu na określenie rosnącego harmonogramu. Pimsleur używał określenia graduated intervals, Bjork używał expanding rehearsal, Baddley używał distributed practice, ja w mojej pracy magisterskiej użyłem terminu progressive schedule, Pavlik używa bardziej ogólnego określenia optimal schedule, o którym wiemy, że jest rosnący, itd.

Przełomowy artykuł Franka N. Dempstera ” The Spacing Effect A Case Study in the Failure to Apply the Results of Psychological Research” (American Psychologist, 43, 627-634, 1988) dał wczesny impuls dla SuperMemo. Artykuł ubolewał nad tym, że nauczyciele ignorują efekt rozłożenia w czasie w praktyce nauczania. SuperMemo mogło wypełnić tę lukę, dostarczając prostego, uniwersalnego narzędzia do nauki rozłożonej w czasie. Dempster swobodnie posługiwał się terminami takimi jak „spaced presentation”, „spaced reviews”, „spaced practise”, „spaced tests”, a nawet „spaced readings” czy „well-spaced presentations”.

Wybraliśmy termin ” repetition spacing„, aby zastąpić nim ” metodę SuperMemo„. Pierwszy w historii anglojęzyczny artykuł naukowy opisujący obliczeniowe spaced repetition (1994) nadal używał terminu ” repetition spacing„.

Wybór nazwy: spaced repetition

3 lutego 1999 roku, zainspirowany e-mailem od użytkownika SuperMemo ( Tony D’Angelo), przejrzałem literaturę pod kątem słowa kluczowego ” spaced repetition„. Po tym przeglądzie nabrałem przekonania, że powinniśmy przejść od stosowania terminu ” repetition spacing” do ” spaced repetition„. Termin ” spaced repetition” był równie mało znany i rzadko używany, ale miał wyższy wskaźnik użycia niż ” repetition spacing„.

Zdecydowaliśmy, że w przyszłych wersjach SuperMemo termin ” spaced repetition” będzie używany zamiast ” repetition spacing„. Pierwsze użycie tego terminu na supermemo.com prawdopodobnie miało miejsce 4 lutego 2000 roku w artykule SuperMemo is useless

Z czasem termin ” spaced repetition” stawał się coraz bardziej popularny. W tym świetle SuperMemo może też przypisać sobie zasługę wprowadzenia tego ogólnego terminu naukowego do powszechnej świadomości, wraz z konkretnym skojarzeniem z optymalnymi interwałami w nauce.

Przyszłość nazwy: spaced repetition

Od 1999 roku, w dużej mierze dzięki naszemu wyborowi nazwy, termin ” spaced repetition ” ugruntował swoją obecność w tekstach dotyczących aplikacji fiszkowych, w tym tych opartych na systemie Leitnera. Jest też nadzieja, że termin ten stanie się dominujący w literaturze naukowej. Wszyscy autorzy wolą trzymać się terminologii, której używają od lat lub dekad. Jednak dużą część przyspieszenia terminologicznego można przypisać Wikipedii. Dominującym tam terminem jest spaced repetition, jednak naukowcy zajmujący się pamięcią chętniej gromadzą się wokół spaced retrieval lub distributed practice (który to termin jest szerszym pojęciem). Istnieją też wyspowe hasła, jak spaced learning, które boty spamowe przypisały Paulowi Kelly’emu (ówczesnemu dyrektorowi Monkseaton High School).

To zamieszanie przyczynia się do rozdźwięku między badaniami naukowymi a popularnymi zastosowaniami spaced repetition, ale połączenie i ujednolicenie to tylko kwestia czasu. Wikipedia stosuje pojęcie proponowanych połączeń (merges). Naukowcy mogą sprzeciwiać się łączeniu swoich „czystych” wersji z popularną wersją naszpikowaną komercyjnymi linkami. Jednak takie połączenie jest nieuniknione i dobre. Są dziś naukowcy badający spaced repetition, którzy nie znają terminu spaced repetition i nigdy nie słyszeli o SuperMemo. Są też inżynierowie pracujący nad algorytmami spaced repetition, którzy niewiele wiedzą o faktycznych badaniach pamięci w tej dziedzinie. Oba problemy można zmniejszyć poprzez ujednolicenie terminologii. Resztą zajmie się Google.

Ujednolicenie terminologii pod szyldem ” spaced repetition” posłuży dalszym badaniom i popularnym zastosowaniom

2005: Funkcja wzrostu stabilności

Dlaczego prosty pomysł nie mógł się urzeczywistnić?

Doskonały matematyczny opis pamięci długotrwałej jest tuż za rogiem. Może się to dziś wydawać zaskakujące, ale mimo swojej prostoty zajęło to trzy długie dekady startów i zatrzymań, zanim mógł powstać dobry model. W ludzkich przedsięwzięciach nauka jest często efektem ubocznym ludzkiej ciekawości, podczas gdy inne palące projekty często mają priorytet. Problem z nauką polega na tym, że jest ona ślepa – niewiele mówi o swoich sekretach, zanim zostaną odkryte. Morał z tej historii jest taki, że wszystkie rządy i firmy powinny nie szczędzić zasobów na dobrą naukę. Nauka trochę przypomina SuperMemo – dziś nagroda wydaje się niewielka, ale w długim okresie korzyści mogą być zdumiewające.

Dziś możemy niemal doskonale opisać pamięć za pomocą zestawu narzędzi stosowanych w Algorytmie SM-17. Jedynym ograniczeniem dalszego postępu w rozumieniu pamięci jest wyobraźnia, dostępność czasu i umiejętność zadawania właściwych pytań. Mamy wszystkie narzędzia i mnóstwo danych. Mamy nawet niemałą ilość danych połączonych z dziennikami snu, które mogą teraz dodać nowy wymiar do modelu: homeostatyczną gotowość do nauki, homeostatyczne zmęczenie, a nawet czynnik dobowy (cirkadialny).

Ważny morał z historii SuperMemo jest taki: jeśli masz pomysł, wcielaj go w życie (chyba że masz inny, lepszy pomysł). Problem z pomysłami polega na tym, że często wydają się dużo mniej atrakcyjne, niż są w rzeczywistości. Naniosłem swoją pierwszą krzywą zapominania na wykres w 1984 roku, zapomniałem o niej w ciągu kilku miesięcy i przypomniałem sobie ten fakt 34 lata później, w czasie, gdy całe moje życie kręci się wokół krzywych zapominania. Wyobraźcie sobie to zaskoczenie! Kiedy wpadłem na pomysł pierwszego algorytmu spaced repetition, minęło ponad 2 lata, zanim zdecydowałem się zwerbować pierwszego użytkownika. Bez Tomasza Kuehna SuperMemo dla Windows mogłoby powstać 2-4 lata później. Bez Janusza Murakowskiego kluczowy zbiór big data: rejestr historii powtórek w SuperMemo mógłby zostać opóźniony o 1-2 lata. Kiedy incremental reading powstało w 2000 roku, tylko ja wiedziałem, że to coś monumentalnego. Zajęło mi jednak sporo czasu, by w pełni docenić zakres tego faktu. Dziś wiem, że neural creativity jest przełomowym narzędziem, ale wciąż korzystam z niego bez pełnego zaangażowania i rzadziej niż z jego prostszej alternatywy: subset review.

1990: Pierwsza wskazówka

Algorytm SM-17 powstawał przez niemal ćwierć wieku. Przygotowując materiały do tego artykułu, znalazłem w swoim archiwum zdjęcie macierzy o nazwie „new strength” (nowa siła), z wierszami oznaczonymi jako „strength” (siła) i kolumnami oznaczonymi jako „durability” (trwałość). Były to pierwotne nazwy stabilności i odtwarzalności stosowane w latach 1988-1990. Ten dokument, niczym stara skamielina, mówi mi, że pomysł na Algorytm SM-17 musiał narodzić się około 1990 roku.

Rysunek: Zdjęcie macierzy o nazwie „new strength”, z wierszami oznaczonymi jako „strength” i kolumnami oznaczonymi jako „durability”. Były to pierwotne nazwy stabilności i odtwarzalności stosowane w latach 1988-1990. Dokument sugeruje, że pomysł na Algorytm SM-17 musiał narodzić się około 1990 roku.

Od samych początków two component model of memory chciałem zbudować wokół niego algorytm. Moja motywacja była zawsze połowiczna. SuperMemo działało wystarczająco dobrze, by traktować to jedynie jako ciekawe ćwiczenie teoretyczne. Dziś jednak widzę, że algorytm dostarcza danych dla modelu, który może odpowiedzieć na wiele pytań dotyczących pamięci. Niektóre z tych pytań w ogóle nigdy nie zostały zadane (np. o podskładniki stabilności). Jest to też podobne do samego SuperMemo. Zawsze zmagało się ono z tym, że trudno docenić jego wartość w teorii. To praktyczne efekty najłatwiej zmieniają zdanie dobrych uczniów.

1993: Rozproszenie uwagi

W 1993 roku moje własne myślenie było hamulcem postępu. Dalsze badania nad algorytmem miały znaczenie drugorzędne. Nie przyniosłyby aż takiej korzyści użytkownikowi. Modelowanie pamięci było czystymi badaniami podstawowymi. Zobacz: Daremność dopracowywania algorytmu. W tamtym czasie to Murakowski najmocniej naciskał na postęp. Wciąż powtarzał, że ” SuperMemo wciąż wycieka danymi wartymi Nagrody Nobla„. Krzyczał na mnie słowami graniczącymi z obelgą: ” wdróż wreszcie historie powtórek!„. Była to po prostu bitwa priorytetów. Mieliśmy nową wersję SuperMemo dla Windows, pojawienie się danych audio, pojawienie się technologii CD-ROM, pojawienie się poważnej konkurencji, w tym w kraju, gdzie Young Digital Poland ubiegł nas o mniej więcej miesiąc w wyścigu o tytuł pierwszego wydawnictwa na CD-ROM w naszym kraju. Wciąż jednak pielęgnujemy roszczenie do bycia pierwszym CD-ROM-em na Windows w Polsce. Choć faktycznie został wyprodukowany w USA, treść w całości powstała w Polsce, w 100% jako czyste polskie SuperMemo.

1996: Kapitał wysokiego ryzyka

W lutym 1996 roku usunięto wszystkie przeszkody i SuperMemo w końcu zaczęło zbierać pełne dane historii powtórek (wcześniej było to opcjonalne, by nie zatykać słabszych systemów niepotrzebnymi danymi). Moje własne dane sięgają teraz w dużej mierze wstecz do lat 1992-1993, ponieważ wszystkie elementy w lutym 1996 roku miały wciąż łatwo zidentyfikowalną ostatnią powtórkę na podstawie interwału. Mam nawet sporą liczbę historii sięgających 1987 roku. W swoim natręctwie do danych ręcznie zapisywałem postępy niektórych konkretnych elementów i później byłem w stanie uzupełnić historie powtórek poprzez ręczną edycję. Moje własne dane są zatem obecnie najdłuższą, ciągłą historią powtórek w spaced repetition, jaka istnieje. 30 lat danych z ogromnym pokryciem dla 22-25 lat nauki. To istna kopalnia złota.

29 września 1996 roku, w niedzielę wieczorem, poświęciłem dwie godziny na naszkicowanie nowego algorytmu opartego na two component model of memory. Wszystko wydawało się bardzo proste i wymagające niewiele pracy. SuperMemo dopiero zaczęło zbierać historie powtórek, więc powinienem mieć pod ręką mnóstwo danych. Nasza uwaga przeniosła się z kursów multimedialnych, takich jak Cross Country, na łatwiejsze projekty, takie jak Advanced English. Wydawało się, że to dobry moment. Niestety następnego dnia otrzymaliśmy telefon od Antka Szepieńca, który rozmawiał z inwestorami w Ameryce, marząc o uczynieniu SuperMemo World pierwszą polską spółką na NASDAQ. Z entuzjazmem prorokował, że jest duża szansa na zastrzyk kilku milionów dolarów w nasze przedsięwzięcie z funduszu venture capital. To natychmiast rzuciło mnie w nowe role i nowe obowiązki. Z rzeczy złych – opóźniło to Algorytm SM-17 o dwie dekady. Z rzeczy dobrych – koncepcja Hypermedia SuperMemo, znana też jako Knowledge Machine, znana też jako incremental reading, zyskała ogromny rozpęd zarówno w teorii, jak i w projektowaniu. Praktyka znów wzięła górę nad nauką.

2005: Podejście teoretyczne

W 2000 roku, wraz z incremental reading, a następnie w 2006 roku wraz z kolejką priorytetową, potrzeba opóźniania powtórek oraz potrzeba wcześniejszego przeglądu dramatycznie wzrosły. Wymagało to ogromnych odstępstw od optimum. Stary Algorytm SM-8 nie radził sobie z tym skutecznie. Funkcja optymalnych interwałów musiała zostać rozszerzona o wymiar czasu (tj. odtwarzalność). Potrzebowaliśmy funkcji wzrostu stabilności.

Jedną z bardzo interesujących dynamik postępu w nauce jest to, że rozgałęzione eksploracje rzeczywistości często wymagają krytycznej masy mózgów, by przepchnąć nowy pomysł. W 2005 roku Biedalak i inni byli w dużej mierze poza tym obiegiem, zajęci promowaniem SuperMemo jako biznesu. Byłem w drodze do wielkiego przełomu w incremental reading: obsłudze przeciążenia. Wraz z pojawieniem się Wikipedii nagle okazało się, że import ogromnych ilości wiedzy wymaga niewiele wysiłku, ale wiedza o niskim priorytecie może łatwo przytłoczyć wiedzę o wysokim priorytecie samą swoją objętością. W ten sposób bogactwo podważa jakość wiedzy. Moim rozwiązaniem tego problemu było zastosowanie kolejki priorytetowej. Miała ona zostać wdrożona dopiero w 2006 roku. Tymczasem Gorzelańczyk i Murakowski byli zajęci własnymi projektami naukowymi.

Gorzelańczyk uczestniczył w konferencji cybernetycznej w Krakowie, inspirowanej przez moją wczesną inspirację: prof. Ryszarda Tadeusiewicza. Na potrzeby swojej prezentacji w 2005 roku Gorzelańczyk zaproponował, byśmy zaktualizowali nasz model pamięci. Wobec zalewu nowych danych w biologii molekularnej, dekada od ostatniego sformułowania mogła zrobić ogromną różnicę. Pomyślałem, że moje pomysły na znalezienie wzoru na budowanie stabilności pamięci byłyby dobrym uzupełnieniem. Ta początkowa iskra szybko nabrała rozpędu w wymianie myśli z Murakowskim. Bez tych trzech umysłów działających w zgodzie i podsycających entuzjazm, kolejny oczywisty krok nie zostałby wykonany. Wykorzystując narzędzia zastosowane po raz pierwszy w modelu nauki przerywanej z 1990 roku, postanowiłem znaleźć funkcję dla wzrostu stabilności. Gdy tylko mój komputer zaczął przetwarzać dane, zaczęły napływać seryjnie ciekawe okruchy informacji. Zadanie miało zająć zaledwie kilka wieczorów. Ostatecznie zajęło pół zimy.

2013: Ponowne przebudzenie szerszej wizji

Podobnie jak w 2005 roku, w 2013 musiała narosnąć krytyczna masa mózgów, by przepchnąć nowe rozwiązania. Muszę jednak przyznać, że największą zasługę ma tu Biedalak. To on przechylił szalę. W nieustającej walce o uznanie przywództwa i pionierskich roszczeń SuperMemo, zażądał, byśmy kontynuowali ten projekt, i wysłał mnie na krótki, twórczy urlop, bym go dokończył. Miał to być tylko jeden zimowy projekt, a okazał się dwuletni i wciąż pochłania sporo mojego czasu.

9 listopada 2014 roku odbyliśmy 26-kilometrowy spacer, by omówić nowy algorytm. Walktalking to nasza najlepsza forma burzy mózgów, która zawsze przynosi wspaniałe owoce. Następnego dnia spotkaliśmy się na basenie razem z Leszkiem Lewocem, czcicielem big data, który zawsze ma mnóstwo fantastycznych pomysłów (poznałem Lewoca po raz pierwszy w 1996 roku, a jego żona była prawdopodobnie użytkowniczką SuperMemo już w 1992 roku [do zweryfikowania!]). Proste wnioski z tej burzy mózgów sprowadzały się do wykorzystania two component model of memory w celu uproszczenia podejścia do algorytmu, uproszczenia terminologii i uczynienia jej bardziej przyjazną człowiekowi (koniec z A-FactoramiU-FactoramiR-Factorami itd.).

Wzrost stabilności pamięci wraz z powtórką

Aby zrozumieć Algorytm SM-17, pomocne jest zrozumienie obliczeń użytych do wyznaczenia wzoru na wzrost stabilności pamięci. W 2005 roku naszym celem było znalezienie funkcji wzrostu stabilności dla dowolnego dopuszczalnego poziomu R i S: SIncf(R,S). Cele i narzędzia były dość podobne do tych zastosowanych w poszukiwaniu modelu nauki przerywanej (1990).

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Do 2005 roku nie byliśmy w stanie sformułować uniwersalnego wzoru łączącego powtórkę ze wzrostem stabilności pamięci. Algorytmy rozkładania powtórek opierały się na ogólnym rozumieniu tego, jak wzrasta stabilność, gdy stosowane są tzw. optymalne interwały między powtórkami (definiowane jako interwały dające znany wskaźnik przypomnienia, zwykle przekraczający 90%). Termin optymalny interwał odnosi się do zastosowania interwału w nauce. Wspomniane algorytmy rozkładania powtórek pozwalają też na wyznaczenie dokładnej funkcji wzrostu stabilności dla optymalnych interwałów w formie macierzowej. Jednak niewiele wiadomo było o wzroście stabilności dla niskich poziomów odtwarzalności (tj. gdy interwały nie są optymalne). Dzięki danym zebranym za pomocą SuperMemo możemy teraz spróbować wypełnić tę lukę. Choć SuperMemo zostało zaprojektowane tak, by stosować optymalne interwały w nauce, w rzeczywistości użytkownicy często są zmuszeni opóźniać powtórki z różnych powodów (takich jak wakacje, choroba itd.). Zapewnia to znaczną dawkę powtórek o niższej odtwarzalności niemal w każdym zbiorze materiału do nauki. Ponadto w 2002 roku SuperMemo wprowadziło koncepcję powtórki w połowie interwału, co umożliwia skrócenie interwałów między powtórkami. Choć udział powtórek w połowie interwału w dowolnym zbiorze danych jest bardzo mały, przy wystarczająco dużych próbkach danych liczba przypadków powtórek z bardzo niską i bardzo wysoką odtwarzalnością powinna umożliwić uogólnienie wniosku o wzroście stabilności pamięci z odtwarzalności 0,9 na pełny zakres odtwarzalności.

Aby optymalnie budować stabilność pamięci poprzez naukę, musimy znać funkcję optymalnych interwałów, lub, alternatywnie, funkcję wzrostu stabilności ( SInc). Funkcje te przyjmują trzy argumenty: stabilność pamięci (S)odtwarzalność pamięci (R) oraz trudność wiedzy (D). Tradycyjnie SuperMemo zawsze skupiało się na wymiarach S i D, ponieważ utrzymywanie wysokiej odtwarzalności jest głównym kryterium procedury optymalizacyjnej stosowanej przy obliczaniu interwałów między powtórkami. Skupienie na S i D wynikało z praktycznych zastosowań funkcji wzrostu stabilności. W prezentowanym artykule skupiamy się na S i R, próbując wyeliminować wymiar D poprzez analizę „czystej wiedzy”, tj. niezłożonych śladów pamięciowych charakteryzujących wiedzę łatwą do nauczenia się. Wyeliminowanie wymiaru D ułatwia nasze teoretyczne rozważania, a wnioski można później rozszerzyć na złożone ślady pamięciowe i wiedzę uznawaną za trudną do nauczenia się. Innymi słowy, przechodząc od praktyki do teorii, przesuwamy naszą uwagę z pary (S,D) na parę (S,R). Zgodnie z tym rozumowaniem wszystkie zbadane zbiory danych zostały przefiltrowane pod kątem trudności elementów. Jednocześnie szukaliśmy możliwie największych zbiorów, w których reprezentacja elementów o niskiej odtwarzalności byłaby wystarczająco duża w wyniku opóźnień w powtarzaniu (z naruszeniem optymalnego rozłożenia powtórek w czasie). Opracowaliśmy dwuetapową procedurę, którą wykorzystano do zaproponowania symbolicznego wzoru na wzrost stabilności dla różnych poziomów odtwarzalności w zbiorach danych charakteryzujących się niską i jednolitą trudnością (tzw. zbiorach dobrze sformułowanej wiedzy, łatwej do zapamiętania). Dobrze sformułowany i jednolity materiał do nauki ułatwia wyodrębnienie czystego procesu konsolidacji pamięci długotrwałej poprzez powtarzanie. Jak omówiono w innym miejscu tego artykułu, źle sformułowana wiedza skutkuje superpozycją niezależnych procesów konsolidacji i nie nadaje się do przedstawionej analizy.

Obliczanie dwuetapowe

W SuperMemo 17 możliwe jest przejście przez pełny zapis historii powtórek w celu zebrania danych o wzroście stabilności. Umożliwia to narysowanie graficznej reprezentacji macierzy SInc[]. Ta macierz może następnie zostać wykorzystana w próbie znalezienia symbolicznej aproksymacji funkcji wzrostu stabilności. To samo rozumowanie zastosowano w 2005 roku. Procedura była jednak dużo prostsza. Może to następnie posłużyć do lepszego zrozumienia Algorytm SM-17:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Dwuetapowa procedura wyznaczania funkcji wzrostu stabilności pamięci SInc:

  • Krok 1: Wykorzystanie macierzowej reprezentacji SInc oraz procedury iteracyjnej w celu minimalizacji odchylenia Dev między ocenami w rzeczywistym procesie nauki (dane) a ocenami przewidywanymi przez SIncDev jest definiowane jako suma R-Pass w sekwencji powtórek danego fragmentu wiedzy, gdzie R to odtwarzalność, a Pass wynosi 1 dla ocen pozytywnych i 0 dla ocen negatywnych
  • Krok 2: Wykorzystanie algorytmu wspinaczkowego (hill-climbing) do rozwiązania problemu najmniejszych kwadratów w celu oceny kandydatów symbolicznych dla SInc, którzy najlepiej dopasowują się do macierzy SInc uzyskanej w Kroku 1

Obliczanie wzrostu stabilności

Macierz wzrostu stabilności ( SInc[]) obliczono w Kroku 1. W 2005 roku mogliśmy przyjąć dowolną początkową, hipotetyczną, wiarygodną wartość SInc. Dziś, znając przybliżoną naturę tej funkcji, możemy przyspieszyć ten proces i uczynić go nieiteracyjnym (patrz Algorytm SM-17).

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Zdefiniujmy procedurę obliczania stabilności pamięci dla danego wzorca powtarzania. Procedura ta może być użyta do obliczenia stabilności na podstawie znanych ocen uzyskanych w nauce (wariant praktyczny) oraz do obliczenia stabilności wyłącznie na podstawie czasowania powtórek (wariant teoretyczny). Jedyna różnica między nimi polega na tym, że wariant praktyczny pozwala na korektę stabilności w wyniku stochastycznego zapominania odzwierciedlonego w ocenach negatywnych.

W dalszych fragmentach będziemy stosować następującą notację:

  • S(t) – stabilność pamięci w czasie t
  • S[r] – stabilność pamięci po r tej powtórce (np. S[1] oznacza stabilność pamięci po nauczeniu się nowego fragmentu wiedzy)
  • R(S,t) – odtwarzalność pamięci dla stabilności S i czasu t (wiemy, że R=exp -k*t/S oraz że k=ln(10/9))
  • SInc(R,S) – wzrost stabilności w wyniku powtórki dla odtwarzalności R i stabilności S taki, że SInc(R(S,t),S(t))=S(t )/S(t’)=S[r]/S[r-1] (gdzie: t’ i t oznaczają czas powtórki odpowiednio przed i po konsolidacji pamięci, przy czym t -t’ jest nieodróżnialne od zera)

Naszym celem jest znalezienie funkcji wzrostu stabilności dla dowolnego dopuszczalnego poziomu R i S: SIncf(R,S).

Jeśli przyjmiemy dowolną wiarygodną wartość początkową SInc(R,S) i użyjemy S[1]=S 1, gdzie S 1 to stabilność wyznaczona z funkcji zaniku pamięci po pierwszym kontakcie z powtórką (dla optymalnego interwału między powtórkami), to dla każdej historii powtórek możemy obliczyć S za pomocą następującej iteracji:

r:=1;
S[r]:=S1
repeat
 t:=Interval[r]; // where: Interval[r] is taken from a learning process (practical variant) or from the investigated review pattern (theoretical variant)
 Pass:=(Grade[r]>=3); // where: Grade[r] is the grade after the r-th interval (practical variant) or 4 (theoretical variant)
 R:=Ret(S[r],t);
 if Pass then
    S[r+1]:=S[r]*SInc[R,S[r]]
    r:=r+1;
else begin
   r:=1;
   S[r]:=S1;
   end;
until (r is the last repetition)

Algorytm SM-8 możemy użyć wykresu pierwszego interwału do wyznaczenia S 1, który staje się coraz krótszy po każdej ocenie negatywnej.

Rozpoczynamy proces iteracyjny od hipotetycznej wartości początkowej macierzy SInc[R,S], np. z wszystkimi wpisami dowolnie ustawionymi na E-Factor jak w Algorytm SM-2.

Możemy następnie kontynuować stosowanie powyższej procedury na istniejących danych historii powtórek, aby obliczyć nową wartość SInc[R,S], która daje mniejsze odchylenie od ocen uzyskanych w rzeczywistym procesie nauki (w tym celu wykorzystujemy różnice R-Pass).

Stopniowe usprawnienia są możliwe, jeśli zauważymy, że:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

  • jeśli Pass=true i S[r]<Interval[r], to wpis SInc[R,S[r-1]] jest niedoszacowany (i można go skorygować w kierunku Interval[r]/S[r]* SInc[R,S[r-1]])
  • jeśli Pass=false i S[r]>Interval[r], to wpis SInc[R,S[r-1]] jest przeszacowany

Możemy iterować po SInc[], aby stopniowo przybliżać jego wartość do zgodności z ocenami uzyskanymi w procesie nauki. Takie podejście umożliwia dojście do tej samej ostatecznej wartości SInc[R,S] niezależnie od pierwotnej wartości SInc[R,S] ustawionej przy inicjalizacji

Algorytm SM-17, zamiast powyższego, gwałtownego podejścia przyrostowego, wykorzystujemy rzeczywiste krzywe zapominania, aby uzyskać lepsze oszacowanie odtwarzalności, które można następnie wykorzystać do skorygowania szacowanej stabilności. Ostateczne oszacowanie stabilności łączy teoretyczną prognozę odtwarzalności, rzeczywisty recall wyznaczony z krzywych zapominania (ważony pod kątem dostępności danych) oraz rzeczywistą ocenę połączoną z interwałem, zgodnie z powyższym rozumowaniem. Łącząc te trzy źródła informacji, Algorytm SM-17 może dostarczać oszacowania stabilności/interwału bez konieczności wielokrotnego iterowania po macierzy SInc[].

Symboliczny wzór na wzrost stabilności

Po wielu iteracjach uzyskujemy wartość SInc minimalizującą błąd. Procedura jest zbieżna. Dysponując macierzą wzrostu stabilności, możemy poszukać symbolicznego wzoru wyrażającego wzrost stabilności.

Zależność wzrostu stabilności od S

Zgodnie z oczekiwaniami, SInc maleje wraz ze wzrostem S :

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

W Kroku 2 wykorzystamy macierz SInc[R,S] uzyskaną tutaj, aby otrzymać symboliczny wzór dla SInc.

Krok 2 – Znalezienie SInc jako wzoru symbolicznego

Możemy teraz użyć dowolnego algorytmu spadku gradientowego, aby ocenić kandydatów symbolicznych dla SInc, którzy najlepiej dopasowują się do macierzy SInc uzyskanej powyżej.

Analizując macierz SInc, od razu widzimy, że SInc jako funkcja S dla stałego R jest doskonale opisana funkcją potęgową ujemną, jak w przykładowym zbiorze danych poniżej:

Co jest jeszcze bardziej widoczne w wersji log-log tego samego wykresu:

Wniosek o potęgowej zależności między SInc a S powyżej potwierdza wcześniejsze ustalenia. W szczególności spadek R-Factorów wzdłuż kategorii powtórek w SuperMemo zawsze najlepiej przybliżała funkcja potęgowa

Zależność wzrostu stabilności od R

Zgodnie z przewidywaniami wynikającymi z efektu rozłożenia w czasieSInc jest większy dla niższych poziomów R . Warto jednak zauważyć, że procedura zastosowana w 2005 roku mogła wprowadzić artefakt: przetrwanie śladu pamięciowego w czasie wnosiłoby liniowo wkład do nowego szacunku stabilności. Jest to problematyczne ze względu na stochastyczną naturę zapominania. Dłuższe przetrwanie wspomnień może być zatem kwestią przypadku. W Algorytmie SM-17 do oszacowania stabilności wykorzystuje się więcej dowodów, a interwał przetrwania jest ważony razem ze wszystkimi innymi dowodami.

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Gdy szukamy funkcji odzwierciedlającej zależność SInc od R dla stałego S, widzimy więcej szumu w danych, ponieważ SuperMemo daje znacznie mniej trafień przy niskim R (jego algorytm zwykle stara się osiągnąć R>0,9). Niemniej jednak, po zbadaniu wielu zbiorów danych, doszliśmy do nieco zaskakującego wniosku, że SInc rośnie wykładniczo wraz ze spadkiem R (patrz dalej, jak ten wzrost przekłada się na niemal liniową zależność między SInc a czasem). Skala tego wzrostu jest większa niż oczekiwano i powinna dostarczyć kolejnego dowodu na siłę efektu rozłożenia w czasie. Wniosek ten powinien mieć poważny wpływ na strategie nauki.

Oto przykładowy zbiór danych SInc jako funkcji R dla stałego S. Widać, że SInc=f(R) można dość dobrze przybliżyć ujemną funkcją wykładniczą:

Oraz wersja semi-log tego samego wykresu z liniową linią trendu przecinającą oś w punkcie 1:

Co ciekawe, wzrost stabilności dla odtwarzalności równej 100% może być mniejszy niż 1. Niektóre badania molekularne wskazują na zwiększoną labilność wspomnień w momencie powtórki. To kolejny dowód na to, że nadmierne wkuwanie (cramming) może zaszkodzić nie tylko poprzez zbędne zużycie czasu.

Zależność wzrostu stabilności od odtwarzalności (2018)

Mimo wszystkich różnic algorytmicznych i artefaktów, zależność wzrostu stabilności od odtwarzalności dla dobrze sformułowanej wiedzy jest niemal identyczna z tą wyznaczoną z danych powstałych 13 lat później dzięki Algorytmowi SM-17.

Przypomnijmy, że w SuperMemo wykorzystujemy krzywe zapominania, aby uzyskać lepsze oszacowanie odtwarzalności. Jest to następnie wykorzystywane do skorygowania szacowanej stabilności. Łącząc kilka źródeł informacji, Algorytm SM-17 może zapewnić dokładniejsze oszacowania stabilności. Wciąż istnieje stary artefakt polegający na tym, że przetrwanie śladu pamięciowego wnosi liniowy wkład do nowej stabilności. Ten artefakt można sparametryzować i odważyć. Jednak za każdym razem, gdy SuperMemo próbuje to zrobić, jego wskaźniki wydajności spadają.

Mimo wszystkich usprawnień i znacznie większych zbiorów danych (zwłaszcza dla niskiego R), zależność wzrostu stabilności od odtwarzalności dla łatwych elementów wydaje się niezmienna.

Ten idealny obraz załamuje się, gdy do miksu dodamy trudną wiedzę. Wynika to częściowo z ograniczenia wspomnianego wyżej artefaktu długiego przetrwania. Z tego powodu nowe wersje SuperMemo nie polegają na tym pozornie dobrze potwierdzonym wzorze pamięciowym:

Rysunek: Siła pamięci długotrwałej zależy od momentu powtórki. W przypadku dobrze sformułowanej wiedzy długie opóźnienia w powtórce dają duży wzrost stabilności pamięci. Optymalna powtórka powinna równoważyć ten wzrost z prawdopodobieństwem zapomnienia. Na przedstawionym wykresie zależność między wzrostem stabilności a logarytmem odtwarzalności (log(R)) jest liniowa. Log(R) wyraża czas. Do narysowania tego wykresu wykorzystano niemal 27 000 powtórek. Obserwowana stabilność pamięci przed powtórką wahała się od 2 do 110 dni. Maksymalny, niemal 10-krotny wzrost stabilności zaobserwowano dla najniższych poziomów odtwarzalności. Macierz wzrostu stabilności wygenerowano za pomocą Algorytmu SM-17 w SuperMemo 17

Wzór na wzrost stabilności pamięci

Dysponując macierzą wzrostu stabilności, mogliśmy poszukać symbolicznego wyrażenia dla wzrostu stabilności. Równanie znalezione w 2005 roku będzie dalej nazywane Eqn. SInc2005. Zauważ, że wzory stosowane w Algorytmie SM-17 różnią się:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Dla stałej trudności wiedzy zastosowaliśmy dwuwymiarowe dopasowanie powierzchni, aby uzyskać symboliczny wzór na SInc. Użyliśmy zmodyfikowanego algorytmu Levenberga-Marquardta z wieloma możliwymi kandydatami na funkcje symboliczne, które mogłyby dokładnie opisać SInc jako funkcję S i R. Algorytm został wzbogacony o pętlę losowych restartów, aby zapewnić znalezienie globalnego maksimum. Najlepsze wyniki uzyskaliśmy z następującym wzorem (Eqn. SInc2005):

SInca-b *e cRd

gdzie:

  • SInc – wzrost stabilności pamięci w wyniku udanej powtórki (iloraz stabilności S przed i po powtórce)
  • R – odtwarzalność pamięci w momencie powtórki, wyrażona jako prawdopodobieństwo przypomnienia w procentach
  • S – stabilność pamięci przed powtórką, wyrażona jako interwał dający R=0,9
  • abcd – parametry, które mogą się nieznacznie różnić dla różnych zbiorów danych
  • e – podstawa logarytmu naturalnego

Parametry abcd różniłyby się nieznacznie dla różnych zbiorów danych, co może odzwierciedlać zmienność interakcji użytkownik-wiedza (tj. różne zestawy materiału do nauki prezentowane różnym użytkownikom mogą skutkować odmiennym rozkładem trudności, a także odmiennymi kryteriami oceniania, co wszystko może wpływać na ostateczny pomiar). Dla ilustracji, średnia wartość abcd wyliczona z kilku zbiorów danych wynosi: a=76b=0.023c=-0.031d:=-2, przy czym c zmienia się bardzo mało między zbiorami, a a i d wykazują stosunkowo większą wariancję. Zobacz przykład: How to use the formula for computing memory stability?

Wnioski wynikające ze wzoru na wzrost stabilności

Powyższy wzór na wzrost stabilności różni się nieznacznie od późniejszych ustaleń. Na przykład wydaje się niedoszacowywać spadku wzrostu stabilności wraz z S (niskie b). Można go jednak wykorzystać do wyprowadzenia wielu interesujących wniosków.

Liniowy wzrost wartości powtórki w czasie

Ze względu na efekt rozłożenia w czasie potencjał wzrostu stabilności pamięci stale rośnie w czasie w sposób niemal liniowy:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Powyższy wzór dawał wartości SInc różniące się średnio o 15% od tych uzyskanych z danych w formie macierzy SInc na jednorodnych zbiorach danych (tj. zbiorach historii powtórek wybranych dla: jednego studenta, jednego typu wiedzy, niskiej trudności i wąskiego zakresu A-Factorów).

Wraz ze wzrostem interwału między powtórkami, mimo podwójnego potęgowania w czasie, SInc rośnie wzdłuż niemal liniowej krzywej sigmoidalnej (obie operacje ujemnego potęgowania znoszą się wzajemnie):

Rysunek: Wykres zmian SInc w czasie. Ten wykres wygenerowano dla S=240 przy użyciu równania SInc2005.

Niemal liniowa zależność SInc od czasu znajduje odzwierciedlenie w SuperMemo poprzez obliczanie nowego optymalnego interwału jako iloczynu O-Factora i faktycznie zastosowanego interwału między powtórkami, a nie wcześniej obliczonego optymalnego interwału (w SuperMemo O-Factory to wpisy dwuwymiarowej macierzy OF[S,D], które reprezentują SInc dla R=0,9).

Oczekiwany wzrost stabilności pamięci

Optymalizacja nauki może stosować różne kryteria. Możemy optymalizować pod kątem konkretnego poziomu recall lub pod kątem maksymalizacji wzrostu stabilności pamięci. W obu przypadkach pomocne jest zrozumienie oczekiwanego poziomu wzrostu stabilności.

Zdefiniujmy oczekiwaną wartość wzrostu stabilności pamięci jako:

E( SInc)= SInc*R

gdzie:

  • R – odtwarzalność
  • SInc – wzrost stabilności
  • E( SInc) – oczekiwany probabilistyczny wzrost stabilności (tj. wzrost zdefiniowany przez SInc i pomniejszony o możliwość zapomnienia)

Wzór na wzrost stabilności wyprowadzony w 2005 roku przyniósł spore zaskoczenie. Twierdziliśmy wcześniej, że najlepsze tempo nauki można osiągnąć przy indeksie zapominania wynoszącym 30-40%. Równanie SInc2005 zdawało się wskazywać, że bardzo niskie utrwalenie może dawać całkiem dobre efekty pamięciowe. Z uwagi na niedostatek danych o niskim R w 2005 roku, wnioski te należy traktować z ostrożnością:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Z równania SInc2005 mamy E( SInc)=( a-b *e cRd)*R. Znajdując pochodną d ESInc/dR i przyrównując ją do zera, możemy znaleźć odtwarzalność maksymalizującą oczekiwany wzrost stabilności dla różnych poziomów stabilności:

Rysunek: Oczekiwany wzrost stabilności pamięci E(SInc) jako funkcja odtwarzalności R dla stabilności S wyprowadzona z równania ( SInc2005). Używając terminologii znanej użytkownikom SuperMemo, maksymalny oczekiwany wzrost stabilności pamięci dla krótkich interwałów występuje przy indeksie zapominania równym 60%! Oznacza to również, że maksymalny indeks zapominania dopuszczalny w SuperMemo (20%) daje oczekiwany wzrost stabilności o niemal 80% mniejszy niż maksymalny możliwy (gdybyśmy tylko byli gotowi poświęcić wysokie poziomy utrwalenia).

Rysunek: Oczekiwany wzrost stabilności pamięci E(SInc) jako funkcja odtwarzalności R i stabilności S wyprowadzona z równania SInc2005

Złożoność pamięci w spaced repetition

Stabilność pamięci w spaced repetition zależy od jakości powtórki, która z kolei zależy od złożoności pamięci. Już w 1984 roku wyraziłem to we własnej nauce, w czymś, co później stało się znane jako zasada minimalnej informacji. Dla skutecznej powtórki wiedza musi być prosta. Może tworzyć złożoną strukturę, ale poszczególne wspomnienia podlegające powtórce powinny być atomowe. W 2005 roku znaleźliśmy wzór rządzący powtarzaniem złożonych wspomnień.

Georgios Zonnios był kiedyś dociekliwym nastoletnim użytkownikiem SuperMemo. Dziś jest innowatorem edukacyjnym i bogatym, twórczym uczestnikiem wielu moich pomysłów. Zauważył:

Stabilność we wzorze na stabilność złożonych elementów przypomina rezystancję w obwodzie elektronicznym: wiele równoległych rezystorów pozwala na wycieki prądu

Nawiasem mówiąc, we wczesnych dniach incremental reading, Zonnios niezależnie doszedł do koncepcji incremental writing, co dziś może się wydawać oczywistym krokiem w wykorzystaniu narzędzi incremental reading w twórczości. Ten artykuł również został napisany za pomocą incremental writing.

Tak opisano i przeanalizowano wspomnienia dla złożonych elementów w 2005 roku:

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Trudność w nauce jest determinowana przez złożoność zapamiętywanej informacji. Złożona wiedza powoduje dwa efekty:

  • zwiększoną interferencję z innymi fragmentami informacji
  • trudność w jednolitej stymulacji podskładników śladu pamięciowego w momencie powtórki

Obu składnikom trudności można przeciwdziałać poprzez zastosowanie odpowiedniej reprezentacji wiedzy w procesie nauki.

Zobaczmy, jak złożoność wiedzy wpływa na budowanie stabilności pamięci.

Wyobraźmy sobie, że chcielibyśmy nauczyć się następującego faktu: Maria Skłodowska-Curie była jedyną zdobywczynią Nagrody Nobla z chemii w 1911 roku. Możemy przyjąć dwa podejścia: jedno, w którym wiedza pozostaje złożona, i drugie, z łatwymi sformułowaniami. W wariancie złożonym można by sformułować podwójną lukę (cloze) w celu nauczenia się nazwiska Marii Curie i roku, w którym otrzymała Nagrodę Nobla.

P: […] była jedyną zdobywczynią Nagrody Nobla z chemii w […]
O: Maria Skłodowska-Curie, 1911

W wariancie prostym ta podwójna luka zostałaby podzielona, a polskie nazwisko panieńskie stałoby się opcjonalne i posłużyłoby do stworzenia trzeciej luki:

P: […] była jedyną zdobywczynią Nagrody Nobla z chemii w 1911 roku
O: Maria (Skłodowska-)Curie

P: Maria Skłodowska-Curie była jedyną zdobywczynią Nagrody Nobla z chemii w […] roku
O: 1911

P: Maria […]-Curie była jedyną zdobywczynią Nagrody Nobla z chemii w 1911 roku
O: Skłodowska

Ponadto w wariancie prostym rzetelne podejście do nauki wymagałoby sformułowania jeszcze dwóch luk (cloze), ponieważ Maria Curie była też zdobywczynią Nagrody Nobla z fizyki w 1903 roku (a także innych nagród):

P: Maria Skłodowska-Curie była jedyną zdobywczynią Nagrody Nobla w 1911 roku za […]
O: chemię

P: Maria Skłodowska-Curie była jedyną zdobywczynią […] w 1911 roku
O: Nagrody Nobla (z chemii)

Rozważmy teraz oryginalną, złożoną podwójną lukę. Dla potrzeb argumentacji załóżmy, że zapamiętanie roku 1911 i nazwiska Curie jest jednakowo trudne. Odtwarzalność złożonego śladu pamięciowego (tj. całej podwójnej luki) będzie iloczynem odtwarzalności jego podśladów. Wynika to z ogólnej zasady, że ślady pamięciowe w większości przypadków są w dużej mierze niezależne. Choć zapomnienie jednego śladu może zwiększyć prawdopodobieństwo zapomnienia drugiego, w zdecydowanej większości przypadków, jak dowodzi doświadczenie, odrębne i różne pytania dotyczące tego samego tematu mogą przebiegać jako całkowicie niezależny proces nauki, w którym przypominanie i zapominanie są całkowicie nieprzewidywalne. Zobaczmy, jak traktowanie prawdopodobieństw przypomnienia jako niezależnych zdarzeń wpływa na stabilność złożonego śladu pamięciowego:

(9.1) R=R a*R b

gdzie:

  • R – odtwarzalność binarnego złożonego śladu pamięciowego
  • a i R b – odtwarzalność dwóch niezależnych podskładników śladu pamięciowego (podśladów): a i b

(9.2) R=exp -kt/Sa*exp -kt/Sb=exp -kt/S

gdzie:

  • t – czas
  • k – ln(10/9)
  • S – stabilność złożonego śladu pamięciowego
  • a i S b – stabilności podśladów pamięciowych a i b

(9.3) -kt/S=-kt/S a-kt/S b=-kt(1/S a+1/S b)

(9.4) S=S a*S b/(S a+S b)

Wykorzystaliśmy równanie (9.4) w dalszej analizie złożonych śladów pamięciowych. Oczekiwaliśmy, że jeśli początkowo stabilność podśladów pamięciowych S a i S b znacznie się różniła, kolejne powtórki, zoptymalizowane pod kątem maksymalizacji S (tj. przy kryterium R=0,9), mogłyby pogorszyć stabilność podskładników z powodu nieoptymalnego czasowania powtórki. Pokazaliśmy, że tak nie jest. Podstabilności mają tendencję do zbiegania się w procesie nauki!

Stabilność złożonych wspomnień można wyprowadzić z podstabilności atomowych wspomnień

Zbieżność podstabilności dla złożonych śladów pamięciowych

Łatwo było zasymulować zachowanie złożonych wspomnień w spaced repetition. Ich podstabilności mają tendencję do zbiegania się. Prowadzi to do nieefektywnej powtórki i wolnego narastania stabilności. Dziś możemy pokazać, że na pewnym poziomie złożoności nie da się już budować stabilności pamięci dla długoterminowego utrwalenia. Krótko mówiąc, nie ma sposobu, by zapamiętać książkę inaczej niż tylko poprzez jej nieskończone ponowne czytanie. To daremny proces.

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Jeśli generujemy podwójną lukę, nie mamy tak naprawdę pewności, czy pojedyncza powtórka generuje jednolitą aktywację obu obwodów pamięciowych odpowiedzialnych za przechowywanie dwóch odrębnych fragmentów wiedzy. Załóżmy, że pierwsza powtórka jest jedynym czynnikiem różnicującym dla obu śladów pamięciowych, a reszta procesu nauki przebiega zgodnie z powyższymi wzorami.

Aby zbadać zachowanie stabilności podśladów pamięciowych w ramach wzorca powtarzania zoptymalizowanego pod kątem stabilności złożonej przy kryterium R=0,9, przyjmijmy co następuje:

  • a=1
  • b=30
  • S=S a*S b/(S a+S b) (z równania 9.4)
  • SInca-b *e cRd (z równania SInc2005)
  • złożony ślad pamięciowy jest konsolidowany poprzez powtórkę przy R=0,9, tak że oba podślady są jednakowo dobrze rekonsolidowane (tj. powtórka złożonego śladu ma nie prowadzić do zaniedbania żadnego z podśladów)

Jak widać na poniższym rysunku, stabilność pamięci dla złożonego śladu będzie zawsze mniejsza niż stabilność poszczególnych podśladów; jednak stabilności podśladów zbiegają się.

Rysunek: Zbieżność stabilności dla podśladów pamięciowych powtarzanych według tego samego wzorca powtórek, zoptymalizowanego pod kątem całego złożonego śladu pamięciowego (tj. powtórka następuje, gdy złożona odtwarzalność osiąga 0,9). Oś pozioma reprezentuje liczbę powtórek, a oś pionowa pokazuje logarytm stabilności. Niebieska i czerwona linia odpowiadają stabilności dwóch podśladów, które istotnie różniły się stabilnością po pierwotnej nauce. Czarna linia odpowiada stabilności złożonej (S=S a*S b/(S a+S b)). Rozbieżność między S a a S b samoczynnie się koryguje, jeśli każda powtórka skutkuje jednolitą aktywacją leżącej u podstaw struktury synaptycznej.

Wzrost stabilności złożonej

Ostrzeżenie archiwalne: Dlaczego stosować archiwa dosłowne?

Zastanówmy się teraz, jak bardzo różni się SInc dla stabilności złożonej S oraz dla stabilności podśladów S a i S b? Jeśli założymy identyczną stymulację podśladów pamięciowych i oznaczymy SInc a i SInc b jako i, to dla numeru powtórki r mamy:

SInc a=SInc bi

a[r]=S a[r-1]* i
b[r]=S b[r-1]* i

S[r]=S a[r]*S b[r]/(S a[r]+S b[r])=
=S a[r-1]*S b[r-1]* i 2/(S a[r-1]* i+S b[r-1]* i)=
i*(S a[r-1]*S b[r-1])/(S a[r-1]+S b[r-1)= i*S[r-1]

Innymi słowy:

(11.1) SInc= i=SInc a=SInc b

Powyższe pokazuje, że w przedstawionym modelu wzrost stabilności pamięci jest niezależny od złożoności wiedzy, przy założeniu równej rekonsolidacji podśladów pamięciowych.

Złożony wzrost stabilności jest taki sam jak wzrost stabilności podśladów

2014: Algorytm SM-17

Najnowszy algorytm SuperMemo w swojej konstrukcji może posłużyć do podsumowania własnej filogenezy. Można go też wykorzystać do napisania kontrfaktycznej historii spaced repetition. Gdyby nie było dinozaurów, ludzie mogliby nigdy nie powstać albo wyglądać zupełnie inaczej. Jednak cała dinozaurza gałąź drzewa ewolucyjnego mogłaby zostać z łatwością odcięta, a ludzie pozostaliby bezpieczni na swojej własnej, ssaczej gałęzi.

Podobnie możemy pokazać pozornie deterministyczny łańcuch powiązanych wydarzeń w powstawaniu spaced repetition i Algorytmu SM-17. Można tego użyć, by dowieść, że Biedalak czy Murakowski byli ważniejsi dla historii spaced repetition niż Ebbinghaus. Anki było ważniejsze niż Pimsleur. Gary Wolf miał większy wpływ niż William James.

Jednak maksymalny wpływ spaced repetition dopiero się okaże, a splot różnych sił może jeszcze przetasować te wczesne wpływy. W szczególności, wobec eksplozji uczciwej konkurencji, centralną rolę SuperMemo można utrzymać jedynie dzięki dalszym innowacjom (zob. np. neural creativity).

Oto jak wyjaśniłbym cały Algorytm SM-17, posługując się elementami historii opisanymi w tym artykule:

I tak, krok po kroku, Algorytm SM-17 wyłonił się na szczycie drzewa ewolucyjnego spaced repetition.

Wykładniczy wzrost popularności spaced repetition

Powolny start Algorytmu SM-2

Algorytm SM-2 został po raz pierwszy użyty w nauce 13 grudnia 1987 roku i z drobnymi modyfikacjami przetrwał do dziś w wielu aplikacjach. SuperMemo porzuciło ten algorytm w 1989 roku, jednak wciąż pojawia się on w nowych aplikacjach z częstotliwością sięgającą chyba kilku nowych wdrożeń miesięcznie. Dawno straciłem rachubę. Niektóre z tych mutacji przeczą zasadom SuperMemo a mimo to wciąż noszą jego etykietę. Najczęściej naruszenia polegają na odstępach mierzonych w minutach albo na połowieniu odstępów przy nieudanej ocenie (styl Leitnera). Te mutacje prowadzą też do pewnych fałszywych informacji na temat SuperMemo. Warto zauważyć, że właśnie fałszywe informacje były jedną z głównych motywacji do napisania tego artykułu.

Gdy Duolingo w swojej publikacji mówi o ręcznie dobranych parametrach w odniesieniu do SuperMemo, musi to wynikać z opierania się na jakichś starszych tekstach, być może z drugiej ręki, być może napisanych w odniesieniu do Algorytmu SM-2. W końcu SuperMemo było już całkiem dobrze dostosowywalne od 1989 roku, a Algorytm SM-17 jest najbardziej dostosowywalnym okazem, jaki istnieje.

Część winy za dezinformację ponoszę ja sam, ponieważ przestałem przejmować się recenzją naukową i pozwoliłem informacjom żyć własnym życiem w sieci, nie dokładając wystarczających starań, by obalać mity.

Pierwszymi aplikacjami wykorzystującymi Algorytm SM-2 były niekomercyjne odgałęzienia SuperMemo dla Atari w latach 80. Później drobne klony SuperMemo (np. na komputery kieszonkowe) sięgały po warianty Algorytm SM-2 z różnymi własnymi innowacjami, z których wiele dawało bolesną lekcję na temat skutków lekceważenia pamięci w imię cramming.

Do 2001 roku SuperMemo World było już o pięć głównych generacji algorytmu do przodu. Wszystkie główne linie oprogramowania, w tym on-line SuperMemo i SuperMemo for Windows, przyjęły warianty algorytmu oparte na danychsupermemo.net stało się jedną z pionierskich platform e-learningowych (dziś ewoluującą w supermemo.com ). SuperMemo for Windows zapoczątkowało rozwiązania z zakresu self-learning, takie jak incremental reading czy neural creativity. Tymczasem Algorytm SM-2 stał się łatwym pierwszym wyborem dla innych twórców.

1998: publikacja i przyspieszenie

10 maja 1998 roku Algorytm SM-2 został udostępniony publicznie i opublikowany w sieci tutaj.

Mnemosyne jako pierwsze sięgnęło po to narzędzie jako odgałęzienie sieci neuronowej MemAid, stworzonej w 2003 roku. Od 2006 roku Mnemosyne wciąż zbiera dane historii powtórek, działając na mutacji Algorytmu SM-2. Jako darmowa, wieloplatformowa aplikacja, Mnemosyne szybko dotarło do szerokiej bazy użytkowników, np. na Linuksie czy wśród tych, którzy potrzebują wsparcia dla Latexa.

Anki narodziło się 6 października 2006 roku. Opierało się na Algorytmie SM-2 i przez niemal dekadę zapewniało algorytmowi najszerszy zasięg. Wciąż ma się dobrze. Anki wprowadziło mnóstwo innowacji do swojego algorytmu, ale odmówiło wyjścia poza jego podstawowe zasady (zob.: krytyka SM3+).

W 2007 roku, gdy poznaliśmy Gary’ego Wolfa, SuperMemo wyglądało jak smutna, opuszczona wyspa, co nasuwało pytanie: skoro to takie dobre, dlaczego inni nie próbują skopiować algorytmu. Anki i Mnemosyne były wtedy mało znane. Artykuł Wolfa w Wired z 2008 roku wywołał niezły napływ twórców oprogramowania edukacyjnego, którzy zaczęli wdrażać jakąś formę spaced repetition. Algorytm SM-2 wydawał się nisko wiszącym owocem, a jego ekspansja przyspieszyła. Wielu użytkowników SuperMemo twierdzi, że nigdy nie odkryliby programu, gdyby nie artykuł Wolfa w Wired. Krzysztof Biedalak lubi jednak żartować, że artykuł Wolfa faktycznie był przełomem. Nie dla SuperMemo jednak. Po prostu otworzył śluzy dla konkurencji, która ruszyła do dziedziny spaced repetition.

2008: eksplozja

Quizlet zostało napisane w 2005 roku i wydane w 2007. Początkowo było typowym narzędziem do cramming, jednak do 2015 roku, wspierane kapitałem wysokiego ryzyka, Quizlet zapowiedziało większy nacisk na długoterminowe zapamiętywanie, co zaowocowało przyjęciem wariantu Algorytmu SM-2. Do 2017 roku zdecydowali się wykorzystać uczenie maszynowe, by wdrożyć nowy algorytm, który miał czerpać z miliardów zebranych rekordów powtórek. Krótki epizod SuperMemo w Quizlet musiał dać mutacji Algorytmu SM-2 ekspozycję na największą jak dotąd bazę użytkowników. W tamtym czasie Quizlet informował o dotarciu do co drugiego ucznia szkoły średniej w USA.

Nowe podejście przyjęte przez Quizlet opiera się na solidnych podstawach i może dać naprawdę mocne narzędzie, jednak bardzo rozczarowuje motywacja stojąca za przejściem na lepsze algorytmy: ” Cramming jest rzeczywistością dla wielu uczniów, a my chcemy pomóc im jak najlepiej wykorzystać czas nauki, niezależnie od tego, jak go spędzają„. Algorytm SM-17 daje uczniom więcej swobody: (1) przyspieszenie nauki, gdy zachodzi taka potrzeba, lub (2) odłożenie materiału o niskim priorytecie. Zawsze jednak odradzamy cramming jako złą praktykę. To szkoły muszą dostosować się do ludzkiego mózgu, a nie odwrotnie. To uparte stanowisko w kwestii efektywności nauki szkodzi SuperMemo, ale nigdy się nie zmieni.

To odejście Quizlet w 2017 roku od prostego harmonogramu powtórek to prawdopodobnie moment, w którym stary, zasłużony algorytm minął szczyt swojej popularności. Nowi konkurenci będą musieli sięgnąć po inteligentne narzędzia albo, być może, po licencjonowanie Algorytmu SM-17. To dobra wiadomość.

Ile osób korzysta ze spaced repetition?

W połowie 1991 roku jeden z moich kolegów ze studiów próbował dodać mi otuchy. Przewidział, że odniesiemy sukces i uda nam się sprzedać 10-20 kopii SuperMemo. Ja byłem większym optymistą. W 1993 roku przewidywałem milion użytkowników do 1996 roku. W 1994 roku polski Enter wspomniał podobny optymizm Marczella Georgiewa:

W ankietach otrzymywanych przez SuperMemo World, gdy pytano, co użytkownicy najbardziej cenią w programie, zdecydowana większość wskazuje jego skuteczność. Oprogramowanie może być w porządku, ale liczą się przede wszystkim wyniki w nauce. A co z niedociągnięciami? Użytkownicy narzekają na jedno czy drugie, najczęściej na to, że nawet w Polsce SuperMemo zawsze pojawia się najpierw w wersji angielskiej. Nie ma jednak jednej wady, która zdecydowanie dominowałaby. Z pewnością nikt nie kwestionuje faktu, że dzięki SuperMemo można uczyć się szybciej i nigdy nie martwić się zapominaniem. Biorąc pod uwagę ten różowy obraz, można by się zastanawiać, dlaczego SuperMemo nie sprzedało się jeszcze w milionach egzemplarzy na całym świecie. Marczello Georgiew, dyrektor marketingu w SuperMemo World, zaproponował przypomnieć sobie problemy, jakie miał Graham Bell, próbując wprowadzić swoją zabawną maszynę do rozmawiania przez drut, albo to, jak pesymistyczne były przewidywania branżowych futurologów co do ekspansji zanieczyszczającego powietrze mechanicznego konia. Następnie dodaje z przekonaniem: Wozniakowi zajęło 10 lat, by zamienić konieczność w wynalazek, dajcie nam połowę tego czasu, a my zamienimy jego wynalazek w globalną konieczność.

W mojej prognozie miliona użytkowników pomyliłem się o 3 lata i musiałem wprowadzić rozróżnienie między osobami próbującymi na krótko a aktywnymi użytkownikami. Odsetek aktywnych użytkowników spaced repetition wciąż spadał wraz z szerszym rozpowszechnieniem. W 2007 roku oszacowaliśmy zasięg SuperMemo na 5 milionów, z czego większość stanowili użytkownicy wersji darmowych i zeszytowych (partwork). Z tych 5 milionów tylko 0,4-4,0% było aktywnymi użytkownikami. Mogło to oznaczać zaledwie 20 000 uczniów.

W 2009 roku Gwern Branwen oszacował liczbę aktywnych użytkowników na około 100 000, co wydaje się zgadzać z moimi liczbami. Nie brzmi to zbyt optymistycznie jak na dwie dekady ciężkiej pracy w SuperMemo World.

Przyjrzyjmy się więc bliżej dzisiejszemu zasięgowi spaced repetition. Poniższe szacunki spotkały się ze sporym sceptycyzmem. Zgadzam się, że opierają się w dużej mierze na domysłach. Jednak gdy już znajdziemy się na wykładniczej krzywej wzrostu, nawet duże błędy szacunku niewiele zmieniają. Można przeszacować o 200% i i tak szybko to nadrobić.

Dlatego bez wahania mówię, że wykładniczy wzrost przyjęcia spaced repetition zmierza w kierunku wielkiego B: miliarda użytkowników. Kindle od Amazona dodał spaced repetition do swojej opcji fiszek w Vocabulary Builder. Nawet użytkownicy SuperMemo korzystający z Kindle mogą nic o tym nie wiedzieć. Fiszki połączone z książkami to ogólna idea, która miała zaprowadzić SuperMemo na NASDAQ jeszcze w 1996 roku, gdybyśmy zdołali przekonać inwestorów venture capital, że pomysł ma sens.

Jednak, by osiągnąć miliard użytkowników, potrzebujemy kolejnego przełomu. Pierwszym oczywistym kandydatem, jaki przychodzi na myśl, jest Facebook, który mógłby wpleść spaced repetition w kakofonię interakcji społecznych i uczynić free learning niewidocznym, czyli takim, w którym użytkownicy uczą się, nigdy nie ujawniając takiego zamiaru.

Jeśli sądzisz, że Facebook i spaced repetition to niekompatybilne światy, pomyśl o świecie reklamy. Dziś wszyscy nienawidzimy reklam, bez względu na to, jak dobrze są targetowane. Jednak nachalna strona może zmaksymalizować efekt pamięciowy i zminimalizować irytację (czyli retrievability), stosując spaced repetition. Nawet najbardziej wciągająca reklama telewizyjna zacznie działać na nerwy przy trzecim wyświetleniu. Powtórki rozłożone w czasie mogłyby zapewnić niską retrievability i wysoką retention.

Wreszcie, powtórki rozłożone w czasie mogą zostać przejęte przez złych aktorów. Twórców fałszywych informacji i rzeczy jeszcze gorszych. Szarlatan od public relations mógłby pociągać za sznurki za plecami przywódcy światowego. Mógłby wstrząsać światem w odstępach czasu. Mogłoby to wystawić cały świat na działanie spaced repetition, byśmy na pewno wszyscy pamiętali.

Szczyt tej piramidy jest tak zły, że nawet go nie wymienię. Nie chcę podsuwać złym ludziom żadnych pomysłów.

Moje poniższe szacunki obejmują kilka punktów, które są dość pewne. Pierwszy użytkownik w 1985 roku, drugi w 1987, milion do 2000 roku, i moje żmudne oszacowanie 5 milionów w 2007. Dziś Duolingo deklaruje 200 000 użytkowników. Quizlet deklaruje jeszcze więcej. Wzrost wciąż wykazuje niewiele oznak nasycenia.

Rysunek: Spodziewaliśmy się, że spaced repetition dawno temu zacznie wykazywać oznaki nasycenia. Jednak poprzez transmutację, w pewnym momencie nieuchronnie osiągnie miliard użytkowników. Gdy zostanie zintegrowane z cyfrowym życiem człowieka, dotknie niemal wszystkich. Jeśli moje oszacowanie jest trafne, tempo przyjęcia, wspomagane przez sieć, wciąż wyprzedza telefon, samochód i radio. Nigdy jednak nie sądziliśmy, że da się konkurować z Pokemonami czy Angry Birds. Wzór regresji wykładniczej na wykresie to: Reach=exp((year-1984)*0.63). Czerwona linia wyznaczona przez ten wzór przecina miliard mniej więcej teraz

Dziś, przy niemal zerowej barierze wejścia, wielu uczniów próbuje i rezygnuje po tygodniach, a nawet dniach korzystania. Odsetek aktywnych użytkowników może być bardzo niski. Miliard użytkowników z minimalną nauką to wciąż niewiele nauki. Kolejnym krokiem jest wywołanie zmiany paradygmatu kulturowego, która nada wartość efektywnej, długoterminowej nauce. Musimy zacząć od zmiany systemu szkolnictwa i przyjęcia zasad free learning.

Gdy spaced repetition osiągnie miliard użytkowników, konieczna będzie zmiana paradygmatu kulturowego, by przekształcić samo korzystanie w realne korzyści w postaci długoterminowej, wysokiej jakości nauki

Droga przed nami jest jeszcze bardzo długa.

Podsumowanie badań nad pamięcią

Problem z badaniami nad spaced repetition

Historię badań nad spaced repetition trapiły następujące czynniki:

  • domysły i heurystyki stosowane zamiast matematycznej optymalizacji
  • słaba interakcja między teorią a praktyką – nauka skupiona na prostych eksperymentach, a praktyka na prostych narzędziach
  • niespójność terminologiczna prowadząca do cykli zapominania i ponownego odkrywania!

Powyższe zgadza się z moim rankingiem czynników porażki . Do czasu pojawienia się komputerów osobistych i sieci trudno było wyrwać się z tego błędnego koła.

Intuicje dotyczące spaced repetition

Gdy zadaliśmy nastolatkom szereg pytań o to, jak działa ich pamięć, spora część potrafiła całkiem trafnie odgadnąć zasady rozkładania powtórek w czasie, nigdy nie wykonując żadnych pomiarów. W szczególności często poprawnie zgadywali, że pierwszy optymalny odstęp między powtórkami może wynosić 1-7 dni i że kolejne odstępy będą się wydłużać. Co więcej, wielu potrafiło odgadnąć, że drugi odstęp może wynosić około miesiąca, a kolejne odstępy mogą się podwajać. Innymi słowy, spaced repetition jest powszechną intuicją.

Wczesne badania nad pamięcią

W 1885 roku Hermann Ebbinghaus wniósł znaczący wkład w naukę o pamięci. Eksperymentował na sobie samym i opracował pierwszy zarys krzywej zapominania. Był też świadomy istnienia spacing effect. Nigdy jednak nie zajmował się spaced repetition. Nie przypisuję Hermannowi inspiracji do mojej pracy nad spaced repetition, ponieważ po prostu nie miałem pojęcia, kim był Hermann i czego dokonał. Zaprojektowałem własny pomiar, który doprowadził mnie do spaced repetition. Przy okazji niepowiązanego i dawno zapomnianego ćwiczenia sporządziłem też własną krzywą zapominania , która mogła wpłynąć na moje myślenie. Krzywa Hermanna była znacznie bardziej stroma i mogła w istocie zniechęcić do dalszej pracy (zob.: błąd krzywej zapominania Ebbinghausa). Biblioteka naszego Uniwersytetu im. Adama Mickiewicza była dobrze zaopatrzona w „starożytną” niemiecką literaturę sprzed II wojny światowej, jednak nie znałem niemieckiego. Był to ignorancki, samotny wysiłek. O Ebbinghausie przeczytałem później i wspomniałem o jego krzywej zapominania w mojej pracy magisterskiej.

Już w 1901 roku, w pismach Williama Jamesa, wyższość rozłożonych w czasie powtórek wydawała się oczywista i zdawało się to kwestią czasu, zanim przeniknie do teorii uczenia się, a optymalizacja odstępów stanie się kolejnym oczywistym krokiem. Tak się jednak nie stało. Przez kolejne 8 dekad.

W swojej popularnej książce z 1932 roku C.A. Mace zaproponował prosty harmonogram spaced repetition: 1 dzień, 2 dni, 4 dni, 8 dni itd. Niezły strzał! Wysiłek Mace’a został jednak zapomniany, ponieważ spaced repetition „na papierze” przed erą internetu z pewnością nie było zbyt atrakcyjne. Żeby dobrze wystartować, Mace musiałby zabłysnąć dobrym przykładem. Podejrzewam, że nie było to łatwe. W tamtym czasie w wiadomościach dominował Herr Hitler.

Lata 60.: Renesans

W 1966 roku Herbert Simon przyjrzał się prawu Josta, wyprowadzonemu około 1897 roku z prac Ebbinghausa. Simon zauważył, że wykładniczy charakter zapominania wymaga istnienia właściwości pamięci, którą dziś nazywamy stabilnością pamięci. Simon napisał krótki artykuł i przeszedł do setek innych projektów, którymi się zajmował. Jego tekst został w dużej mierze zapomniany.

Mniej więcej w tym samym czasie Robert Bjork miał mnóstwo innowacyjnych pomysłów dotyczących uczenia się i pamięci. Jak to często bywa, wyprzedzał swoją epokę. Nauczyciele rzadko słuchają psychologów. Uczniowie nawet nie znają ich nazwisk. Gdyby Bjork był programistą, moglibyśmy mieć pierwszą popularną aplikację spaced repetition dekadę wcześniej. Myślę, że po prostu nie odpuściłby świetnego pomysłu. To właśnie Bjork wydaje się być pierwszym, który wyraźnie rozdzielił siłę odzyskiwania i siłę magazynowania w modelu analogicznym do naszego modelu dwóch komponentów pamięci.

W 1967 roku Paul Pimsleur wyraźnie dostrzegł, że spaced repetition może być świetnym narzędziem do nauki par słów w nauce języków. Podobnie jak SuperMemo, zmagał się z terminologią i używał określenia „graduated-interval recall”. W naszym wyzwaniu „poszarpanej krzywej zapominania”, Pimsleur podszedł najbliżej, mając najwcześniejszy znany wykres poszarpanych krzywych, jak na obrazku:

Być może odkryjemy jeszcze wcześniejsze szkice tej idei, jednak z powodów technicznych – im starszy druk, tym mniej bogaty w wykresy, które dziś generujemy masowo w Excelu.

Odstępy Pimsleura sięgały godzin, minut, a nawet sekund. Było to odzwierciedlenie intuicji, a nie pomiaru. Rozszerzył swoje rozumowanie z wiedzy deklaratywnej, którą łatwo zmierzyć (np. pary słów), na wiedzę proceduralną i rozpoznawanie wzorców dźwiękowych, jak przy nauce wymowy. SuperMemo rozwiązuje ten problem, oddzielając naukę par słów od wymowy, pisowni, rozpoznawania, synonimów itp. Dzięki temu np. w Advanced English, nigdy nie musimy zmniejszać odstępów poniżej standardowej stabilności startowej użytkownika, która rzadko spada poniżej jednego dnia. Z powodów praktycznych oraz ze względu na rolę snu, SuperMemo nigdy nie stosuje odstępów krótszych niż 1 dzień. Sen jest też głównym powodem, dla którego algorytm stosuje rozdzielczość 1-dniową w długości odstępów. SuperMemo umożliwia powtarzanie wielokrotnie w ciągu dnia, ale jest to część przeglądu podzbioru, który czasem może okazać się przydatny (np. przy cramming przed egzaminem). Zalecenia Pimsleura dotyczące odstępów różniły się od tych Mace’a czy SuperMemo na papierze ( Algorytm SM-0). Nie były wynikiem pomiaru, lecz spekulacji o zmiennej trafności – od solidnej po słabą. Pimsleur myślał o zapewnieniu 60% recall, co jak na standardy SuperMemo jest bardzo niskim poziomem. Postawił na stabilność startową rzędu 5 sekund, podczas gdy SuperMemo używa 1-15 dni, co całkiem dobrze sprawdza się przy 90% recall dobrze sformułowanej wiedzy. Podstawa potęgowania odstępów Pimsleura ( E-Factor) wynosiła 5, podczas gdy w większości przypadków powinna wynosić 1,4-2,5. W efekcie rozkład odstępów Pimsleura drastycznie różni się od tego w SuperMemo i nie powinien być stosowany jako punkt odniesienia w metryce algorytmicznej. W swojej oryginalnej pracy (1967) Pimsleur zaproponował odstępy: 5 sek., 25 sek., 2 min., 10 min., 1 godzina, 5 godzin, 1 dzień, 5 dni, 25 dni, 4 miesiące i 2 lata. Różnice wynikały głównie z praktyki opartej na materiałach o odmiennym charakterze (odpowiednik wysokiej complexity w SuperMemo). Stosowanie sekund, minut i godzin jest równoznaczne z cramming i jest zdecydowanie odradzane w SuperMemo. Zamiast tego zaleca się optymalizację reprezentacji wiedzy.

W 1969 roku Alfred Maksymowicz napisał „Czytaj i myśl”. Nie znajdziesz tej książki w swojej bibliotece. Została napisana po polsku, dla wąskiego grona studentów uczelni technicznych. Wspominała o spaced repetition, krzywych zapominania, a nawet o tym, jak indeks zapominania mógłby wyznaczać optymalny odstęp. Maksymowicz zaproponował, by pierwszy optymalny odstęp wynosił 3 dni. Jak wiele wysiłków przed i po nim, ta dobra rada pozostała w dużej mierze zignorowana. Studenci pędzą, by zdać egzamin, a potem zapominają. Cram and dump to zasada, według której presja szkolnictwa niszczy perspektywy dobrej, długoterminowej nauki. O książce Maksymowicza wiem tylko dlatego, że studiowałem na politechnice w Polsce i sam byłem dość głośny ze swoją własną metodą spaced repetition. Mogę sobie tylko wyobrazić, że istniały dziesiątki podobnych tekstów, w których intuicje formułowano jako dobrą radę, którą potem masy ignorowały. Bez zbiegu czasu i miejsca przyszłe teksty o spaced repetition mogłyby nigdy nie zauważyć, że Maksymowicz w ogóle istniał. Maksymowicz mógł zainspirować się Pimsleurem, Mace’em, własną intuicją albo innymi potencjalnymi tekstami, o których nie mam pojęcia. Maksymowicz uwiarygadnia słowa Szafrańca, sceptycznego wobec SuperMemo„wszystko to już się kiedyś zdarzyło”.

1972: pudełko Leitnera

Największy praktyczny i algorytmiczny sukces w dziedzinie powtórek rozłożonych w czasie przed SuperMemo można przypisać Sebastianowi Leitnerowi. W 1972 roku zaproponował on system pudełek Leitnera . W systemie Leitnera fiszki są priorytetyzowane i wrzucane do pudełek odpowiadających różnym poziomom stabilności. System Leitnera ma jedną ogromną przewagę nad teoretycznymi poradami serwowanymi przed jego propozycją: był praktyczny. To system, z którego każdy mógł skorzystać po niewielkim wprowadzeniu. Nawet SuperMemo na papierze ( 1985) wygląda w porównaniu z nim na skomplikowane.

Rysunek: Błędna mutacja systemu Leitnera, w której nieudane odpowiedzi są cofane tylko o jedno pudełko (źródło: Wikipedia). Ten wariant był przez pewien czas stosowany w Duolingo

Pudełko Leitnera nie jest narzędziem spaced repetition. To narzędzie do priorytetyzacji. Nie ma tu pojęcia odstępu, nie mówiąc już o odstępie optymalnym. Nazwa box (pudełko) pochodzi z oryginalnej implementacji w postaci fizycznych pudełek na fiszki, bez żadnego związku z upływem czasu. Gdy pudełko Leitnera jest regularnie stosowane na niewielkim zbiorze fiszek, symuluje zachowanie spaced repetition. Jeśli odstępy są zbyt krótkie, prowadzi to do cramming. Jeśli są zbyt długie, prowadzi to do suboptymalnych wyników. Jednak w SuperMemo, materiał o niskim priorytecie może też być cyklicznie odkładany i dawać bardzo długie odstępy, które zmniejszają oczekiwany wzrost stabilności, ale niosą większy wzrost stabilności dla elementów, które przetrwają dłuższe odstępy. W latach 90. i na początku nowego tysiąclecia system Leitnera był stosowany w wielu udanych aplikacjach do fiszek. Ponieważ ich twórcy nieustannie majstrowali przy procedurach powtórek i je ulepszali, aplikacje te mogły faktycznie ewoluować w pełnoprawny system spaced repetition. Ich zastosowanie zmalało jednak z powodu popularności Algorytm SM-2 od SuperMemo, który okazał się łatwy do wdrożenia i znacznie lepszy.

Nowsze mutacje systemu pudełek Leitnera mogą przypisywać odstępy do pudełek priorytetowych, np. 16 dni dla pudełka #5, ale takie podejście ma wady równoznaczne z cramming: (1) porażka wciąż prowadzi do cofnięcia odstępów, podczas gdy powinna prowadzić do wznowienia nauki, (2) pięć powtórek w pierwszym miesiącu wypada słabo w porównaniu z dobrze sformułowaną wiedzą, która w SuperMemo może zmniejszyć koszt nauki już w pierwszym miesiącu o 60-80%, oraz (3) potrzeba byłoby więcej pudełek. W SuperMemo widzieliśmy odstępy znacznie przekraczające maksymalną długość ludzkiego życia. Potrzeby aplikacji dożywotnich są o 200 tysięcy procent wyższe. To różnica między odstępem typu permastore a 16 dniami. Potrzeba by 11 dodatkowych pudełek, by pokryć całe życie przy E-factor równym 2.

Dziś jednym z najpopularniejszych systemów do nauki języków jest Duolingo. Przez długi czas korzystało z systemu Leitnera. Dziś stosuje własny, nowy algorytm oparty na przewidywaniach retrievability. Nadal jednak używali systemu Leitnera jako punktu odniesienia. Co gorsza, ich benchmark wykorzystywał odwrotny transfer fiszek między pudełkami priorytetowymi (gdzie stabilność po porażce jest przeszacowana). Znormalizowany system Leitnera mógłby posłużyć jako punkt odniesienia, jednak prosta normalizacja odpowiadająca użyciu E-factor równego 2 może dać inne wyniki niż wybór E-factor 1,6. W przyszłości wszystkie algorytmy powinny przejść na uniwersalną metrykę zaproponowaną przez SuperMemo, a Algorytmem SM-2 mógłby stać się użytecznym punktem odniesienia dla metryki, wdrażanym równolegle z rozwiązaniami zastrzeżonymi. Mam nadzieję, że użytkownicy będą domagać się jasności, statystyk, metryk i pełnej otwartości w tym zakresie.

W latach 70. Tony Buzan skupiał się na uporządkowanej wiedzy za sprawą swoich innowacji w postaci map myśli. Mapy myśli i SuperMemo paradoksalnie stały ze sobą w konflikcie z powodu braku dobrej, jednoczącej teorii. Krótko mówiąc, potrzebujemy dobrych modeli, by rozumieć świat, i potrzebujemy powtórek rozłożonych w czasie, by długoterminowo zachować elementy tego modelu. Buzan miał też własne pomysły na to, jak powinny być rozłożone powtórki. Gdy po raz pierwszy zetknął się z SuperMemo na początku lat 90., od razu zgodził się z tą koncepcją, jednak zawsze wolał skupiać się na strukturze wiedzy, a nie na samej powtórce.

Lata 80.: SuperMemo

Moja własna praca wkroczyła na scenę w 1982 roku, gdy naprawdę miałem dość niekończącego się procesu zapominania. Chciałem uczyć się biochemii i fizjologii. Czytałem książki, robiłem notatki, a wszystko to szło na marne przez zapominanie. Nawet najważniejsze fakty potrafiły umknąć z pamięci w najbardziej niefortunnym momencie (np. na egzaminie). Postanowiłem zastosować active recall. Zamiast po prostu robić notatki, zapisywałem je w formie pytań i odpowiedzi. Mogłem zakryć odpowiedzi i odpowiadać, korzystając z active recall. To dramatycznie poprawiło naukę. Tak właśnie robi się to w SuperMemo do dziś. To nowe podejście wspaniale wzmocniło moją miłość do nauki.

Do 1984 roku byłem już na tyle biegły w podejściu active recall, że wiedziałem, iż złożone pytania nie działają. Jeśli upakujesz zbyt wiele treści w odpowiedzi, np. zrobisz z niej długą listę, będziesz wciąż zapominać. Byłaby to jałowa nauka. Później nazwałem to dążenie do prostoty ” zasadą minimum informacji„. Dziś zasada ta jest jedną z pierwszych wymienianych wśród 20 zasad formułowania wiedzy.

Prawdziwy przełom nastąpił w 1985 roku, czyli dokładnie 100 lat po publikacji rozprawy Ebbinghausa o pamięci. Chciałem sprawdzić, jak rozłożenie powtórek w czasie wpływa na recall. Musiałem ustalić długość optymalnych odstępów między powtórkami. Oczywiście takie odstępy istnieją. Musiałem je jedynie zmierzyć. Eksperyment opisany jest tutaj. Był prosty, surowy, leniwy i pośpieszny. Zamiast cierpliwie spędzić kilka lat na ustalaniu wszystkich szczegółów, po 6 miesiącach sformułowałem pierwszy algorytm SuperMemo. Można to nazwać pierwszym przypadkiem nieco naukowego spaced repetition. Moje badanie opierało się na jednej osobie i jednym rodzaju materiału do nauki, ale okazało się na tyle uniwersalne, że lata później miało wielu wiernych użytkowników. 31 lipca 1985 roku, zacząłem uczyć się biochemii nową metodą. To są urodziny obliczeniowego spaced repetition. Program komputerowy SuperMemo dla DOS powstał w 1987 roku, a nazwa SuperMemo w 1988.

W latach 80. Memory Chain Model Jaapa Murre’a był jednym z wczesnych modeli pamięci, który mógł doprowadzić do powstania solidnego algorytmu spaced repetition. Miał nawet swoją wczesną aplikację, Captain Mnemo, która mogła konkurować z SuperMemo o pierwszeństwo w tej dziedzinie. Captain Mnemo i OptLearn to przykłady tego, dlaczego w środowiskach akademickich świetne teorie często nie są wcielane w praktyczne implementacje, które mogłyby zyskać szerszą popularność.

W 1991 roku powstało SuperMemo World, a jego początki opisane są tutaj. Do 1999 roku zaczęliśmy używać terminu „spaced repetition” zamiast „metody SuperMemo”. Najnowsze wydarzenia w SuperMemo World można znaleźć tutaj.

Anatomia porażki i sukcesu

Recepta na porażkę badawczą

Niektóre intuicje dotyczące spaced repetition są dość powszechne. Rodzi to zasadnicze pytanie: dlaczego spaced repetition nie zostało zbadane wcześniej i dlaczego nie przeniknęło do praktyki nauczania? Intuicje to za mało – kluczowy jest też dobry projekt eksperymentu. Ta sekcja wyjaśnia, dlaczego inni byli blisko, ale ponieśli porażkę. Jak Ebbinghaus czy Spitzer mogli wprowadzić spaced repetition w życie 90-130 lat wcześniej. Coś musi być nie tak z natychmiastową gratyfikacją w recenzjach naukowych i w walce o granty. Dlaczego jest tyle szumu wokół podawania dzieciom leków dla lepszych wyników w szkole, podczas gdy choroby zbierające ogromne żniwo śmierci w krajach słabiej rozwiniętych budzą tak niewielkie zainteresowanie?

W tym rozdziale próbuję ustalić, dlaczego spaced repetition pojawiło się tak późno. Oto moje ujęcie, uszeregowane według czynnika wpływu:

  • komputery dramatycznie zmieniają efektywność nauki w spaced repetition; wczesne sformułowania nie byłyby wystarczająco „wirusowe” nawet w erze internetu
  • sieć utrwala wiedzę i krystalizuje jej istotę (np. na Wikipedii)
  • intuicje nie gwarantują dobrego projektu eksperymentu. Ja sam, Ebbinghaus, Spitzer i inni tworzyliśmy projekty, które tylko dodawały szumu i złożoności do problemu
  • ludzka kultura znajduje się w nieustannym przepływie. Masowo zapominamy i na nowo odkrywamy stare odkrycia. Dotyczy to zarówno jednostek, jak i całych kultur. Nauka też podlega modom, trendom i zapominaniu. Dopiero teraz spaced repetition osiągnęło „gęstość oddziaływania” potrzebną, by stać się „wiedzą powszechną”. Zob.: nieciągłość w badaniach nad efektem odstępu
  • własny interes i self-learning to najlepsze motory zastosowania. Nauka przenika do życia poprzez praktyczne zastosowania. SuperMemo było pierwszym praktycznym zastosowaniem spaced repetition, które mogło dotrzeć do tysięcy, a potem milionów użytkowników
  • panował ogromny chaos między pamięcią krótko- i długoterminową, między rozkładaniem w listach a rozkładaniem w ciągu jednego dnia, a nawet między nauką proceduralną a deklaratywną
  • harmonogram rosnący, malejący czy równomiernie rozłożony – każdy z nich może okazać się lepszy przy odpowiednim doborze czasu
  • eksperymentatorzy zwykle używają niejednorodnego materiału (wiersze, listy, bezsensowne sylaby, strony pytań, grupy uczniów itd.)
  • eksperymenty, w których stosuje się bierny przegląd zamiast active recall, nie korzystają z testing effect
  • eksperymenty, w których odstępy mierzone są w liczbie elementów pomiędzy, opierają się na innych mechanizmach pamięci i w ogóle nie powinny być nazywane spaced repetition. Do dziś wiele zamieszania w badaniach wynika z mieszania miar odstępów bez jasnego rozgraniczenia terminologii
  • krótki czas trwania projektów badawczych sprawia, że badanie spaced repetition jest niemal niemożliwe
  • skupienie na zastosowaniach klasowych zaburzyło wyniki. Szkoły nie są dobrym miejscem do nauki. Badania optymalizowane pod środowisko szkolne mają niewielkie znaczenie w kontekście free learning
  • prastare rozróżnienie między nauką a retencją zaburza myślenie o optymalnej edukacji. Rozróżnienie to wywodzi się ze szkolnictwa, w którym najpierw się uczymy, a potem modlimy, by jak najmniej zapomnieć
  • terminologia wciąż mutuje, co utrudnia nowym pokoleniom badaczy korzystanie z wcześniejszych prac. Nawet nasza własna praca z 1994 roku posługuje się terminem repetition spacing. Listę mutacji terminologicznych można znaleźć w tym wpisie w Glosariuszu. Sieć, mądrość tłumu i wiki (jak ta) prawdopodobnie zaradzą problemowi terminologii

W 2006 roku Will Thalheimer opracował znakomity przegląd badań nad spaced repetition, oparty na ponad 100 artykułach naukowych. Jednak w podsumowaniu Thalheimer poddał w wątpliwość wartość progresywnego rozkładania odstępów. Pokazuje to, że nawet dziesiątki prac nie pomogą, jeśli projekt eksperymentu opiera się na błędnych modelach.

W spaced repetition nie wystarczy, by powtórki się rozszerzały. Muszą rozszerzać się optymalnie

Nieudane eksperymenty

Wymienię trzy przypadki eksperymentów, które musiały zakończyć się porażką lub zamętem:

  • Herman Ebbinghaus (1885) kierował się nauką o pamięci. Jego intuicje były znakomite, jednak w imię czystości metody skupił się na bezsensownych sylabach. Nieświadomie przyczynił się tym do complexity pamięci i interference, których chciał uniknąć. Jego krzywa zapominania jest bezlitosna i zniechęcająca. Gdyby Ebbinghaus uczył się sensownego, interesującego materiału, mógłby rozszerzyć zakres swojego eksperymentu. Wszyscy wiemy ze szkoły, że wkuwanie bezsensu to forma tortury psychicznej. Gdyby Ebbinghaus, tak jak ja, postawił na praktyczne zastosowania, moglibyśmy mieć papierowy wariant spaced repetition powstały równe 100 lat wcześniej. Oczywiście, bez komputerów, bez sieci, jego pomysły mogłyby i tak wpaść w otchłań ciszy na stulecie, tak jak faktycznie stało się to z koncepcją spacing effect.
  • Herbert Spitzer (1939) kierował się chęcią poprawy wyników w klasie szkolnej. Wybrał najgorszy możliwy przypadek niejednorodności. O ile ja zmagałem się ze stronami materiału o zróżnicowanej trudności, a Ebbinghaus z bezsensownym materiałem, o tyle Spitzer spotęgował te efekty niejednorodnością umysłów. Zamiast stron pytań, Spitzer miał grupy uczniów wystawionych na strony materiałów do czytania. W tak zaszumionych warunkach trudno dostrzec regularności wykładniczego zapominania i spaced repetition. Nawet gdyby wyniki Spitzera były zdecydowanie pozytywne, wątpię, by biurokracja systemu edukacji dobrze wykorzystała tę procedurę. Edukacją rządzą standaryzowane testy, oceny i certyfikaty. Niemal nigdy nie kieruje nią nauka ani faktyczny wpływ procedury nauczania na wyniki w nauce. To system fabryczny. Wysiłki Spitzera były skazane na porażkę tak samo jak przełomowe pomysły Beneze­ta z dekadę wcześniej (1929)
  • Wozniak (1985). Mój własny, mylący eksperyment nad spaced repetition rozpoczął się 31 stycznia 1985 roku i mógłby zrujnować moje wysiłki, gdyby wystarczająco namieszał mi w głowie. Na szczęście, zanim nadeszły wyniki, zaprojektowałem lepszy eksperyment i zamęt ten nigdy mnie nie dotknął.

Eksperymenty Ebbinghausa (1885)

Mit

Popularny mit głosi, że to Ebbinghaus wynalazł spaced repetition już w 1885 roku. Mit ten narodził się z naszej własnej dokumentacji SuperMemo. Gdy w 1997 roku opracowywaliśmy historię SuperMemo na potrzeby sieci, dodaliśmy kilka nazwisk, które przyczyniły się do badań nad pamięcią. Jak wyjaśniono tutaj, ważne było, by osadzić SuperMemo w nauce. Mój własny wkład zawsze był minimalizowany ze względu na znikomą wagę mojego nazwiska. Ponieważ Ebbinghaus, z przyczyn chronologicznych, znalazł się na czele listy, szybko zrodził się pomysł, że to on był ojcem spaced repetition. Nawet nasze własne materiały ewoluowały w tym kierunku przez pomyłkę, na skutek niedbałej redakcji. Dziś sieć jest zalana Ebbinghausem i poszarpanym zestawem krzywych zapominania. Jeśli wygooglujesz krzywe zapominania, zobaczysz to:

Rysunek: Wyniki wyszukiwania Google dla hasła ” krzywa zapominania” (listopad 2017). W wynikach wyszukiwania dominuje „poszarpany zestaw” krzywych zapominania. Wiele obrazków jest błędnie przypisywanych nazwisku Hermanna Ebbinghausa. Bardziej trafne pochodzenie tego obrazu przedstawiono w Dwóch komponentach pamięci

To te same poszarpane krzywe, które przedstawiłem w Optymalizacji nauki (1990):

Hipotetyczny mechanizm zaangażowany w proces optymalnej nauki

Więcej na temat tego mitu na naszym blogu: Czy Ebbinghaus wynalazł spaced repetition?

Fakt

Powinniśmy raczej być zdumieni faktem, że Ebbinghaus nie wpadł na spaced repetition. Był bardzo blisko. Dotykał wszystkich właściwych przycisków.

Oto, co napisał o spacing effect:

Dla ponownego wyuczenia się serii 12 sylab w określonym czasie, odpowiednio, 38 powtórzeń, rozłożonych w pewien sposób na trzy poprzedzające dni, dało efekt równie korzystny jak 68 powtórzeń wykonanych poprzedniego dnia. Nawet jeśli poczynić bardzo duże ustępstwa wobec niepewności liczb opartych na tak niewielu badaniach, różnica jest wystarczająco duża, by być istotną. Czyni to prawdopodobnym założenie, że przy jakiejkolwiek znaczącej liczbie powtórzeń odpowiednie rozłożenie ich w czasie jest zdecydowanie korzystniejsze niż skupienie ich w jednym momencie.

Dlaczego Ebbinghaus nie zrobił kolejnego, pozornie oczywistego kroku i nie sprawdził, jak zmienia się krzywa zapominania po powtórce? Po pierwsze, nie badał on zapominania, lecz oszczędność przy ponownym uczeniu się. Jego testy same w sobie były powtórką. Przy moim podejściu łatwo jest chcieć osiągnąć określony poziom retention. Koncepcyjnie mniej intuicyjne jest domaganie się określonej redukcji kosztu ponownej nauki.

Jednak sposobem na pokonanie tej koncepcyjnej przeszkody byłoby wytrwanie w nauce. Kreatywność rozkwita dzięki inwestowaniu czasu i myślenia w różnych kontekstach. Dla mnie odpowiedź na zagadkę Ebbinghausa jest bardzo prosta. Jak dobry naukowiec, Ebbinghaus był perfekcjonistą teorii. Wybrał zapamiętywanie bezsensownych sylab, by zminimalizować interference ze strony swojej wcześniejszej wiedzy. Niestety, miało to kilka złych skutków ubocznych:

  • jego listy były trudne do nauczenia się, a jego krzywa zapominania była bardzo stroma. Daje to bardzo zniechęcający obraz dla każdego ucznia, któremu zależy na zapamiętywaniu na dłuższą metę
  • jego listy nie dawały mu żadnej przyjemności w nauce. To dokładne przeciwieństwo tego, czego doświadczyłem w 1985. Każdy element w mojej papierowej kolekcji był małym krokiem naprzód, podnoszącym moją wiedzę na nowy poziom. Gdy tylko wykreśliłem swoją pierwszą krzywą zapominania, chciałem wiedzieć, co dzieje się po kolejnej powtórce
  • Ebbinghaus skupiał się na czasie lub wysiłku potrzebnym do ponownej nauki, podczas gdy mnie zawsze przede wszystkim interesowała retention, przy niewielkim zainteresowaniu tym, ile czasu lub wysiłku potrzeba, by przywrócić recall do 100%

Ośmielę się więc twierdzić, że we wszystkich swoich heroicznych wysiłkach zapamiętywania Hermann Ebbinghaus miał dość uczenia się bezsensu. Złamałoby to nawet najbardziej wytrwałego ucznia. Moje większe szczęście wzięło się z palącej potrzeby osiągania dobrych wyników w nauce. Skutkowało to samopodtrzymującym się wysiłkiem. Pomaga to w pokonywaniu twórczych przeszkód.

Co ciekawe, w 2015 roku Jaap Murre odtworzył oryginalny eksperyment Ebbinghausa z drobiazgowością godną samego Ebbinghausa (sięgając nawet do oryginalnych rękopisów). Murre był na tyle rozsądny, by nie poddawać się psychicznemu obciążeniu bezsensownymi sylabami, co mogło zresztą wprowadzić pewne obciążenie wyników. Wybrał najlepszy dostępny obiekt badań: 22-letniego studenta, którego nagrodzono współautorstwem publikacji. Nawiasem mówiąc, Murre’owi udało się uchwycić efekt circadian w nauce, ponieważ jego krzywa wykazuje niewielki garb po upływie 24 godzin.

Oszczędność przy ponownym uczeniu się

Istnieje ogromna różnica między retrievability a „oszczędnością przy ponownym uczeniu się”. W zależności od czasu, brak odzyskania może oznaczać, że fakt „właśnie został zapomniany i da się go łatwo douczyć” albo że został „zapomniany na dobre”. Oszczędność przy ponownym uczeniu się może być niezerowa nawet przy materiale o zerowej retrievability. Mówiąc prościej, brak dostępu do wspomnień nie oznacza zerowej stability. W tym sensie krzywa Ebbinghausa nie jest nawet dobrym wyrazem wykładniczego zapominania. Oszczędność przy ponownym uczeniu się będzie inna dla materiału trudnego, a inna dla łatwego.

Krzywa zapominania (1984)

Pisząc rozdział o krzywych zapominania, myślałem początkowo, że moje własne pojęcie krzywej zapominania było błędne. Jednak przeszukując swoje archiwa, przypadkiem odkryłem, że w 1984 roku, zaledwie kilka miesięcy przed zaprojektowaniem SuperMemo na papierze, wykreśliłem także krzywą zapominania dla retencji słownictwa angielskiego:

Rysunek: Moja zupełnie pierwsza krzywa zapominania dla retencji słownictwa angielskiego, wykreślona w 1984 roku, czyli kilka miesięcy przed zaprojektowaniem SuperMemo na papierze. Ten wykres nie był częścią eksperymentu. Był po prostu skumulowaną oceną wyników przerywanej nauki słownictwa angielskiego. Wykres szybko został zapomniany. Odkryto go ponownie 34 lata później. Po zapamiętaniu, 49 stron zawierających ~40 par słów angielskich było powtarzanych w różnych odstępach, a liczba błędów recall była zapisywana. Po odrzuceniu wartości odstających i uśrednieniu, krzywa okazuje się znacznie mniej stroma niż krzywa uzyskana przez Ebbinghausa (1885), który użył bezsensownych sylab i innej miary zapominania: oszczędności przy ponownym uczeniu się

Zapomniałem o samym fakcie wykreślenia tej krzywej. Przypuszczam, że gdy miałem już SuperMemo, ta krzywa przestała wydawać się ważna czy istotna. Nie skupiałem się na „nauce o pamięci”. Chciałem po prostu osiągać dobre wyniki w nauce. Najwyraźniej nie sądziłem, że wykreślenie krzywej zapominania to wielka sprawa. Niemal przeoczyłem ten rysunek również w 2018 roku, ponieważ był podpisany drobnym drukiem: średnia szybkość zapominania przy pierwszym zapamiętywaniu.

Wynik pochodził z 49 stron po 40 par słów każda, czyli 1960 słów (porównaj: 13 lat szkoły w miesiąc). Całą naukę robiłem dla samej nauki, nie na potrzeby eksperymentu. W rzeczywistości żadnego eksperymentu nie było. Wystarczyło zebrać liczby z mojego rzeczywistego wysiłku w nauce i wykreślić krzywą. Prostota tego obliczenia może też tłumaczyć, dlaczego tak łatwo zapomniałem o tym ćwiczeniu.

Pisałem o prostych intuicjach sprzed eksperymentu z 1985 roku. W świetle tej krzywej z 1984 roku może się wydawać, że intuicje te mogły wynikać z tego małego eksperymentu. To, co dziś wydaje się oczywiste, mogłoby nie być tak oczywiste bez wsparcia tego drobnego obliczenia. Mogę jednak przypuszczać, że do lutego 1985 roku zdążyłem już zapomnieć swoją krzywą, ponieważ nie pominąłem Etapu A w eksperymencie spaced repetition. Moja krzywa zapominania zgadzała się z eksperymentem, a pierwszy odstęp powtórki rzeczywiście powinien wynosić 1 dzień.

Błędne pojęcie krzywych sigmoidalnych musiało narodzić się później. Dziś wydaje mi się, że gdzieś z tyłu głowy pamiętam, iż pierwotnie sądziłem, że charakter sigmoidalny pojawia się dopiero po pierwszej powtórce. Być może nigdy nie dowiem się, jak wtedy działał mój tok myślenia. Zależało mi wyłącznie na efektywności SuperMemo. W ekscytacji odkryciem SuperMemo zapomniałem o swojej krzywej na całe 34 lata. Dziś ten mały wykres ma znaczenie jedynie jako ilustracja tego, jak łatwo możemy coś odkryć, zapomnieć, zbłądzić, odkryć ponownie, a potem jeszcze raz odkryć to samo pierwotne odkrycie. Pamięć jest zawodna. Niech Bóg błogosławi spaced repetition.

Rysunek: Zupełnie pierwsza krzywa zapominania dla retencji słownictwa angielskiego, wykreślona w 1984 roku (kilka miesięcy przed zaprojektowaniem SuperMemo na papierze). Ten wykres nie był częścią eksperymentu. Był po prostu skumulowaną oceną wyników przerywanej nauki słownictwa angielskiego. Wykres został zapomniany i odkryty ponownie 34 lata później. Po zapamiętaniu, 49 stron zawierających ~40 par słów angielskich było powtarzanych w różnych odstępach, a liczba błędów recall była zapisywana. Białe kółka odpowiadają recall wyliczonemu ze średniej liczby błędów na stronę po danym odstępie. Regresja logarytmiczna w kolorze pomarańczowym daje najlepsze dopasowanie. Regresja potęgowa w kolorze czerwonym jest niewiele gorsza. Można się tego spodziewać po niejednorodnym materiale (strony słów). Jest to też bardzo podobne do wyników uzyskanych przez Ebbinghausa (1885), z tą różnicą, że krzywa jest znacznie mniej stroma, jak przystało na sensowny materiał. Zgodnie z oczekiwaniami, regresja wykładnicza w kolorze białym daje najsłabsze dopasowanie

Eksperyment Spitzera (1939)

W 1939 roku Herbert F. Spitzer zbadał różne harmonogramy testowania na 3605 uczniach szóstych klas w 9 miastach Iowa. Była to cała populacja 91 szkół. Dzieci czytały 6-stronicowy tekst, a ich wiedzę testowano później za pomocą 25 konkretnych pytań.

Spitzer zaprojektował różne harmonogramy testowania, jednak projekt ten wyraźnie nie zmierzał do optymalnego rozłożenia odstępów, a podsumowanie jego badań nie zawierało żadnych zaleceń w tym zakresie.

Rysunek: Schemat procedury. Spitzer (1939).

Tylko pierwsze dwie grupy uczniów stosowały harmonogram rosnący. To właśnie te grupy uzyskały najlepsze wyniki w testach, jednak Spitzer przypisał to testing effect, ponieważ to tylko te dwie grupy miały 3 testy, tzn. środkowy test interpretowano jako „interwencję testową” (a nie jako powtórkę).

Rysunek Spitzer (1939). Krzywe retencji

W swoich zaleceniach Spitzer skupił się na sile testing effect, czyli tego, co ja nazywam „active recall” w odniesieniu do moich fiszek z 1982 roku. Podoba mi się w jego pracy zalecenie, by testowanie służyło uczniom do korygowania własnej wiedzy, dawania im informacji zwrotnej, a przez to poczucia własnych postępów. Stoi to w kontraście do współczesnego testowania, które częściej służy jako bicz, popędzający dzieci do dalszej nauki.

Schemat odstępów Spitzera przypomina mi mój własny, samodzielnie przeprowadzony test, który nie przyniósł przekonujących wyników. W tym przypadku odstępy są wyraźnie wyznaczane przez rytm życia szkolnego, a nie przez wymogi pamięci.

W swoich badaniach Spitzer przyjął bezwzględne, gatesowskie podejście do testowania i nauki, typowe dla wczesnych reformatorów szkolnictwa, którzy często wyrządzali więcej szkody niż pożytku, będąc zbyt drobiazgowymi! Nauczyciele, którzy nie wykorzystują w tym procesie learn drive, są skazani na porażkę, nawet jeśli stosują najlepsze narzędzia wspomagające pamięć!

Nie mogę nie odnieść się do kwestii etycznych. Choć w imię nauki zabijamy miliony zwierząt, być może umyka nam fakt, że te badania, mimo najlepszych intencji, wykorzystały pracę ponad 3000 mimowolnych uczestników. To, co świetnie sprawdza się w badaniach nad pamięcią, niekoniecznie musi być świetne dla indywidualnej nauki. W erze Google uznałem teksty testowe użyte przez Spitzera za dość nieprzyjemne. Mimo że włożono sporo wysiłku w dobór tematyki i sformułowań, uznałbym przymusowe czytanie za naruszenie mojej wolności. Te materiały mogą być znacznie lepsze niż przeciętne materiały szkolne, ale szkolnictwo zawsze będzie bardziej o masowej produkcji niż o twórczej wolności.

Czytanie o biologii bananowców może być strawne dla ogrodnika czy biologa, za jakiego się uważam. Ale po co dzieciom czytać o bananach, jeśli ich aktualnym zainteresowaniem jest Wielki Kryzys, Dust Bowl, nazistowskie Niemcy czy baseball?

Szkoła to czas, w którym przestajemy się uczyć, a zaczynamy wkuwać. To czas, w którym tracimy miłość do nauki. Dodanie spaced repetition do tej przymusowej mieszanki mogłoby tylko pogorszyć sytuację.

Eksperyment Wozniaka (1985)

Zanim udało mi się obliczyć optymalne odstępy dla powtarzania stron ze słownictwem angielskim, zaprojektowałem eksperyment, który mógł skierować mnie na złe tory. Eksperyment miał pokazać wartość progresywnego wzrostu odstępów między powtórkami. Zamiast tego pokazał, że równomiernie rozłożone powtórki mogą być lepsze.

Eksperymentów naukowych nie należy uznawać za „nieudane” tylko dlatego, że przynoszą nieoczekiwane wyniki. Jednak w tym przypadku nieoczekiwane wyniki wynikały z błędnego projektu i mogły spowodować zamęt, który hamowałby dalszy postęp. Do dziś badacze mówią o „mieszanych wynikach” w spaced repetition z powodu błędnego projektu, a nawet zwykłego zamieszania terminologicznego.

Na szczęście moje intuicje dotyczące pamięci w 1985 roku były zbyt solidne i było dość oczywiste, że przy gwałtownym przyspieszeniu wydłużania się odstępówzapominanie mogłoby przytłoczyć konsolidację. Mój progresywny harmonogram po prostu nie był optymalny. Z pewnością zaprojektowałbym lepszą kontynuację. Przede wszystkim chciałem kontynuować naukę z sukcesem. Wątpię, bym poddał się bez dobrego rozwiązania.

Eksperyment pokazuje, że nie wystarczy mieć dobre przypuszczenie co do tego, jakie są optymalne odstępy. Odstępy rzeczywiście trzeba obliczyć.

Ostrzeżenie archiwalne: Dlaczego korzystać z dosłownych archiwów?

Ten tekst jest częścią: ” Optymalizacji nauki ” autorstwa Piotra Wozniaka (1990)

Na początku 1985 roku zaprojektowałem dwa eksperymenty, które w konsekwencji zrewolucjonizowały moją metodologię nauki i doprowadziły do sformułowania metody SuperMemo.

Pierwszy eksperyment może być dobrą ilustracją tego, jak błędny pomysł może przynieść cenne wnioski (drugi opisany jest tutaj). Powszechną intuicją jest, że wraz z kolejnymi powtórkami wiedza powinna stopniowo stawać się trwalsza i wymagać rzadszych powtórek. Zatem powtórki rozdzielone rosnącymi odstępami powinny być skuteczniejsze niż te, których odstępy są zawsze takie same. Przekonanie to okazało się fałszywe. Zobaczmy eksperyment, który to pokazuje:

Eksperyment nad wpływem różnych wzorców rozkładania powtórek w czasie na efekt powtórek dla retencji wiedzy (31 stycznia 1985 – 2 sierpnia 1986)

  1. Zapamiętywana wiedza składała się ze 195 elementów podzielonych na trzy równe grupy: A, B i C.
  2. Każdy element miał następującą postać: Pytanie: angielski czasownik nieregularny Odpowiedź: formy simple present, simple past i past participle danego czasownika
  3. Wszystkie elementy danej grupy zapamiętywano podczas jednej sesji, powtarzając je aż wszystkie zostały opanowane (grupa A – 31 stycznia, B – 2 lutego, C – 3 lutego).
  4. Ustalono dwa końcowe terminy kontrolne: 6-7 grudnia 1985 oraz 1-2 sierpnia 1986, w których jednocześnie mierzono poziom retencji we wszystkich grupach (dla każdego elementu mierzono trafność recall w czterostopniowej skali).
  5. Przed terminami kontrolnymi wszystkie grupy A, B i C przeszły 6 niezależnych powtórek w następujących odstępach (wyrażonych w dniach):
Numer powtórkiGrupa A
(równe odstępy w dłuższym czasie)
Grupa B
(odstępy oparte na rosnących interwałach)
Grupa C
(równe odstępy w ciągu 30 dni)
118 dni1 dzień5 dni
218 dni5 dni5 dni
318 dni9 dni5 dni
418 dni24 dni5 dni
518 dni44 dni5 dni
618 dni70 dni5 dni

Celem eksperymentu było udowodnienie, że rosnące odstępy są najlepsze dla konsolidacji pamięci (grupa B), w przeciwieństwie do odstępów rozłożonych równomiernie (grupa A) lub skoncentrowanych w czasie (grupa C). Wyniki eksperymentu przedstawiono na Rys. 3.1:

Wyniki drugiej kontroli nie znalazły się na wykresie z prozaicznego powodu – studia na Politechnice [rozpoczęte w październiku 1985] wymagały doskonałej znajomości czasowników nieregularnych, więc kolejny pomiar był bezcelowy. Jak widać na Rys. 3.1 powyżej, eksperyment przyniósł nieoczekiwane wyniki, dowodzące, że rosnące odstępy między powtórkami niekoniecznie muszą być lepsze niż odstępy o stałej długości. Na szczęście, na długo przed poznaniem wyników eksperymentu, podejrzewałem, że muszą istnieć optymalne odstępy między powtórkami. Zasada stosowania takich odstępów w procesie nauki będzie później określana jako zasada optymalnego rozkładania powtórek.

Pisząc Historię spaced repetition, znalazłem oryginalne wykresy w moim archiwum. Jest dość oczywiste, że massed practice to niedobre podejście:

Grupa A: rozłożone odstępy co 18 dniGrupa B: odstępy oparte na rosnących interwałachGrupa C: masowe odstępy co 5 dni

Dlaczego idea spaced repetition w końcu odniosła sukces?

Spaced repetition jest intuicyjne. Po chwili namysłu jest wręcz oczywiste. Dlaczego nie wpadliśmy na to rozwiązanie wcześniej? SuperMemo na papierze byłoby wykonalne, odkąd ludzkość wynalazła papier. Jednak w czasach starożytnych ilość istotnej wiedzy była na tyle mała, że mózg z łatwością radził sobie, stosując naturalne metody nauki. Pracując w polu, rolnik szybko zdobywał całą niezbędną wiedzę, która pozwalała mu się wyróżniać, dopóki pozwalało mu na to zdrowie.

Sytuacja zaczęła się zmieniać wraz z nadejściem druku w XV wieku. Wiedza zaczęła się mnożyć, zyskując też sposoby na efektywne utrwalanie. Newton w latach zarazy mógłby być ciekawym przykładem osoby, która teoretycznie skorzystałaby na spaced repetition. Jednak zbiór książek Newtona był ograniczony, a problemów do przemyślenia i rozwiązania było tak wiele, że łatwo sobie wyobrazić, iż nigdy nie przejmowałby się zawodną pamięcią. Wszystko, czego potrzebował, to robienie notatek.

Przez kolejne dwa stulecia zasoby dostępnej wiedzy wciąż rosły, a naturalny ludzki apetyt na zapamiętywanie mógł jednocześnie wzrastać. Badania Ebbinghausa w latach 80. XIX wieku są przykładem ciągłego zainteresowania mechanizmami pamięci. Jednak nawet dziś większość naukowców rzadko martwi się swoim zapominaniem. Robienie notatek i Google zaspokajają większość potrzeb większości z nich. Gdy Vannevar Bush wymyślił urządzenie memex w latach 30. XX wieku, postrzegał je jako wzmocnienie pamięci. Jednak nawet jeśli memex uznać za dalekiego kuzyna incremental reading czy neural creativity, cała jego wiedza, podobnie jak w Google, żyła głównie poza ludzkim mózgiem. Moje poszukiwania przypominają mi te V. Busha, z tą różnicą, że ja chcę widzieć, jak cała ta wiedza wywiera bezpośredni wpływ na ludzką kreatywność (zob.: neural creativity).

Dlaczego zapominanie szczególnie mi przeszkadzało? Jest wielu dzieciaków, które lubią się popisywać w szkole. Gdy mój brat pokazał mi, jak odróżniać igły świerku od igieł jodły, na lekcji biologii w 3. klasie, chciałem pokazać, że wiem więcej niż przeciętny dzieciak. Ta chęć została szybko stłumiona przez szkolnictwo, ale pewne jej ślady przetrwały. Gdy w 7. klasie zaczęliśmy się uczyć chemii, byłem dumny, że potrafię zapamiętać skomplikowane nazwy jak adenozynotrifosforan czy kwas deoksyrybonukleinowy. Wyszukiwałem nawet trudne nazwy chemiczne, by je zapamiętać i zaimponować. Zapamiętałem szczegóły anatomii ryby bezżuchwowej. Znowu próbowałem zaimponować w szkole, ale nikogo to nie interesowało.

Gdy w 5. klasie zagłębiłem się w zoologię, zaczęło pojawiać się coś w rodzaju natręctwa informacyjnego. Chciałem znać wszystkie zwierzęta w poznańskim zoo, ich siedliska, a nawet ich taksonomię i łacińskie nazwy. Dostałem wspaniałe książki ze zdjęciami wszystkich zwierząt, a poznawanie ich wydawało mi się interesującym przedsięwzięciem.

W 1974 roku zainteresowałem się boksem, piłką nożną i sportem w ogóle. Chodziłem do punktu skupu makulatury w naszej szkole i szukałem czasopism sportowych. Mój kolega Robert poprosił mnie, bym zbierał dla niego zdjęcia nagich kobiet. Zgodziłem się. Moje dojrzewanie było opóźnione i nie byłem tym zainteresowany. Gdy sterta zdjęć rozsypała się w domu, wyjaśniłem mamie ” to nie dla mnie!„. Pokiwała ze zrozumieniem, z uśmieszkiem. Tymczasem żelazkiem prasowałem zagniecenia w mojej odzyskanej kolekcji czasopism sportowych. Układałem je starannie w stosy i archiwizowałem według daty. Stos zapełniał kilka półek w regałach w moim pokoju. Ta obsesyjna schludność mogłaby niepokoić każdego rodzica, jednak moja mama była tolerancyjna. Miałem swobodę realizowania swoich pasji, nawet jeśli wydawały się absurdalne. Nie mam wątpliwości, że wolność jest jednym z kluczowych składników zdrowego rozwoju. Czy wielu dzieciaków nie przejawia podobnych symptomów w obsesjach związanych ze zbieraniem znaczków, pocztówek czy karteczek piłkarskich?

Pewien wczesny pociąg w kierunku incremental reading pojawił się gdzieś między 10. a 12. rokiem życia. Zacząłem robić notatki o koniach, podążając za odnośnikami w papierowej encyklopedii. Fajnie było zacząć od jednego hasła, licząc, że napiszę broszurkę o koniach, po prostu podążając za linkami. W 1. klasie liceum (w wieku 12 lat) zrobiłem podobne ćwiczenie z encyklopedią ssaków. Czułem jakąś wewnętrzną potrzebę skodyfikowania wszystkich informacji na pewne tematy z biologii. Postanowiłem napisać książkę wielkości encyklopedii o świecie żywym. Na maszynie do pisania w pracy mamy i z użyciem własnych bogatych ilustracji pisałem historię ewolucji. Nigdy jej nie skończyłem. Daremność tego przedsięwzięcia powinna być oczywista. Nigdy mnie to nie martwiło. Ten wysiłek sprawiał przyjemność i uzależniał.

Podobną informożerną naturę pokazałem, gdy zacząłem uczyć się zoologii, chemii, biologii, a później biochemii podczas wakacji letnich 1977-1979 (w wieku 13-15 lat). Był to wyraźny początek mojej rosnącej potrzeby zapamiętywania. Tworzyłem kaligraficznie napisane i drobiazgowo zilustrowane książki z nowo zdobytą wiedzą. Jednak po dłuższym czasie ta wiedza miała tendencję do wyparowywania. Ta daremność zaczęła powoli mi przeszkadzać. Jaki jest sens pisania książek, jeśli wkrótce zamieniają się w taki sam martwy materiał jak wszystkie inne książki na półce?

Około 1981-1982 roku (w wieku 19-20 lat) zacząłem zapisywać swoją wiedzę w formie pytań i odpowiedzi do testów active recall. Wiedziałem, że to jedyny sposób, by rzeczy zapamiętać na dłużej. Nietrudno się domyślić, że po jakimś czasie chaotyczny przegląd też nie dawał pełnej satysfakcji. Na tym etapie byłem wyraźnie bardzo głodny wiedzy. Chciałem pamiętać. Proste intuicje doprowadziły do prostych eksperymentów, a te do prostego SuperMemo dla DOS. Kierowały mną praktyczne zastosowania, łączące badania z przyjemnością nauki.

Od tego momentu moja ścieżka stała się deterministyczna. Zbyt kochałem naukę, by zrezygnować z SuperMemo w trudnych czasach. Moja miłość do nauki była łatwo tłumiona w szkole albo gdy prowadziłem firmę. Jednak gdy zdecydowałem się pracować z domu (1997), między nauką, miłością do nauki a postępem SuperMemo powstała pozytywna pętla sprzężenia zwrotnego. Ponieważ jest to jednocześnie sposób na zarabianie na życie, ta pętla trwa na zawsze. Tylko zły stan zdrowia lub śmierć mogą przerwać ten cykl. Ta część recepty na postęp jest łatwa do rozgryzienia.

Co mogliby zrobić rodzice, by ułatwić dzieciom podobne pasje? Myślę, że w grę wchodzą dwa składniki: inspiracja i wolność. O ile inspiracja jest pomocna, wolność jest niezbędna. Dziś inspirację można znaleźć wszędzie. YouTube odgrywa ogromną rolę tam, gdzie ludzie nie stają na wysokości zadania. Na całym świecie brakuje przede wszystkim właśnie składnika wolności. Dzieci są zniewolone przez szkolnictwo. Są też zniewolone przez autorytarne rodzicielstwo. Wielokrotnie mówiono mi, że część moich szalonych zachowań to efekt uboczny dorastania bez ojca. To może być prawda. Jednak dla równowagi miałem trójkę rodziców. Mamę i dwoje starszego rodzeństwa: inspirującego brata i bezdzietną siostrę, która skierowała całą swoją miłość na mnie, małego bachora. Ośmielę się twierdzić, że przyszedłem na ten świat z rozsądnym wyposażeniem, niewiele powyżej przeciętnej. Często zalegałem na końcu klasy. Rzadko wysuwałem się na prowadzenie. Mam dziesiątki przykładów na to, jak skromne umiejętności czy odrobinę talentu przekuwałem w doskonałość w wąskim obszarze twórczych zainteresowań. Wolność i rage to master zawsze były kluczowymi składnikami. Gdy hodowałem dziesiątki zwierząt albo zbierałem martwe części ciała, rodzina mogła pytać ” dlaczego dzieciak zamiast tego nie chodzi do kościoła?„. Moja mama chroniła mnie przed tymi wpływami i obawami. Mogłem robić rzeczy po swojemu.

Mój rozwój był więc napędzany głównie wpływem wolności. Wolność pomaga rozkwitać learn drive, a learn drive ma zdolność samowzmacniania się. Doprowadziło mnie to do obsesji, które dziś pozwalają mi chwalić się byciem ojcem spaced repetition. Pasje i obsesje powinny być pielęgnowane. Tymczasem mamy tendencję do ich eliminowania w imię robotyzacji rozwoju. Ustalamy benchmarki i każemy dzieciom skakać przez obręcze. Jakby prowadzenie kogoś za rękę przez studia kiedykolwiek przyczyniło się do czyjegoś niezależnego myślenia. Ten proces „odkorowywania” musi się skończyć! Przyszłość należy do free learning.

Jeśli chodzi o spaced repetition, apetyt na rozwiązanie problemu zapominania znacząco wzrósł wraz z nadejściem komputerów osobistych. Na początku lat 90. coraz częściej słyszałem od użytkowników SuperMemo, że myśleli o podobnym rozwiązaniu dla siebie, ale postanowili najpierw rozejrzeć się za konkretną aplikacją.

To wymogi szkoły powodują dziś u uczniów najwięcej frustracji, jednak szkoły nie są dobrym miejscem dla twórczego myślenia. Uczniowie garną się do spaced repetition głównie dlatego, że jest podane na srebrnej tacy. Jest gotowe do konsumpcji. Bardzo niewielu rozważa własne rozwiązania.

Oprócz osobistych wolności, na dobry start SuperMemo złożyło się kilka szczęśliwych okoliczności: (1) darmowe studia w komunistycznej Polsce, (2) sfinansowanie przez rodzinę zakupu skandalicznie drogiego PC, (3) łagodne szkoły, które nie narzucały wiele na mój wolny czas, itd.

Rzadko zobaczysz 22-24-latków majsterkujących przy własnej nauce na koszt państwa lub rodziny. Nie ma nic złego w tym, że młodzi dorośli mieszkają z rodzicami, jeśli realizują twórcze cele.

Spaced repetition narodziło się na skrzyżowaniu dobrych sił: free learning w systemie komunistycznym, przejścia od komunizmu do gospodarki rynkowej oraz nadejścia komputerów osobistych. Wzmocniła to wolność w domu i dawka zdrowej obsesji na punkcie nauki. Głównym składnikiem tego równania jest wolność. Wolność jest powtarzalna. Wystarczy jej udzielić.

Pierwsza dekada SuperMemo: walka ze sceptycyzmem

Sceptycyzm otaczał wczesne dni SuperMemo w Polsce. Wyrażono go dość trafnie w polskim czasopiśmie komputerowym Enter w 1994 roku (zob. pełny artykuł):

SuperMemo może działać, ale nie może być aż tak dobre
Jeśli ktoś jest przekonany o prawdziwości tego, co powiedziano o SuperMemo, czy będzie już przekonany, że program stanowi doskonałe lekarstwo na chorującą pamięć? Czy naprawdę potrafi wykorzystać właściwości układu nerwowego i sprawić, że nauka postępuje kilkanaście razy szybciej niż w standardowych warunkach? W końcu były już całe pokolenia uczniów próbujących wymyślić lepsze metody nauki, a przełom porównywalny z SuperMemo wydaje się wysoce nieprawdopodobny nawet dla dość otwartego umysłowo obserwatora. Wozniak odrzuca argument niskiego prawdopodobieństwa jako wiarygodne źródło sceptycyzmu i mówi, że niejednokrotnie natrafiał na dowody, iż podejścia do nauki podobne do SuperMemo były już wcześniej wypróbowywane, z mniejszym lub większym powodzeniem. Co więcej, warto zauważyć, że SuperMemo mogłoby nigdy nie ujrzeć światła dziennego, gdyby nie zostało wdrożone jako program komputerowy, który łatwo można przekazywać między osobami. Innymi słowy, mogłoby popaść w zapomnienie, tak jak wcześniejsze próby wprowadzenia porządku w procesie nauki. Trzeba pamiętać, że szkieletowy algorytm SuperMemo został sformułowany w 1985, a dopiero 1987 nastąpiła jego bardzo powolna ekspansja w wybranych kręgach naukowych w Poznaniu. Kolejnym punktem zwrotnym, o którym warto pamiętać, jest fakt, że SuperMemo World nie powstałoby w 1991 roku, gdyby nie inspirujące spotkanie umysłów Wozniaka i jego kolegi z uczelni, Krzysztofa Biedalaka, obecnie wiceprezesa SuperMemo World. Obaj byli najlepszymi studentami na uczelni – Wozniak zamierzał studiować neuronaukę w USA, Biedalak chciał zrobić to samo w dziedzinie sztucznej inteligencji. Tylko przez zbieg okoliczności obaj zostali wrzuceni w świat przedsiębiorczej nauki. Wszystko to pokazuje, że mimo iż zasady SuperMemo są niezwykle proste i mogły zostać wynalezione niezależnie po kilkadziesiąt razy w kilkudziesięciu krajach na świecie, SuperMemo nie jest zwykłą przeciętnością. Wyjątkową zasługą SuperMemo World było wcielenie tego pomysłu w praktykę, zainwestowanie mnóstwa roboczogodzin w rozwój oprogramowania i skupienie się na marketingu tego pomysłu wśród potencjalnych klientów. W przeciwnym razie SuperMemo na zawsze pozostałoby ograniczone do wąskiego kręgu swoich wczesnych entuzjastów.

Przyszłość jest jasna

Wspomniałem, że postęp spaced repetition był hamowany przez domysły, słaby zestaw praktycznych narzędzi i zamęt terminologiczny. Dziś wszystkie te czynniki odchodzą w niepamięć. Powstają nowe aplikacje internetowe, łączące big data z praktycznymi potrzebami użytkowników. Wszystkie posługują się tą samą terminologią: forgetting curvespacing effect i spaced repetition. Przyszłość nauki wygląda jaśniej niż kiedykolwiek.