期末高數有救了!AI幫你解方程
近日,Facebook AI宣布建立了第一個使用符號推理解決高級數學方程式的AI系統,準確率碾壓Mathematica和Matla。
通過開發一種將復雜的數學表達式表示為一種語言的新方法,然后將解決方案替換序列到序列神經網絡的翻譯問題,研究者建立了一個在求解積分問題和一階、二階微分方程方面都優于傳統計算的系統。
以前,這類問題被認為超出了深度學習模型的范圍,因為求解復雜方程需要精確而不是近似。
神經網絡擅長于通過近似來學習如何成功,比如識別一個特定的像素模式可能是一個狗的圖像,或者一個句子在一種語言中的特征與另一種語言中的特征相匹配。
解決復雜的方程也需要處理符號數據的能力,比如公式b - 4ac = 7中的字母。這些變量不能直接相加、相乘或分割,而且只能使用傳統的模式匹配或統計分析,神經網絡被限制在極其簡單的數學問題上。
Facebook AI表示,他們提出的解決方案是一種全新的方法,可將復雜的方程式透視語言中的句子,因此他們能夠在神經機器翻譯(NMT)訓練模型中充分利用成熟的技術,從而將問題從本質上轉化為解決方案。
為了實施此方法,他們需要開發一種將現有數學表達式分解為兩種語言的語法的方法,并生成包含超過100M個配對方程式和解的大規模訓練數據集。
當面對成千上萬個不可見的表達式時,這些方程并不是訓練數據的一部分,研究者的模型比傳統的代數方程求解軟件,如Maple、Mathematica和Matlab,在速度和準確性上都有顯著提高。
這項研究不僅證明了深度學習可以用于符號推理,還表明神經網絡有潛力處理更廣泛的任務,包括那些通常與模式識別無關的任務。研究者正在分享研究者方法的細節,以及幫助其他人生成類似訓練集的方法。
應用神經機器翻譯(NMT)的新方法
特別擅長符號數學的人往往依賴一種直覺。他們對給定問題的解決方案應該有什么樣的感覺,例如觀察到,如果要積分的函數中存在余弦,則其積分中可能存在正弦,然后進行必要的工作來證明。
通過訓練一個模型來檢測符號方程的模式,研究者相信神經網絡可以拼湊出解決方案的線索,這與人類基于直覺的復雜問題處理方法大致相似。
因此,研究者開始探索作為一個NMT問題的符號推理,其中一個模型可以根據問題的實例及其匹配的解決方案來預測可能的解決方案。
研究者的方法如何將一個現有的方程(左側)擴展為一個表達式樹,該表達式樹可以作為轉換模型的輸入。對于這個方程,輸入到研究者模型中的前序序列是:(+,乘以,3,冪,x, 2,-,cos,乘以,2,x, 1)
為了用神經網絡實現這個應用,研究者需要一種表示數學表達式的新方法。NMT系統通常是序列到序列(seq2seq)模型,使用單詞序列作為輸入,并輸出新的序列,允許它們翻譯完整的句子而不是單個單詞。
研究者使用了兩步的方法來將其應用于符號方程。首先,研究者開發了一種有效地解包方程的方法,將方程以樹枝狀的分支結構展開,然后將其擴展成與seq2seq模型兼容的序列。
常量和變量充當葉子,而操作符(如加號和減號)和函數是連接樹的分支的內部節點。
雖然它可能看起來不像傳統語言,但以這種方式組織表達式為等式提供了一種類似于語言的語法——數字和變量是名詞,而操作符是動詞。
研究者的方法使NMT模型能夠學習將給定樹結構問題的模式與其匹配解決方案(也表示為樹)進行對齊,類似于將一種語言中的一個句子與其已確認的翻譯進行匹配。
這種方法允許研究者利用強大的、即時可用的seq2seq NMT模型,將單詞序列替換為符號序列。
建立新的訓練數據集
雖然研究者的表達式樹語法使NMT模型在理論上能夠有效地將復雜的數學問題轉化為解決方案,但是訓練這樣的模型需要大量的示例。
因為在研究者關注的兩類問題中(積分和微分方程)一個隨機產生的問題并不總是有一個解,研究者不能簡單地收集方程并把它們輸入系統。
研究者需要生成一個全新的訓練集,其中包含重新構造為模型可讀表達式樹的已解方程示例。
這就產生了“問題-解決方案”對,類似于在不同語言之間翻譯的句子語料庫。研究者的數據集也必須比之前使用的訓練數據大得多,之前的研究試圖在數千個例子上訓練系統。
由于神經網絡通常在擁有更多訓練數據時表現更好,所以研究者創建了一個包含數百萬個示例的集合。
構建這個數據集需要研究者合并一系列數據清理和生成技術。例如,對于符號積分方程,研究者改變了翻譯方法:不是生成問題并找到它們的解,而是生成解并找到它們的問題(它們的導數),這是一個更簡單的任務。
這種從其解決方案中產生問題的方法,使得創建數百萬個集成示例成為可能。研究者得到的受翻譯啟發的數據集由大約100萬個成對的例子組成,其中包含積分問題的子集以及一階和二階微分方程。
研究者使用此數據集來訓練具有8個關注頭和6個層的seq2seq transformer模型。transformer 通常用于翻譯任務,而研究者的網絡旨在預測各種方程式的解決方案,例如確定給定函數的原語。
為了評估模型的性能,研究者向模型提供了5,000種的表達式,從而迫使系統識別出訓練中未出現的方程式中的模式。
研究者的模型在解決積分問題時的準確度為99.7%,對于一階和二階微分方程,其準確度分別為94%和81.2%。這些結果超出了研究者測試的所有三個傳統方程求解器的結果。
Mathematica的結果欠佳,在相同的積分問題上準確度為84%,對于微分方程結果的準確度為77.2%和61.6%。
研究者的模型還可以在不到0.5秒的時間內返回大多數預測,而其他系統則需要幾分鐘才能找到解決方案,有時甚至會完全超時。
研究者的模型將左邊的方程作為輸入,能夠在不到一秒的時間內找到正確的解(如右邊所示)。但是Mathematica和Matlab都無法解出這些方程.
將生成的解決方案與參考解決方案進行比較,可以方便而準確地驗證結果。但研究者的模型也能產生一個給定方程的多個解。這類似于機器翻譯,有很多方法可以翻譯輸入的句子。
會解方程的AI,下一步會做什么?
研究者的模型目前處理的是單變量問題,研究者計劃將其擴展到多變量方程。這種方法也可以應用于其他基于數學和邏輯的領域,如物理,這可能會幫助科學家進行更廣泛的工作。
但研究者的系統對神經網絡的研究和使用有著更廣泛的意義??梢栽谝郧靶胁煌ǖ牡胤绞褂蒙疃葘W習的方法去解決,這項工作表明,其他任務可能會受益于人工智能。
無論是通過將NLP技術進一步應用到傳統上與語言無關的領域,還是通過在新任務或看似無關的任務中對模式識別進行更開放的探索,神經網絡的限制可能是想象力的限制,而不是技術的限制。