<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 1997:啟用神經網絡 [TOC=2,5] ## 神經網絡:方興未艾 20 世紀 80 年代中期,我讀到邁克爾-阿比伯的**《大腦、機器和數學》**。這本書鞏固了我認為大腦是高效計算機器的觀點。 只要對大腦工作機制感興趣,那么神經網絡天然是令人著迷的,而幾乎所有人都是如此。在學習計算機科學時(1985-1990年),我對大腦和神經網絡有了新的、計算性的看法。神經網絡有自行構建模型這個非同尋常的能力,人們很自然地就想到用它來研究記憶數據,來回答記憶如何工作的問題。然而,神經網絡有一個重大缺點,就是神經網絡不揭露其內部機制。這有點像大腦本身的問題,大腦可以做各種神奇的事情,但卻很難說出大腦內部如何運轉。編寫神經網絡軟件是很有趣的,我在 1989 年就稍有嘗試。但將神經網絡應用起來就沒那么有意思了。 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 的代數方法勝過了神經網絡,原因有二:(1)我想回答的記憶方面的問題似乎總是太簡單,似乎不用涉及到神經網絡,(2)網絡需要數據,這些數據從用戶學習中產生,而用戶學習需要算法,這個算法需要回答記憶的簡單問題。在這場先有雞還是先有蛋的競賽中,比起利用現有數據和神經網絡在那抓耳撓腮,我的大腦還是領先一步。 代數方法的優越性,更體現在求解最優間隔時,只需畫出遺忘曲線,使用回歸方法,找出回憶率低于 90% 的點即可。這在我的 [1985 年的實驗](https://supermemo.guru/wiki/The_birthday_of_spaced_repetition:_July_31,_1985)中更為極端,我的「遺忘曲線」只由 5 個點組成。我還能選一個我最喜歡的。這簡直是學齡前習題。不需要高射炮打蚊子。 1990 年,研究[間歇學習模型](https://supermemo.guru/wiki/Search_for_a_universal_memory_formula),是我最有可能采用神經網絡的時刻。1990 年 7 月 6 日,在與 [Murakowski](https://supermemo.guru/wiki/Janusz_Murakowski) 進行了長達 7 小時的討論后,我們得出結論,神經網絡可以回答一些問題。然而,我的電腦已經在用代數爬山算法瘋狂計算數據了。從本質上講,爬山算法類似于神經網絡中的特征提取。一旦我算出了答案,我采用神經網絡的動力就消失了。我不需要更好的計算辦法。我需要的是更好的數據。 盡管如此,在 1990 年代中期,有越來越多人提問, SuperMemo 算法是否足夠有適應性,以及是否有可能在算法中應用神經網絡。這些問題的提出者大多不是很了解 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 工作效果還不錯,能讓我們滿意。[SM-2](https://supermemo.guru/wiki/Algorithm_SM-2) 這一最早的算法甚至沿用到了今天,其用戶大概已達到[百萬量級](https://supermemo.guru/wiki/Exp記憶的不滿往往源自不合理的期望,這種期望要歸咎于學校[課程安排](https://supermemo.guru/wiki/Curricula)。悶悶不樂的情緒,則是因為不善于[構建知識來健康地學習](https://supermeru/wiki/Cramming)的沖動誘發的,而這樣的沖動也是從學校中帶出來的惡習。SuperMemo 算法無法療愈對學習的不滿。這些算法一貫表現良好,在過去的三十年中給人們帶來進步,這是可以量化測量的。對很多用戶來說,神經網絡就像萬能藥,有改良一切的本領。 ## 采用神經網絡的要求 在 20 世紀 90 年代,發給 [SuperMemo World](https://supermemo.guru/wiki/SuperMemo_World) 的郵件經常暗示道,神經網絡方法會更優越。即使 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 已經推廣了十年,學生們還是會寫出一系列錯誤的斷言: > SuperMemo 沒有考慮到用戶能力與需求的不同。相反,SuperMemo 假設每個學習者都是「壞的學習者」。因此每個學習者都會有相同的重復時間間隔。其底層算法是硬性規定的,因此如果你學習方式不同,或者更善于學習,SuperMemo 算法效率不會太高。[...]神經網絡能考慮到學習者類型差異很大,不同類型需要不同的最優重復間隔。在復習新單詞時,學習者不斷「告訴」程序他們做得多好/多壞,他們的學習者類型也水落石出了。有了這種反饋之后,程序能夠在必要時適應學習者類型,并優化內在重復間隔。 這些話表明對他 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 缺乏了解。SuperMemo 并沒有使用什么 「壞學生模型」,只是在還沒收集學生記憶數據時,先使用較短的間隔。選擇較短間隔的依據是這樣能更快收斂到最優解。換句話說,SuperMemo 能夠適應學生個體的需要,而「低于平均水平學生的模型」可能指還沒收集數據的起始點。神經網絡在訓練之前也需要選取某個模型,保證時間安排不是完全無規可循的。 在 SuperMemo 中,平均學生模型只是初始條件,之后還會繼續計算學生的真實記憶模型。 在有限維的軌跡優化中,有了不錯的初始狀態猜測,收斂速度就能很快。不過在 SuperMemo 中不是這樣,因為[最優間隔](https://supermemo.guru/wiki/Optimum_interval)函數只有簡簡單單 3 個維度。在一般情況下,對解的搜索可能會失敗,而優化也不會成功。與舊版 SuperMemo 中用于研究目的的單價矩陣不同,神經網絡算法如果沒有經過預訓練,結果會是一團亂麻。這就是為什么先前的學習數據被用來更新 SuperMemo 中使用的平均或低于平均的學生模型,以達到最大的收斂速度。 請注意,在 [SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17)中,這個平均學生模型更加不重要,因為 SM-17 算法對學習過程中多個參數和函數使用了最佳擬合(比如條目難度,穩定性增長函數)。因此 SuperMemo 總能充分利用現有數據,給出最好結果(使用我們目前最先進的記憶模型知識)。 一個多世紀以來,[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)的大致形狀已經為人所知(見:[艾賓浩斯遺忘曲線的錯誤](https://supermemo.guru/wiki/Error_of_Ebbinghaus_forgetting_curve))。SuperMemo 收集了關于不同[難度](https://supermemo.guru/wiki/Difficulty)和不同記憶[穩定性](https://supermemo.guru/wiki/Stability)的[條目](https://supermemo.guru/wiki/Item)的遺忘曲線形狀的精確數據。從遺忘曲線中,SuperMemo 很容易得出[最優間隔](https://supermemo.guru/wiki/Optimum_interval)。數據只來自一個學生,每一次重復都有助于提高計算精度。換句話說,隨著你每一分鐘使用 SuperMemo,程序都會越來越了解你。不僅如此,在一兩個月后,它就足夠了解你了。你永遠不需要擔心算法的效率問題。 神經網絡周圍籠罩著神秘的光環。神經網絡能夠揭示所研究現象的隱藏屬性。我們很容易忘記,如果輸入了錯誤的信息,或者缺少一些重要信息,神經網絡很容易失敗。這就是唯一一例有效應用于間隔重復的神經網絡的問題:[David Calinski 的 MemAid](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#David_Calinski_and_FullRecall)。 MemAid 的神經網絡設計,錯在了使用間隔和重復次數作為輸入來表示記憶的狀態,而這兩個變量與[穩定性](https://supermemo.guru/wiki/Stability):[可提取性](https://supermemo.guru/wiki/Retrievability)不對應。穩定性和可提取性已經[證明是描述長期記憶痕跡狀態的必要條件](https://supermemo.guru/wiki/Two_components_of_memory)。換句話說,MemAid 中的神經網絡并沒有得到計算[最優間隔](https://supermemo.guru/wiki/Optimum_interval)所需的所有信息。更好的設計會是對完整的[重復歷史](https://supermemo.guru/wiki/Repetition_history)進行編碼,例如,使用穩定性和可提取性變量。需要完整的重復歷史來說明大量呈現的[間隔效應](https://supermemo.guru/wiki/Spacing_effect),或在延遲重復中對通過成績的穩定性的顯著提升。然而,Calinski 的設計也能滿足在「最優」間隔中學習的基本要求,而很少偏離間隔重復的規則(與[算法 SM-2](https://supermemo.guru/wiki/Algorithm_SM-2) 差不多好)。 ## SuperMemo 是否缺乏靈活性? 認為 SuperMemo 是有偏見的而神經網絡不偏不倚,此言差矣。沒有什么能阻止 SuperMemo 中的優化矩陣偏離記憶模型,并產生意想不到的結果。誠然,多年來,隨著對記憶工作機制的了解越來越充分,SuperMemo 算法又增添了更多限制,以及定制的小算法。不過這些都不是胡亂猜測的結果。SuperMemo 算法中「偏見」的進步只是反映了前些年的發現。這些發現同樣會影響任何神經網絡實現,以最大化其表現。 認為 SuperMemo 中優化矩陣的原始預設值是偏見的說法也不對。這些預設值相當于神經網絡中的預訓練。缺乏預訓練的神經網絡地收斂到最佳模型也會比較慢。這就是為什么 SuperMemo 是經過普通學生模型「預訓練」的。 間隔增長率由最優間隔矩陣決定,而且絕不是恒定的。此外,最優間隔矩陣在時間上的變化取決于用戶的表現。只有在使用數月或數年后,算法才感覺像固定下來,穩定不變(算法變化的速度與可用的學習數據量成反比)。算法最終的收斂,反映了人類記憶系統的不變性。使用代數法還是神經網絡法來處理優化問題并不重要。最終一個間隔重復函數會現身,反映用戶記憶的真實性質。有鑒于此,算法收斂速度應該算作是算法質量的指標。換句話說,間隔函數「固定」下來的速度越快越好。 最后,還有一個領域,神經網絡必須使用現有的記憶模型知識(即攜帶一些偏見),否則就會失去效率。實驗性的神經網絡 SuperMemo、MemAid 以及 FullRecall 都表現出了一個固有的弱點。當間隔產生預期的效果(如測量的遺忘指數的特定水平)時,網絡就會達到穩定。每次網絡偏離最優模型時,都會根據重復過程中得到的評分,對最優間隔的數值進行啟發式猜測(例如,評分=5 對應于 [SuperMemo NN 中最優間隔的 130%](http://super-memory.com/english/ol/nn_train.htm)或 [MemAid 中的 120%](http://memaid.sourceforge.net/docs/ann.html))。另一方面,代數式 SuperMemo 可以計算出一個難度估計,使用準確的保留率測量,并產生一個準確的[穩定性增長](https://supermemo.guru/wiki/Stability_increase)矩陣的調整值。換句話說,它不會猜測[最優間隔](https://supermemo.guru/wiki/Optimal_interval)。它為那個特定的重復計算出它的精確值。對記憶矩陣的調整是加權的,并產生一個穩定的非振蕩收斂。換句話說,正是這種記憶模型使得消除猜測因素成為可能。就這一點而言,代數式 SuperMemo 比神經網絡 SuperMemo 的偏見要小。 ## 微調間隔重復算法是徒勞無功的 [SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17)是重大進步,然而,許多用戶不會注意到這種改進,而堅持使用舊算法。這個認知問題導致了"[SM3+ 迷思](https://supermemo.guru/wiki/SM3%2B_myth)",我在這篇[文章](https://supermemo.guru/wiki/First_fast-converging_spaced_repetition_algorithm:_Algorithm_SM-5)中試圖破除這個迷思。同時,新算法對于研究進展是價值連城的。換句話說,實際需求和理論需求之間不不協調。 我在1994 年接受過《Enter》雜志采訪,其中所言至今仍然適用: > 我們已經看到,進化論代表了 SuperMemo,心理學領域的發現與該方法相吻合,分子生物學的事實和來自沃茲尼亞克模型的結論似乎相輔相成。現在是時候看看所描述的機制是如何在程序中發揮作用的了。在重復的過程中,SuperMemo 為學習者繪制了遺忘曲線,并在保留率(即記憶知識的比例)下降到先前定義的水平時,安排重復。換句話說,SuperMemo 檢查你一周后的記憶程度,如果你的記憶低于預期,它會要求你在不到一周的時間內進行重復。否則,它就會在更長的時間后檢查你的記憶,并相應增加間隔時間。這個簡單的畫面有一點小問題,那就是不同難度的項目必須以不同的時間間隔進行重復,而且隨著學習過程的進行,時間間隔也會增加。此外,對于一個普通人來說,最優的重復間隔必須是已知的,而且必須在程序能夠收集真正的學生的數據之前使用這些間隔。顯然,必須有整個數學儀器的參與,以使整個機器運轉起來。總而言之,沃茲尼亞克說,在他的一生中,至少有 30 天他有過這樣的印象:SuperMemo 中使用的算法已經得到了顯著的升級。每一個案例似乎都是一個重大的突破。整個開發過程只是一長串的試驗和錯誤,測試,改進,實施新的想法,等等。不幸的是,那些好日子已經過去了。自 1991 年以來,該算法沒有任何突破性的改進。一些安慰可能來自于這樣一個事實:從那時起,軟件開始快速發展,為用戶提供了新的選擇和解決方案。那么,SuperMemo 是否還能更好、更快、更有效?沃茲尼亞克是悲觀的。任何對算法的進一步微調,應用人工智能或神經網絡都會被淹沒在干擾的噪音中。畢竟,我們不是在與世隔絕的情況下學習。當程序將下一次重復安排在 365 天后,而事實卻在更早的時間被偶然想起,SuperMemo 沒有辦法知道這個偶然的回憶,它將在之前計劃的時間執行重復的工作。這不是最理想的,但它不能通過改進算法來補救。現在改進 SuperMemo 就像在嘈雜的汽車裝配車間里對無線電接收器進行微調。SuperMemo World 的人現在不太關注科學。在他們看來,在科學發明之后,SuperMemo 的社會發明時機已經到來。 ## Dreger 的神經網絡項目 1997 年 5 月 20 日,我在前網絡 [BBS](https://en.wikipedia.org/wiki/Bulletin_board_system) 時代的網友 Bartek Dreger 想出了一個好主意。他還在波茲南科技大學的計算機科學研究所寫了關于 SuperMemo 的碩士論文。這將比我[自己的](https://supermemo.guru/wiki/Master's_Thesis)晚 8 年,只不過他將使用神經網絡來觀察它們的表現。盡管他比我年輕近 20 歲,但他的計劃是在我在本文其他地方經常提到的那個偉大的 Weglarz 操作研究團隊中嘗試這個項目。早在 1990 年,Nawrocki 博士就提出了使用神經網絡來改進 SuperMemo 的想法。Roman Slowinski 教授的偉大思想將成為監督者。這可能真的有效。 到 1997 年 6 月,我的另一個網友 Piotr Wierzejewski 也加入了這個項目。然后又有三個計算機科學專業的學生加入。這是個可愛的團隊,由五個年輕人組成,年齡加起來 100 歲。很快,這個項目遇上在線 SuperMemo 的想法,又稱為:WebSorb(用于從網絡(web)吸收(absorb)知識), 它得到了進一步擴展。我們犯了熱情勃發的年輕團隊常犯的問題:把計劃擴充得太滿,最后,只有一小部分目標被實現了。只有在線 SuperMemo 的想法不斷發展,雖然非常曲折,中途有一些小項目誕生了又消亡了(例如 [e-SuperMemo](http://super-memory.com/archive/english/ol/e-supermemo.htm), Quizer, Super-Memorizer, Memorathoner 等),直到 [3GEMs](http://super-memory.com/archive/english/company/3gems.htm) 出現,成為 [supermemo.net](https://supermemo.guru/wiki/SuperMemo.com),最終演變成今天的 [supermemo.com](http://supermemo.com/)。 青年在類似項目中的最大優勢是創造力和激情。最大的障礙是學校教育,以及后來的其他義務,包括生孩子。這個神奇的智囊團成了學校這個古老問題的受害者:將一個在激情中誕生的項目轉化為一個有截止日期、報告、測試、考試和成績的學校苦差事。正如[這里](https://supermemo.guru/wiki/SuperMemo_1.0_for_DOS_(1987))所解釋的那樣,SuperMemo也是在那種危險的學校環境中誕生的。成功的關鍵是為自由而戰。枷鎖熄滅激情。[SuperMemo](https://supermemo.guru/wiki/SuperMemo)的想法之所以在學校教育的壓力下幸存下來,是我[有推動教育自由的志向](https://supermemo.guru/wiki/How_I_invented_perfect_schooling)。 ## 神經網絡式 SuperMemo:為什么記憶模型對 SuperMemo 算法至關重要? 為[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)神經網絡提出的特征提取是基于[這里](https://supermemo.guru/wiki/Two_component_model_of_memory)描述的長期記憶的兩個組成部分的存在而得到充分證明的。 [記憶雙組分模型](https://supermemo.guru/wiki/Two_component_model_of_memory)能夠充分表示學習中[原子記憶軌跡](https://supermemo.guru/wiki/Complexity)的狀態。有這兩個記憶變量,計算[最優間隔](https://supermemo.guru/wiki/Optimum_interval)才有可能,也能將[間隔效應](https://supermemo.guru/wiki/Spacing_effect)納入考慮。延遲重復的[記憶穩定性增長](https://supermemo.guru/wiki/Stability_increase)的函數也是已知的。綜上所述,只簡單的優化算法,[SuperMemo](https://supermemo.guru/wiki/SuperMemo) 中確定最優重復間隔就是小菜一碟。神經網絡則需要對每個項目的全部重復歷史進行編碼,而最明顯的編碼選擇是記憶[穩定性](https://supermemo.guru/wiki/Stability) (S)和記憶[可提取性](https://supermemo.guru/wiki/Retrievability) (R)。換句話說,設計間隔重復算法都依賴相同的基礎假設無論算法是代數的還是網絡的。毋庸置疑,代數式的解決方案是簡單快捷的,收斂速度快,也不需要預訓練([最優間隔矩陣](https://supermemo.guru/wiki/OF_matrix)或[穩定性增長矩陣](https://supermemo.guru/wiki/Stability_increase)充分表達了記憶模型)。 基于完整重復歷史的神經網絡,對于計算記憶[穩定性](https://supermemo.guru/wiki/Stability),效果和爬山算法相同。爬山算法對于計算記憶穩定性就是更優越/快速的工具。爬山算法和神經網絡有同樣的局限,即輸出答案的質量受制于輸入問題(數據)的質量。 ## 神經網絡式 SuperMemo: 設計 我們與 Bartek Dreger 一起設計了一個簡單的 ANN 系統來處理[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)問題(1997 年 12 月)。請注意,如果沒有 Krzysztof Krawiec 博士的專業知識,這個項目是不可能完成的,他對完善設計很有幫助。 存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F) 重復間隔問題包括在人類學習的過程中計算最優的重復間隔。這些間隔是針對單個信息(后來被稱為項目)和給定的個人而計算的。整個輸入數據是學生在學習過程中的項目重復中獲得的成績。到目前為止,這個問題通過一系列連續的算法得到了最有效的解決,這些算法在商業上被稱為 [SuperMemo](https://supermemo.guru/wiki/SuperMemo),由[沃茲尼亞克]博士(https://supermemo.guru/wiki/Piotr_Wozniak)在波蘭的 [SuperMemo World](https://supermemo.guru/wiki/SuperMemo_World) 開發。沃茲尼亞克在開發最新版本的算法([算法SM-8](https://supermemo.guru/wiki/Algorithm_SM-8))時使用的[神經統計學記憶模型](https://supermemo.guru/wiki/Neurostatistical_Model_of_Memory)不能被視為對人類長期記憶的最終代數描述。最值得注意的是,突觸模式的復雜性和項目難度之間的關系還不太廣為人知。一旦采用神經網絡來提供記憶狀態、評分和項目難度之間的充分映射,就可能讓人對這種關系有更多的了解。 若使用目前最先進的解決方案,在實時學習過程中應用神經網絡的技術可能性,還取決于對神經網絡遇到問題給出可用定義,而定義這些問題時,合理應用當前對學習過程的理解不可或缺。面對數千條目的重復中得到的歷史評分輸入,神經網絡不可能當即生成出解決方案。實時生成解決方案的計算復雜度和空間復雜度,自然會遠遠超出網絡的實時學習和反應能力。 利用 Wozniak 的長期記憶雙組分模型,我們推測以下神經網絡解決方案可能會加快收斂,提升高重復間隔的準確性。 描述給定記憶痕跡的狀態所需的兩個記憶變量是記憶的可提取性(R)和穩定性(S)([Wozniak, Gorzelanczyk, Murakowski, 1995](http://super-memory.com/english/2vm.htm)。下面的方程式將 R 和 S 聯系起來: > (1) R=e-k/S*t > 其中: > - k 是常數 > - t 是時間 利用公式(1),給定穩定性,可以得出可提取性隨時間的變化;與此同時,給定穩定性和遺忘指數,我們也能確定最佳的重復間隔。 描述重復后穩定性變化的函數的確切代數形狀尚不清楚。不過有實驗數據表明,對于時機適當的重復,穩定性通常會增加 1.3 到 3 倍,其增量取決于條目難度(難度越大,增加越少)。為讓神經網絡計算[穩定性函數](https://supermemo.guru/wiki/Search_for_a_universal_memory_formula),其預訓練可以使用最優間隔重復的估計值,這些值來自 [SM-8 算法](https://supermemo.guru/wiki/Algorithm_SM-8) 的優化矩陣的實驗數據。 > (2) Si+1=fs(R,Si,D,G) > 其中: > - Si 是第 i 次重復后的穩定性 > - R 是重復前的可提取性 > - D 是條目難度 > - G 是第 i 次重復的評分 穩定性函數是第一個需要利用神經網絡確定的函數。第二個函數則是項目難度函數,其輸入參數與穩定性函數輸入參數類似: > (3) Di+1=fd(R,S,Di,G) > 其中: > - Di 是第 i 次重復后的條目難度近似值 > - R 是重復前的可提取性 > - S 是第 i 次重復后的穩定性 > - G 是第 i 次重復的評分 因此,一個有四個輸入(D、R、S 和 G)和兩個輸出(S 和 D)的神經網絡可以用來封裝計算重復間隔所需的全部知識(見:[重復間隔神經網絡的實現](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Neural_Network_SuperMemo:_Implementation))。 為了驗證上述方法的可行性,我們將采取以下方法: 1. 神經網絡的[預訓練](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Pretraining)將根據從[算法 SM-8](https://supermemo.guru/wiki/Algorithm_SM-8) 中使用的函數得出的近似 S 和 D 函數以及收集的實驗數據進行。 2. 這樣一個預訓練的網絡將被實現為一個 [SuperMemo Plug-In DLL](http://super-memory.com/archive/english/algplug.htm),它將取代 SuperMemo 8 for Windows 所使用的標準 [sm8opt.dll](http://super-memory.com/english/sm8opt.htm)。在神經網絡 DLL 的 alpha 測試中,網絡的教學將在一個真正的學習過程中繼續進行。一個專門為實驗目的而設計的程序將被用來提供累積結果和由此產生的神經網絡。該程序將使用在 alpha 測試中使用的神經網絡來訓練將參加 beta 測試的網絡。alpha 測試網絡將被送入一個輸入參數矩陣,其輸出將被用作結果網絡的訓練數據。 3. 在最后一步,神經網絡的測試將通過互聯網直接從 SuperMemo 網站向所有志愿者開放。志愿者只被要求將他們的結果網絡提交給實驗的最后階段,在這個階段,最終的網絡將被開發。同樣,測試版網絡將全部用于訓練結果網絡。神經網絡式 SuperMemo 的未來用戶(如果該項目出現成功)將獲得一個對人類記憶有相當了解的網絡,并能夠進一步完善其對學習過程中特定學生的日常活動和特定學習材料的干擾的反應。 所有間隔算法都有一個主要問題,就是是比較最優間隔函數的輸出與實際應用特定重復間隔的結果之間,存在一定延遲。在每次重復時,必須記住前一次重復的網絡狀態,以便生成網絡的新狀態。在實踐中,這相當于在重復之間存儲了大量的網絡狀態。 幸運的是,沃茲尼亞克模型意味著 S 函數和 D 函數與時間無關(有趣的是,它們也可能與用戶無關!);因此,可以采取以下方法來簡化程序: | 時間時刻 | T1 | T2 | T3 | | :-------------------------: | :-----------: | :-------------------: | :-------------------: | | 決策 | I1N1O1=N1(I1) | I2N2O2=N2(I2) | I3N3O3=N3(I3) | | 上一次決策的結果 | | O*1E1=O*1-O1 | O*2E2=O*2-O2 | | 教學評估 | | O'1=N2(I1)E'1=O*1-O'1 | O'2=N3(I2)E'2=O*2-O'2 | 其中: - Ei 是 Oi 的誤差約束(見[記憶穩定性的誤差修正](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Stability)和[項目難度的誤差修正](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Difficulty)) - E'i 是 O'i 的誤差約束 - Ii 是 Ti 處的輸入數據 - Ni 是 Ti 處的網絡狀態 - Oi 是 Ni 在給定 Ii 后的輸出決策,即在 Ti 進行第 i 次重復后的決策 - O*i 是一個最優輸出決策,應該在 Ti 而不是 Oi 處獲得;它可以從評分和 Oi 中計算出來(評分表明 Oi 應該如何改變以獲得更好的近似值) - O'i 是 Ni+1 在給定 Ii 后的輸出決策,即在 Ti+1 進行第 i 次重復后的決策 - Ti 是某一項目第 i 次重復的時間 上述方法只需要在 Ti-1 和 Ti 發生的重復之間為每個項目存儲 Ii-1,大大節省了學習過程中存儲的數據量(E'i 和 Ei 一樣對訓練有價值)。這樣,所提出的解決方案在空間復雜度上與[算法 SM-8](https://supermemo.guru/wiki/Algorithm_SM-8) 相當!在整個過程中,只需要記住神經網絡的一個(當前)狀態。 這些是目前討論的項目的實現假設: - 神經網絡:單向,分層,有彈性的反向傳播;一個有四個神經元的輸入層,一個有兩個神經元的輸出層,以及兩個隱藏層(每層 15 個神經元)。 - 項目難度解釋:與[算法 SM-8](https://supermemo.guru/wiki/Algorithm_SM-8) 中相同,即由 [A-系數](https://supermemo.guru/wiki/A-Factor)定義 - 對每個條目存儲以下內容:最后一次重復日期,[穩定性](https://supermemo.guru/wiki/Stability)(最后一次重復時的),[可提取性](https://supermemo.guru/wiki/Retrievability)(最后一次重復時的),[項目難度](https://supermemo.guru/wiki/Complexity),最后評分 - 默認[遺忘指數](https://supermemo.guru/wiki/Forgetting_index): 10% - [神經網絡 DLL 輸入](http://super-memory.com/archive/english/algplug.htm)(在每次重復時):項目編號和當前評分 - [網絡 DLL 輸出](http://super-memory.com/archive/english/algplug.htm)(在每次重復時):下次重復日期 - 神經網絡 DLL 實現語言:C++ - 神經網絡 DLL 的 shell, SuperMemo 98 for Windows(與 32 位 [SM8OPT.DLL](http://super-memory.com/english/sm8opt.htm) shell 相同) ## 神經網絡式 SuperMemo: 實現 該網絡實際上已經得到了[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)算法的支持。它的唯一作用是隨著時間的推移對性能進行微調。這正是所有 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 算法如在[算法 SM-5](https://supermemo.guru/wiki/Algorithm_SM-5) 中所做的那樣。在這個意義上,這個設計并沒有要求網絡進行發現。它要求在發現的基礎上進行改進。該模型是在設計中加入的。 存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F) **基本假設** 記憶的狀態將只用兩個變量即可描述:可提取性(R)和穩定性(S)([Wozniak, Gorzelanczyk, Murakowski, 1995](http://super-memory.com/english/2vm.htm)。下面的方程將 R 和 S 聯系起來: > (1) R=e-k/S*t > 其中: > - k 是常數 > - t 是時間 為簡單起見,我們將設定 k=1 來統一定義穩定性。 **輸入和輸出** 以下函數將由網絡求解: > (2) Si+1=fs(R, Si, D, G) > (3) Di+1=fd(R, S, Di, G) 輸入給定的 R、S、D 和 G,神經網絡應該輸出穩定性(S)和條目難度(D): > (4) (Ri, Si, Di, Gi) => (Di+1,Si+1) > 其中: > - Ri 是第 i 次重復前的可提取性 > - Si 是第 i 次重復前的穩定性 > - Si+1 是第 i 次重復后的穩定性 > - Di 是第 i 次重復前的條目難度 > - Di+1 是第 i 次重復后的條目難度 > - Gi 是第 i 次復習時的評分 **針對難度 D 的錯誤修正** 目標難度定義為 [SM-8 算法](https://supermemo.guru/wiki/Algorithm_SM-8)中,第二個間隔和第一個間隔的比率。;[神經網絡插件](http://super-memory.com/archive/english/algplug.htm) (NN.DLL)將記錄對所有條目記錄目標難度,并將其用于訓練網絡: > (5) Do=I2/I1 > 其中: > - Do 是用于誤差修正的指導性難度(Do 越高,難度越小) > - I1 是為有關條目計算的第一個最優間隔(對所有條目都一樣) > - I2 是為該條目計算的第二個最優間隔 重要! 最優間隔 I1 和 I2 不是網絡在驗證前提出的間隔,而是在提出的間隔已經執行和驗證后用于誤差修正的間隔(見[穩定性 S 的誤差修正](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Stability))! 難度的初始值將設為 3.5,即 D1=3.5。這只是為了與算法 SM-8 相似。由于初始難度未知,所以不能用初始難度求解第一個間隔。第一次評分之后,由于第二個最優間隔也是未知,所以仍然無法進行誤差修正。一旦得知第二個最優間隔,Do 就可以用來對輸出的 D 進行誤差修正。 為了避免神經網絡的收斂問題,下列公式可用于求出正確的 D 輸出: > (6) Dopt=0.9*Di+0.1*Do > 其中: > - Dopt 是在第 i 次重復后用于誤差修正的難度 > - Di 是第 i 次重復前的難度 > - Do 是指導性難度,由公式 (5) 可得 公式 (6) 中的收斂系數 0.9 是隨意取的,可能會根據神經網絡表現而改變。 **穩定性 S** 的誤差修正 下列公式是將公式 (1) 中遺忘指數取 10%,令 k=1 而得出的。這個公式方便轉換穩定性和最優間隔:I=-ln(0.9)*S 在最好情況下,神經網絡應該每次重復都生成一次所需遺忘指數。只要已知穩定性 S (見公式 (1)),變化遺忘指數也很容易使用。為了簡單起見,進一步分析中遺忘指數取 10%。 為了加速收斂,神經網絡將測量 25 類重復的遺忘指數。這 25 類重復的劃分是根據 (1) 五個難度類別:1-1.5、1.5-2.5、2.5-3.5、3.5-5 和 5 以上,和 (2) 五種間隔時長類別:1-5、5-20、20-100、100-500 和 500 天以上。我們將這些類別的遺忘指數測量值表示為 FI(Dm,In)。此外,我們還測算總體遺忘指數 FItot,并將其用于穩定性的誤差修正。 最終目標是在所有類別的遺忘指數達到 10% 。下列公式將用于誤差修正以保證結果的穩定性: > (7) FIopt(m,n)=(10*FItot+Cases(m,n)*FI(m,n)) /(10+Cases(m,n)) > 其中: > - FIopt(m,n) 是屬于 (m,n) 類的重復之后,用于誤差修正的遺忘指數 > - FItot 是總體遺忘指數,以重復次數衡量 > - Cases(m,n) 是用于衡量類別 (m,n) 中遺忘指數,以重復次數計量 公式 (7) 中的公式應該是在單獨類別的案例數量增加時,將糾錯的權重從總體遺忘指數轉移到特定類別記錄的遺忘指數上。很明顯,對于 Cases(m,n)=0,我們有 FIopt(m,n)=FItot。對于 Cases(m,n)=10,整體和類別 FI 的權重平衡,對于大量的案例,FIopt(m,n) 接近 FI(m,n)。 下表說明了 FIopt(m,n)、評分和使用的間隔校正之間的假定關系: | 評分 | 0 | 1 | 2 | 3 | 4 | 5 | | :------------: | :-----------: | :-----------: | :-----------: | :-----------: | :-----------: | :-----------: | | FIopt(m,n)>10%|40%|60%|80%|無修正|無修正|無修正 | FIopt(m,n)=10% | 無修正 | 無修正 | 無修正 | 無修正 | 無修正 | 無修正 | | FIopt(m,n)<10% | 無修正 | 無修正 | 110% | 120% | 130% | 在 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 中,小于 3 的評分代表遺忘,而評分等于 3 或大于 3 則代表充分回憶。這就是為什么在 FI 達標的情況下,不對合格的平分進行修正,而在 FI 大于要求的情況下,不對不合格的評分進行修正。在應用間隔為 10 天的情況下,對過度遺忘率和評分 = 2 的示例性修正是 80%。因此,網絡將被指示假定間隔 = 8 為正確。然后,正確的穩定性將從 S=-8/ln(0.9) 中得出,并用于糾錯。間隔修正的值是任意的,但不應該破壞網絡的收斂性。在不可能出現穩定性問題的情況下,可以減少修正值(注意,學習過程中的環境噪聲將大大超過無效選擇修正因子的影響!)。類似的修正曾經被應用于連續的 SuperMemo 算法中,結果令人鼓舞。 **邊界條件** 為了加速收斂,將對神經網絡施加以下額外約束: - 連續兩次重復的間隔增長倍數必須至少是 1.1(因此,難度不能低于 1.1) - 第一次重復的間隔增長倍數不能超過 8,以后的重復中不能超過 4 - 第一個間隔必須在 1 到 40 天之間 - 難度度量不能超過 8 這些條件不會使網絡更有偏見,因為在過去十年使用 SuperMemo 及其實施的實踐中,這些條件已被證明是真實且完全合理的。 **預訓練** 在預訓練階段,將使用公式(2)和(3)的如下形式: > (8) Di+1:=Di+(0.1-(5-G)*(0.08+(5-G)*0.02)) > > (9) Si+1:=Si*Di*(0.5+1/i) 其中 D1=3.5, S1=-3/ln(0.9)。 公式 (8) 是由 [SM-2 算法](https://supermemo.guru/wiki/Algorithm_SM-2)推導出來的(見 E-系數公式)。公式(9)是由[算法 SM-8](https://supermemo.guru/wiki/Algorithm_SM-8) 中的矩陣 OF 大致導出的。D1=3.5 對應于算法 SM-8 中的相同設置。S1=-3/ln(0.9) 對應于第一個間隔 3 天和遺忘指數 10%。3 天的數值接近于各種學生和學習材料難度的平均值。 預訓練也將使用上一段中提到的邊界條件。 神經網絡存在多種問題,實現、bug、收斂、干擾等等。研究神經網絡的唯一有效方法是將其應用到真正的 SuperMemo 中,看看神經網絡如何使用真實數據工作的。我有個想法是把算法寫入一個 DLL 里。我們可以在同一程序 shell 中研究算法的變體。我們對 [SM-2 算法](https://supermemo.guru/wiki/Algorithm_SM-2)、[SM-8 算法](https://supermemo.guru/wiki/Algorithm_SM-8) 都有類似嘗試,現在對神經網絡也可如法炮制。不幸的是,這個 DLL 想法的實現還是為時過早。參加項目的孩子們熱情如熾,而他們一畢業便散做滿天星,在其他地方找到工作,娶妻結婚,而我從來沒有機會在我自己的學習中嘗試這個插件,在我最喜歡的 shell 中,當時是 SuperMemo 9(又名 SuperMemo 98)。 神經網絡 SuperMemo 是學生項目,其唯一目的是驗證神經網絡應用于間隔重復的可行性。毋庸置疑,神經網絡是可行的。此外,所有可以想象到的有效優化工具,只要充分打磨,必然會產生與 SuperMemo 目前所實現的類似結果。換句話說,只要學習程序能夠快速收斂到最優模型,并產生期待中的知識保留率,用于完成目標的優化工具是次要的。 考慮到這個項目早期階段的問題數量,我懷疑成功的插件會改變我對神經網絡的想法。我是程序員,喜好擺弄東西,我喜歡看我創造的東西。神經網絡對我來說顯得太黑箱了。至于這個團隊,他們今天的事業都很成功。這些孩子們后來還為其他一些 SuperMemo 工作做出了貢獻。青年有蓬勃創意,青年是難解謎團,能啟動這個項目,我不勝歡欣。 ## David Calinski 和 FullRecall 大衛-卡林斯基(生于 1981 年)是 20 世紀 90 年代早期年輕的 SuperMemo 愛好者之一。他對加速學習、心理學、精神病學等方面表現出豐富的興趣。 我很快就認識到了他的才能,并希望在一些 SuperMemo 項目中招募他,包括 SuperMemo for Linux,然而,許多天才喜歡獨行。在某些時候,他從 SuperMemo 轉向了他自己的應用程序(FullRecall,見后文),從那時起,他就不會放棄他的項目。 我們關于神經網絡的討論始于 2001 年。David 是 SuperMemo 的粉絲,然而,他也承認自己從未真正研究過該算法。這導致他寫下如下批評: > 我不知道 SM 算法的具體細節(我從來沒有對它感興趣過),但重要的是想法綱領。SM 的算法輸入一些數據(如重復次數、項目難度、當前評分等),并返回計算出的下一個最優間隔。這個算法即使是 「聰明的」,也就是能以某種方式糾正自己,也仍然是愚蠢的——其修正能力不超過其設計所賦予的。 他是對的,[算法 SM-17](https://supermemo.guru/wiki/Algorithm_SM-17) 與[長期記憶的雙組分模型](https://supermemo.guru/wiki/Two_component_model_of_long-term_memory)有內在的聯系,然而,這兩者是相得益彰的。這種結合只能由反面證據來打破,而反面證據到目前整整三十年還沒有出現。 大衛的立場是完全有道理的。這都是關于建模和先驗知識。對大衛來說,[SM-8 算法](https://supermemo.guru/wiki/Algorithm_SM-8)很復雜。神經網絡似乎是消除復雜度的簡單方式。對我來說,我自己的算法就像乘法表一樣簡單。這種建模差異往往會導致認知上的分歧,這是件好事。如果沒有這些差異,我們今天對間隔重復中的神經網絡的了解就會少得多! 在 2004 年,我寫信給大衛:「對 SuperMemo 中使用的算法的進一步改進不可能導致學習的進一步加速。然而,在處理異常情況方面仍有改進的余地,如大幅延遲的重復、短時間集中展示、處理內容改變的項目、處理項目之間的語義聯系等等。有趣的是,該算法的最大進步可能來自于對人類長期記憶模型的更好定義。特別是,描述不同可提取性水平的記憶穩定性變化的功能正在被更好地理解。這可以極大地簡化算法。更簡單的模型需要更少的變量,這就簡化了優化工作。基于記憶痕跡的穩定性和可提取性的算法也可以更好地處理低可提取性的項目。然而,由于在學習過程中,異常的項目案例只占少數,而且測試一個新的算法需要幾年的時間,目前還不清楚是否會進行這樣的實施。」 大衛開發了他自己的神經網絡 MemAid。后來他將其轉化為商業產品。從免費到商業的轉變是艱難的,原因顯而易見,因為用戶往往更喜歡價格下降。盡管經歷了種種波折,大衛還是堅持了下來,他的 DIY 修理工以及對科學和編程的熱情總是讓他占了上風。像 Anki 一樣,他試圖保持他程序的跨平臺性,這對簡單性有一些限制和要求。用他的話說:「我喜歡速度,喜歡沒有邊界,喜歡不只依賴一種方案、系統、電腦等。」 今天 FullRecall 是免費的。見 [changelong](http://fullrecall.com/changelog)。 [![ANN interval distribution (in FullRecall)](https://supermemo.guru/images/f/f1/ANN_interval_distribution.jpg)](https://supermemo.guru/wiki/File:ANN_interval_distribution.jpg) > 圖:FullRecall 中的間隔分布。在神經網絡的幫助下安排復習。 開源的 [MemAid 項目](http://memaid.sourceforge.net/)于 2006 年關閉,但 FullRecall 繼續進行。另一個受 MemAid 啟發的項目也是如此:[Mnemosyne](https://supermemo.guru/wiki/Mnemosyne)。然而,Mnemosyne 選擇了他們自己版本的[算法 SM-2](https://supermemo.guru/wiki/Algorithm_SM-2)。時至今日,Mnemosyne 產生的數據可供間隔重復愛好者或 [Mnemosyne 項目](https://mnemosyne-proj.org/)的研究人員使用。 與 Calinski 一樣,Peter Bienstman 對較新的算法持懷疑態度:「SuperMemo 現在使用 SM-11。然而,我們有點懷疑較新的 SM 算法的巨大復雜性是否提供了統計學上的相關好處。但是,這也是我們希望通過數據收集找出的事實之一。」 「統計學上的相關利益」取決于標準。對于用戶來說,實際的算法可能是次要的。對于研究來說,[算法 SM-17](https://supermemo.guru/wiki/Algorithm_SM-17)是一個金礦(和 Mnemosyne 等所有程序能產生的數據一樣多)。 ## 為什么 FullRecall 的神經網絡是有缺陷的? [兩個記憶變量](https://supermemo.guru/wiki/Two_component_model_of_memory)對于表示[間隔重復](https://supermemo.guru/wiki/Atomic_memory)中的[原子記憶](https://supermemo.guru/wiki/Spaced_repetition)來說,既是必要的也是充分的。此外,這兩個變量還可以用來解釋大量呈現中的[間隔效應](https://supermemo.guru/wiki/Spacing_effect)。它們還可以解釋這里討論的高[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)對長期[保留](https://supermemo.guru/wiki/Retention)的好處。這兩個長期記憶的變量,我們稱之為:[穩定性](https://supermemo.guru/wiki/Stability)和[可提取性](https://supermemo.guru/wiki/Retrievability),是表示記憶狀態的必要條件。任何想要在間隔和回憶之間的關系中找到模式的神經網絡必須在其輸入中接收完整的記憶狀態,否則它將永遠無法計算出最優間隔。這種狀態可能有完整的[重復歷史](https://supermemo.guru/wiki/History_of_repetitions)的形式。它也可以是[穩定性](https://supermemo.guru/wiki/Stability):[可提取性](https://supermemo.guru/wiki/Retrievability)對(如果它可以被計算出來)。它也可以是重復歷史上的任何其他代碼,從中可以計算出記憶的狀態。 FullRecall 神經網絡的設計并不符合這些標準: - 輸入:last_interval_computed_by_ann(根據 ANN 得出的最后一次間隔)[0-2048天](如果不是復習,而是第一次展示,則為零) - 輸入:real_interval_since_last_review [0-2048天] (與上面的注釋相同) - 輸入:number_of_repetitions_of_an_item_so_far (目前為止條目的重復次數)[0-128] - 輸入: current_grade(目前評分)[0-5, 5 是最好的] - ANN 給我們的輸出是:new_interval(新間隔)[0-2048] 間隔和重復次數都不能反映記憶的穩定性和可提取性。可能在使用間隔效應的大量內容學習中重復多次,但是記憶穩定性提升卻微乎其微。長間隔的次優計劃可能導致穩定性和可提取性較低。簡而言之,對于相同的間隔,記憶的狀態將取決于重復的時間分布。 可以舉例說明:在 1000 天內安排 10 次重復,如果安排是 9 天內 9 次重復,其中有 991 天的間隔,那么最終記憶穩定性接近于 0(假設沒有其他干擾)。與此同時,如果輸入相同,而間隔安排最優,那么可提取性將接近 100%, 而穩定性也極高,因而可以安排接近 1000 天的最優間隔。 只有用戶分毫不差地按照最優間隔重復安排復習,神經網絡才能有不錯的表現。要實現這點,神經網絡只有經過預訓練才可行,比如使用 [SM-2 算法](https://supermemo.guru/wiki/Algorithm_SM-2) 預訓練。此時神經網絡會很不穩定,也無法收斂到最優解,因為有很多偏離最優安排的復習,比如神經網絡誤差導致的復習,這些復習會讓神經網絡偏離原始狀態,而原始狀態下神經網絡還能根據輸入計算記憶情況。 在理想化的情況下,穩定性和可提取性對于單一的單突觸關聯來說是足夠的。在現實生活中,參與聯想的語義網絡很可能涉及一些這樣的理想單元記憶。這就是為什么 SuperMemo 使用絕對條目難度。在 [SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17)中,絕對條目難度是由默認的[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)為 10% 時,第一次優化安排的復習的記憶[穩定性](https://supermemo.guru/wiki/Stability)的最大增幅決定的。FullRecall 網絡沒有輸入項目難度的可靠衡量,因而神經網絡低效問題更加嚴重。 根據用戶報告,FullRecall 網絡似乎工作得相當好。根據目前的分析,該網絡可能采用了精心選擇的邊界條件,然而,這樣就相當于回到了 SuperMemo 舊版本中采用的[算法 SM-2](https://supermemo.guru/wiki/Algorithm_SM-2)。不用說,那個老的 SuperMemo 算法比 SuperMemo 中新的基于矩陣的代數算法更有偏見,可塑性更差。 如果 FullRecall 網絡是預先訓練好的,例如在[算法 SM-2](https://supermemo.guru/wiki/Algorithm_SM-2) 的幫助下,學生嚴格地堅持他或她的重復,網絡可能工作得很好,因為間隔與記憶的穩定性有很好的關聯,特別是如果信息被重復的次數所加強。然而,如果沒有適當的邊界條件,在[漸進閱讀](https://supermemo.guru/wiki/Incremental_reading)中,該網絡肯定會失敗,因為它可能收到錯誤的記憶狀態信息。根據不同的情況,相同的重復次數:間隔對可能出現在穩定性=0 和最大穩定性對應的終身記憶中。同樣,對于網絡中的同一輸入對,可提取性也可能在 0-1 范圍內變化。例如,在考試前頻繁地進行子集復習,然后是較長時間的學習中斷(例如由溢出引起的),可能對應于非常低的穩定性和可提取性,盡管在同一時期提供與正確執行一系列間隔復習相同的輸入(具有高穩定性和高于 0.9 的可提取性)。在[漸進閱讀](https://supermemo.guru/wiki/Incremental_reading)中,過載、自動延期、項目提前、篩選集復習和間隔效應對網絡來說是不可見的。 假設設計良好,那么 FullRecall 的缺陷只會在間歇學習中顯示出來,這可能會觸發邊界條件。這不應該減損軟件本身的價值。它只是要強調,神經網絡的設計并不容易,而且可能會變成劣質的。它甚至可能不如舊的、據說可塑性較低的代數算法。 簡而言之,FullRecall 網絡輸入并沒有反映出計算最優間隔所需的所有必要信息。特別是,重復次數是衡量記憶穩定性或可提取性的一個非常差的標準。更好的方法是對整個[重復歷史](https://supermemo.guru/wiki/History_of_repetitions)進行編碼,或者使用[穩定性](https://supermemo.guru/wiki/Stability)和[可提取性](https://supermemo.guru/wiki/Retrievability)變量來計算記憶的狀態。穩定性和可提取性都必須是可以從網絡輸入中計算出來的。 ## SuperMemo 中神經網絡的前景 在我們與 Calinski 的討論中(2001年),我總結了我的保留意見,并發誓要繼續走老的「保守」道路。17 年后,我很高興。在運用神經網絡進行間隔重復的領域里,并沒有什么進展。可能 SuperMemo 本身也在抑制這一進展。但與此同時,[算法SM-17](https://supermemo.guru/wiki/Algorithm_SM-17) 已經揭示了在[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)和理解人類記憶方面繼續進步仍是可能的。假以時日,定有進益。 SuperMemo 將沿用其代數算法,理由如下: - **已知的模型**:在我們不知道映射現象的基本模型的情況下,神經網絡更有優勢。遺忘的模型是眾所周知的,這使得計算重復間隔時使用的代數優化方法容易進行微調。眾所周知的模型也使得 SuperMemo 能夠抵抗不平衡的數據集,這可能困擾著神經網絡,特別是在學習的初始階段。最后但同樣重要的是,[記憶的雙組分模型](https://supermemo.guru/wiki/Two_component_model_of_memory)的有效性已經在許多方面得到了證明,在設計網絡時放棄該模型,以阻止偏見的名義,將是浪費。這種方法可能只具有研究價值 - **過擬合**:由于數組值的案例加權變化,SuperMemo 中使用的優化數組不會受到「過擬合」的影響。不需要進行預訓練,因為事先知道最優間隔的函數的近似形狀。不存在數據表示問題,因為所有磕磕碰碰的數據輸入都會在時間上被「權衡」出來 - **等價性**:從數學上講,對于連續函數,在具有 n 個參數的映射函數中,n 個輸入網絡等同于 n 維數組,除了「參數解析問題」。參數解析問題的范圍,即參數值范圍的有限數量,強烈依賴于函數。對 SuperMemo 所顯示的優化數組的短暫窺探表明,「參數解析」遠遠好于這種特殊類型的函數的實際需要,尤其是考慮到數據中的大量「噪音」。SuperMemo 中使用的爬坡算法讓人想起了旨在重新加權網絡的算法 - **研究**:SuperMemo 中矩陣的使用使我們很容易看到「進行中的記憶」。神經網絡就沒有那么好觀察了。它們不能有效地揭示其結論。你無法看到一條遺忘曲線如何影響最優間隔的函數。這意味著,神經網絡的黑箱性質使得它們作為記憶研究工具不那么有趣 - **收斂性**:算法的復雜性并不是由記憶模型的復雜性造成的。大部分的復雜性來自于工具的使用,這些工具被認為是為了在不損害其穩定性的情況下加快優化程序的收斂速度。這種微調之所以能夠實現,是因為我們對底層記憶模型有很好的了解,以及多年來收集的實際學習數據,這些數據幫助我們精確地確定了模型各個組成部分的最優近似函數 - **[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)**:確定給定[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)的[最優間隔](https://supermemo.guru/wiki/Optimum_interval)的唯一方法是知道給定[難度](https://supermemo.guru/wiki/Difficulty)等級和記憶[穩定性](https://supermemo.guru/wiki/Stability)的(近似)遺忘曲線。如果一個神經網絡不試圖映射遺忘曲線,它將總是圍繞最優間隔的值振蕩(好的評分會增加該值,而壞的評分會減少該值)。由于數據噪音的存在,這只是一個理論上的問題。然而,它說明了穩定性-可提取性-困難-時間關系的符號表示的力量,而不是幾乎無限多的可能遺忘曲線數據集。如果神經網絡不使用遺忘曲線的加權映射,它將永遠不會收斂。換句話說,它將一直圍繞著最佳模型進行振蕩。如果神經網絡權衡了狀態歷史和/或采用了遺忘曲線,它將采取與現在的 SuperMemo 算法相同的方法,而這種方法首先是要被網絡所避免的 總之,神經網絡可以用來計算間隔,但從計算能力、研究價值、穩定性以及重中之重的收斂速度來看,神經網絡似乎不是最好的工具。設計最優神經網絡會遇到與設計代數優化程序類似的困難。最后,在「經典」[SuperMemo](https://supermemo.guru/wiki/SuperMemo)中設置的邊界條件也會遲早出現在網絡設計中(可以看:[神經網絡 SuperMemo](https://supermemo.guru/wiki/History_of_spaced_repetition_(print)#Neural_Network_SuperMemo:_Design))。 與其他函數逼近手段一樣,工具選擇不同,或是對算法稍一微調,收斂速度和映射準確性便有天壤之別。神經網絡可用于求算一些所知尚少的附屬函數,這些附屬函數可用于加快代數算法的收斂速度。例如,時至今日,[條目難度](https://supermemo.guru/wiki/Complexity)估計問題還沒有完全破解。我們只是告訴用戶要讓知識表述簡單。任何教育家,只要意識到人類記憶存在限制,都會提出這一建議的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看