【AAAI Oral】利用DeepMind的DQN解數學應用題,準確率提高15%

本文由 「AI前線」原創,原文連接: dwz.cn/7nBdQV
本文經阿凡題研究院受權發佈
做者|王磊,張東祥,高聯麗,宋井寬,郭龍,申恆濤

AI 前線導讀: 」加強學習和人類學習的機制很是相近,DeepMind 已經將加強學習應用於 AlphaGo 以及 Atari 遊戲等場景當中。做爲智能教育領域的引領者,阿凡題研究院首次提出了一種基於 DQN(Deep Q-Network)的算術應用題自動求解器,可以將應用題的解題過程轉化成馬爾科夫決策過程,並利用 BP 神經網絡良好的泛化能力,存儲和逼近加強學習中狀態 - 動做對的 Q 值。實驗代表該算法在標準測試集的表現優異,將平均準確率提高了將近 15%。」算法


研究背景網絡

自動求解數學應用題(MWP)的研究歷史可追溯到 20 世紀 60 年代,而且最近幾年繼續吸引着研究者的關注。自動求解應用數學題首先將人類可讀懂的句子映射成機器可理解的邏輯形式,而後進行推理。該過程不能簡單地經過模式匹配或端對端分類技術解決,所以,設計具備語義理解和推理能力的應用數學題自動求解器已成爲通向通用人工智能之路中不可缺乏的一步。框架

對於數學應用題求解器來講,給定一個數學應用題文本,不能簡單的經過如文本問答的方式端到端的來訓練,從而直接獲得求解答案,而須要經過文本的處理和數字的推理,獲得其求解表達式,從而計算獲得答案。所以,該任務不只僅涉及到對文本的深刻理解,還須要求解器具備很強的邏輯推理能力,這也是天然語言理解研究中的難點和重點。函數

近幾年,研究者們從不一樣的角度設計算法,編寫求解系統,來嘗試自動求解數學應用題,主要包括基於模板的方法,基於統計的方法,基於表達式樹的方法,以及基於深度學習生成模型的方法。目前,求解數學應用題相關領域,面臨訓練數據集還不夠多,求解算法魯棒性不強,求解效率不高,求解效果很差等多種問題。因爲數學題自己須要天然語言有足夠的理解,對數字,語義,常識有極強的推理能力,然而大部分求解方法又受到人工干預較多,通用性不強,而且隨着數據複雜度的增長,大部分算法求解效果急劇降低,所以設計一個求解效率和效果上均有不錯表現的自動求解器,是既困難又很是重要的。性能

相關工做學習

算術應用題求解器:測試

做爲早期的嘗試,基於動詞分類,狀態轉移推理的方法,只能解決加減問題。爲了提升求解能力,基於標籤的方法,設計了大量映射規則,把變量,數字映射成邏輯表達式,從而進行推理。因爲人工干預過多,其擴展困難。大數據

基於表達式樹的方法,嘗試識別相關數字,並對數字對之間進行運算符的分類,自底向上構建能夠求解的表達式樹。除此以外,會考慮一些比率單位等等的限制,來進一步保證構建的表達式的正確性。基於等式樹的方法,採用了一個更暴力的方法,經過整數線性規劃,枚舉全部可能的等式樹。基於樹的方法,都面臨着隨着數字的個數的增減,求解空間呈指數性增長。人工智能

方程組應用題求解器:設計

對於方程組應用題的求解,目前主要是基於模板的方法。該須要將文本分類爲預約義的方程組模板,經過人工特徵來推斷未知插槽的排列組合,把識別出來的數字和相關的名詞單元在插槽中進行填充。基於模板的方法對數據的依賴性較高,當同一模板對應的題目數量減小,或者模板的複雜性增長時,這種方法的性能將急劇降低。

本文的主要貢獻以下:

  1. 第一個嘗試使用深度加強學習來設計一個通用的數學應用題自動求解框架
  2. 針對應用題場景,設計了深度 Q 網絡相應的狀態,動做,獎勵函數,和網絡結構。
  3. 在主要的算術應用題數據集上驗證了本文提出的方法,在求解效率和求解效果上都取得了較好的結果。

方案介紹

基於深度 Q 網絡的數學應用題求解器

本文提出的框架如上圖所示。給出一個數學應用題,首先採用數字模式提取用於構建表達式樹的相關數字,而後根據重排序制定的規則,對提取出來的相關數字進行順序調整,好比對於「3+4*5」, 咱們但願優先計算4*5,這裏的數字 5,對應的文本段是「5 元每小時」,顯然這裏的數字「5」的單位是「元 / 小時」,當數字「4」的單位是「小時」,數字「3」的單位是「元」,遇到這種狀況,調整 4 和 5 放到數字序列的最前面,隨後,用已排好序的數字序列自底向上的構建表達式樹。

