推理演算法
1. 樸素貝葉斯的推理學習演算法
樸素貝葉斯的推理學習演算法
貝葉斯公式簡易推導式:
樸素貝葉斯的樸素在於假設B特徵的每個值相互獨立,所以樸素貝葉斯的公式是這樣的
學習與分類演算法:
(1)計算先驗概率和條件概率
拉普拉斯平滑:
(2)代入被測樣本向量,得到不同類別P,再根據後驗概率最大化,取P最大的類別作為該標簽類別。
樸素貝葉斯優點在於對於小規模數據很好,適合多分類。缺點是數據輸入形式敏感而且特徵值之間的相互獨立很難保證帶來的影響。
2. 怎麼去理解判斷推理題
一)推理的一般概念
推理是指從一組具體事物經過分析綜合得出一般規律,或者從一般原理演出新的具體結論的思維活動。前者叫歸納推理,後者叫演繹推理。歸納推理過程由假設形成和假設評價兩部分組成,概念形成過程實際上研究的是歸納推理。歸納推理的結果受個人的知識經驗影響,有很大的不一致性。演繹推理的結論是從前提推出來的,即從一般的規則推導出來的,其結論應該是一致的,在本質上它屬於問題解決的范疇。下面我們主要介紹一下認知心理學對演繹推理的研究。
(二)三段論推理
三段論推理由三個命題構成,其中兩個命題為假定真實的前提,另一個命題為結論,該結論可能符合這兩個前提,也可能不符合。所有這三個命題都帶有直接陳述的性質。例如:
所有的A都是B。
所有的B都是C。
所以,所有的A都是C。
人們的很多認識是用邏輯量詞表達的。在三段論推理中,也根據命題中的邏輯量詞將命提分為全稱肯定命題,即包含"所有...... "的命題;全稱否定命題,即包含"沒有...... "的命題;特稱肯定命題,即包含"某些...... "的命題;特稱否定命題,即包含"某些......不...... "的命題。
人們如何進行三段論推理呢?心理學上主要用氣氛假說來解釋。這一假說是由武德沃斯和塞爾斯(Woodworth &Sells,1935)提出的。他們認為人們在進行三段論推理中使用的是氣氛探索法。他們在研究中給被試呈現各種三段論推理題目。在這些題目中,三段論的結論除包含一個正確的結論外,還包括許多錯誤的結論。然後讓被試根據前提選擇結論。結果發現,被試的推理往往受三段論中所使用的邏輯量詞("某些"、"所有"、"沒有"、"不")的影響。即三段論中所使用的邏輯量詞產生了一種"氣氛",促使被試容易接受包含有同一邏輯量詞的結論。一般情況下,被試會根據肯定性前提接受肯定性結論,根據否定性前提接受否定性結論。如果肯定性、否定性前提都有,則被試情願接受否定性結論,例如:
沒有A是B。
所有的B都是C。
所以,沒有A是C。
此外,對特稱陳述(帶有"某些"、"某些......不"的句子)和全稱陳述(帶有"所有"、"沒有"的句子)的反應。氣氛假說認為,如果前提為全稱,則被試會接受全稱結論;如果前提為特稱,則被試會接受特稱結論;當一個前提為特稱,另一個前提為全稱時,被試寧願接受特稱結論。使用氣氛假說的方法,被試可以在80%以上的三段論問題上獲得正確的答案。對於這么粗疏的一種探索方法來說,這種結果是不壞的。
(三)線性推理
線性推理也叫線性三段論,是依據有序事物間的關系進行的推理,它給出的兩個前提說明了三個邏輯項之間的可傳遞性的關系。例如:A比B長,C比B短,A比C長嗎?
進行線性推理時,人們是怎樣表徵前提從而進行認知操作的呢?有人提出是以表象的形式建構起一個垂直的空間序列,再按照建構起來的心理位置進行合乎邏輯的推論;也有人認為轉換推理過程是用命題的方式來表徵三段論的前提的;20世紀80年代以後,斯騰伯格(Sternberg,1980)將上述兩種理論結合,提出了語言一表象整合模型。人們在線性推理時,首先對前提中的信息以命題的方式進行表徵,繼而將表徵的命題建構成一種心理表象上的空間序列。依據這種命題的空間序列進行認知加工-從而推論出合乎邏輯的結論。
(四)條件推理
條件推理又稱假言推理,它是指人們利用條件性命題所進行的推理。例如:"如果球滾向左邊,則綠燈亮","現在球滾向左邊了","所以,綠燈亮了"。
在條件推理中,人們發現了一個有趣的現象,就是人們傾向於去證實某種假設或規則,而很少去證偽它們,這種現象稱為證實傾向。沃森(P.C.Wason)所做的實驗很好地說明了這個問題。
在實驗中,沃森把寫有下列符號的四張卡片擺在被試面前,告知被試,每張卡片的一面印有英文字母,另一面印有數字。他給出的問題是,如果要從這四張卡片證明下述規則是否有效,即"如果卡片的一面印的是一個母音字母,則它的另一面必然是個偶數",被試者最少必須翻看哪幾張卡片。
實驗結果發現,46%的被試翻看了E和4,這種選擇是錯誤的。E是必須翻看的,而4卻不必翻看,因為不論它的另一面出現母音還是輔音,都不能證明這條規則無效。只有4%的被試做出了正確選擇,翻看了E和7,因為無論是E的另一面出現奇數,或是7的另一面出現母音都會使這條規則失效。此外有33%的被試只翻看E。其餘17%的被試做出了其他的錯誤選擇。
根據這一實驗,沃森等人認為,在檢驗規則或假設的過程中,人們有一種強烈的對規則加以證實的傾向,後來的研究者認為沃森得出這樣的結論是因為他使用的實驗材料過於抽象所致,如果把卡片中的內容換成被試熟悉的內容,被試正確選擇的比例就會提高,有實驗證明了這一說法。
二、問題解決的定義
問題是指尚未被人們解決的某種思維任務。解決問題時,你所知道的與你所需要知道的之間往往存在著差距,這個差距就是問題空間。解決一個問題,就是消除這個空間。這需要通過發現和取得必要的信息來完成。一道幾何題目就是典型的問題。
以信息加工的觀點來看,一個問題可分為三個部分。(1)初始狀態:接受問題,所擁有的信息不夠完整;(2)目標狀態:確定所希望達到的狀態; (3)認知操作:從初始狀態到目標狀態的過程中必須採取的步驟。這三個部分共同界定了所謂的問題空間。在證明一道題目的時候,題目中的已知條件即為這一問題的初始狀態,目標狀態是證明的結果,中間的一系列證明過程就是為了達到目標所採取的一系列認知操作。可以認為,思維過程就是採取有效的策略和方法不斷縮小問題空間,以至問題解決的過程。
在認知心理學中,可以把問題解決定義為具有一系列目標指向性的認知操作,它應具備以下三個特徵。
(1)目標指向性。即問題的解決活動具有明確的目的性。問題解決就是通過一系列認知活動有目的、有意識地把初始狀態變為目標狀態。
(2)操作系列性。問題解決必須包含有一系列的心理操作才能稱為問題解決活動。能夠自動化完成或只有單一操作的不能構成問題解決過程,比如,回憶昨晚上吃的菜,通常不被看成是問題解決活動。
(3)認知性操作。問題解決這種目標指向性活動是依存於認知性操作的。不具備認知性操作的活動,不被看作是問題解決,例如,當你學會了騎自行車之後,騎自行車的活動不被認為是問題解決。
三、問題解決的策略和方法
解決問題需要運用一系列的認知性操作來從初始狀態達到目標狀態。這些認知性操作也稱為運算元,問題解決的過程就是利用運算元使初始狀態逐步到這目標狀態的過程。怎樣在問題空間中搜索出必要的運算元呢。心理學家研究發現,搜索運算元(也就是問題解決)可以使用不同的策略與方法。這里介紹幾種主要的途徑和方法。
(一)演算法式
演算法式就是依照正規的、機械性的途徑去解決問題。具體做法是將各種可能達到目標的方法都算出來,再一一嘗試,確定哪一種為正確答案。這種解決問題的方式是過於費時、費力和缺乏效率。
(二)啟發式
在問題空間的搜索過程中,在目標傾向性的指引下,通過觀察發現當前問題狀態與目標狀態的相似關系,利用經驗而採取較少的操作來解決問題的方法稱為啟發式的方法。啟發式方法看上去是直觀判斷,其實它在很大程度上依賴於經驗。使用這種方法並不保證能夠准確地找到答案,但作為一種大略的粗算,通常都能得到令人滿意的結果。人們在處理日常問題上大部分都使用啟發式。雖然它在准確性上不及演算法式方法,但卻無需去探討所有的可能性,因此效率上大為提高。用啟發式方法並不見得必定能找到答案,但經驗的積累將會逐漸教導我們在何時以及如何去使用這種方法,使我們成為較好的問題解決者。下面是幾種常用的啟發式策略。
1.手段一目的分析法
手段一目的分析法就是先有一個目標(目的),它與當前的狀態之間存在著差異,人們認識到這個差異,就要想出某種辦法採取活動(手段)來減小這個差異。例如,目標要到火車站,而我們在校園里。首先想到學校與火車站之間有差異,主要是距離上的差異。然後思考用什麼操作手段去縮短這一空間距離。我們可以乘公共汽車去或者出租汽車去,也可以騎自行車去。如果行李較多時間又緊迫,就決定乘計程車,但是下一步還要考慮如何能乘上計程車。這里又產生了一個"距離",要縮短這個"距離",首先要確定是打電話叫計程車到宿舍,還是走到校門口去乘計程車。
手段一目的分析法的一個核心是將一個較為復雜的問題分解為幾個較簡單的子問題。其要點是:(l)比較初始狀態和目標狀態,提出第一個子問題:如何縮小兩者差距?(2)找出縮小差距的辦法及操作。(3)如果提出的辦法實施條件不夠成熟,則提出第二個子問題:如何創造條件?(4)提出創造條件的辦法及操作。(5)如果(4)中提出的辦法實施條件也不成熟,則提出第三個子問題,如何創造條件?-------如此螺旋式地循環前進,直至問題解決。
2.爬山法
爬山法是指經過評價當前的問題狀態後,限於條件,不是去縮小,而是去增加這一狀態與目標狀態的差異,經過迂迴前進,最終達到解決問題的總目標。就如同爬山一樣,為了到達山頂,有時不得不先上矮山頂,然後再下來-------,這樣翻越一個個的小山頭,直到最終達到山頂。可以說,爬山法是一種"以退為進"的方法,往往具有"退一步進兩步"的作用,後退乃是為了更有效地前進。
3.逆向工作法
我們前面講的方法,都是循序漸進,逐級逼近目標。與上述相反的還有一種目標遞歸策略,也稱逆向工作法。這種策略是從目標狀態出發,按照子目標組成的邏輯順序逐級向初始狀態遞歸。例如下面的幾何證明題:已知長方形ABCD,求證兩條對角線相等(如圖5.1)。要證明AD=CB,從目標出發逆向推理,即首先要證明△ACD全等於△BCD。要證明這兩個三角形全等,就必須從這個子目標出發,搜索證明三角形全等的定理。在這個題中,可以利用邊角邊定理解決子目標,然後再進入下一個子目標,把最後一個子目標解決了,整個問題即得到解決。
圖5.1 目標遞歸策略解題法示例
總之,無論是從初始狀態逐級向目標狀態遞進,或是從目標狀態逐級向初始狀態回歸,都是適用於相應條件的問題解決策略。
四、影響問題解決的因素
心理學家發現有一些情況經常阻礙人們的問題解決,如問題表徵的方式,對無關信息的注意,功能固著性,心向和不必要限制的設立等。下面我們分析一下這些經常出現的不利因素,以有助於提高我們的解題能力。
(一)問題表徵的方式
解決問題首先要對問題加以理解。所謂理解問題,用認知心理學的術語來講,就是要以最佳的方式對問題加以表徵。表徵指客觀事物在頭腦中的呈現方式。同一事物或問題由於表徵的方式不同,在理解上會出現很大差異。以下面的問題解決為例,圖5.2顯示的是一個殘缺的國際象棋棋盤,它有兩個角被切掉了,現只剩下62個正方形。假若你有31張骨牌,每一張恰好可以遮蓋棋盤上兩個正方形。你是否能夠用骨牌把這個棋盤上的所有部分蓋住呢?請用幾分鍾時間試試看。
研究證明,絕大多數的人,對於這個國際象棋棋盤問題,會用很長時間在頭腦中嘗試著去擺,但總找不到答案。可是,如果你不是用視覺形象方法去考慮,而改用推理的方法:明確每一張骨牌都必須蓋住一個白格子和一個黑格子,而去掉的是兩個白格子,那麼你馬上可以發現,既然剩下的是32個黑格子和30個白格子,顯然無法用31張骨牌全部蓋住圖中的棋盤,這個問題原來是無解的。
圖5.2 一個殘缺的國際象棋棋盤
(二)無關信息的干擾
看一下下面兩個問題:
A.小王家兄弟五個,都未婚,他們每個人都有一個姐妹,如果把王媽媽也算在內,試問他們家有幾個女人?
B.某城市有15%的人不把電話號碼放人電話簿上,如果你從該城市的電話簿上隨機抽取200個號碼,問其中有多少人是不把電話號碼放人號碼簿上的?
這是兩個很簡單的問題。但你是否都能很快地得出了答案?在A題中,答案是兩個女人,兄弟的數目是無關信息,但它卻使多數人費了許多思考。在B題中,人們傾向於注意15%和200個人數,而實際上這兩個數字都是無關信息,因為所有200個人都取自電話簿,答案應該是0。研究發現人們經常錯誤地假定:問題中的所給出的條件或數字在解題中都有用。因此,總是想辦法去利用這些信息。了解了這個普遍傾向,我們在解題時就應該先注意考慮一下哪些信息有用,哪些沒用。
(三)功能固著性
另一個常見的解題障礙是格式塔學派研究知覺時發現的,即人們在知覺一個物體時,傾向於只從它的一般性功能上認識它,稱為功能固著性(functional fixedness)。例如,在圖5.3顯示的問題a是利用給定的工具將兩根懸掛在天花板上的繩子接在一起,對於這個問題,惟一的解決方法是把桌上的鉗子拿起來,捆在一根繩子的尾端,像鍾擺似地使之晃動,然後再抓著另一根繩子,走到房間中間,等捆著鉗子的繩子晃到眼前,再將它抓住,這樣就可以將兩根繩子接在一起了。曾有人用這個問題進行實驗,發現只有39%的被試可以在10分鍾內找到答案。問題的症結就在於被試只把鉗子視為一種功能固定的技術工具,沒有想到鉗子也可以用它的重量當擺來使用。同樣地,問題b是利用給定的工具將蠟燭固定在牆壁上,對於這個問題,只有你不僅僅把火柴盒看作是裝東西的盒子,而換一個角度看成是一個平台,你才能想出解決辦法。導致上述兩個問題不能順利解決的關鍵,都是因為被試在表徵物體時總是按照物體的傳統功能,不會變通,在問題解決時不能用新的方式來表徵問題情境。這種功能固著現象有時會限制人們的思維和解決問題的能力。
圖5.3a 功能固著問題
圖5.3b 功能固著問題
圖5.4 水罐問題:
(四)心向
首先請你試解圖5.4中的水罐問題:現有容量固定的三個水罐和無限量的水,請你以三個水罐為工具,逐一取得每一行中最有方指定的數量。並且試用公式的形式表明你所用的方法。
如果一個人屢次成功地以相同的方法解決了某類問題,會使他機械性地或盲目地以原有的方式方法解決類似問題,而不去尋求新的、更好的方法。這種堅持使用原有已證明有效的方法解決新問題的心理傾向,稱為心向或心理定勢。水罐問題就是心向問題的一個典型事例。如果你已發現前5個小題要求相同的解題方法,即(B-A-2 C)時,則你可能在第6個小題上也套用相同的公式,盡管它用更簡單的方法(A一C)就可以解決;只有到對第7個小題仍套用公式(B一A一2C)卻發現行不通時,一部分人才會去思考、去嘗試,並發現更為簡便的公式(A一C)。但也有些人竟會認為它無解。那是因為心向太強烈,在經驗中的有效方法不起作用時,不會轉換
3. 演算法式和推理式區別
演算法式和推理式區別:
【定義】演算法式是把解決問題的所有可能的方案都列舉出來,逐一嘗試。此種方式雖然可以保證解決問題,但效率不高。其優點是能夠保證問題的解決,但費時費力。
當問題復雜、問題空間很大時,很難依靠這種策略來解決問題。另外,有些問題也許沒有現成的演算法或尚未發現其演算法,對這種問題演算法策略將是無效的。
【特點】為達目標,有時會有迂迴狀態。
【例子】曲線救國:產生於抗日戰爭期間,指採取直接的手段不能夠解決,比如正面抗擊日本侵略軍的話,能力不夠,就只好採取間接的,效果可能慢一些的,發動軍隊及以外的各界人士和力量。
或者從側面迂迴牽制干擾的策略,一點一點地爭取和保衛勝利果實,有時候可能還要放棄一部分已經得到手的東西,但斗爭的大方向不變。也就是有時候為了達到目的,不得已擴大與目標的距離。