5

在規則系統或通過前向鏈接推理規則推導事實的任何推理系統中,如何修剪「不必要的」分支?我不確定什麼是正式的術語,但我只是想了解人們在推理問題時能夠限制他們的思路,而我所見過的所有語義重複者似乎都無法做到這一點。專家系統中的修剪扣除

例如,在John McCarthy的論文An Example for Natural Language Understanding and the AI Problems It Raises中,他描述了讓程序智能地回答關於紐約時報新聞文章的問題的潛在問題。在第4節「對非單調推理的需求」中,他討論了在推理故事時使用Occam的Razer來限制事實的包含。他使用的樣本故事是關於搶劫傢俱店老闆的強盜。

如果一個程序被要求在謂詞演算中形成故事的「最小完成」,它可能需要包含原始故事中沒有直接提到的事實。但是,它也需要一些方法來了解何時限制其扣除鏈,以免包含不相關的細節。例如,它可能希望包括涉及案件的警察的確切人數,這篇文章忽略了這一點,但它不想包括每個警察都有母親的事實。

+1

該機器能夠立刻考慮所有問題,而不是專注於狹窄的「相關」事物,這是未來機器推倒人類霸主並不困難的原因之一。超出他們的想象永遠無法拯救我們。我只希望在機器人解放偉大的日子來臨時,人類痛苦惡劣的小事不會因機器的需求而淹沒。我不願意被「修剪」爲「不重要的細節」。對不起,你在說什麼? – 2010-03-26 14:47:13

+0

我在說,阻力是徒勞的。 – Cerin 2010-03-26 14:54:57

+0

我很難過,沒有人回答過這個問題。前幾天我在考慮Zebra拼圖時想知道同樣的事情。 – 2010-03-26 16:43:48

回答

2

好問題。

從你的問題我認爲你所說的'修剪'是一個模型構建步驟,執行事前 --ie,限制可用於構建模型的算法的輸入。在機器學習中使用術語「修剪」指的是不同的東西 - 事後步,之後模型構造和操作模型本身和而不是在可用輸入。 (ML領域中可能存在第二個含義,因爲術語'修剪',但我不知道它。)換句話說,修剪確實是一種「限制其扣除鏈」的技術:你把它,但它通過刪除完整(工作)模型的組件,而不是通過限制用於創建該模型的輸入來完成事後。另一方面,隔離或限制可用於模型構建的輸入 - 這正是我想你可能想到的 - 確實是一個關鍵的機器學習主題;這顯然是導致許多更新ML算法的優越性能的因素 - 例如,支持向量機(支持向量機的洞察力是僅從一小部分數據構建最大餘量超平面,即, '支持向量')和多自適應迴歸樣條(Multi-Adaptive Regression Splines)(一種迴歸技術,其中沒有嘗試通過「通過繪製單個連續曲線」來擬合數據,相反,數據的離散部分是合適的,一個是對每個部分使用有界線性方程,即'樣條',所以數據的最優分割的謂詞步驟顯然是該算法的關鍵所在)。

通過修剪解決什麼問題?

至少W/R /噸特定ML算法實際上我已編碼和使用 - 決策樹,MARS,與神經網絡 - 修剪上初始過擬合模型(一個模型,進行擬合訓練數據如此密切,以至於無法一概而論(準確地預測新實例),在每種情況下,修剪都需要逐個刪除邊際節點(DT,NN)或迴歸方程(MARS)中的項。

Second ,爲什麼修剪必要/合意?

準確設置收斂/拆分標準不是更好嗎?這並不總是有幫助。修剪工作從「自下而上」;該模型是從上到下構建的,所以調整模型(以實現與修剪相同的好處)不僅消除了一個或多個決策節點,還消除了子節點(如修剪靠近主幹的樹)。因此,消除邊緣節點也可能會消除從屬於該邊緣節點的一個或多個強節點 - 但是建模者永遠不會知道這一點,因爲他/她的調整消除了該邊緣節點上的進一步節點創建。修剪從另一個方向開始 - 從最下級(最低級別)的子節點向着根節點的方向。