導(dǎo)讀:約1500年前的古代數(shù)學(xué)著作《孫子算經(jīng)》中記載了一個(gè)有趣的問(wèn)題:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?”這就是今人所謂的雞兔同籠問(wèn)題。如今這個(gè)問(wèn)題小學(xué)生們解決起來(lái)可能都輕而易舉,但對(duì)于人工智能而言可能并非如此。在人工智能火熱的今天,我們想聊聊如何讓計(jì)算機(jī)具備解此類問(wèn)題的能力——即數(shù)學(xué)解題。
智能答題任務(wù)
如果說(shuō)一套系統(tǒng)就能解決所有問(wèn)題的“通用人工智能”離人們的生活還很遙遠(yuǎn),那么讓人工智能系統(tǒng)解決具體的某一項(xiàng)、或某一類問(wèn)題已經(jīng)是一個(gè)切實(shí)可行的小目標(biāo)。近幾年智能解題逐漸成為人工智能的一大研究熱點(diǎn)。隨著這項(xiàng)研究的日益火熱,人們想通過(guò)讓人工智能參加“考試”,與人類選手進(jìn)行公平、公開(kāi)的比試,從而衡量目前人工智能系統(tǒng)的“智能”水平。
在全世界范圍內(nèi),有多家研究機(jī)構(gòu)正在從事這一方面的研究。例如日本國(guó)立情報(bào)學(xué)研究所開(kāi)發(fā)了一個(gè)項(xiàng)目Todai Robot,他們讓機(jī)器人挑戰(zhàn)大學(xué)試題,目標(biāo)是2021能夠考上東京大學(xué)。艾倫人工智能研究所(Allen Institute for Artificial Intelligence) 也舉辦了一項(xiàng)比賽,來(lái)自全世界的幾千個(gè)團(tuán)隊(duì)紛紛提交了自己的軟件系統(tǒng)來(lái)挑戰(zhàn)8年級(jí)的科學(xué)題目,最終,該比賽的第一名僅能達(dá)到59%的正確率。在中國(guó),國(guó)家科技部2015年也開(kāi)啟了“高考機(jī)器人” 項(xiàng)目(863計(jì)劃中的類人智能項(xiàng)目),讓人工智能系統(tǒng)和全國(guó)的文科考生一樣,挑戰(zhàn)2017年高考語(yǔ)文、數(shù)學(xué)、文綜三項(xiàng)科目,研究相關(guān)類人答題系統(tǒng)。超過(guò)30多家高校和科研機(jī)構(gòu)(清華大學(xué)、中科院自動(dòng)化所等)聯(lián)合參與了該項(xiàng)目。
意料之外但又情理之中的是,目前各個(gè)人工智能系統(tǒng)的表現(xiàn)普遍在理科解題上弱于文科解題。究其原因:目前機(jī)器學(xué)習(xí)更多強(qiáng)調(diào)的是對(duì)記憶、計(jì)算等相關(guān)內(nèi)容的儲(chǔ)存和運(yùn)用,而對(duì)于邏輯理解和推理這一模塊還沒(méi)有很好的解決。數(shù)學(xué)解題,作為理科考試的一部分,十分考驗(yàn)計(jì)算機(jī)的理解能力和推理能力,針對(duì)數(shù)學(xué)解題之上的研究成果非常有可能定義計(jì)算機(jī)智能的新層次。有鑒于此,數(shù)學(xué)解題應(yīng)該也正在成為人工智能的一塊重要拼圖。
難點(diǎn)和挑戰(zhàn)
盡管雞兔同籠問(wèn)題已經(jīng)成為小學(xué)數(shù)學(xué)中的常見(jiàn)題型,然而該問(wèn)題對(duì)于計(jì)算機(jī)來(lái)說(shuō)卻是一個(gè)極大的挑戰(zhàn)。具體來(lái)講,為了得到最終答案計(jì)算機(jī)需要通過(guò)理解題目的文字描述來(lái)得到相關(guān)數(shù)學(xué)表達(dá),計(jì)算機(jī)需要具備邏輯推理能力來(lái)對(duì)得到的數(shù)學(xué)表達(dá)進(jìn)行算術(shù)演算,計(jì)算機(jī)還需要具有一定的有關(guān)現(xiàn)實(shí)世界的常識(shí)從而能夠約束和簡(jiǎn)化題目。
首先,數(shù)學(xué)解題需要多種層次的自然語(yǔ)言理解。對(duì)于一道題目的文字描述,計(jì)算機(jī)需要知道并理解其中包含的概念。舉個(gè)例子,“一加一等于幾”以及“小明有一個(gè)蘋果和一個(gè)梨,問(wèn)小明有幾個(gè)水果”,同樣本質(zhì)是“1+1=?”的兩道題,在題型概念上是一樣的,表達(dá)方式卻截然不同。計(jì)算機(jī)需要知道如何把以上兩道問(wèn)題都抽象成兩個(gè)對(duì)象相加,這就涉及到所謂的自然語(yǔ)言理解。
事實(shí)上,抽取題目中各個(gè)概念變量的關(guān)系也十分具有難度。數(shù)學(xué)題要求的是精確,如果題目變換了一個(gè)詞,變量之間的關(guān)系可能就會(huì)改變,整個(gè)解法也會(huì)不一樣。比如下面兩道追趕問(wèn)題:
(1)兩輛車同時(shí)往同一方向開(kāi),速度分別為28km/h和46km/h,問(wèn)多少小時(shí)后兩車相距63km?
(2)兩輛車同時(shí)往相反方向開(kāi),速度分別為28km/h和46km/h,問(wèn)多少小時(shí)后兩車相距63km?
兩道題描述很類似,但是車的方向關(guān)系導(dǎo)致了兩題的解法大不相同。如何捕抓出這種細(xì)微的差別也是一大難點(diǎn)。這也是所謂的自然語(yǔ)言理解的一部分。
其次,在一定程度上理解文字之后,數(shù)學(xué)解題需要通過(guò)邏輯推理生成解題公式。如下圖Hosseni 2014的工作,把數(shù)學(xué)題通過(guò)自然語(yǔ)言處理得到幾個(gè)變量狀態(tài)之后,需要推理得到各個(gè)變量狀態(tài)之間的關(guān)系得出數(shù)學(xué)公式。在他給出的例子中,計(jì)算機(jī)通過(guò)學(xué)習(xí)能得到動(dòng)詞“give”代表兩個(gè)狀態(tài)相減。