計算機可以做推理邏輯嗎?

2021-08-02 03:44:32 字數 1785 閱讀 4260

計算機(主要指人工智慧

ai)能不能做推理邏輯?這個問題我思考了很久。其實答案很簡單,當然可以。其實推理就是:規則

+依據已有規則生成新規則。計算機就是基於數學的演繹邏輯做的,程式其實都是

if...else...

,規則是計算機的基本能力,簡單的由規則產生規則並不難,比如:規則

1 : 1+2=3

,規則2

:加法滿足交換規則,所以產生規則:

2+1=1+2=3

。但是,規則多了以後,會造成組合**,推理問題就很難了。更重要的問題是,誰來產生初始規則?目前看來,只有人來產生初始規則。而且,很多時候計算機做不了推理邏輯,主要原因就是初始規則不夠。因為歸納是不嚴謹的,只有演繹才是嚴謹的推理。甚至連統計學都不被認為是嚴謹的數學(少量的貝葉斯推理可能被認為是例外)。所以,產生初始規則是非常困難的。

可能有人會說,貝葉斯派的理論是不是乙個可行的路徑?這個問題很難回答,因為這個問題可大可小。往大了說,這是乙個世界觀的問題,因為頻率派和貝葉斯派是數理統計領域的兩大門派,核心思想是很不同的。頻率派,也就是經典統計理論派,我認為核心思想是從巨集觀角度來看這個世界。貝葉斯派,我認為核心思想是從微觀角度來看這個世界。更多關於兩派理論的討論,我以前曾經討論過,建議看這個文章:

貝葉斯學派與頻率學派有何不同?

往小了說,這是個實現方法的問題,實際上在統計機器學習領域,大多數的實際應用都是使用頻率派的方法,即

「判別式模型

」。而基於貝葉斯的模型,很多時候會面臨一些難以克服的困難。貝葉斯的公式其實很簡單,如下圖所示:

如果不了解貝葉斯的基本理論,可以看一下我以前轉的文章:

數學之美番外篇:平凡而又神奇的貝葉斯方法

在實際使用時,完整的貝葉斯公式一般是用不了的,因為發生一件事情,可能的原因非常多,一般情況,不可能把所有的原因(條件)都做統計,而且,很多原因(條件)是有相互影響的,一旦考慮相互影響,計算會幾何級增長,完整的貝葉斯公式幾乎是無法計算的。另外,很多時候,在你**的時候,很多條件(特徵)也是獲取不到的,實際上,大多數時候你不能獲取到乙個事情發生的全部條件資料。所以,工業界常用的方法是樸素貝葉斯演算法,實際上是對貝葉斯做了大幅度的約束,就是要求所有條件(特徵)是相互無關的,才能求解,而且,通常是當你的特徵非常多的時候,樸素貝葉斯才基本可用,因為特徵非常多的時候,可以近似地忽略條件(特徵)之間的相關性。換句話說,條件(特徵)之間有相關性才是普遍現象,所以樸素貝葉斯的條件無關是個強約束。而且,如果你的特徵很多的時候,你也可以用廣義線性模型求解(判別式模型),比如

logistic regression,

使用起來會更容易操作,而且有人曾經證明特徵量很大的時候,樸素貝葉斯與

logistic regression

是等價的。(

而且,判別式模型比貝葉斯的模型更容易做正則化,更容易調參,這個問題展開講還有很多內容。)

總的來說,我的個人觀點:基於貝葉斯理論,或者貝葉斯網路來做推理邏輯,只有在做強約束條件下,才能使用,而且,很多時候的實際應用中,就算是加約束也是很難真正有效的,因為實際情況變化會很複雜,遠比預期的複雜。

所以,在可以預見的未來(大約是

10年),我想這個問題是難以解決的。

不過,在更遠的未來,可能有一種意外情況。未來的有些計算機不是基於傳統邏輯的,比如,量子物理就不是基於傳統邏輯可以解釋的。

補充說明,這裡所說的是嚴謹的推理邏輯(基於演繹的方法),實際上還有些概率性的推理方法研究(一般是基於統計推斷的方法),沒有詳細描述,嚴格說,那是「推測

」。

計算機邏輯筆試回憶總結

廢話在前 程式設計師的面試除了考資料結構和演算法,還經常會考一些智商型別的邏輯題,而這些題目其實是有一些共同的規律和分類的,有套路可摸,相信積累總結分析之後即使碰不到原題也會有很大的啟發作用,也就是那些套路。地上本沒有套路,走的人多了也變成了套路 哈哈這是廢話。一.數字推理 1 144,121,10...

計算機的邏輯運算

上一節 十六進製制與資料寬度 我們提到,計算是有寬度的。比如 乙個二進位制數 1111 1111 1111 1111 b 我們用4位,4位書寫形式ffff這樣比較簡單。計算機除了算術運算外,還有邏輯運算,只有二進位制才能進行邏輯運算。邏輯運算只有對與錯,成與敗兩個結果 也就是0和1 0 0 0 0 ...

計算機邏輯運算總結

在計算機二進位制中,最高位表示符號位,若為0表示正數,若為1表示負數。同時我們需要清楚知道原碼 反碼 補碼的概念,這裡請自行了解。取非 反 在二進位制補碼中,要獲取數字的負數,需反轉所有位並加1。比如 5 5是00000101,那麼 5則是 11111010 00000001 11111011,然後...