首先,根據數字「4」和數字「5」各自的信息,相互之間的信息,以及與問題的關係,提取相應的特徵做爲加強學習組件中的狀態。而後,將此特徵向量做爲深度 Q 網絡中前向神經網絡的輸入,獲得「+」,「-」,反向「-」,「*」,「/「,反向」/「六種動做的 Q 值,根據 epsilon-greedy 選擇合適的操做符做爲當前的動做,數字」4「和」5「根據當前採起的動做,開始構建表達式樹。下一步,再根據數字」4「和數字」3「,或者數字」5「和數字「3」,重複上一步的過程,把運算符數字的最小公共元祖來構建表達式樹。直到沒有多餘相關數字,建樹結束。隨後將詳細介紹深度 Q 網絡的各個部件的設計方式。

狀態:對於當前的數字對,根據數字模式,提取單個數字,數字對之間,問題相關的三類特徵,以及這兩個數字是否已經參與表達式樹的構建,做爲當前的狀態。其中,單個數字,數字對,問題相關這三類特徵,有助於網絡選擇正確的運算符做爲當前的動做;數字是否參與已經參與表達式樹的構建,暗示着當前數字對在當前表達式樹所處的層次位置。

動做:由於本文處理的是簡單的算術應用題,因此只考慮,加減乘除四則運算。在構建樹的過程當中,對於加法和乘法,兩個數字之間不一樣的數字順序將不影響計算結果,可是減法和除法不一樣的順序將致使不一樣的結果。因爲,咱們實現肯定好數字的順序,因此添加反向減法和反向除法這兩個操做是很是有必要的。所以,總共加減乘除,反向減法和除法 6 種運算符做爲深度 Q 網絡須要學習的動做。

獎勵函數:在訓練階段,深度 Q 網絡根據當前兩個數字,選擇正確的動做,獲得正確的運算符,環境就反饋一個正值做爲獎勵,不然反饋一個負值做爲懲罰。

參數學習:本文采用了一個兩層的前向神經網絡用於深度 Q 網絡計算指望的 Q 值。網絡的參數θ將根據環境反饋的獎勵函數來更新學習。本文使用經驗重放存儲器來存儲狀態之間的轉移,並從經驗重放存儲器中批量採樣 (s,a,s',r),用於更新網絡參數θ。模型的損失函數以下:

利用損失函數的梯度值來更新參數,來縮小預測的 Q 值和指望的目標 Q 值的差距,公式以下:

算法流程以下:


實驗

本文采用了 AI2, IL,CC 這三個算術應用題數據集進行實驗。其中 AI2 有 395 道題目,題目中含有不相關的數字,只涉及加減法。IL 有 562 道題目,題目中含有不相關的數字,只涉及加減乘除單步運算;CC 有 600 道題,題目中不含有不相關的數字,涉及加減乘除的兩步運算。

三個數據集準確率以下圖:

觀察上述實驗結果發現,本文提出的方法在 AI2,CC 數據集上取得了最好的效果。ALGES 在 IL 上表現很好,可是在 AI2 和 CC 數據集上表現卻不好,這從側面證實了咱們的方法有更好的通用性。UnitDep 提出的單位依賴圖對只有加減運算的 AI2 數據集沒有明顯的效果,其增長的 Context 特徵在 CC 數據集上有取得了明顯的效果,可是卻在 AI2 數據集上效果明顯降低,這裏表現出人工特徵的侷限性。對於本文提出的方法,重排序在 CC 數據集上,提高效果明顯,因爲 AI2 只有加減運算,IL 只涉及單步運算,因此在這兩個數據集上效果不變。

除此以外,本文還作了單步和多步的斷點分析,實驗效果代表,本文提出的方法在多步上表現十分優異,實驗結果以下圖:

運行時間以下圖:

觀察單個題目求解須要的時間,咱們能夠發現,多步運算的數據集 CC,在時間上明顯耗費更多。ALGES 因爲要枚舉全部可能的候選樹,所以耗費時間最長。本文提出的方法,求解效率僅次於只有 SVM 作運算符,和相關數字分類的 ExpTree。

平均獎勵和準確率的走勢以下圖:


總結

本文首次提出了一個用於求解數學應用題的加強學習框架,在基準數據上其求解效率和求解效果展示出較好的效果。

將來,咱們將繼續沿着深度學習,加強學習這條線去設計數學應用題自動求解器,來避免過多的人工特徵。同時在更大更多樣化的數據集上,嘗試求解方程組應用題。

論文題目:《MathDQN: 利用深度加強學習求解算術應用題》

英文:《MathDQN: Solving ArithmeticWord Problems via Deep Reinforcement Learning》

Paper URL:

cfm.uestc.edu.cn/~zhangdongx…

團隊: 阿凡題研究院、電子科技大學、北京大學

做者: 王磊,張東祥,高聯麗,宋井寬,郭龍,申恆濤

更多幹貨內容,可關注AI前線,ID:ai-front,後臺回覆「AI」、「TF」、「大數據」可得到《AI前線》系列PDF迷你書和技能圖譜。

相關文章
相關標籤/搜索