XTU | 人工智能入門複習總結

 

寫在前面算法

緒論

人工智能的定義與發展

定義

  1. 通常解釋:人工智能就是用 人工的方法在 **機器(計算機)**上實現的智能,或稱 機器智能
  2. 人工智能(學科):從學科的角度來講,人工智能是一門研究如何 構造智能機器或智能系統,使之能模擬、延伸、擴展人類智能的學科;
  3. 人工智能(能力):從智能能力的角度來講,人工智能是智能機器所執行的一般 與人類智能有關的智能行爲,如判斷、推理、證實、識別、感知、理解、通訊、設計、思考、規劃、學習和問題求解等思惟活動。

補充】 2018年1月發佈的人工智能標準化白皮書上關於「人工智能的概念」有以下一段詳盡描述(僅供參考):數據庫

2.1.2 人工智能的概念編程

人工智能做爲一門前沿交叉學科,其定義一直存有不一樣的觀點:**《人工智能——一種現代方法》**中將已有的一些人工智能定義分爲四類:像人同樣思考的系統、像人同樣行動的系統、理性地思考的系統、理性地行動的系統。維基百科上定義「人工智能就是機器展示出的智能」,即只要是某種機器,具備某種或某些「智能」的特徵或表現,都應該算做「人工智能」。大英百科全書則限定人工智能是數字計算機或者數字計算機控制的機器人在執行智能生物體纔有的一些任務上的能力。百度百科定義人工智能是「研究、開發用於模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學」,將其視爲計算機科學的一個分支,指出其研究包括機器人、語言識別、圖像識別、天然語言處理和專家系統等。性能優化

本白皮書認爲,人工智能是利用數字計算機或者數字計算機控制的機器模擬、延伸和擴展人的智能,感知環境、獲取知識並使用知識得到最佳結果的理論、方法、技術及應用系統。網絡

人工智能的定義對人工智能學科的基本思想和內容做出瞭解釋,即圍繞智能活動而構造的人工系統。人工智能是知識的工程,是機器模仿人類利用知識完成必定行爲的過程。根據人工智能是否能真正實現推理、思考和解決問題,能夠將人工智能分爲弱人工智能和強人工智能。數據結構

弱人工智能是指不能真正實現推理和解決問題的智能機器,這些機器表面看像是智能的,可是並不真正擁有智能,也不會有自主意識。迄今爲止的人工智能系統都仍是實現特定功能的專用智能,而不是像人類智能那樣可以不斷適應複雜的新環境並不斷涌現出新的功能,所以都仍是弱人工智能。目前的主流研究仍然集中於弱人工智能,並取得了顯著進步,如語音識別、圖像處理和物體分割、機器翻譯等方面取得了重大突破,甚至能夠接近或超越人類水平。app

強人工智能是指真正能思惟的智能機器,而且認爲這樣的機器是有知覺的和自我意識的,這類機器可分爲類人(機器的思考和推理相似人的思惟)與非類人(機器產生了和人徹底不同的知覺和意識,使用和人徹底不同的推理方式)兩大類。從通常意義來講,達到人類水平的、可以自適應地應對外界環境挑戰的、具備自我意識的人工智能稱爲「通用人工智能」、「強人工智能」或「類人智能」。強人工智能不只在哲學上存在巨大爭論(涉及到思惟與意識等根本問題的討論),在技術上的研究也具備極大的挑戰性。強人工智能當前鮮有進展,美國私營部門的專家及國家科技委員會比較支持的觀點是,至少在將來幾十年內難以實現。框架

靠符號主義、鏈接主義、行爲主義和統計主義這四個流派的經典路線就能設計製造出強人工智能嗎?其中一個主流見解是:即便有更高性能的計算平臺和更大規模的大數據助力,也還只是量變,不是質變,人類對自身智能的認識還處在初級階段,在人類真正理解智能機理以前,不可能製造出強人工智能。理解大腦產生智能的機理是腦科學的終極性問題,絕大多數腦科學專家都認爲這是一個數百年乃至數千年甚至永遠都解決不了的問題。機器學習

通向強人工智能還有一條「新」路線,這裏稱爲「仿真主義」。這條新路線經過製造先進的大腦探測工具從結構上解析大腦,再利用工程技術手段構造出模仿大腦神經網絡基元及結構的仿腦裝置,最後經過環境刺激和交互訓練仿真大腦實現類人智能,簡言之,「先結構,後功能」。雖然這項工程也十分困難,但都是有可能在數十年內解決的工程技術問題,而不像「理解大腦」這個科學問題那樣高不可攀。分佈式

仿真主義能夠說是符號主義、鏈接主義、行爲主義和統計主義以後的第五個流派,和前四個流派有着千絲萬縷的聯繫,也是前四個流派通向強人工智能的關鍵一環。經典計算機是數理邏輯的開關電路實現,採用馮•諾依曼體系結構,能夠做爲邏輯推理等專用智能的實現載體。但要靠經典計算機不可能實現強人工智能。要按仿真主義的路線「仿腦」,就必須設計製造全新的軟硬件系統,這就是「類腦計算機」,或者更準確地稱爲「仿腦機」。「仿腦機」是「仿真工程」的標誌性成果,也是「仿腦工程」通向強人工智能之路的重要里程碑。

起源與發展

人工智能始於20世紀50年代,50多年來,人工智能走過了一條起伏和曲折的發展道路。回顧歷史,能夠按照不一樣時期的主要特徵,將其產生與發展過程分爲5個階段。

一、孕育期(1956年前)

二、造成期(1956-1970年)

1956年夏,麥卡錫 (J.McCarthy,數學家、計算機專家)、明斯基(M.L.Minsky,哈佛大學數學家、神經學家)、洛切斯特(N.Lochester,IBM公司信息中心負責人)、香農(C.E.Shannon,貝爾實驗室信息部數學家和信息學家)
邀請莫爾(T.more)、塞繆爾(A.L.Samuel) 、塞爾夫裏奇(O.Selfridge)、索羅蒙夫(R.Solomonff)、紐厄爾(A.Newell)、西蒙(H.A.Simon)在 美國達特茅斯(Dartmouth)大學舉辦了長達歷時兩個月的研討會。會上,麥卡錫正式使用「人工智能AI」這一術語。這是人類歷史上首次第一次人工智能研討會,標誌着人工智能學科的誕生

三、暗淡期(1966-1974年)

失敗的預言給人工智能的聲譽形成重大傷害
60年代初,西蒙預言:10年內計算機將成爲世界冠軍、將證實一個未發現的數學定理、將能譜寫出具備優秀做曲家水平的樂曲、大多數心理學理論將在計算機上造成。

挫折和困境

  • 在博弈方面:塞繆爾的下棋程序在與世界冠軍對弈時,5局敗了4局。
  • 在定理證實方面:發現魯賓遜歸結法的能力有限。當用歸結原理證實兩個連續函數之和仍是連續函數時,推了10萬步也沒證出結果。
  • 在問題求解方面:對於不良結構,會產生 組合爆炸問題。
  • 在機器翻譯方面:發現並不那麼簡單,甚至會鬧出笑話。例如,把「愛莫能助」的英語句子翻譯成俄語,再翻譯回來時竟變成了「酒是好的,肉變質了」
  • 在神經生理學方面:研究發現人腦有1011-12以上的神經元,在現有技術條件下用機器從結構上模擬人腦是根本不可能的。
  • 在其它方面:人工智能也遇到了很多問題。在英國,劍橋大學的詹姆教授指責「人工智能研究不是騙局,也是庸人自擾」 。今後,形勢急轉直下,在全世界範圍內人工智能研究陷入困境、落入低谷。

Minsky的批評
1969年 M. Minsky 和 S.Papert 在《感知機》一書中指出了感知機沒法解決異或(XOR)問題的缺陷,並表示出對這方面研究的悲觀態度,使得神經網絡的研究從興起期進入了停滯期。
該批評對人工智能的發展形成了重要的影響

  • 在之後的二十年,感知機的研究方向被忽視
  • 基於符號的知識表示成爲主流
  • 基於邏輯的推理成爲主要研究方向

當時的人工智能存在三個方面的侷限性

  • 知識侷限性:早期開發的人工智能程序中包含了太少的主題知識,甚至沒有知識,並且只採用簡單的句法處理。
  • 解法侷限性:求解方法和步驟的侷限性使得設計的人工智能程序在實際上沒法求得問題的解答,或者只能獲得簡單問題的解答,而這種簡單問題並不須要人工智能的參與。
  • 結構侷限性:用於產生智能行爲的人工智能系統或程序在一些基本結構上嚴重侷限,如沒有考慮不良結構,沒法處理組合爆炸問題,於是只能用於解決比較簡單的問題,影響到人工智能系統的推廣應用。

四、知識應用期( 1970-1988年)

五、集成發展期(1986年至今)

人工智能具體的發展歷程圖示以下:

這兩年人工智能獲得了日新月異的發展,實現這種發展的基本條件有三個:

  • 大數據的積累
  • 計算能力的提高
  • 理論算法的革新

各類認知觀

目前人工智能主要有如下三個學派:

  • 符號主義(Symbolicism): 基於物理符號系統假設和有限合理性原理(邏輯)

符號主義觀點認爲:智能的基礎是知識,其核心是知識表示和知識推理;知識可用符號表示,也可用符號進行推理,於是能夠創建基於知識的人類智能和機器智能的統一的理論體系。

  • 鏈接主義(Connectionism): 基於神經網絡及其間的鏈接機制與學習算法(仿生)

鏈接主義觀點認爲:思惟的基元是神經元,而不是符號;思惟過程是神經元的聯結活動過程,而不是符號運算過程;反對符號主義關於物理符號系統的假設。

  • 行爲主義(Actionism): 基於控制論及感知—動做型控制系統(進化)

行爲主義觀點認爲:智能取決於感知和行動,提出了智能行爲的「感知—動做」模型;智能不須要知識、不須要表示、不須要推理;人工智能能夠像人類智能那樣逐步進化。

此外,還有一種由鍾義信院士提出的一種認知學派:

  • 機制主義(mechanism):結構(鏈接)主義、功能(符號)主義、行爲主義的和諧統一。

幾種學派各自不足之處:

  • 符號主義的不足(功能模擬法/認知學觀點)

    • 在用符號表示知識的概念時,有效性很大程度上取決於符號表示的正確性和準確性
    • 將知識概念轉換成符號時,可能丟失一些重要信息
    • 難於對含噪信息、不肯定性信息和不徹底性信息進行處理
  • 鏈接主義的不足(結構模擬法/生物學觀點)

    • 因爲大腦的生理結構和工做機理還遠未搞清楚,於是如今只能對人腦的局部進行模擬或進行近似模擬
    • 不適合模擬人的邏輯思惟過程
    • 受大規模人工神經網絡製造的制約
    • 尚不能知足人腦徹底模擬的要求
  • 行爲主義的不足

    • 難以得到高級智能控制行爲

研究目標與內容

研究目標

遠期目標:構造出能夠實現人類思惟活動和智力功能的智能系統。
近期目標:使現有的計算機更聰明更有用,使它不只可以進行通常的數值計算和非數值信息的處理,並且可以運用知識去處理問題,可以模擬人類的智能行爲。

研究的基本內容

一、認知建模
認知:可通常地認爲是和情感、動機、意志相對應的理智或認識過程,或者是爲了必定的目的,在必定的心理結構中進行的信息加工過程。

二、知識表示:基礎

三、知識推理:實現問題求解

四、知識應用:目的

知識表示、知識推理、知識應用是傳統人工智能的三大核心研究內容。

五、機器感知:就是要讓計算機具備相似於人的感知能力,如視覺、聽覺、觸覺、嗅覺、味覺……,是機器獲取外部信息的基本途徑

  • 至關於智能系統的輸入部分
  • 機器視覺(或叫計算機視覺):就是給計算機配上能看的視覺器官,如攝像機等,使它能夠識別並理解文字、圖像、景物等
  • 機器聽覺(或叫計算機聽覺):就是給計算配上能聽的聽覺器官,如話筒等,使計算機可以識別並理解語言、聲音等。
  • 模式識別:對客體的識別與分類
  • 天然語言理解:實現人機對話
  • 機器翻譯

六、機器思惟
機器思惟是讓計算機可以對感知到的外界信息和本身產生的內部信息進行思惟性加工,包括邏輯思惟、形象思惟和靈感思惟,涉及信息的表示,組織,積累,管理,搜索,推理等過程。

七、機器學習

  • 讓計算機可以像人那樣自動地獲取新知識,並在實踐中不斷地完善自我和加強能力。
  • 是機器獲取智能的途徑
  • 學習是一個有特定目的的知識獲取過程,學習的本質是對信息的理解與應用

八、機器行爲

  • 讓計算機可以具備像人那樣地行動和表達能力,如走、跑、拿、說、唱、寫畫等。
  • 至關於智能系統的輸出部分

九、智能系統構建

  • 不管是人工智能的近期目標仍是遠期目標,都須要創建智能系統或構造智能機器
  • 須要開展對系統模型、構造技術、構造工具及語言環境等研究

應用領域

問題求解、機器學習、天然語言理解、專家系統、模式識別、計算機視覺、機器人學、博弈、計算智能、人工生命、自動定理證實、自動程序設計、智能控制、智能檢索、智能調度與指揮、智能決策支持系統、人工神經網絡、數據挖掘與知識發現…

課後習題

1-1 什麼是人工智能?是從科學與能力兩方面加以說明。
1-3 在人工智能的發展過程當中,有哪些思想和思潮起到了重要做用?
1-5 人工智能有哪些學派?他們的認知觀是什麼?如今這些學派的關係如何?
1-9 人工智能的基本研究方法有哪些類?
1-10 人工智能的主要研究和應用領域是什麼?其中,哪些是新的研究熱點?

知識表示與推理

知識表示方法

知識的通常概念

知識是人們在改造客觀世界的實踐中積累起來的 認識經驗
其中,認識經驗能夠這樣定義:

  • 認識:包括對事物現象、本質、屬性、狀態、聯繫等的認識
  • 經驗:包括解決問題的微觀方法和宏觀方法
    • 微觀方法:如步驟、操做、規則、過程、技巧等
    • 宏觀方法:如戰略、戰術、計謀、策略等

人工智能系統中的知識

一個智能程序高水平的運行須要有關的 事實知識規則知識控制知識元知識

  • 事實知識 :是有關問題環境的一些事物的知識,常以「…是…」的形式出現。
    • 如事物的分類、屬性、事物間關係、科學事實、客觀事實等。
    • 事實是靜態的爲人們共享的可公開得到的公認的知識,在知識庫中屬低層的知識,如:雪是白色的、鳥有翅膀、張三李四是好朋友、這輛車是張三的……
  • 規則知識 :是有關問題中與事物的行動、動做相聯繫的因果關係知識,是動態的,常以「若是…那麼…」 形式出現。
  • 控制知識 :是有關問題的求解步驟、技巧的知識,告訴人們怎麼作一件事,也包括當有多個動做同時被激活時應選哪個動做來執行的知識。控制知識常與程序結合在一塊兒出現,如一個問題求解的算法能夠看作是一種知識表示。
  • 元知識 :是有關知識的知識,是知識庫中的高層知識。包括怎樣使用規則、解釋規則、校驗規則、解釋程序結構等知識。

元知識與控制知識是有重迭的,對一個大的程序來講,以元知識或說元規則形式體現控制知識更爲方便,由於元知識存於知識庫中,而控制知識常與程序結合在一塊兒出現,從而不容易修改。

知識表示

研究用機器表示知識的可行性、有效性的通常方法,是一種數據結構與控制結構的統一體,既考慮知識的存儲又考慮知識的使用。

知識表示的要求:

  • 表示能力:可否正確、有效地表示問題。包括:表範圍的普遍性、領域知識表示的高效性、對非肯定性知識表示的支持程度;
  • 可利用性:可利用這些知識進行有效推理。包括:對推理的適應性,對高效算法的支持程度;
  • 可實現性:要便於計算機直接對其進行處理;
  • 可組織性:能夠按某種方式把知識組織成某種知識結構;
  • 可維護性:便於對知識的增、刪、改等操做;
  • 天然性:符合人們的平常習慣;
  • 可理解性:知識應易讀、易懂、易獲取等。

狀態空間法

狀態空間法是一種 基於解答空間的問題表示和求解方法,它是以「狀態(state)」和「算符(operator)」爲基礎的,它是人工智能中最基本的 形式化方法
因爲狀態空間法須要擴展過多的節點,容易出現「組合爆炸」,於是 只適用於表示比較簡單的問題

狀態空間法的三要素:

  1. 狀態(state):描述某類不一樣事物間的差異而引入的一組最少變量 q0,q1,…,qn的有序集合,是表示問題解法中每一步問題情況的數據結構。有序集合中每一個元素qi(i= 0,1,…,n)爲集合的份量,稱爲狀態變量。給定每一個份量的一組值就獲得一個具體的狀態。
  2. 算符(operator):使問題從一種狀態變化爲另外一種狀態的手段稱爲操做符或算符。
  3. 問題的狀態空間**:即解答空間,也就是一個表示該問題所有可能狀態及其關係的圖。它是以狀態和算符爲基礎來表示和求解問題的。它包含三種說明的集合,即S:全部可能的問題初始狀態集合、F:操做符集合、G:目標狀態集合。可將狀態空間記爲三元狀態(S,F,G)

【例子】
猴子和香蕉問題:在一個房間內有一隻猴子、一個箱子和一束香蕉。香蕉掛在天花板下方,但猴子的高度不足以碰到它。那麼這隻猴子怎樣才能摘到香蕉呢?

解題過程
用一個四元表列(W,x,Y,z)來表示這個問題狀態空間
其中W:猴子的水平位置;x:當猴子在箱子頂上時取1;不然取0;Y:箱子的水平位置;z:當猴子摘到香蕉時取1;不然取0。
則可見初始狀態爲(a,0,b,0),目標狀態爲(c,1,c,1)

這個問題的算符以下:
goto(U)表示猴子走到水平位置U;pushbox(V)表示猴子把箱子推到水平位置V;climbbox表示猴子爬上箱頂;grasp表示猴子摘到香蕉。

由初始狀態變換爲目標狀態的操做序列爲:
Step1: goto(b)
Step2: pushbox(c)
Step3: climbbox
Step4: grasp


問題歸約法

問題規約(Problem Reduction):

  • 另一種 基於狀態空間的問題描述與求解方法;
  • 已知問題的描述,經過一系列 變換 把此問題變爲一個 子問題集合
  • 這些子問題的解能夠直接獲得(本原問題),從而解決了初始問題。

問題歸約的組成部分:

  • 一個初始問題描述;
  • 一套把問題變換爲子問題的 操做符
  • 一套本原問題描述。(本原問題:不能再分解或變換且直接可解的子問題)。

問題歸約的 實質

  • 從目標(要解決的問題)出發 逆向推理,創建子問題以及子問題的子問題,直到 最後把初始問題歸約爲一個本原問題集合

問題歸約法舉例:


【例子】
漢諾塔問題(Hanoi):規定每次移動一個盤子、且總個過程當中大盤在下小盤在上、目標是將盤子從柱子1移到柱子3。

解題過程

原始問題能夠歸約爲下列3個子問題:

規約過程:

歸約圖示:


與或圖表示

用一個相似於圖的結構來表示,把問題歸約爲後繼問題的替換集合。

  • 與圖:把一個複雜問題分解爲若干個較爲簡單的子問題,造成「與」樹。

  • 或圖:把原問題變換爲若干個較爲容易求解的新問題,造成「或」樹。

謂詞邏輯法

謂詞邏輯法採用謂詞合式公式和一階謂詞演算將要解決的問題變成一個有待證實的問題,而後利用消解定理和消解反演來證實一個新語句是從已知的正確語句中導出的,從而證實這個新語句也是正確的。
謂詞邏輯是一種 形式語言,可以將數學中的邏輯論證符號化,謂詞邏輯常常與其餘表示方法混合使用,能夠表示比較複雜的問題

謂詞演算

語法和語義

  • 基本符號:謂詞符號、變量符號、函數符號、常量符號、括號和逗號
  • 原子公式由若干謂詞符號和項組成

連詞和量詞

  • 連詞
    合取、析取、蘊涵、非、雙條件

  • 量詞
    全稱量詞、存在量詞

謂詞公式

  • 原子謂詞公式
    由謂詞符號和若干項組成的謂詞演算

  • 分子謂詞公式
    能夠用 連詞把原子謂詞公式組成複合謂詞公式,並把它叫作分子謂詞公式
    一般把合式公式叫作謂詞公式。在謂詞演算中合式公式的遞歸定義以下:

合式公式的性質

置換與合一

置換

置換是用變元、常量、函數來替換變元,使該變元不在公式中出現,形如{t1/x1, t2/x2,...,tn/xn}的有限集合,其中:

  • t1,t2,...,tn是項;
  • x1,x2,...,xn是互不相同的變元;
  • ti/xi表示用ti項替換變元xi,不容許tixi相同,也不容許變元xi循環地出如今另外一個tj中。

推理規則:用合式公式的集合產生新的合式公式

置換是 可結合的
s1s2表示兩個置換s1和s2的合成,L表示一個表達式,則有(Ls1)s2 = L(s1s2)以及(s1s2)s3 = s1(s2s3),即用s1和s2相繼做用於表達式L是與用s1s2做用於L同樣的。
通常說來,置換是 不可交換的,即s1s2 ≠ s2s1

合一

尋找項對變量的置換,以使兩表達式一致,叫作合一。
若是一個置換s做用於表達式集合{Ei}的每一個元素,則用{Ei}s來表示置換的集。稱表達式{Ei}是可合一的,若是存在一個置換s使得:E1s = E2s = E3s =……,那麼,稱此s爲{Ei}的合一者,由於s的做用是使集合{Ei}成爲單一形式。
例如:設有公式集E={ P( x, y, f(y)), P( a, g(x), z) },則s={a/x, g(a)/y, f(g(a))/z}是它的一個合一。

語義網路法

語義網絡是經過概念及其語義關係來表達知識一種網絡圖,是一種 結構化表示方法
從圖論的觀點看,語義網絡是一個「帶標識的有向圖」,它由 節點弧線或鏈線組成。節點表明實體、概念、狀況等弧線表明節點間的關係,必須帶標識。
語義網絡的解答是一個通過推理和匹配而獲得的具備明確結果的新的語義網路,擴展後能夠表示更復雜的問題。

語義網絡中最基本的語義單元稱爲語義基元,可用三元組表示爲:(結點1,弧,結點2)。

二元語義網絡的表示

例如:用語義網絡表示:李新的汽車的款式是「捷達」、銀灰色;王紅的汽車的款式是「凱越」、紅色;李新和王紅的汽車均屬於具體概念,可增長「汽車」 這個抽象概念。

多元語義網絡的表示

  • 增長狀況和動做節點;
  • 增長事件節點;
  • 鏈接詞和量詞的表示;

其餘方法

  • 框架表示法
    這是一種 結構化方法
    框架理論是明斯基於1975年做爲理解視覺、天然語言對話及其它複雜行爲的一種基礎提出來的;
    框架理論認爲,人們對現實世界中各類事物的認識都是以一種相似於框架的結構存儲在記憶中的。當遇到一個新事物時,就從記憶中找出一個合適的框架,並根據新的狀況對其細節加以修改、補充,從而造成對這個新事物的認識。

框架網絡:

框架結構:

  • 每一個框架都有框架名,表明某一類對象

  • 一個框架由若干個槽(項目)組成,用於表示對象的某個方面的屬性

  • 有時一個槽(屬性)還要從不一樣的側面來描述,每一個側面可具備一個或多個值。
    注意:框架中的槽與側面可任意定義,也能夠是另外一框架,造成框架網絡系統。

  • 劇本表示法(ppt-6)

  • 過程表示法(ppt-6)

肯定性推理

推理的基本概念

推理方法及其分類

  1. 按推理的邏輯基礎分:演繹推理,概括推理,類比概括推理
  2. 按推理過程所用知識的肯定性分:肯定性推理、 不肯定性推理
  3. 按推理過程推出的結論是否單調增長分:單調推理、非單調推理
  4. 按推理過程是否利用問題的啓發性知識分:啓發式推理、非啓發式推理

推理的控制策略及其分類

推理的控制策略是指如何使用領域知識使推理過程儘快達到目標的策略。

  • 推理策略
    • 推理方向控制策略可分爲
      • 正向推理
      • 逆向推理
      • 混合推理
      • 雙向推理
    • 求解策略:是指僅求一個解,仍是求全部解或最優解等。
    • 限制策略:是指對推理的深度、寬度、時間、空間等進行的限制。
    • 衝突消解策略:是指當推理過程有多條知識可用時,如何從這多條可用知識中選出一條最佳知識用於推理的策略。
  • 搜索策略(下面會詳述)

搜索策略

  • 按是否使用啓發式信息:
    • 盲目搜索:按預約的控制策略進行搜索,在搜索過程當中得到的中間信息並不改變控制策略。
    • 啓發式搜索:在搜索中加入了與問題有關的啓發性信息,用於指導搜索朝着最有但願的方向前進,加速問題的求解過程並找到最優解。
  • 按問題的表示方式:
    • 狀態空間搜索:用指用狀態空間法來表示問題所進行的搜索
    • 與或樹搜索:用指用問題歸約法來表示問題所進行的搜索
狀態空間的搜索策略
  • 狀態空間的盲目搜索
    • 廣度優先搜索
    • 深度優先搜索
    • 代價樹搜索
  • 狀態空間的啓發式搜索
    • 啓發性信息和估價函數
    • A算法和A*算法
  • 基本思想
    • 先把問題的初始狀態做爲當前擴展節點對其進行擴展,生成一組子節點。
    • 而後檢查問題的目標狀態是否出如今這些子節點中。若出現,則搜索成功,找到了問題的解;若沒出現,則再 按照某種搜索策略從已生成的子節點中選擇一個節點做爲當前擴展節點。
    • 重複上述過程,直到目標狀態出如今子節點中或者沒有可供操做的節點爲止。
    • 所謂對一個節點進行「擴展」是指對該節點用某個可用操做進行做用,生成該節點的一組子節點。
  • 數據結構和符號約定
    • OPEN表:未擴展節點表,用於存放剛生成節點
    • CLOSED表:已擴展節點表,用於存放已經擴展或將要擴展的節點
    • S:用表示問題的初始狀態
    • G:表示搜索過程所獲得的搜索圖
    • M:表示當前擴展節點新生成的且不爲本身先輩的子節點集

*各類搜索策略的主要區別在於對OPEN表中節點的排列順序不一樣。*例如,廣度優先搜索把先生成的子節點排在前面,而深度優先搜索則把後生成的子節點排在前面。

廣度優先搜索算法流程:

  1. 把初始節點S放入OPEN表中;
  2. 若是OPEN表爲空,則問題無解,失敗退出;
  3. 把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n;
  4. 考察節點n是否爲目標節點。如果,則獲得問題的解,成功退出;
  5. 若節點n不可擴展,則轉第(2)步;
  6. 擴展節點n,將其子節點放入OPEN表的 尾部,併爲每個子節點設置指向父節點的指針,而後轉第(2)步。

以八數碼問題爲例,獲得下面這個廣度優先搜索樹:

在上述廣度優先算法中須要注意兩個問題:

  • 對於任意一個可擴展的節點,老是按照固定的操做符的順序對其進行擴展(空格左移、上移、右移、下移)。
  • 在對任一節點進行擴展的時候,若是所得的某個子節點(狀態)前面已經出現過,則當即將其放棄,再也不重複畫出(不送入OPEN表)。
    所以,廣度優先搜索的本質是,以初始節點爲根節點,在狀態空間圖中按照廣度優先的原則,生成一棵搜索樹。

廣度優先搜索的優缺點:

  • 優勢
    • 只要問題有解,用廣度優先搜索總能夠獲得解,並且獲得的是路徑最短的解。
  • 缺點
    • 廣度優先搜索盲目性較大,當目標節點距初始節點較遠時將會產生許多無用節點,搜索效率低。

深度優先搜索算法流程:

  1. 把初始節點S放入OPEN表中;
  2. 若是OPEN表爲空,則問題無解 ,失敗退出;
  3. 把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n;
  4. 考察節點n是否爲目標節點。如果,則獲得問題的解,成功退出;
  5. 若節點n不可擴展,則轉第(2)步;
  6. 擴展節點n,將其子節點放入OPEN表的 首部,併爲每個子節點設置 指向父節點的指針,而後轉第(2)步。

在深度優先搜索中,搜索一旦進入某個分支,就將沿着該分支一直向下搜索。若是目標節點剛好在此分支上,則可較快地獲得解。可是,若是目標節點不在此分支上,而該分支又是一個無窮分支,則就不可能獲得解。因此深度優先搜索是不完備的,即便問題有解,它也不必定能求得解。
所以,爲了防止搜索過程沿着無益的路徑擴展下去,每每給出一個節點擴展的最大深度,即 深度界限。當搜索深度達到了深度界限而仍未出現目標節點時,就換一個分支進行搜索。

有界深度優先搜索的特色:

  • 從某種意義上講,有界深度優先搜索具備必定的啓發性;
  • 若是問題有解,且其路徑長度≤dm,則上述搜索過程必定能求得解。
  • 可是若解的路徑長度> dm,則上述搜索過程就得不到解。。
  • 這說明在有界深度優先搜索中,深度界限的選擇是很重要的,可是要恰當地給出dm的值是比較困難的。
  • 即便能求出解,它也不必定是最優解。

代價樹搜索

考慮邊的代價的搜索方法,代價樹搜索的目的是爲了找到一條代價最小的解路徑。代價樹搜索方法包括:

  • 代價樹的廣度優先搜索
  • 代價樹的深度優先搜索

啓發式信息與代價函數

採用問題自身的特性信息,以指導搜索朝着最有但願的方向前進。
啓發性信息是指那種與具體問題求解過程有關的,並可指導搜索過程朝着最有但願方向前進的控制信息。啓發信息的啓發能力越強,擴展的無用結點越少。

啓發性信息的種類

  • 有效地幫助肯定擴展節點的信息;
  • 有效的幫助決定哪些後繼節點應被生成的信息;
  • 能決定在擴展一個節點時哪些節點應從搜索樹上刪除的信息。

估價函數的通常形式爲:f(x) = g(x)+h(x),其中g(x)表示從初始節點S0到節點x的代價;h(x)是從節點x到目標節點Sg的最優路徑的代價的估計,它體現了問題的啓發性信息,h(x)稱爲啓發函數。

A算法與A*算法

A算法:在圖搜索算法中,若是能在搜索的每一步都利用估價函數f(n)=g(n)+h(n)對OPEN表中的節點進行排序,則該搜索算法爲A算法。

A算法的類型
可根據搜索過程當中選擇擴展節點的範圍,將啓發式搜索算法分爲:

  • 全局擇優搜索算法: 從OPEN表的全部節點中選擇一個估價函數值最小的一個進行擴展。
  • 局部擇優搜索算法:僅從剛生成的子節點中選擇一個估價函數值最小的一個進行擴展。

A*算法是對A算法的估價函數f(n)=g(n)+h(n)加上某些限制後獲得的一種啓發式搜索算法。

假設f*(n)是從初始節點出發通過節點n達到目標節點的最小代價,估價函數f(n)是對f*(n)估計值。且f*(n)=g*(n)+h*(n)g*(n)是從初始節點S0到節點n的最小代價。h*(n)是從節點n到目標節點的最小代價,如有多個目標節點,則爲其中最小的一個

A*算法對A算法(全局擇優的啓發式搜索算法)中的g(n)h(n)分別提出以下限制:

  • 第一,g(n)是對最小代價g*(n)的估計,且g(n)>0
  • 第二,h(n)是最小代價h*(n)的下界,即對任意節點n均有h(n)≤h*(n)

即:知足上述兩條限制的A算法稱爲A*算法。

與/或樹的搜索策略(ppt-9~10)

一、 與/或樹的通常搜索過程

(1) 把原始問題做爲初始節點S0,並把它做爲當前節點; 
(2) 應用分解或等價變換操做對當前節點進行擴展; 
(3) 爲每一個子節點設置指向父節點的指針; 
(4) 選擇合適的子節點做爲當前節點,反覆執行第(2)步和第(3)步,在此期間須要屢次調用可解標記過程或不可解標記過程,直到初始節點被標記爲可解節點或不可解節點爲止。

二、 與/或樹的廣度優先搜索

(1)把初始節點S0放入OPEN表中; 
(2)把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n; 
(3)若是節點n可擴展,則作下列工做:
    ① 擴展節點n,將其子節點放入OPEN表的尾部,併爲每個子節點設置指向父節點的指針;
    ② 考察這些子節點中有否終止節點。如有,則標記這些終止節點爲可解節點,並用可解標記過程對其父節點及先輩節點中的可解解節點進行標記。若是初始解節點S0可以被標記爲可解節點,就獲得瞭解樹,搜索成功,退出搜索過程;若是不能肯定S0爲可解節點,則從OPEN表中刪去具備可解先輩的節點。
    ③ 轉第(2)步。
(4) 若是節點n不可擴展,則做下列工做: 
    ① 標記節點n爲不可解節點;
    ② 應用不可解標記過程對節點n的先輩中不可解解的節點進行標記。若是初始解節點S0也被標記爲不可解節點,則搜索失敗,代表原始問題無解,退出搜索過程;若是不能肯定S0爲不可解節點,則從Open表中刪去具備不可解先輩的節點。
    ③ 轉第(2)步。

【例子】 設有下圖所示的與/或樹,節點按標註順序進行擴展,其中標有t一、t二、t3的節點是終止節點,A、B、C爲不可解的端節點。

本例中與/或樹的廣度優先搜索過程:

(1) 先擴展1號節點,生成2號節點和3號節點。
(2) 擴展2號節點,生成A節點和4號節點。
(3) 擴展3號節點,生成t1節點和5號節點。因爲t1爲終止節點,則標記它爲可解節點,並應用可解標記過程,不能肯定3號節點是否可節。
(4) 擴展節點A,因爲A是端節點,所以不可擴展。調用不可解標記過程。
(5) 擴展4號節點,生成t2節點和B節點。因爲t2爲終止節點,標記爲可解節點,應用可解標記過程,可標記2號節點爲可解,但不能標記1號節點爲可解。
(6) 擴展5號節點,生成t3節點和C節點。因爲t3爲終止節點,標記它爲可解節點,應用可解標記過程,可標記1號節點爲可解節點。
(7) 搜索成功,獲得由一、二、三、四、5號節點和t一、t二、t3節點構成的解樹。


三、 與/或樹的深度優先搜索

(1)把初始節點S0放入OPEN表中; 
(2)把OPEN表第一個節點取出放入CLOSED表,並記該節點爲n; 
與/或樹的深度優先搜索算法以下:
(3)若是節點n的深度等於dm,則轉第(5)步的第①點; 
(4)若是節點n可擴展,則作下列工做: 
    ① 擴展節點n,將其子節點放入OPEN表的首部,併爲每個子節點設置指向父節點的指針;  
    ② 考察這些子節點中是否有終止節點。如有,則標記這些終止節點爲可解節點,並用可解標記過程對其父節點及先輩節點中的可解解節點進行標記。若是初始解節點S0可以被標記爲可解節點,就獲得瞭解樹,搜索成功;若是不能肯定S0爲可解節點,則從OPEN表中刪去具備可解先輩的節點。
    ③ 轉第(2)步。 
(5)若是節點n不可擴展,則做下列工做: 
    ① 標記節點n爲不可解節點;
    ② 應用不可解標記過程對節點n的先輩中不可解解的節點進行標記。若是初始解節點S0也被標記爲不可解節點,則搜索失敗,代表原始問題無解,退出搜索過程;若是不能肯定S0爲不可解節點,則從Open表中刪去具備不可解先輩的節點。
    ③ 轉第(2)步。

四、 與/或樹的啓發式搜索

(1) 把初始節點S0放入OPEN表中;
(2) 求出但願樹T,即根據當前搜索樹中節點的代價h求出以S0爲根的但願樹T; 
(3) 依次在OPEN表中取出T的端節點放入CLOSED表,並記該節點爲n;節點n有三種不一樣狀況:
    ①n爲終止節點,
    ②n不是終止節點,但可擴展,
    ③n不是終止節點,且不可擴展,
對三種狀況分別進行步驟(4) (5) (6)的操做過程; 
(4)若是節點n爲終止節點,則: 
    ① 標記節點n爲可解節點;
    ② 在T上應用可解標記過程,對n的先輩節點中的全部可解解節點進行標記;
    ③ 若是初始解節點S0可以被標記爲可解節點,則T就是最優解樹,成功退出;
    ④ 不然,從OPEN表中刪去具備可解先輩的全部節點。 
    ⑤ 轉第(2)步。 
(5) 若是節點n不是終止節點,但可擴展,則: 
    ① 擴展節點n,生成n的全部子節點;
    ② 把這些子節點都放入OPEN表中,併爲每個子節點設置指向父節點n的指針;
    ③ 計算這些子節點及其先輩節點的h值;
    ④ 轉第(2)步。
(6) 若是節點n不是終止節點,且不可擴展,則: 
    ① 標記節點n爲不可解節點;
    ② 在T上應用不可解標記過程,對n的先輩節點中的全部不可解解節點進行標記;
    ③ 若是初始解節點S0可以被標記爲不可解節點,則問題無解,失敗退出;
    ④ 不然,從OPEN表中刪去具備不可解先輩的全部節點。 
    ⑤ 轉第(2)步。

五、 博弈樹的啓發式搜索
六、 α-β剪枝技術

搜索的完備性與效率

完備性

  • 對於一類 可解的問題和一個搜索過程,若是運用該搜索過程必定能求得該類問題的解,則稱該搜索過程爲 完備的,不然爲不完備的。
  • 完備的搜索過程稱爲「搜索算法」。不完備的搜索過程不是算法,稱爲「過程」。
  • 廣度優先搜索、代價樹的廣度優先搜索、改進後的有界深度優先搜索以及A*算法都是完備的搜索過程,其它搜索過程都是不完備的。

搜索效率

  • 一個搜索過程的搜索效率不只取決於過程自身的啓發能力,並且還與被解問題的有關屬性等多種因素有關。
  • 爲了比較求解同一問題的不一樣搜索方法的效率,經常使用如下兩種指標來衡量:
    • 外顯率
    • 有效分支因數

其中,外顯率定義爲:P=L/T;L爲從初始節點到目標節點的路徑長度;T爲整個搜索過程當中所生成的節點總數。
外顯率反映了搜索過程當中從初始節點向目標節點前進時 搜索區域的寬度。當T=L時,P=1,表示搜索過程當中每次只生成一個節點,它剛好是解路徑上的節點,搜索效率最高。P越小表示搜索時產生的無用節點愈多,搜索效率愈低。

有效分枝因數B定義爲:B+B^2+…+B^L=T;B是有效分枝因數,它表示在整個搜索過程當中 每一個節點平均生成的子節點數目;L爲從初始節點到目標節點的路徑長度;T爲整個搜索過程當中所生成的節點總數。當B=1時,L=T,此時所生成的節點數最少,搜索效率最高。

天然演繹推理

從一組已知爲真的事實出發,直接運用經典邏輯中的推理規則推出結論的過程稱爲天然演繹推理。
天然演繹推理最基本的推理規則是三段論推理,它包括:


【例子】 設已知以下事實:
(1) 只要是須要編程序的課,王程都喜歡。
(2) 全部的程序設計語言課都是須要編程序的課。
(3) C是一門程序設計語言課。
求證:王程喜歡C這門課。

證實:
第一步,首先定義謂詞
Prog(x):x是須要編程序的課。
Like(x, y): x喜歡y。
Lang(x): x是一門程序設計語言課
第二步,把已知事實及待求解問題用謂詞公式表示以下:
Prog(x)→Like(Wang , x)
(∀x)( Lang(x)→Prog(x))
Lang(C)
第三步,應用推理規則進行推理:
Lang(y)→Prog(y) 全稱固化
Lang(C),Lang(y)→Prog(y) ⇒ Prog(C) 假言推理 {C/y}
Prog(C), Prog(x)→Like(Wang , x) ⇒ Like(Wang , C) 假言推理 {C/x}
所以,王程喜歡C這門課。


注意避免如下兩類錯誤:
  • 確定後件的錯誤:當P→Q爲真時,但願經過確定後件Q爲真來推出前件P爲真,這是不容許的。
  • 否認前件的錯誤:當P→Q爲真時,但願經過否認前件P來推出後件Q爲假,這也是不容許的。
天然演繹推理的優缺點
  • 優勢
    • 定理證實過程天然,易於理解,而且有豐富的推理規則可用。
  • 缺點
    • 是容易產生知識爆炸,推理過程當中獲得的中間結論通常按指數規律遞增,對於複雜問題的推理不利,甚至難以實現。

消解演繹推理

一種基於 魯濱遜(Robinson)消解原理的機器推理技術。魯濱遜消解原理亦稱爲消解原理,是魯濱遜於1965年在海伯倫(Herbrand)理論的基礎上提出的一種基於邏輯的「反證法」。

在人工智能中,幾乎全部的問題均可以轉化爲一個定理證實問題。定理證實的實質,就是要對前提P和結論Q,證實P→Q永真。
而要證實P→Q永真,就是要證實P→Q在任何一個非空的個體域上都是永真的。這將是很是困難的,甚至是不可實現的。

魯濱遜消解原理把永真性的證實轉化爲關於 不可知足性的證實。即:要證實P→Q永真,只需證實P∧¬Q不可知足。(¬(P→Q) ⇔ ¬(¬P∨Q) ⇔ P∧¬Q

子句集及其化簡

魯濱遜消解原理是在子句集的基礎上討論問題的。所以,討論消解演繹推理以前,須要先討論子句集的有關概念。

  • 原子謂詞公式及其否認統稱爲 文字。例如: P(x)、Q(x)、¬ P(x)、 ¬ Q(x)等都是文字。
  • 任何文字的析取式稱爲 子句。例如,P(x)∨Q(x),P(x,f(x))∨Q(x,g(x))都是子句。
  • 不含任何文字的子句稱爲 空子句
    • 因爲空子句不含有任何文字,也就不能被任何解釋所知足,所以 空子句是永假的,不可知足的。
    • 空子句通常被記爲NIL。
  • 由子句或空子句所構成的集合稱爲 子句集
    • 在子句集中,子句之間是 合取關係
    • 子句集中的變元受 全稱量詞的約束;
    • 任何謂詞公式均可經過等價關係及推理規則化爲相應的子句集。

把謂詞公式化成子句集的步驟

子句集的意義
在上述化簡過程當中,因爲在消去存在量詞時所用的Skolem函數能夠不一樣,所以化簡後的標準子句集是不惟一的。所以,當原謂詞公式爲非永假時,它與其標準子句集並不等價。但當原謂詞公式爲永假(或不可知足)時,其標準子句集則必定是永假的,即Skolem化並不影響原謂詞公式的永假性。

不可知足性
對於任意論域中的任意一個解釋,S中的子句不能同時取得真值T。

定理:設有謂詞公式F,其子句集爲S,則F不可知足的充要條件是S不可知足。

  • 由此定理可知,要證實一個謂詞公式是不可知足的,只要證實其相應的標準子句集是不可知足的就能夠了。
  • 因爲子句集中的子句之間是合取關係,子句集中只要有一個子句爲不可知足,則整個子句集就是不可知足的
  • 空子句是不可知足的。所以,一個子句集中若是包含有空子句,則此子句集就必定是不可知足的
  • 這個定理是 魯濱遜消解原理的主要依據
魯濱遜消解原理

魯濱遜消解原理的基本思想

  • 首先把欲證實問題的 結論否認,並加入子句集,獲得一個擴充的子句集S’;
  • 而後設法檢驗子句集S’是否含有空子句,若含有空子句,則代表S’是不可知足的;若不含有空子句,則繼續使用消解法,在子句集中選擇合適的子句進行消解,直至導出空子句或不能繼續消解爲止

魯濱遜消解原理包括

  • 命題邏輯的消解
  • 謂詞邏輯的消解

命題邏輯的消解

消解推理的核心是求兩個子句的 消解式

  • 設C1和C2是子句集中的任意兩個子句,若是C1中的文字L1與C2中的文字L2 互補,那麼可從C1和C2中分別消去L1和L2,並將C1和C2中餘下的部分按析取關係構成一個新的子句C12,則稱這一過程爲 消解,稱C12爲C1和C2的 消解式,稱C1和C2爲C12的 親本子句

【例子】

  1. 設C1=¬Q,C2=Q,則C1和C2的消解式C12 = NIL .
  2. 設C1=P∨Q∨R,C2=¬P∨S,則C1和C2的消解式C12 = Q∨R∨S .
  3. 設C1 =¬P ∨ Q ,C2=¬Q,C3=P,則C一、C二、C3的消解式C123 = NIL .

  • 很顯然,能夠得出定理:**消解式C12是其親本子句C1和C2的邏輯結論。**根據該定理,能夠獲得如下推論:
    • 推論1:設C1和C2是子句集S中的兩個子句,C12是C1和C2的消解式,若用C12代替C1和C2後獲得新的子句集S1,則由S1的不可知足性能夠推出原子句集S的不可知足性。即:
      S1的不可知足性⇔S的不可知足性
    • 推論2:設C1和C2是子句集S中的兩個子句,C12是C1和C2的消解式,若把C12加入S中獲得新的子句集S2,則S與S2的不可知足性是等價的。即:
      S2的不可知足性⇔S的不可知足性

上述兩個推論說明,爲證實子句集S的不可知足性,只要對其中可進行消解得子句進行消解,並把消解式加入到子句集S中,或者用消解式代替他的親本子句,而後對新的子句集證實其不可知足性就能夠了
若是經消解能獲得空子句,根據空子句的不可知足性,便可獲得原子句集S是不可知足的結論。
在命題邏輯中,對不可知足的子句集S,其消解原理是完備的。即:子句集S是不可知足的,當且僅當存在一個從S到空子句的消解過程。

應用消解原理證實定理的過程稱爲 消解反演

命題邏輯的消解反演:

在命題邏輯中,已知F,證實G爲真的消解反演過程以下:

  1. 否認目標公式G,得¬G;
  2. 把¬G併入到公式集F中,獲得{F,¬G};
  3. 把{F,¬G}化爲子句集S;
  4. 應用消解原理對子句集S中的子句進行消解,並把每次獲得的消解式併入S中。如此反覆進行,若 出現空子句,則中止消解,此時就證實了G爲真。

【例子】 設已知的公式集爲{P,(P∧Q)→R,(S∨T)→Q,T},求證:R爲真。

解:假設結論R爲假, 將¬R加入公式集,並化爲子句集:
S={P,¬P∨¬Q∨R,¬S∨Q,¬T∨Q,T,¬R}
其消解過程以下圖的消解演繹樹所示。

該樹根爲空子句NIL,則子句集S不可知足,即假設有誤,因而證得R爲真。


謂詞邏輯的消解

  • 在謂詞邏輯中,因爲子句集中的謂詞通常都含有變元,所以不能象命題邏輯那樣直接消去互補文字。
  • 對於謂詞邏輯,須要先用一個最通常合一對變元進行置換,而後才能進行消解。

設C1和C2是兩個沒有公共變元的子句,L1和L2分別是C1和C2中的文字。若是 σ 是L1和¬ L2存在的最通常合一,則稱:
C12=({C1σ}-{ L1σ})∪({ C2σ}-{ L2σ})
爲C1和C2的二元消解式,L1和L2爲消解式上的文字。

注意:在謂詞邏輯的消解過程當中,要注意如下幾個問題:

  1. 若C1和C2有相同的變元x,須要將其中一個變元改名。(例2)
  2. 求消解式不能同時消去兩個互補對,消去這兩個互補文字所得的結果不是兩個親本子句的邏輯結論。(例3)
  3. 對參加消解的某個子句,若其內部有可合一的文字,則在進行消解以前應先對這些文字進行合一,以實現這些子句內部的化簡。(例4)

【例子】
例一、設C1=P(a)∨R(x)C2=¬P(y)∨Q(b),求 C12。
解:取L1= P(a), L2=¬P(y),則L1和¬L2的最通常合一是σ={a/y}。所以:

C12 = ( {C1σ}-{L1σ}) ∪ ({C2σ}-{L2σ})
        = ({P(a), R(x)}-{P(a)})∪({¬P(a), Q(b)}-{¬P(a)})
        = ({R(x)})∪({Q(b)})
        = { R(x), Q(b) } 
        = R(x)∨Q(b)

例二、設C1=P(x)∨Q(a)C2=¬P(b)∨R(x),求 C12。
解:因爲C1和C2有相同的變元x,不符合定義的要求。爲了進行消解,須要修改C2中變元的名字。令C2=¬P(b)∨R(y),此時L1= P(x), L2 =¬P(b),L1和¬L2的最通常合一是 σ={b/x}。則有:

C12 = ({C1σ}-{L1σ})∪ ({C2σ}-{L2σ})
        = ({P(b), Q(a)}-{P(b)}) ∪ ({¬P(b), R(y)}-{¬P(b)})
        = ({Q(a)}) ∪ ({R(y)})
        = {Q(a), R(y)}
        = Q(a)∨R(y)

例三、設 C1=P(a)∨¬Q(x)C2=¬P(y)∨Q(b),求C12。
解:對C1和C2經過最通常合一(σ={b/x, a/y})的做用,便獲得空子句NIL的結論,從而得出C一、C2互相矛盾的結論,而事實上C一、C2並沒有矛盾。

例四、設 C1=P(x)∨P(f(a))∨Q(x)C2=¬P(y)∨R(b),求C12。
解:本例的C1中有可合一的文字P(x)與P(f(a)),用它們的最通常合一σ={f(a)/x}進行代換,可獲得 :
C1σ=P(f(a))∨Q(f(a))
此時對C1σ與C2進行消解。選L1= P(f(a)), L2 =¬P(y),L1和L2的最通常合一是σ={f(a)/y},則可獲得C1和C2的二元消解式爲:
C12=R(b)∨Q(f(a))

例五、設 C1=P(y)∨P(f(x))∨Q(g(x))C2=¬P(f(g(a)))∨Q(b),求C12。
解:對C1,取最通常合一σ={f(x)/y},得C1的因子C1σ=P(f(x))∨Q(g(x)),對C1的因子和C2消解(σ={g(a)/x }),可得:C12=Q(g(g(a)))∨Q(b)


謂詞邏輯的消解反演:

在謂詞邏輯中,已知F,證實G是F的結論的消解反演過程以下:

  1. 否認目標公式G,得¬G;
  2. 把¬G併入到公式集F中,獲得{F,¬G};
  3. 把{F,¬G}化爲子句集S;
  4. 應用消解原理對子句集S中的子句進行消解,並把每次獲得的消解式併入S中。如此反覆進行,若出現空子句,則中止消解,此時就證實了G爲真。

與命題邏輯的消解反演過程比較一下

  • 步驟基本相同,但每步的處理對象不一樣。
  • 在步驟(3)化簡子句集時,謂詞邏輯須要把由謂詞構成的公式集化爲子句集。
  • 在步驟(4)按消解原理進行消解時,謂詞邏輯的消解原理須要考慮兩個親本子句的最通常合一。

【例子】
例一、已知F:(∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))G:¬(∃x)C(x)→(∀x)(∀y)(A(x, y)→¬B(y)),求證G是F的邏輯結論。

證實:
第一步,先把G否認,並放入F中,獲得的{F,¬G}
{(∀ x)((∃ y)(A(x,y)∧B(y))→(∃ y)(C(y)∧D(x,y)))¬(¬(∃ x)C(x)→(∀ x)(∀ y)(A(x,y)→¬ B(y)))}
第二步,把{F,¬G}化成子句集,獲得
(1) ¬A(x,y)∨¬B(y)∨C(f(x))
(2) ¬A(u,v)∨¬B(v)∨D(u,f(u))
(3) ¬C(z)
(4) A(m,n)
(5) B(k)
第三步,應用謂詞邏輯的消解原理對上述子句集進行消解,其過程爲:
(6) ¬ A(x,y)∨¬ B(y) (1)和(3)消解,取σ={f(x)/z}
(7) ¬ B(n) (4)和(6)消解,取σ={m/x,n/y}
(8) NIL (5)和(7)消解,取σ={n/k}
最後,「G是F的邏輯結論」得證。

上述消解過程可用以下消解樹來表示

例二、「快樂學生」問題
假設:任何經過計算機考試並獲獎的人都是快樂的,任何肯學習或幸運的人均可以經過全部考試,張不願學習但他是幸運的,任何幸運的人都能獲獎。
求證:張是快樂的。

證實:(完整的解題過程)
第一步,先定義謂詞:
Pass(x, y):x能夠經過y考試
Win(x, prize):x能得到獎勵
Study(x) :x肯學習
Happy(x):x是快樂的
Lucky(x) :x是幸運的
第二步,將已知條件以及結論的否認用謂詞表示以下:
「任何經過計算機考試並獎的人都是快樂的」
(∀x)(Pass(x, computer)∧Win(x, prize)→Happy(x))
「任何肯學習或幸運的人均可以經過全部考試」
(∀x)(∀y)(Study(x)∨Lucky(x)→Pass(x, y))
「張不願學習但他是幸運的」
¬Study(zhang)∧Lucky(zhang)
「任何幸運的人都能獲獎」
(∀x)(Lucky(x)→Win(x, prize))
結論「張是快樂的」的否認
¬Happy(zhang)
第三步,將上述謂詞公式轉化爲子句集以下:
1. ¬Pass(x, computer)∨¬Win(x, prize)∨Happy(x)
2. ¬Study(y)∨Pass(y, z)
3. ¬Lucky(u)∨Pass(u, v)
4. ¬Study(zhang)
5. Lucky(zhang)
6. ¬Lucky(w)∨Win(w, prize)
7. ¬ Happy(zhang) (結論的否認)
第四步,按消解原理進行消解,消解樹以下:

最後,「張是快樂的」得證。


消解反演推理的消解策略

在消解演繹推理中,因爲事先並不知道哪些子句對可進行消解,更不知道經過對哪些子句對的消解能儘快獲得空子句,所以就須要對子句集中的全部子句逐對進行比較,直到得出空子句爲止。這種盲目的全面進行消解的方法,不只會產生許多無用的消解式,更嚴重的是會產生組核爆炸問題。所以,須要研究有效的消解策略來解決這些問題。

經常使用的消解策略可分爲兩大類:

  • 限制策略:經過限制參加消解的子句減小盲目性
  • 刪除策略:經過刪除某些無用的子句縮小消解範圍
用消解反演求取問題的答案

消解原理除了可用於 定理證實外,還可用來 求取問題答案,其思想與定理證實類似。
其通常步驟爲:

  1. 把問題的已知條件用謂詞公式表示出來,並化爲子句集;
  2. 把問題的目標的否認用謂詞公式表示出來,並化爲子句集;
  3. 對目標否認子句集中的每一個子句,構造該子句的重言式(即把該目標否認子句和此目標否認子句的否認之間再進行析取所獲得的子句),用這些重言式代替相應的目標否認子句式,並把這些重言式加入到前提子句集中,獲得一個新的子句集;
  4. 對這個新的子句集,應用消解原理求出其證實樹,這時證實樹的根子句不爲空,稱這個證實樹爲修改的證實樹;
  5. 用修改證實樹的根子句做爲回答語句,則答案就在此根子句中。

【例子】
例一、已知:「張和李是同班同窗,若是x和y是同班同窗,則x的教室也是y的教室,如今張在302教室上課。」
問:「如今李在哪一個教室上課?」

解:第一步,首先定義謂詞
C(x, y):x和y是同班同窗
At(x, u):x在u教室上課。
第二步,把已知前提用謂詞公式表示以下:
C(zhang, li)
(∀x)(∀y)(∀u)(C(x, y)∧At(x, u)→At(y,u))
At(zhang, 302)
把目標的否認用謂詞公式表示以下:
¬(∃v)At(li, v)
第三步,把上述表示前提的謂詞公式化爲子句集:
C(zhang, li)
¬C(x, y)∨¬At(x, u)∨At(y, u)
At(zhang, 302)
把目標的否認化成子句式,並用下面的 重言式代替:
¬At(li,v) ∨At(li,v)
第四步,把此 重言式加入前提子句集中,獲得一個新的子句集,對這個新的子句集,應用消解原理求出其證實樹。
求解過程以下圖所示。該證實樹的根子句就是所求的答案,即「李明在302教室」。

例二、已知:A,B,C三人中有人從不說真話,也有人從不說假話。某人向這三人分別提出同一個問題:誰是說謊者?
A答:「B和C都是說謊者」;
B答:「A和C都是說謊者」;
C答:「A和B中至少有一個是說謊者」。
問:求誰是老實人,誰是說謊者?

解:第一步,首先定義謂詞
T(x):表示x說真話
第二步,把已知前提用謂詞公式表示以下:
有人從不說真話:¬T(C)∨¬T(A)∨¬T(B)
有人從不說假話:T(C)∨T(A)∨T(B)
根據「A答:B和C都是說謊者」,則
若A說真話:T(A)→¬T(B)∧¬T(C)
若A說假話: ¬T(A)→T(B)∨T(C)
同理,根據「B答:A和C都是說謊者」,則
T(B)→¬T(A)∧¬T(C)
¬T(B)→T(A)∨T(C)
根據「C答:A和B中至少有一個是說謊者」,則
T(C)→¬T(A)∨¬T(B)
¬T(C)→T(A)∧T(B)
第三步,把上述公式化成子句集,獲得前提子句集S:
¬T(A)∨¬T(B)
¬T(A)∨¬T(C)
T(C)∨T(A)∨T(B)
¬T(B)∨¬T(C)
¬T(C)∨¬T(A)∨¬T(B)
T(A)∨T(C)
T(B)∨T(C)
第四步,先求誰是老實人,結論的否認爲:¬(∃x)T(x),把目標的否認化成子句式,並用下面的重言式代替:
¬T(x)∨T(x)
把此重言式加入前提子句集S,獲得一個新子句集。
第五步,對這個新的子句集,應用消解原理求出其證實樹。

第六步,同理證實A不是老實人,結論的否認爲: ¬T(A),將結論的否認¬(¬T(A)) 加入併入前提子句集S中,應用消解原理對新的子句集進行消解:


消解演繹推理的優缺點:
  • 優勢:
    • 簡單,便於在計算機上實現。
  • 缺點:
    • 必須把邏輯公式化成子句集。
    • 不便於閱讀與理解:¬P(x)∨Q(x)沒有P(x)→Q(x)直觀。
    • 可能丟失控制信息,以下列邏輯公式,化成子句後都是: A∨B∨C
(¬A∧¬B)→C    ¬A→(B∨C)
    (¬A∧¬C)→B    ¬B→(A∨C)
    (¬C∧¬B)→A    ¬C→(B∨A)

基於規則的演繹推理

在消解演繹推理中,須要把謂詞公式化爲子句形,這使得原來蘊含在謂詞公式中的一些重要信息卻會在求取子句形的過程當中被丟失。
在很多狀況下人們多但願使用接近於問題原始描述的形式來進行求解,而不但願把問題描述化爲子句集。

基於規則的演繹推理又稱爲與/或形演繹推理,再也不把有關知識轉化爲子句集,而是把領域知識及已知事實分別用蘊含式及與/或形表示出來,而後經過運用蘊含式進行演繹推理,從而證實某個目標公式。

規則是一種比較接近於人們習慣的問題描述方式,按照 蘊含式(「If →Then」規則)這種問題描述方式進行求解的系統稱爲基於規則的系統,或者叫作 規則演繹系統

規則演繹系統按照推理方式可分爲:

  • 規則正向演繹系統
  • 規則逆向演繹系統(ppt-14)
  • 規則雙向演繹系統(ppt-14)
規則正向演繹系統

首先說明一下,在規則正向演繹系統中,對已知事實和規則都有必定的要求,若是不是所要求的形式,須要進行變換。

事實表達式的與或形變換

  • 在基於規則的正向演繹系統中,把事實表示爲非蘊含形式的與或形,做爲系統的總數據庫;
  • 把一個公式化爲與或形的步驟與化爲子句集相似,只是沒必要把公式化爲子句的合取形式,也不能消去公式中的合取。

詳細來講,把事實表達式化爲非蘊含形式的與/或形的步驟以下:

  1. 利用 「P→Q⇔﹁P∨Q」,消去蘊含符號;
  2. 利用狄.摩根定律及量詞轉換率把「﹁」移到緊靠謂詞的位置,直到否認符號的轄域最多隻含一個謂詞爲止;
  3. 從新命名變元,使不一樣量詞約束的變元有不一樣的名字;
  4. 對存在量詞量化的變量用skolem函數代替;
  5. 消去全稱量詞,且使各主要合取式中的變元具備不一樣的變量名。

【例子】
有以下表達式
(∃x) (∀y)(Q(y, x)∧﹁((R(y)∨P(y))∧S(x, y)))
可把它轉化爲:
Q(z, a)∧( ( ﹁R(y)∧﹁P(y) )∨﹁S(a, y) )
這就是 與/或形表示,也可用一棵與/或圖表示出來。


關於 與/或圖說明如下幾點:

  • 當某表達式爲k個子表達式的析取:E1∨E2∨…∨Ek,其中每一個子表達式Ei均被表示爲E1∨E2∨…∨Ek的後繼節點,並由一個k線鏈接符(即圖中的半圓弧)將這些後繼節點都鏈接到其父節點,即表示成與的關係。
  • 當某表達式爲k個子表達式的合取:E1∧E2∧…∧Ek,其中的每一個子表達式Ei均被表示爲E1∧E2∧…∧Ek的一個單一的後繼節點,無需用鏈接符鏈接,即表示成或的關係。
  • 這樣,與/或圖的根節點就是整個事實表達式,葉節點均爲事實表達式中的一個文字

有了與/或圖的表示,就能夠求出其解樹(結束於文字節點上的子樹)集。能夠發現,事實表達式的子句集與解樹集之間存在着一一對應關係,即 解樹集中的每一個解樹都對應着子句集中的一個子句
解樹集中每一個解樹的端節點上的文字的析取就是子句集中的一個子句。

上面那個與/或圖有3個解樹,分別對應這如下3個子句:
Q(z, a)﹁R(y)∨ ﹁ S(a, y)﹁P(y)∨ ﹁ S(a, y)

還須要注意如下兩點:

  • 這裏的與/或圖是做爲綜合數據庫的一種表示,其中的變量受全稱量詞的約束。
  • 在以前 問題歸約表示 中所描述的 與/或圖表示方法與這裏 與/或形的與/或圖表示有着不一樣的目的和含義,所以應用時應加以 區分

規則的表示

爲簡化演繹過程,一般要求規則具備以下形式:L→W,其中,L爲單文字,W爲與/或形公式。
(之因此限制前件L爲單文字,是由於在進行正向演繹推理時要用規則做用於表示事實的與/或樹,而該與/或樹的葉節點都是單文字,這樣就可用規則的前件與葉節點進行簡單匹配。對非單文字狀況,若形式爲L1∨L2→W,則可將其轉換成與之等價的兩個規則L1→W與 L2→W進行處理。)

  • 假定出如今蘊含式中的任何變量全都受全稱量詞的約束,而且這些變量已經被換名,使得他們與事實公式和其餘規則中的變量不一樣。
  • 若是領域知識的規則表示形式與上述要求不一樣,則應將它轉換成要求的形式。

將規則轉換爲要求形式的步驟:

一、 暫時消去蘊含符號「→」。設有以下公式:
(∀x)(((∃y) (∀ z)P(x, y,z))→(∀u)Q(x, u))
運用等價關係「P→Q⇔﹁P∨Q」,可將上式變爲:
(∀x)(﹁((∃ y) (∀z)P(x, y,z))∨(∀u)Q(x, u))
二、 把否認符號「﹁」移到緊靠謂詞的位置上,使其做用域僅限於單個謂詞。經過使用狄.摩根定律及量詞轉換律可把上式轉換爲:
(∀ x)( (∀y) (∃z)﹁P(x, y,z))∨ (∀u)Q(x, u))
三、 引入Skolem函數,消去存在量詞。消去存在量詞後,上式可變爲:
(∀ x)( (∀y) (﹁P(x, y,f(x,y)))∨(∀u)Q(x, u))
四、 把全部全稱量詞移至前面化成前束式,消去所有全稱量詞。消去全稱量詞後,上式變爲:
﹁P(x, y,f(x,y))∨Q(x, u)
此公式中的變元都被視爲受全稱量詞約束的變元。
五、 恢復蘊含式表示。利用等價關係「﹁P∨Q⇔P→Q」將上式變爲:
P(x, y,f(x,y))→Q(x, u)

目標公式的表示形式

  • 與/或樹正向演繹系統要求目標公式用子句形表示。若是目標公式不是子句形,則須要化成子句形。

推理過程

規則正向演繹推理過程是從已知事實出發,不斷運用規則,推出欲證實目標公式的過程。
先用與/或樹把已知事實表示出來,而後再用規則的前件和與/或樹的葉節點進行匹配,並經過一個匹配弧把匹配成功的規則加入到與/或樹中,依此使用規則,直到產生一個含有以目標節點爲終止節點的解樹爲止。

下面分命題邏輯和謂詞邏輯兩種狀況來討論規則正向演繹過程。

命題邏輯的規則正向演繹過程
已知事實:A∨B
規則:r1: A→C∧Dr2: B→E∧G
目標公式:C∨G

證實:
1)先將已知事實用與/或樹表示出來;
2)而後再用匹配弧把r1和r2分別鏈接到事實與/或樹中與r1和r2 的前件匹配的兩個不一樣端節點;
3) 因爲出現了以目標節點爲終節點的解樹,故推理過程結束。這一證實過程可用下圖表示。

謂詞邏輯的規則正向演繹過程
已知事實的與/或形表示:P(x, y)∨(Q(x)∧R(v, y))
規則:P(u, v)→(S(u)∨N(v))
目標公式:S(a)∨N(b)∨Q©

證實:
在謂詞邏輯狀況下,因爲事實、規則及目標中均含有變元,所以,其規則演繹過程還須要用最通常合一對變進行置換。證實過程可用下圖表示。

產生式系統

基本結構

產生式系統的 基本結構數據庫產生式規則控制策略三部分構成。

  • 總數據庫:存放求解問題的各類當前信息,如:問題的初始狀態,輸入的事實,中間結論及最終結論等。
    • 推理過程當中,當規則庫中某條規則的前提能夠和總數據庫的已知事實匹配時,該規則被激活,由它推出的結論將被做爲新的事實放入總數據庫,成爲後面推理的已知事實。
  • 產生式規則:是一個規則庫,也稱知識庫 。用於存放與求解問題有關的全部規則的集合。
  • 控制策略:亦稱推理機,用於控制整個產生式系統的運行,決定問題求解過程的推理線路。
    • 控制系統的主要任務包括: 選擇匹配、 衝突消解、 執行操做、 終止推理、 路徑解釋…
產生式系統的推理

產生式系統的推理分爲 正向推理逆向推理雙向推理三種形式。

主要優缺點

產生式系統的主要 優缺點

  • 優勢:
    • 天然性:採用「若是……,則……」的形式,人類的判斷性知識基本一致。
    • 模塊性:規則是規則庫中最基本的知識單元,各規則之間只能經過總數據庫發生聯繫,而不能相互調用,從而增長了規則的模塊性。
    • 有效性:產生式知識表示法既能夠表示肯定性知識,又能夠表示不肯定性知識,既有利於表示啓發性知識,又有利於表示過程性知識。
  • 缺點:
    • 效率較低:各規則之間的聯繫必須以總數據庫爲媒介。而且,其求解過程是一種反覆進行的「匹配—衝突消解—執行」過程。這樣的執行方式將致使執行的低效率。
    • 不便於表示結構性知識:因爲產生式表示中的知識具備一致格式,且規則之間不能相互調用,所以那種具備結構關係或層次關係的知識則很難以天然的方式來表示。

非經典推理

經典推理和非經典推理

非經典推理

現實世界中的大多數問題存在隨機性、模糊性、不徹底性和不精確性。對於這些問題,若採用前面所討論的精確性推理方法顯然是沒法解決的。
爲此,出現了一些新的邏輯學派,稱爲非經典邏輯,相應的推理方法稱爲 非經典推理。包括非單調性推理、不肯定性推理、機率推理和貝葉斯推理等。

非經典邏輯推理與經典邏輯推理的區別

  • 在推理方法上,經典邏輯採用演繹邏輯推理,非經典邏輯採用概括推理。
  • 在轄域取值上,經典邏輯是二值邏輯,非經典邏輯是多值邏輯。
  • 在運算法則上,二者大不相同。
  • 在邏輯運算符上,非經典邏輯有更多的邏輯運算符。
  • 在單調性上,經典邏輯是單調的,即已知事實均爲充分可信的,不會隨着新事實的出現而使原有事實變爲假。非經典邏輯是非單調的。

不肯定性推理

不肯定性推理的概念

  • 不肯定性推理是創建在非經典邏輯基礎上的一種推理,它是對不肯定性知識的運用與處理。
  • 不肯定性推理泛指除精確推理之外的其它各類推理問題。包括不完備、不精確知識的推理,模糊知識的推理,非單調性推理等。
  • 不肯定性推理從不肯定性的初始證據(即事實)出發,經過運用不肯定性的知識,最終推出具備必定程度不肯定性的結論。

爲何要採用不肯定性推理

  • 所需知識不完備或問題的背景知識不足
  • 所需知識描述不精確或模糊
  • 多種緣由致使同一結論或解題方案不惟一

不肯定性推理的基本問題

  1. 不肯定性的表示
  2. 不肯定性的匹配
  3. 組合證據的不肯定性的計算
  4. 不肯定性的更新
  5. 不肯定性結論的合成

知識的不肯定性的表示

  • 考慮因素:1. 問題描述能力; 2. 推理中不肯定性的計算
  • 含義:知識的肯定性程度,或靜態強度
  • 表示:
    • 機率,[0,1],0接近於假,1接近於真
    • 可信度,[-1,1],大於0接近於真,小於0接近於假

證據的非精確性表示

  • 證據來源:初始證據,中間結論
  • 表示:用機率或可信度

不肯定性的匹配

  • 含義:不肯定的前提條件與不肯定的事實匹配
  • 問題:前提是不肯定的,事實也是不肯定的
  • 方法:設計一個計算類似程度的算法,給出類似的限度
  • 標誌:類似度落在規定限度內爲匹配,不然爲不匹配

組合證據不肯定性的計算

  • 含義:知識的前提條件是多個證據的組合
  • 方法:T(E)表示證據E爲真的程度
    • 最大最小法:
      T(E1 AND E2)=min{T(E1),T(E2)}
      T(E1 OR E2)=max{T(E1),T(E2)}
    • 機率法:在事件之間徹底獨立時使用
      T(E1 AND E2)=T(E1)T(E2)
      T(E1 OR E2)=T(E1)+T(E2)-T(E1)T(E2)
    • 有界法:
      T(E1 AND E2)=max{0,T(E1)+T(E2)-1}
      T(E1 OR E2)=min{1,T(E1)+T(E2)}

不肯定性的更新

  • 主要問題:解決不肯定性知識在推理的過程當中,知識不肯定性的累積和傳遞。
  • 解決方法
    • 已知規則前提證據E的不肯定性T(E)和規則的強度F(E,H),則結論H的不肯定性:T(H) = g1[T(E),F(E,H)]
    • 證據合取: T(E1 AND E2) = g2[T(E1), T (E2)]
    • 證據析取: T(E1 OR E2) = g3[T(E1), T (E2)]

不肯定性結論的合成

  • 主要問題:多個不一樣知識推出同一結論,且不肯定性程度不一樣
  • 解決方法:
    • 並行規則算法:根據獨立證據E1和E2分別求得結論H的不肯定性爲T1(H)T2(H),則證據E1和E2的組合致使結論H的不肯定性:T(H)=g[T1(H), T2(H)]
    • 函數g視不一樣推理方法而定

機率推理

機率論基礎回顧

機率推理方法

  • 設有以下產生式規則:IF E THEN H
    • 其中,E爲前提條件,H爲結論。
    • 條件機率P(H|E)能夠做爲在證據E出現時結論H的肯定性程度,即規則的靜態強度。
  • 把貝葉斯方法用於不精確推理的思想
    • 已知前提E的機率P(E)和結論H的先驗機率P(H)
    • 已知H成立時E出現的條件機率P(E|H)
    • 利用規則推出H在E出現的條件下的後驗機率:
  • 對於一組產生式規則:IF E THEN Hi
    • 一個前提條件E支持多個結論H1, H2, …,Hn
    • 一樣有後驗機率以下( Hi 肯定性的程度,或規則的靜態強度):
  • 對於有多個證據E1, E2, …, Em和多個結論H1, H2, …, Hn,而且每一個證據都以必定程度支持結論的狀況,上面的式子可進一步擴展爲:

【例子】
設H1,H2,H3分別是三個結論,E是支持這些結論的證據。已知:

P(H1)=0.3
P(H2)=0.4
P(H3)=0.5
P(E|H1)=0.5
P(E|H2)=0.3
P(E|H3)=0.4

求P(H1|E),P(H2|E)及P(H3|E)的值各是多少?

解:

同理可得:
P(H2|E)=0.26
P(H3|E)=0.43
觀察:( 注:P(E)=0.47 )
P(H1)=0.3 , P(E|H1)=0.5 P(H1|E)=0.32
P(H2)=0.4 , P(E|H2)=0.3 P(H2|E)=0.26
P(H3)=0.5 , P(E|H3)=0.4 P(H3|E)=0.43
結論:因爲E的出現,H1成立的可能性增長,H2和H3成立的可能性不一樣程度的降低。


機率推理方法的特色

  • 優勢:
    • 機率推理方法有較強的理論背景和良好的數學特性,當證據彼此獨立時計算的複雜度比較低。
  • 缺點:
    • 機率推理方法要求給出結論Hi的先驗機率P(Hi)及條件機率 P(Ej|Hi)。

貝葉斯推理(主觀貝葉斯方法)

使用機率推理方法求結論Hi在存在證據E時的條件機率P(Hi|E) ,須要給出結論Hi的先驗機率P(Hi)及證據E的條件機率 P(E|Hi)。這對於實際應用是不容易作到的。
Duda 和 Hart 等人在貝葉斯公式的基礎上,於1976年提出主觀貝葉斯方法,創建了不精確推理的模型,並把它成功地應用於PROSPECTOR專家系統(PROSPECTOR是國際上著名的一個用於勘察固體礦的專家系統)。

主觀貝葉斯方法(ppt-24)

  • 知識不肯定性的表示

    • 在主觀Bayes方法中,知識是用產生式表示的,其形式爲:
      IF E THEN (LS, LN) H

    • E表示規則前提條件,它既能夠是一個簡單條件,也能夠是用AND或OR把多個簡單條件鏈接起來的複合條件。

    • H是結論,用P(H)表示H的先驗機率,它指出沒有任何專門證據的狀況下結論H爲真的機率,其值由領域專家根據以往的實踐經驗給出。

    • LS是規則的充分性度量。用於指出E對H的支持程度,取值範圍爲[0,+∞),其定義爲:

    • LN是規則的必要性度量。用於指出E對H爲真的必要程度,即﹁E對對H的支持程度。取值範圍爲[0,+∞),其定義爲:

  • 證據不肯定性的表示

  • 組合證據不肯定性的計算

  • 不肯定性的更新

  • 主觀貝葉斯方法的推理過程

可信度方法

什麼是可信度

  • 可信度是指人們根據以往經驗對某個事物或現象爲真的程度的一個判斷,或者說是人們對某個事物或現象爲真的相信程度。
  • 在可信度方法中,由專家給出規則或知識的可信度,從而 避免對先驗機率、條件機率的要求
  • 可信度方法是肖特里菲(Shortliffe)等人在肯定性理論基礎上結合機率論等理論提出的一種不精確推理模型。

該方法 直觀簡單並且 效果好,在專家系統等領域得到了較爲普遍的應用。

C-F模型

C-F模型:基於可信度表示的不肯定性推理的基本方法,其餘可信度方法都是基於此發展而來。

知識的不肯定性表示

知識的不肯定性表示:在C-F模型中,知識是用產生式規則表示的,其通常形式爲:
IF E THEN H (CF(H, E))
E:知識的前提條件,能夠是單一或複合條件;
H:知識的結論,能夠是單一結論或多個結論;
CF(H, E):知識的可信度,稱爲 可信度因子(Certainty Factor)或規則強度。

通常狀況下,CF(H, E)的取值爲[-1, 1],表示當證據E爲真時,對結論H的支持程度。其值越大,表示支持程度越大。

  • CF(H,E)>0對應於P(H|E)>P(H);
  • CF(H,E)=0對應於P(H|E)=P(H);
  • CF(H,E)<0對應於P(H|E)<P(H)。

例如:IF 發燒 AND 流鼻涕 THEN 感冒(0.7),表示當某人確實有「發燒」及「流鼻涕」症狀時,則有七成的把握是患了感冒。

CF(H,E)的定義:

CF(H,E) = MB(H,E) - MD(H,E)

  • MB ( Measure Belief ) 稱爲信任增加度,反映了證據對結論有利的一面。MB(H, E)定義爲:
  • MD ( Measure Disbelief ) 稱爲不信任增加度,MD反映了證據對結論不利的一面。MD(H,E)定義爲:

MB和MD的關係:

  • P(H|E)>P(H)時: E的出現增長了H的機率
    MB(H,E)>0,MD(H,E)=0
  • P(H|E)<P(H)時: E的出現下降了H的機率
    MB(H,E) =0,MD(H,E)>0
    所以,CF(H, E)的計算公式:

可信度的性質(ppt-25)

  • 互斥性:對同一證據,不可能既增長對H的信任程度,又同時增長對H的不信任程度,即MB與MD是互斥的
    • 當MB(H, E)>0時,MD(H, E)=0
    • 當MD(H, E)>0時,MB(H, E)=0
  • 值域:MB(H, E) ∈ [0,1]; MD(H, E) ∈ [0,1]; CF(H, E) ∈[-1,1],
    • 當且僅當P(H|E)=1時, CF(H,E)=1
    • 當且僅當P(H|E)=0時, CF(H,E)=-1
    • CF(H,E)定性地反映了P(H|E)的大小,所以能夠用CF(H,E)近似表示P(H|E) ,描述規則的可信度。
  • 對H的信任增加度等於對非H的不信任增加度
  • 再根據CF的定義和MB、MD的互斥性有
    CF(H,E)+CF(﹁H,E)=0
  • 對前提E,若支持若干個不一樣的結論Hi(i=1,2,…,n),則
  • 所以,若是發現專家給出的知識有以下狀況
    CF(H1, E)=0.7, CF(H2, E)=0.4
  • 則因0.7+0.4=1.1>1爲非法,應進行調整或規範化。

證據不肯定性的表示

  • 證據的E不肯定性也用可信度因子CF(E)表示
  • CF(E)的取值範圍:[-1,+1]。
    • CF(E)=1,證據E確定它爲真
    • CF(E)=-1,證據E確定它爲假
    • CF(E)=0,對證據E一無所知
    • 0<CF(E)<1,證據E以CF(E)程度爲真
    • -1<CF(E)<0,證據E以CF(E)程度爲假

否認證據的不肯定性計算

CF(¬E)=-CF(E)

組合證據的不肯定性計算

  • 可採用最大最小法
    • 當組合證據E是多個單一證據的合取時,若已知CF(E1), …, CF(En),則:
      CF(E)=min{CF(E1), CF(E2), … ,CF(En)}
    • 當組合證據E是多個單一證據的析取時,若已知CF(E1), …, CF(En),則:
      CF(E)=max{CF(E1), CF(E2), … ,CF(En)}

不肯定性的更新

IF E THEN H (CF(H, E))

結論H的可信度由下式計算:

CF(H)=CF(H,E)×max{0,CF(E)}

  • CF(H)的取值範圍:[-1,+1]。
    • CF(H)=0: CF(E)<0,即該模型沒考慮E爲假對H的影響
    • CF(H)>0: 表示結論以某種程度爲真
    • CF(H)<0: 表示結論以某種程度爲假

結論不肯定性的合成

  • 若由多條不一樣知識推出了相同的結論,但可信度不一樣,則用合成算法求出綜合可信度。設有知識:
    IF E1 THEN H (CF(H, E1))
    IF E2 THEN H (CF(H, E2))
  • 則結論H 的綜合可信度可分如下兩步計算:
    (1)、分別對每條知識求出其CF(H)。即
    CF1(H)=CF(H, E1) ×max{0, CF(E1)}
    CF2(H)=CF(H, E2) ×max{0, CF(E2)}

(2)、用以下公式求E1與E2對H的綜合可信度


【例子】
設有以下一組知識:

r1:IF  E1  THEN  H  (0.9)
r2:IF  E2  THEN  H  (0.6)
r3:IF  E3  THEN  H  (-0.5)
r4:IF  E4  AND  ( E5  OR  E6)  THEN  E1  (0.8)


已知:CF(E2)=0.8CF(E3)=0.6CF(E4)=0.5CF(E5)=0.6,CF(E6)=0.8,求:CF(H)

解:由r4獲得:

CF(E1) = 0.8×max{0, CF(E4  AND  (E5  OR   E6))}
        = 0.8×max{0, min{CF(E4),  CF(E5  OR   E6)}} 
        = 0.8×max{0, min{CF(E4),  max{CF(E5),  CF(E6)}}}
        = 0.8×max{0, min{CF(E4),  max{0.6,  0.8}}}
        = 0.8×max{0, min{0.5,  0.8}}
        = 0.8×max{0,  0.5} 
        = 0.4 
 由r1獲得:
    CF1(H) = CF(H, E1)×max{0,  CF(E1)}
           = 0.9×max{0,  0.4} 
           = 0.36

 由r2獲得:
    CF2(H) = CF(H, E2)×max{ 0,  CF(E2) }
          = 0.6×max{ 0,  0.8 } 
           = 0.48
由r3獲得:
    CF3(H) = CF(H, E3)×max{ 0,  CF(E3) }
          = -0.5×max{ 0,  0.6 } 
          = -0.3

根據結論不精確性的合成算法,CF1(H)和CF2(H)同號,有:

CF12(H)和CF3(H)異號,有:

綜合可信度爲CF(H)=0.53。


證據理論(ppt-25-21)

專家系統

專家系統的先行者費根鮑姆(Feigenbaum)曾把專家系統定義爲一個應用知識和推理過程來求解那些須要大量的人類專家解決難題經驗的智能計算機程序。
專家系統主要指的是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,可以利用人類專家的知識和解決問題的經驗方法來處理該領域的高水平難題。

專家系統概述

  • 專家系統是一個具備大量的專門知識與經驗的程序系統,它應用人工智能技術和計算機技術,根據某領域一個或多個專家提供的知識和經驗,進行推理和判斷,模擬人類專家的決策過程,以便解決那些須要人類專家才能處理好的複雜問題。簡而言之,專家系統是一種模擬人類專家解決領域問題的計算機程序系統。
  • 專家系統的基本功能取決於它所含有的知識,所以,有時也把專家系統稱爲基於知識的系統(knowledge-based system)。

專家系統的特色

  • 啓發性
    • 專家系統要解決的問題,其結構每每是不合理的,其問題求解(problem-solving)知識不只包括理論知識和常識,並且包括專家本人的啓發知識。
    • 能運用專家的知識和經驗進行推理、判斷和決策。
  • 透明性
    • 專家系統可以解釋自己的推理過程和回答用戶提出的問題,以便讓用戶瞭解推理過程,提升對專家系統的信賴感。
    • 問題求解過程當中知識應用的合理性可由檢驗專家系統的解釋推理路徑來驗證。
  • 靈活性
    • 專家系統的靈活性是指它的擴展和豐富知識庫的能力,以及改善非編程狀態下的系統性能,即自學習能力。
    • 專家系統能不斷增加知識,修改原有知識,不斷更新

專家系統的優勢

  • 專家系統可以高效率、準確、周到、迅速和不知疲倦地進行工做。
  • 專家系統解決實際問題時不受周圍環境的影響,也不可能遺漏和忘記。
  • 能夠使專家的專長不受時間和空間的限制,以便推廣珍貴和稀缺的專家知識與經驗。
  • 專家系統能促進各領域的發展,使各領域專家的專業知識和經驗獲得總結和精煉,可以普遍有力地傳播專家的知識、經驗和能力。
  • 專家系統能聚集多領域專家的知識和經驗以及他們協做解決重大問題的能力,它擁有更淵博的知識、更豐富的經驗和更強的工做能力。
  • 軍事專家系統的水平是一個國家國防現代化的重要標誌之一。
  • 專家系統的研製和應用,具備巨大的經濟效益和社會效益。
  • 研究專家系統可以促進整個科學技術的發展。專家系統對人工智能各個領域的發展起了很大的促進做用,並將對科技、經濟、國防、教育、社會和人民生活產生極其深遠的影響。

專家系統的結構

  • 專家系統簡化結構圖
  • 理想專家系統的結構圖
  • 專家系統的主要組成部分:
    • 知識庫
    • 綜合數據庫
    • 推理機
    • 解釋器
    • 接口

專家系統的建造步驟

  • 設計初始知識庫
    • 問題知識化
    • 知識概念化
    • 概念形式化
    • 形式規則化
    • 規則合法化
  • 原型機(prototype)的開發與實驗
  • 知識庫的改進與概括

基於規則的專家系統基於框架的專家系統

一個基於規則的專家系統採用下列模塊來創建產生式系統的模型:

  1. 知識庫:以一套規則創建人的長期存儲器模型。
  2. 工做存儲器:創建人的短時間存儲器模型,存放問題事實和由規則激發而推斷出的新事實。
  3. 推理機:藉助於把存放在工做存儲器內的問題事實和存放在知識庫內的規則結合起來,創建人的推理模型,以推斷出新的信息 。

基於框架的專家系統

  • 基於框架的專家系統是一個計算機程序,該程序使用一組包含在知識庫內的框架對工做存儲器內的具體問題信息進行處理,經過推理機推斷出新的信息。
  • 基於框架的專家系統是創建在框架的基礎之上的。通常概念存放在框架內,而該概念的一些特例則被表示在其餘框架內並含有實際的特徵值。
  • 基於框架的專家系統可以提供基於規則專家系統所沒有的特徵,如繼承、側面、信息通訊和模式匹配規則等,於是,基於框架的專家系統比基於規則的專家系統擁有更強的功能,適用於解決更復雜的問題。

基於模型的專家系統

  • 關於人工智能的一個觀點: 認爲人工智能是對各類定性模型(物理的、感知的、認識的和社會的系統模型)的得到、表達及使用的計算方法進行研究的學問。一個知識系統中的知識庫是由各類模型綜合而成的。
  • 模型類型:基於邏輯的心理模型、定性的物理模型、神經元網絡模型、可視知識模型等等。
  • 綜合各類模型的專家系統比基於邏輯心理模型的系統具備更強的功能,從而有可能顯著改進專家系統的設計
  • 在諸多模型中,人工神經網絡模型的應用最爲普遍

基於Web的專家系統

新型專家系統

以上部分專家系統就不詳敘了。


模糊邏輯系統

模糊邏輯原理

模糊邏輯的發展,是由理論準備到理論提出再到理論應用的過程

模糊集

  • 從精確到模糊
    • 精確
      • 答案肯定:要麼是,要麼不是
      • f : A → {0,1}
      • 如:他是學生?不是學生?
    • 模糊
      • 答案不定:也許是,也許不是,也許介於之間
      • μA : U → [0,1]
      • 如:他是成年人?不是成年人?大概是成年人?

【例子】表示「20歲左右」

  • 原集合(年齡)
    • {…, 17, 18, 19, 20, 21, 22, 23, …}
  • 模糊集能夠表示爲:
    • 0.8/18 + 0.9/19 + 1/20 + 0.9/21 + 0.8/12
    • 0.6/17+0.7/18+0.8/19+1/20+0.9/21+0.7/22+0.6/23

集合及其特徵函數

  • 在論域中,把具備某種屬性的事物的全體稱爲集合。因爲集合中的元素都具備某種屬性,所以能夠用集合表示某一種概念,並且可用一個函數來刻畫它,該函數稱爲特徵函數。
  • 設A是論域U上的一個集合,對任意u∈U,令
  • 則稱CA(u)爲集合A的特徵函數。特徵函數CA(u)在u=u0處的取值CA(u0)稱爲u0對A的隸屬度。
  • 集合A與其特徵函數能夠認爲是等價的:A={u |CA(u)=1}

模糊集與隸屬函數

  • 模糊集把特徵函數的取值範圍從{0,1}推廣到[0,1]上。
  • 設U是論域,μA是把任意u∈U映射爲[0,1]上某個值的函數,即
    μA : U→[0,1] 或 u→μA(u)
  • 則稱μA爲定義在U上的一個隸屬函數,由μA(u)(u∈U)所構成的集合A稱爲U上的一個模糊集,μA(u)稱爲u對A的隸屬度。

【例子】
論域U={1,2,3,4,5},用模糊集表示「大」和「小」。

解:設A、B分別表示「大」與「小」的模糊集,μA ,μB分別爲相應的隸屬函數。
A = {0, 0, 0.1, 0.6, 1}
B = {1, 0.5, 0.01, 0, 0}
其中:
μA(1)=0, μA(2)=0 , μA(3)=0.1 , μA(4)=0.6 , μA(5)=1
μB(1)=1, μB(2)=0.5 , μB(3)=0.01 , μB(4)=0, μB(5)=0


模糊集的表示方法

(1)、論域離散且爲有限
若論域 U={u1, … , un}爲離散論域,模糊集A表示爲:
A= {μA(u1), μA(u2), … , μA(un)}
也可寫爲:
A= μA(u1)/u1 + μA(u2)/u2 + … + μA(un)/un
其中,隸屬度爲0的元素能夠不寫。

例如:

A = 1/u1+0.7/u2+0/u3+0.4/u4
  = 1/u1+0.7/u2+0.4/u4

(2)、論域連續
若論域是連續的,則模糊集可用實函數表示。

例如:以年齡爲論域U=[0,100], 「年輕」和「年老」這兩個概念可表示爲:

(3)、通常表示方法
無論論域 U 是有限的仍是無限的,是連續的亦或是離散的,扎德( L. A. Zadeh )又給出了一種相似於積分的通常表示形式:

這裏的記號不是數學中的積分符號,也不是求和,只是表示論域中各元素與其隸屬度對應關係的總括。

模糊集的運算

  • 模糊集的包含運算
    • 設A、B分別是U 上的兩個模糊集,對任意u∈U,都有 μB(u) ≤ μA(u) 成立,則稱A包含B,記爲B A。
  • 模糊集的交、並、補運算
    • 設A、B分別是U上的兩個模糊集,則A和B兩個集合的並集A∪B、交集A∩B和A的補集﹁A的隸屬函數分別爲:

【例子】
設U={u1,u2,u3},
A=0.3/u1+0.8/u2+0.6/u3; B=0.6/u1+0.4/u2+0.7/u3
求A∩B,A∪B和¬A。

A∩B = (0.3∧0.6)/u1+(0.8∧0.4)/u2+(0.6∧0.7)/u3
    = 0.3/u1+0.4/u2+0.6/u3
A∪B = (0.3∨0.6)/u1+(0.8∨0.4)/u2+(0.6∨0.7)/u3
    = 0.6/u1+0.8/u2+0.7/u3
¬A  = (1-0.3)/u1+(1-0.8)/u2+(1-0.6)/u3
    = 0.7/u1+0.2/u2+0.4/u3

模糊關係

模糊關係的定義

  • 設 Ai 是 Ui (i=1,2,…,n) 上的模糊集,則稱爲A1, A2, …, An的笛卡爾乘積,它是U1×U2×…×Un上的一個模糊集。

  • 在U1×…×Un上一個n元模糊關係R是指以U1×…×Un爲論域的一個模糊集,記爲:

通常地說,當U和V都是有限論域時,U={u1,u2,…,um}V={v1,v2,…,vn},則U×V上的模糊關係R可用一個模糊矩陣表示

模糊關係的合成
  • 設R1與R2分別是U×V與V×W上的兩個模糊關係,則R1與R2的合成是指從U到W的一個模糊關係,記爲R1°R2
  • 其隸屬函數爲
  • 隸屬函數計算方法:取R1的第 i 行元素分別與R2的第 j 列元素相比較,兩個數中取其小者,而後再在所得的一組最小數中取最大的一個,以此做爲R1°R2的第 i 行第 j 列的元素。

【例子】
設有兩個模糊關係

則R1與R2的合成是


模糊變換

模糊變換的概念

A={μA(u1),μA(u2),…,μA(un)}是論域U上的模糊集,R是U×V上的模糊關係,則A°R = B稱爲模糊變換。

例如:設A={0.2,0.5,0.3}

用模糊變換可進行模糊推理

例如:設對某廚師作的一道菜進行評判
評判標準是:色(u1)、香(u2) 、味(u3),它們構成論域:U= { u1, u2 , u3}。
評判時由評委對每個評判因素分別進行打分,評判等級是好(v1)、較好(v2) 、通常(v3)、差(v4),它們構成論域:V= {v1, v2 , v3 , v4}。
僅就色而言,有60%的評委認爲這道菜「好」, 20%的評委認爲 「較好」,20%的評委認爲 「通常」,沒有評委認爲 「差」,則對「色」的評價爲:{0.6 , 0.2, 0.2, 0}
對「香」的評價爲:{0.8 , 0.1, 0.1, 0}
對「味」的評價爲:{0.3 , 0.3, 0.3, 0.1}
這樣就能夠寫出矩陣R:

假設三個評判因素在評判中所佔的權重分別是:「色」爲0.3,「香」爲0.3,「味」爲0.4。這三個權重組成了U上的一個模糊向量:A={0.3 , 0.3, 0.4}
由此可獲得評委對這道菜的綜合評判爲:

在此例中,評判結果的各項和恰好爲1,因此它就是最終評判結果。
若是不是這樣,還須要對其進行歸一化處理,將歸一化後的結果做爲最終評判結果。

模糊推理

簡單模糊推理(扎德法)

知識中只含有簡單條件,且不帶可信度因子的模糊推理稱爲簡單模糊推理。
關於如何由已知的模糊知識和證據具體地推出模糊結論,目前已經提出了多種推理方法。其中包括扎德( L. A. Zadeh )等人提出的合成推理規則。

扎德:基於模糊關係合成推理的基本思想

  • 對於知識 「IF x is A THEN y is B」,首先構造出A與B之間的模糊關係R;
  • 再將R與證據合成,求出結論。

合成推理規則
對於知識IF x is A THEN y is B

  • 首先構造出A與B之間的模糊關係R,而後經過R與證據的合成求出結論。
  • 若是已知證據是x is A’,且A與A’能夠模糊匹配,則經過下述合成運算求取B’:
    B'= A’ ◦R
  • 若是已知證據是y is B',且B與B’能夠模糊匹配,則經過下述合成運算求出A’:
    A’ =R◦B'

至於如何構造模糊關係R:

條件命題的極大極小規則:記得到的模糊關係爲Rm

A∈F(U), B∈F(V),其表示分別爲

扎德把Rm定義爲:


【例子】
U=V={1,2,3,4,5}, A=1/1+0.5/2, B=0.4/3+0.6/4+1/5
並設模糊知識爲:IF x is A THEN y is B
模糊證據爲:x is A’
其中, A’的模糊集爲: A’ =1/1+0.4/2+0.2/3

則:由模糊知識可獲得 Rm

求B’:B’= A’ ◦R

若已知證據爲: y is B’
B'=0.2/1+0.4/2+0.6/3+0.5/4 +0.3/5
則:


模糊計算的流程

模糊計算適用

  1. 複雜且沒有完整數學模型的非線性問題:可在不知曉具體模型的狀況下利用經驗規則求解;
  2. 與其它智能算法結合實現優點互補: 提供了將人類在識別、決策、理解等方面的模糊性引入機器及其控制的途徑。

模糊計算的過程

  • 模糊規則庫:
    • 是專家提供的模糊規則。
  • 模糊化:
    • 是根據隸屬度函數從具體的輸入獲得對模糊集隸屬度的過程。
  • 推理方法:
    • 是從模糊規則和輸入對相關模糊集的隸屬度獲得模糊結論的方法。
  • 去模糊化:
    • 就是將模糊結論轉化爲具體的、精確的輸出的過程。

模糊計算的通常流程:

神經網絡系統

人工神經網絡概述

人工智能的各類學說

  • 符號(功能)主義:符號邏輯推理
  • 聯結(結構)主義:人工神經網絡
  • 行爲主義:智能行爲模擬, 「模式-動做」
    聯結主義的觀點:智能的寓所在大腦皮層,它由大量非線性神經元互聯而成 並行處理的神經網絡。

對比這幾種模擬方法:

神經網絡:是一種對人類智能的結構模擬方法,它是經過對大量人工神經元的普遍並行互聯,構造人工神經網絡系統去模擬生物神經系統的智能機理的。
進化計算:是一種對人類智能的演化模擬方法,它是經過對生物遺傳和演化過程的認識,用進化算法去模擬人類智能的進化規律的。
模糊計算:是一種對人類智能的邏輯模擬方法,它是經過對人類處理模糊現象的認知能力的認識,用模糊邏輯去模擬人類的智能行爲的。
  • 人工神經網絡(ANN)是反映人腦結構及功能的一種抽象數學模型,是由大量神經元節點互連而成的複雜網絡,用以模擬人類進行知識的表示與存儲以及利用知識進行推理的行爲。
  • 簡單地講,它是一個數學模型,能夠用電子線路來實現,也能夠用計算機程序來模擬,是人工智能研究的一種方法。
  • 人工神經網絡力求從四個方面模擬人腦的智能行爲: 物理結構,計算模擬,存儲與操做,訓練

人工神經網絡的特性

  • 並行分佈處理:並行結構,耐故障;
  • 非線性映射:任意非線性映射能力;
  • 經過訓練進行學習:經過數據記錄進行訓練,能處理由數學模型或描述規則難以處理的問題;
  • 適應與集成:自適應和信息融合能力;
  • 硬件實現:快速和大規模處理能力。

人工神經元模型

MP模型是美國心理學家麥克洛奇(W.McM ulloch)和數理邏輯學家皮茨(W.Pitts) 根據生物神經元的功能和結構,於1943年提出的一種將神經元看做二進制閾值元件的簡單模型。MP模型是大多數神經網絡模型的基礎。
MP模型示意圖:

  • 人工神經元是仿照生物神經元提出的,神經元能夠有N個輸入:
    x1,x2,x3,...,xN
  • 每一個輸入端與神經元之間有必定的聯接權值:
    w1,w2,w3,...,wN
  • 神經元總的輸入爲對每一個輸入的加權求和,同時減去閾值θ。u表明神經元的活躍值,即神經元狀態:
  • 神經元的輸出y是對u的映射:
  • f 稱爲輸出函數(激勵函數,激活函數),能夠有不少形式:

輸出函數的做用

  • 控制輸入對輸出的激活做用

  • 對輸入、輸出進行函數轉換

  • 將可能無限域的輸入變換成指定的有限範圍內的輸出

  • 神經元的模型肯定以後,一個神經網絡的特性及能力主要取決於網絡的拓撲結構及學習方法

  • 人工神經網絡(ANN)能夠當作是以人工神經元爲結點,用有向加權弧鏈接起來的有向圖

    • 人工神經元就是對生物神經元的模擬
    • 有向弧則是軸突—突觸—樹突對的模擬
    • 有向弧的權值表示相互鏈接的兩我的工神經元間相互做用的強弱。

人工神經網絡的分類


人工神經網絡模型是指對網絡結構、聯結權值和學習能力的總括。經常使用的網絡模型已有數十種。例如:
傳統的感知機模型;具備偏差反向傳播功能的反向傳播網絡模型;採用多變量插值的徑向基函數網絡模型;創建在統計學習理論基礎上的支撐向量機網絡模型;採用反饋聯接方式的反饋網絡模型;基於模擬退火算法的隨機網絡模型。

前饋網絡

單層前饋網絡

單層前饋網絡是指那種只擁有單層計算節點的前向網絡。它僅含有輸入層和輸出層,且只有輸出層的神經元是可計算節點。

其中,輸入向量爲X=(x1,x2,…,xn);輸出向量爲Y=(y1,y2,…,ym);輸入層各個輸入到相應神經元的鏈接權值分別是wij,i=1,2,…,n,j=1,2,…, m。
若假設各神經元的閾值分別是θj,j=1,2,…,m,則各神經元的輸出yj, j=1,2,…,m分別爲:

其中,由全部鏈接權值wij構成的鏈接權值矩陣W爲:

在實際應用中,該矩陣是經過大量的訓練示例學習而造成的。

多層前饋網絡

多層前饋網絡是指那種除擁有輸入、輸出層外,還至少含有一個、或更多個隱含層的前饋網絡。典型表明:BP網絡。

隱含層做用:經過對輸入層信號的加權處理,將其轉移成更能被輸出層接受的形式。

反饋網絡

反饋網絡是指容許採用反饋聯結方式所造成的神經網絡。反饋聯結方式:是指一個神經元的輸出能夠被反饋至同層或前層的神經元。典型表明:Hopfield網絡。

前饋網絡與反饋網絡的區別

  • 前饋網絡:非循環鏈接模式,每一個神經元的輸入都沒有包含該神經元先前的輸出,所以不具備「短時間記憶」的性質。
  • 反饋網絡:每一個神經元的輸入都有可能包含有該神經元先前輸出的反饋信息,這就有點相似於人類的短時間記憶的性質。

傳統的感知器模型

感知器是美國學者羅森勃拉特(Rosenblatt)於1957年爲研究大腦的存儲、學習和認知過程而提出的一類具備自學習能力的神經網絡模型,其拓撲結構是一種分層前向網絡。包括:單層感知器和多層感知器。

使用感知器的主要目的是 爲了對外部輸入進行分類
羅森勃拉特已經證實,若是外部輸入是線性可分的(指存在一個超平面能夠將它們分開),則單層感知器必定可以把它劃分爲兩類。其判別超平面由以下判別式肯定:

做爲例子,下面討論用單個感知器實現邏輯運算的問題。

單層感知器

單層感知器是一種只具備單層可調節鏈接權值神經元的前向網絡,這些神經元構成了單層感知器的輸出層,是感知器的可計算節點。

  • 在單層感知器中,每一個可計算節點都是一個線性閾值神經元。當輸入信息的加權和大於或等於閾值時,輸出爲1,不然輸出爲0或-1。
  • 單層感知器的輸出層的每一個神經元都只有一個輸出,且該輸出僅與本神經元的輸入及聯接權值有關,而與其餘神經元無關。
  • 單層感知器能夠很好地實現「與」、「或」、「非」運算,但卻 不能解決「異或」問題

多層感知器

多層感知器是經過在單層感知器的輸入、輸出層之間加入一層或多層處理單元所構成的。

  • 拓撲結構與多層前饋網絡類似,差異在於其計算節點的鏈接權值是可變的。
  • 輸入與輸出呈現高度非線性的映射關係。

BP網絡模型

偏差反向傳播(Error Back Propagation)網絡簡稱爲BP網絡,是由美國加州大學的魯梅爾哈特和麥克萊蘭於1985年提出的一種網絡模型。

在BP網絡中,同層節點之間不存在相互鏈接,層與層之間多采用全互連方式,且各層的鏈接權值可調。BP網絡實現了明斯基的多層網絡的設想,是當今神經網絡模型中使用最普遍的一種。

如上圖所示,BP網絡的網絡拓撲結構是多層前向網絡。

對BP網絡需說明如下兩點:
第一,BP網絡的每一個處理單元均爲非線性輸入/輸出關係,其做用函數一般採用的是可微的Sigmoid函數,如:

第二,BP網絡的學習過程是由工做信號的正向傳播和偏差信號的反向傳播組成的。所謂正向傳播,是指輸入模式經隱層到輸出層,最後造成輸出模式;所謂偏差反向傳播,是指從輸出層開始逐層將偏差傳到輸入層,並修改各層聯接權值,使偏差信號爲最小的過程。

BP網絡模型

Hopfield網絡是由美國加州工學院物理學家霍普菲爾特1982年提出來的一種單層全互連的對稱反饋網絡模型。分爲離散Hopfield網絡和連續Hopfield網絡。

離散Hopfield網絡是在非線性動力學的基礎上由若干基本神經元構成的一種單層全互連網絡,其任意神經元之間均有鏈接,而且是一種對稱鏈接結構。
離散Hopfield網絡模型是一個離散時間系統,每一個神經元只有0和1(或-1和1)兩種狀態,任意神經元i和j之間的鏈接權值爲Wij。因爲神經元之間爲對稱鏈接,且神經元自身無鏈接,所以有

由該鏈接權值所構成的鏈接矩陣是一個零對角的對稱矩陣。

在 Hopfield網絡中,雖然神經元自身無鏈接,但因爲每一個神經元都與其餘神經元相連,即每一個神經元的輸出都將經過突觸鏈接權值傳遞給別的神經元,同時每一個神經元又都接受其餘神經元傳來的信息,這樣對每一個神經元來講,其輸出通過其餘神經元后又有可能反饋給本身,所以Hopfidld網絡是一種反饋神經網絡 。


【例子】
已知網絡結構如圖所示,網絡輸入輸出路標所示。其中,f(x)爲x的符號函數,bias取常數1,設初始值隨機取成(0.75,0.5,-0.6)。利用偏差傳播學習算法調整神經網絡權值。

解題過程:


機器學習系統

機器學習的基本概念

  • 機器學習是人工智能的核心,經過使機器模擬人類學習行爲,智能化地從過去的經歷中得到經驗,從而改善其總體性能,重組內在知識結構,並對未知事件進行準確的推斷。
  • 機器學習在科學和工程諸多領域都有着很是普遍的應用,例如金融分析、數據挖掘、生物信息學、醫學診斷等。生活中常見的一些智能系統也普遍使用機器學習算法,例如電子商務、手寫輸入、郵件過濾等。

機器學習的定義:
西蒙(Simon,1983):學習就是系統中的適應性變化,這種變化使系統在重複一樣工做或相似工做時,可以作得更好。

明斯基(Minsky,1985):學習是在人們頭腦裏(心理內部)有用的變化。

學習是一個有特定目的知識獲取和能力增加過程,其內在行爲是得到知識、積累經驗、發現規律等,其外部表現是改進性能、適應環境、實現自我完善等。

機器學習是研究如何使用機器來模擬人類學習活動的一門學科。

進入21世紀,機器學習的階段研究熱點:
2000-2006年的流形學習、2006-2011年的稀疏學習、2012年-至今的深度學習、將來:遷移學習?

機器學習與深度學習的關係

  • 機器學習是一種實現人工智能的方法,深度學習是一種實現機器學習的技術。深度學習原本並非一種獨立的學習方法,其自己也會用到監督和無監督的學習方法來訓練深度神經網絡。
  • 最初的深度學習是利用深度神經網絡來解決特徵表達的一種學習過程。

提一下,深度學習目前存在如下問題

  1. 深度學習模型須要大量的訓練數據,才能展示出神奇的效果,但現實生活中每每會遇到小樣本問題,此時深度學習方法沒法下手,傳統的機器學習方法就能夠處理。
  2. 有些領域,採用傳統的簡單的機器學習方法,能夠很好地解決了,不必非得用複雜的深度學習方法。
  3. 深度學習的思想,來源於人腦的啓發,但毫不是人腦的模擬。舉個例子,一個三歲的小孩看一輛自行車以後,再見到哪怕外觀徹底不一樣的自行車,小孩也十有八九就能作出那是一輛自行車的判斷,也就是說,人類的學習過程每每不須要大規模的訓練數據,而如今的深度學習方法顯然不是對人腦的模擬。

機器學習策略與基本結構

機器學習的主要策略

  • 按照學習中使用推理的多少,機器學習所採用的策略大致上可分爲4種:
    • 機械學習:記憶學習方法,即把新的知識存儲起來,供須要時檢索調用,而不須要計算和推理。
    • 示教學習:外界輸入知識與內部知識的表達不徹底一致,系統在接受外部知識時須要推理、翻譯和轉化。
    • 類比學習:須要發現當前任務與已知知識的類似之處,經過類比給出完成當前任務的方案。
    • 示例學習:須要從一組正例和反例中分析和總結出通常性的規律,在新的任務中推廣、驗證、修改規律。

學習系統的基本結構

  • 影響學習系統設計的要素
    • 環境:環境向系統提供信息的水平(通常化程度)和質量(正確性)
    • 知識庫:表達能力,易於推理,容易修改,知識表示易於擴展。

概括學習

  • 概括學習是應用概括推理進行學習的一種方法。

  • 概括學習的模式:

    實驗規劃過程經過對實例空間的搜索完成實例選擇,並將這些選中拿到的活躍實例提交給解釋過程。解釋過程對實例加以適當轉換,把活躍實例變換爲規則空間中的特定概念,以引導規則空間的搜索。

  • 概括學習是目前研究得最多的學習方法,其學習目的是爲了得到新概念、構造新規則或發現新理論。

  • 根據概括學習有無教師指導,可把它分爲

    • 示例學習:給學習者提供某一律唸的一組正例和反例,學習者概括出一個總的概念描述(規則),並使這個描述適合於全部的正例,排除全部的反例。
    • 觀察發現學習:
      • 概念聚類:按照必定的方式和準則分組,概括概念
      • 機器發現:從數據和事例中發現新知識

類比學習

  • 類比學習(learning by analogy)就是經過類比,即經過對類似事物加以比較所進行的一種學習 。

  • 類比學習是利用二個不一樣領域(源域、目標域)中的知識類似性,能夠經過類比,從源域的知識(包括類似的特徵和其它性質)推導出目標域的相應知識,從而實現學習。例如:

    • 一個從未開過truck的司機,只要他有開car的知識就可完成開truck的任務。
    • 若把某我的比喻爲消防車,則可經過觀察消防車的行爲,推斷出這我的的性格。
  • 類比學習系統能夠使一個已有的計算機應用系統轉變爲適應於新的領域,來完成原先沒有設計的相相似的功能。

  • 類比推理過程:

    • 回憶與聯想:找出當前狀況的類似狀況
    • 選擇:選擇最類似的狀況及相關知識
    • 創建對應關係:創建類似元素之間的映射
    • 轉換:求解問題或產生新的知識
  • 類比學習研究類型

    • 問題求解型的類比學習:求解一個新問題時,先回憶之前是否求解過相似問題,如果,則以此爲依據求解新問題。
    • 預測推理型的類比學習
      • 傳統的類比法:用來推斷一個不徹底肯定的事物可能還有的其餘屬性
      • 因果關係型:已知因果關係S1:A->B,若是有A'≌A,則可能有B’知足A'->B'

解釋學習

解釋學習(Explanation-based learning, EBL)興起於20世紀80年代中期,根據任務所在領域知識和正在學習的概念知識,對當前實例進行分析和求解,得出一個表徵求解過程的因果解釋樹,以獲取新的知識。
例如:學生根據教師提供的目標概念、該概念的一個例子、領域理論及可操做準則,首先構造一個解釋來講明爲何該例子知足目標概念,而後將解釋推廣爲目標概念的一個知足可操做準則的充分條件。

解釋學習過程和算法
米切爾提出了一個解釋學習的統一算法EBG,創建了基於解釋的歸納過程,並用知識的邏輯表示和演繹推理進行問題求解。其通常性描述爲:

  • 給定:領域知識DT、目標概念TC、訓練實例TE、操做性準則OC
  • 找出:知足OC的關於TC的充分條件

EBG算法可歸納爲兩步:

  1. 構造解釋:運用領域知識進行演繹,證實提供給系統的訓練實例爲何是知足目標概念的一個實例。
  2. 獲取通常性的知識:
    • 任務:對上一步獲得的解釋結構進行通常化的處理,從而獲得關於目標概念的通常性知識。
    • 方法:將常量換成變量,並把某些不重要的信息去掉,只保留求解問題必須的關鍵信息。

神經網絡學習(ppt-21-32)

Hebb學習

糾錯學習

競爭學習及隨機學習

感知器學習

單層感知器學習算法可描述以下:
(1)、設t=0,初始化鏈接權和閾值。即給wi(0)(i=1, 2, … ,n)及θ(0)分別賦予一個較小的非零隨機數,做爲初值。其中,wi(0)是第0次迭代時輸入向量中第i個輸入的鏈接權值;θ(0)是第0次迭代時輸出節點的閾值;
(2)、提供新的樣本輸入xi(t)(i=1, 2, … , n)和指望輸出d(t);
(3)、計算網絡的實際輸出:

(4)、若y(t)=d(t),不須要調整鏈接權值,轉(6)。不然,須要調整權值;
(5)、調整鏈接權值;

其中,η是一個增益因子,用於控制修改速度,其值若是太大,會影響wi(t)的收斂性;若是過小,又會使wi(t)的收斂速度太慢;
(6)、判斷是否知足結束條件,若知足,算法結束;不然,將t值加1,轉(2)從新執行。這裏的結束條件通常是指wi(t)對一切樣本均穩定不變。
若輸入的兩類樣本是線性可分的,則該算法就必定會收斂。不然,不收斂。


【例子】用單層感知器實現邏輯「與」運算。

解:根據「與」運算的邏輯關係,可將問題轉換爲:
輸入向量:
X1=[0, 0, 1, 1]
X2=[0, 1, 0, 1]
輸出向量:
Y=[0, 0, 0, 1]
爲減小算法的迭代次數,設初始鏈接權值和閾值取值以下:
w1(0)=0.5, w2(0)=0.7, θ(0)=0.6
並取增益因子η=0.4

算法的學習過程以下:
設兩個輸入爲x1(0)=0x2(0)=0,其指望輸出爲d(0)=0,實際輸出爲:

y(0)=f(w1(0)x1(0)+ w2(0)x2(0)-θ(0)) 
    =f(0.5*0+0.7*0-0.6)
    =f(-0.6)
    =0

實際輸出與指望輸出相同,不須要調節權值。
再取下一組輸入:x1(0)=0x2(0)=1,指望輸出d(0)=0,實際輸出:

y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0)) 
    =f(0.5*0+0.7*1-0.6)
    =f(0.1)
    =1

實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(1)=θ(0)+η(d(0)- y(0))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(1)=w1(0)+η(d(0)- y(0))x1(0)=0.5+0.4*(0-1)*0=0.5
w2(1)=w2(0)+η(d(0)- y(0))x2(0)=0.7+0.4*(0-1)*1=0.3

取下一組輸入:x1(1)=1x2(1)=0,其指望輸出爲d(1)=0,實際輸出爲:

y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
      =f(0.5*1+0.3*0-1)
      =f(-0.51)
      =0

實際輸出與指望輸出相同,不須要調節權值。
再取下一組輸入:x1(1)=1和x2(1)=1,其指望輸出爲d(1)=1,實際輸出爲:

y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
    =f(0.5*1+0.3*1-1)
    =f(-0.2)
    =0

實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(2)=θ(1)+η(d(1)- y(1))*(-1)=1+0.4*(1-0)*(-1)=0.6
w1(2)=w1(1)+η(d(1)- y(1))x1(1)=0.5+0.4*(1-0)*1=0.9
w2(2)=w2(1)+η(d(1)- y(1))x2(1)=0.3+0.4*(1-0)*1=0.7

取下一組輸入:x1(2)=0x2(2)=0,其指望輸出爲d(2)=0,實際輸出爲:
y(2)=f(0.9*0+0.7*0-0.6)=f(-0.6)=0
實際輸出與指望輸出相同,不須要調節權值.
再取下一組輸入:x1(2)=0x2(2)=1,指望輸出爲d(2)=0,實際輸出爲:
y(2)=f(0.9*0+0.7*1-0.6)=f(0.1)=1
實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(3)=θ(2)+η(d(2)- y(2))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(3)=w1(2)+η(d(2)- y(2))x1(2)=0.9+0.4*(0-1)*0=0.9
w2(3)=w2(2)+η(d(2)- y(2))x2(2)=0.7+0.4*(0-1)*1=0.3

實際上,由與運算的閾值條件可知,此時的閾值和鏈接權值以知足結束條件,算法能夠結束。
對此,可檢驗以下:
對輸入:「0 0」有y=f(0.9*0+0.3*0-1)=f(-1)=0
對輸入:「0 1」有y=f(0.9*0+0.3*0.1-1)=f(-0.7)=0
對輸入:「1 0」有y=f(0.9*1+0.3*0-1)=f(-0.1)=0
對輸入:「1 1」有y=f(0.9*1+0.3*1-1)=f(0.2)=1


多層感知器能夠解決非線性可分問題,但其隱層神經元的指望輸出卻不易給出。
而單層感知器學習是一種有導師指導的學習過程,所以其學習算法沒法直接用於多層感知器。
因爲多層感知器和BP網絡都屬於前向網絡,並能較好解決多層前饋網絡的學習問題.
所以,可用BP學習來解決多層感知器學習問題。

BP網絡學習

Hopfield網絡學習

其餘機器學習方法

  • 遷移學習:將在先前任務中學到的知識或技能應用於一個新的任務或新的領域
  • 加強機器學習:從變化環境中學習蘊含在環境中的知識
  • 流形機器學習:把一組在高維空間中的數據在低維空間中從新表示
  • 半監督機器學習:結合標記和非標記樣本
  • 多實例機器學習:一個對象可能同時有多個描述
  • Ranking機器學習:得到關於檢索中「喜歡」順序的模型
  • 數據流機器學習:從數據流中發現知識
  • ……

相關的一些概念:決策樹、 隨機森林、邏輯迴歸、樸素貝葉斯、K最近臨算法、馬爾可夫……

仿生進化系統(GA)

遺傳算法最先由美國密西根大學的J. Holland 教授提出,起源於20世紀60年代對天然和人工自適應系統的研究。70年代,De Jong 基於遺傳算法的思想在計算機上進行了大量的純數值函數優化計算實驗。在一系列研究工做的基礎上,80年代由Goldberg進行概括總結,造成了遺傳算法的基本框架

遺傳算法的定義

遺傳算法(Genetic Algorithm, GA)是模擬生物在天然環境種的遺傳和進化過程而造成的一種自適應全局優化機率搜索算法。

遺傳算法的基本思想

是從初始種羣出發,採用優勝劣汰、適者生存的天然法則選擇個體,並經過雜交、變異來產生新一代種羣,如此逐代進化,直到知足目標爲止。

遺傳算法的基本過程

算法主要內容和基本步驟

(1) 選擇編碼策略,將問題搜索空間中每一個可能的點用相應的編碼策略表示出來,即造成染色體;
(2) 定義遺傳策略,包括種羣規模N,交叉、變異方法,以及選擇機率Pr、交叉機率Pc、變異機率Pm等遺傳參數;
(3) 令t=0,隨機選擇N個染色體初始化種羣P(0);
(4) 定義適應度函數f(f>0);
(5) 計算P(t)中每一個染色體的適應值;
(6) t=t+1;
(7) 運用選擇算子,從P(t-1)中獲得P(t);
(8) 對P(t)中的每一個染色體,按機率Pc參與交叉;
(9) 對染色體中的基因,以機率Pm參與變異運算;
(10) 判斷羣體性能是否知足預先設定的終止標準,若不知足則返回(5)。

經常使用的遺傳編碼算法

  • 霍蘭德二進制碼
    • 二進制編碼是將原問題的結構變換爲染色體的位串結構。在二進制編碼中,首先要肯定二進制字符串的長度 ,該長度與變量的定義域和所求問題的計算精度有關。
  • 格雷編碼(Gray Code)
    • 格雷編碼是對二進制編碼進行變換後所獲得的一種編碼方法。這種編碼方法要求兩個連續整數的編碼之間只能有一個碼位不一樣,其他碼位都是徹底相同的。它有效地解決了漢明懸崖問題。
  • 實數編碼
    • 實數編碼是將每一個個體的染色體都用某一範圍的一個實數(浮點數)來表示,其編碼長度等於該問題變量的個數。
    • 這種編碼方法是將問題的解空間映射到實數空間上,而後在實數空間上進行遺傳操做。因爲實數編碼使用的是變量的真實值,所以這種編碼方法也叫作真值編碼方法。
    • 實數編碼適應於那種多維、高精度要求的連續函數優化問題。
  • 字符編碼

適應度函數

適應度函數是一個用於對個體的適應性進行度量的函數。一般,一個個體的適應度值越大,它被遺傳到下一代種羣中的機率也就越大。

(1) 經常使用的適應度函數

  • 原始適應度函數:直接將待求解問題的目標函數f(x)定義爲遺傳算法的適應度函數。

    • 優勢:可以直接反映出待求解問題的最初求解目標
    • 缺點:是有可能出現適應度值爲負的狀況。
  • 標準適應度函數

    • 在遺傳算法中,通常要求適應度函數非負,並其適應度值越大越好。這就每每須要對原始適應函數進行某種變換,將其轉換爲標準的度量方式,以知足進化操做的要求,這樣所獲得的適應度函數被稱爲標準適應度函數。
      (2) 適應度函數的加速變換
  • 在某些狀況下,須要對適應度函數進行加速速度。

  • 適應度函數的加速變換有兩種基本方法,即線性加速與非線性加速。

  • 線性加速

    • 線性加速的適應度函數的定義以下:
    • f'(x)=αf(x)+β
    • 其中,f(x)是加速轉換前的適應度函數;f’(x)是加速轉換後的適應度函數;α和β是轉換系數,它們應知足以下條件:
      • 變化後獲得的新的適應度函數平均值要等於原適應度函數的平均值。即
      • 其中,xi(i=1,…,n)爲當前代中的染色體。
      • 變換後所獲得的新的種羣個體所具備的最大適應度要等於其平均適應度的指數倍數。即有關係:
      • 式中,xi(i=1,…,n)爲當前代中的染色體,M是指將當前的最大適應度放大爲平均值的M倍。目的是經過M拉開不一樣染色體適應度值的差距。
  • 非線性加速

    • 冪函數變換方法
      • f'(x)=f(x)k
    • 指數變換方法
      • f'(x)=exp(-βf(x))

基本遺傳操做

(1)、選擇操做
選擇(Selection)操做是指根據選擇機率按某種策略從當前種羣中挑選出必定數目的個體,使它們可以有更多的機會被遺傳到下一代中。
經常使用的選擇策略:

  • 比例選擇
  • 排序選擇
  • 競技選擇
    • 其中比例選擇基本思想是:各個個體被選中的機率與其適應度大小成正比。
    • 經常使用的比例選擇策略:輪盤賭選擇、繁殖池選擇
    • 輪盤賭選擇
      輪盤賭選擇法又被稱爲轉盤賭選擇法或輪盤選擇法。在這種方法中,個體被選中的機率取決於該個體的相對適應度。而相對適應度的定義爲:

      其中,P(xi)是個體xi的相對適應度,即個體xi被選中的機率;f(xi)是個體xi的原始適應度;是種羣的累加適應度。

輪盤賭選擇算法的基本思想是:根據每一個個體的選擇機率P(xi)將一個圓盤分紅N個扇區,其中第i個扇區的中心角爲:

再設立一個移動指針,將圓盤的轉動等價爲指針的移動。選擇時,假想轉動圓盤,若靜止時指針指向第i個扇區,則選擇個體i。
從統計角度看,個體的適應度值越大,其對應的扇區的面積越大,被選中的可能性也越大。這種方法有點相似於發放獎品使用的輪盤,並帶有某種賭博的意思,所以亦被稱爲輪盤賭選擇。

(2)、交叉操做

  • 交配重組是天然界中生物遺傳進化的一個主要環節,也是遺傳算法中產生新的個體的最主要方法。
  • 交叉(Crossover)操做是指按照某種方式對選擇的父代個體的染色體的部分基因進行交配重組,從而造成新的個體。
  • 根據個體編碼方法的不一樣,遺傳算法中的交叉操做可分爲二進制交叉和實值交叉兩種類型。
    • 二進制交叉
    • 二進制交叉(Binary Valued Crossover)是指二進制編碼狀況下所採用的交叉操做,它主要包括單點交叉、兩點交叉、多點交叉和均勻交叉等方法。
      • 單點交叉
        • 單點交叉也稱簡單交叉,它是先在兩個父代個體的編碼串中隨機設定一個交叉點,而後對這兩個父代個體交叉點前面或後面部分的基因進行交換,並生成子代中的兩個新的個體。假設兩個父代的個體串分別是:
        • X=x1 x2 … xk xk+1 … xn
        • Y=y1 y2 … yk yk+1 … yn
        • 隨機選擇第k位爲交叉點,若採用對交叉點後面的基因進行交換的方法,但點交叉是將X中的xk+1到xn部分與Y中的yk+1到yn部分進行交叉,交叉後生成的兩個新的個體是:
        • X'= x1 x2 … xk yk+1 … yn
        • Y'= y1 y2 … yk xk+1 … xn
      • 兩點交叉
        • 兩點交叉是指先在兩個父代個體的編碼串中隨機設定兩個交叉點,而後再按這兩個交叉點進行部分基因交換,生成子代中的兩個新的個體。
        • 假設兩個父代的個體串分別是:
        • X=x1 x2 … xi … xj … xn
        • Y=y1 y2 … yi … yj …,yn
        • 隨機設定第i、j位爲兩個交叉點(其中i< j < n),兩點交叉是將X中的xi+1到xj部分與Y中的yi+1到yj部分進行交換,交叉後生成的兩個新的個體是:
        • X'= x1 x2 … xi yi+1 … yj xj+1 … xn
        • Y'= y1 y2 … yi xi+1 … xj yj+1 … yn
      • 多點交叉
        • 多點交叉是指先隨機生成多個交叉點,而後再按這些交叉點分段地進行部分基因交換,生成子代中的兩個新的個體。
        • 假設交叉點個數爲m,則可將個體串劃分爲m+1個分段,其劃分方法是:
          • 當m爲偶數時,對所有交叉點依次進行兩兩配對,構成m/2個交叉段。
          • 當m爲奇數時,對前(m-1)個交叉點依次進行兩兩配對,構成(m-1)/2個交叉段,而第m個交叉點則按單點交叉方法構成一個交叉段。
      • 均勻交叉
        • 均勻交叉(Uniform Crossover)是先隨機生成一個與父串具備相同長度,並被稱爲交叉模版(或交叉掩碼)的二進制串,而後再利用該模版對兩個父串進行交叉,即將模版中1對應的位進行交換,而0對應的位不交換,依今生成子代中的兩個新的個體。事實上,這種方法對父串中的每一位都是以相同的機率隨機進行交叉的。
    • 實值交叉
      • 實值交叉是在實數編碼狀況下所採用的交叉操做,主要包括離散交叉和算術交叉,下面主要討論離散交叉(部分離散交叉和總體離散交叉) 。
      • 部分離散交叉是先在兩個父代個體的編碼向量中隨機選擇一部分份量,而後對這部分份量進行交換,生成子代中的兩個新的個體。
      • 總體交叉則是對兩個父代個體的編碼向量中的全部份量,都以1/2的機率進行交換,從而生成子代中的兩個新的個體。
      • 以部分離散交叉爲例,假設兩個父代個體的n維實向量分別是 X=x1x2… xi…xk…xnY=y1y2…yi…yk…yn,若隨機選擇對第k個份量之後的全部份量進行交換,則生成的兩個新的個體向量是:
        • X'= x1 x2 … xk yk+1 … yn
        • Y'= y1 y2 … yk xk+1 … xn

(3)、變異操做
變異(Mutation)是指對選中個體的染色體中的某些基因進行變更,以造成新的個體。變異也是生物遺傳和天然進化中的一種基本現象,它可加強種羣的多樣性。遺傳算法中的變異操做增長了算法的局部隨機搜索能力,從而能夠維持種羣的多樣性。根據個體編碼方式的不一樣,變異操做可分爲二進制變異和實值變異兩種類型。

  • 二進制變異
    • 當個體的染色體採用二進制編碼表示時,其變異操做應採用二進制變異方法。該變異方法是先隨機地產生一個變異位,而後將該變異位置上的基因值由「0」變爲「1」,或由「1」變爲「0」,產生一個新的個體。
  • 實值變異
    • 當個體的染色體採用實數編碼表示時,其變異操做應採用實值變異方法。該方法是用另一個在規定範圍內的隨機實數去替換原變異位置上的基因值,產生一個新的個體。
      • 基於位置的變異方法
        • 該方法是先隨機地產生兩個變異位置,而後將第二個變異位置上的基因移動到第一個變異位置的前面。
      • 基於次序的變異
        • 該方法是先隨機地產生兩個變異位置,而後交換這兩個變異位置上的基因。

遺傳算法的優點

  1. 適應度函數不受連續、可微等條件的約束,適用範圍很廣。
  2. 不容易陷入局部極值,能以很大的機率找到全局最優解。
  3. 因爲其固有的並行性,適合於大規模並行計算。
  4. 不是盲目窮舉,而是啓發式搜索。

羣智能系統

由James Kenney(社會心理學博士)和Russ Eberhart(電子工程學博士)於1995年提出粒子羣算法(Particle Swarm Optimization, PSO)。

蟻羣算法(Ant Colony Optimization,ACO)

經過遺留在來往路徑上的信息素(Pheromone)的揮發性化學物質來進行通訊和協調。

  • 螞蟻在尋找食物的過程當中每每是隨機選擇路徑的,但它們能感知當前地面上的信息素濃度,並傾向於往信息素濃度高的方向行進。信息素由螞蟻自身釋放,是實現蟻羣內間接通訊的物質。
  • 因爲較短路徑上螞蟻的往返時間比較短,單位時間內通過該路徑的螞蟻多,因此信息素的積累速度比較長路徑快。所以,當後續螞蟻在路口時,就能感知先前螞蟻留下的信息,並傾向於選擇一條較短的路徑前行。
  • 這種正反饋機制使得愈來愈多的螞蟻在巢穴與食物之間的最短路徑上行進。因爲其餘路徑上的信息素會隨着時間蒸發,最終全部的螞蟻都在最優路徑上行進。

ACO基本要素

  • 路徑構建
    僞隨機比例選擇規則
    • 對於每隻螞蟻k,路徑記憶向量Rk按照訪問順序記錄了全部k已經通過的城市序號。
    • 設螞蟻k當前所在城市爲i,則其選擇城市j做爲下一個訪問對象的機率如上式。Jk(i) 表示從城市i 能夠直接到達的、且又不在螞蟻訪問過的城市序列Rk中的城市集合。
    • η(i, j)是一個啓發式信息,一般由η (i, j)=1/dij 直接計算。
    • τ (i, j) 表示邊(i, j)上的信息素量。
    • 長度越短、信息素濃度越大的路徑被螞蟻選擇的機率越大。
    • α和β是兩個預先設置的參數,用來控制啓發式信息與信息素濃度做用的權重關係。
    • α =0時,算法演變成傳統的隨機貪心算法,最鄰近城市被選中的機率最大。當β =0時,螞蟻徹底只根據信息素濃度肯定路徑,算法將快速收斂,這樣構建出的最優路徑與實際目標差別較大,算法性能較差。
  • 信息素更新:
    (1) 在算法初始化時,問題空間中全部的邊上的信息素都被初始化爲τ0。
    (2) 算法迭代每一輪,問題空間中的全部路徑上的信息素都會發生蒸發,咱們爲全部邊上的信息素乘上一個小於1的常數( ρ: 信息素的蒸發率)。信息素蒸發是天然界自己固有的特徵,在算法中可以幫助避免信息素的無限積累,使得算法能夠快速丟棄以前構建過的較差的路徑。
    (3) 螞蟻根據本身構建的路徑長度在它們本輪通過的邊上釋放信息素。螞蟻構建的路徑越短、釋放的信息素就越多。一條邊被螞蟻爬過的次數越多、它所得到的信息素也越多。
    (4) 迭代 (2),直至算法終止。
    信息素的更新公式:
    • m:螞蟻個數;
    • ρ:信息素的蒸發率,規定0<r≤1
    • Δτ (i, j):第k只螞蟻在它通過的邊上釋放的信息素量,它等於螞蟻k本輪構建路徑長度的倒數。
    • Ck:路徑長度,它是Rk中全部邊的長度和。

粒子羣優化算法

  • 源於對鳥羣捕食行爲的研究,是基於迭代的方法
  • 簡單易於實現,須要調整的參數相對較少
  • 在函數優化、神經網絡訓練、工業系統優化和模糊系統控制等領域獲得了普遍的應用。
    • 鳥羣:假設一個區域,全部的鳥都不知道食物的位置,可是它們知道當前位置離食物還有多遠。
    • PSO算法:每一個解看做一隻鳥,稱爲「粒子(particle)」,全部的粒子都有一個適應值,每一個粒子都有一個速度決定它們的飛翔方向和距離,粒子們追隨當前最優粒子在解空間中搜索。

粒子羣算法的特色

  • PSO算法收斂速度快,特別是在算法的早期,但也存在着精度較低,易發散等缺點。
  • 若加速係數、最大速度等參數太大,粒子羣可能錯過最優解,算法不收斂;
  • 而在收斂的狀況下,因爲全部的粒子都向最優解的方向飛去,因此粒子趨向同一化(失去了多樣性),使得後期收斂速度明顯變慢,同時算法收斂到必定精度時,沒法繼續優化,所能達到的精度也不高。

其餘計算智能方法

模擬退火、工免疫系統、粗集理論、EDA算法、文化進化計算、量子計算、DNA計算、智能Agent、……

多真體及天然語言理解 *

Agent的定義和譯法

Agent的定義

  • 定義1.社會中某個個體通過協商後可求得問題的解,這個個體就是agent.(明斯基,1986年)
  • 定義2.是一種經過傳感器知其環境,並經過執行器做用於該環境的實體,所以,能夠把真體定義爲一種從感知序列到實體動做的映射。(Russell and Norving,1995)
  • 定義3.是一種具備智能的實體。

Agent的譯法

建議把agent譯爲「(艾)真體」的理由:

  • Agent是一種經過傳感器感知其環境,並經過執行器做用於該環境的實體。 這個「實體」也可叫作「真體」。所以,能夠把真體定義爲一種從感知序列到實體動做的映射。
  • 譯爲「主體」多是考慮到agent具備自主性。但交互性、協調性、社會性、適應性和分佈性等不可能在譯名上所有反映出來,於是是片面的。
  • 譯爲「代理」是受到社會科學和管理科學的影響。也不能表示出agent的原義。
  • 音譯不失爲一種可取方法。
  • 有必定的物理意義。

真體的要素和特性

真體的要素

真體必須利用知識修改其內部狀態(心理狀態),以適應環境變化和協做求解的須要。真體的行動受其心理狀態驅動。人類心理狀態的要素有認知(信念、知識、學習等)、情感(願望、興趣、愛好等)和意向(意圖、目標、規劃和承諾等)三種。着重研究信念(belief)、願望(desire)和意圖(intention)的關係及其形式化描述,力圖創建真體的BDI(信念、願望和意圖)模型,已成爲真體理論模型研究的主要方向。

真體的特性

  • 行爲自主性:可以控制自身行爲,其行爲是主動的、自發的/有目標和意圖的,並能根據目標和環境要求對短時間行爲作出規劃。
  • 做用交互性:可以與環境交互做用,可以感知其所處環境,並藉助本身的行爲結果,對環境作出適當反應。
  • 環境協調性:真體存在於必定的環境中,感知環境的狀態、事件和特徵,並經過其動做和行爲影響環境,與環境保持協調。環境和真體互相依存,互相做用。
  • 面向目標性:真體可以表現出某種目標指導下的行爲,爲實現其內在目標而採起主動行爲。
  • 存在社會性:真體存在於由多個真體構成的社會環境中,與其它真體交換信息、交互做用和通信。各真體經過社會承諾,進行社會推理,實現社會意向和目標。
  • 工做協調性:各真體合做和協調工做,求解單個真體沒法處理的問題,提升處理問題的能力。
  • 運行持續性:真體的程序在起動後,可以在至關長的一段時間內維持運行狀態,不隨運算的中止而當即結束運行。
  • 系統適應性:真體不只可以感知環境,對環境作出反應,並且可以把新創建的真體集成到系統中而無需對原有的多真體系統進行從新設計,於是具備很強的適應性和可擴展性。
  • 結構分佈性:在物理上或邏輯上分佈和異構的實體(或真體),如主動數據庫、知識庫、控制器和執行器等,在多真體系統中具備分佈式結構,便於技術集成、資源共享、性能優化和系統整合。
  • 功能智能性:真體強調理性做用,可做爲描述機器智能、動物智能和人類智能的統一模型。

天然語言理解

Natural Language Understanding 俗稱人機對話。研究用電子計算機模擬人的語言交際過程,使計算機能理解和運用人類社會的天然語言如漢語、英語等,實現人機之間的天然語言通訊,以代替人的部分腦力勞動,包括查詢資料、解答問題、摘錄文獻、彙編資料以及一切有關天然語言信息的加工處理。
這一領域的研究涉及天然語言,即人們平常使用的語言,包括中文、英文、俄文、日文、德文、法文等等,因此它與語言學的研究有着密切的聯繫,但又有重要的區別。
天然語言處理並非通常地研究天然語言,而在於研製能有效地實現天然語言通訊的計算機系統,特別是其中的軟件系統。

實現人機間天然語言通訊意味着要使計算機既能理解天然語言文本的意義(即天然語言理解),也能以天然語言文原本表達給定的意圖、思想等(即天然語言生成)。
不管實現天然語言理解,仍是天然語言生成,都遠不如人們原來想象的那麼簡單,而是十分困難的。從目前的理論和技術現狀看,通用的、高質量的天然語言處理系統,仍然是較長期的努力目標,可是針對必定應用,具備至關天然語言處理能力的實用系統已經出現,有些已商品化,甚至開始產業化。典型的例子有:各類數據庫和專家系統的天然語言接口、各類機器翻譯系統、全文信息檢索系統、自動文摘系統等。

天然語言處理,即實現人機間天然語言通訊,或實現 天然語言理解天然語言生成是十分困難的。
形成困難的 根本緣由是天然語言文本和對話的各個層次上普遍存在的各類各樣的歧義性或多義性(ambiguity)。
通常狀況下,它們中的大多數都是能夠根據相應的語境和場景的規定而獲得解決的。也就是說,從整體上說,並不存在歧義。這也就是咱們平時並不感到天然語言歧義,和能用天然語言進行正確交流的緣由。可是一方面,咱們也看到,爲了消解歧義,是須要極其大量的知識和進行推理的。如何將這些知識較完整地加以收集和整理出來;又如何找到合適的形式,將它們存入計算機系統中去;以及如何有效地利用它們來消除歧義,都是工做量極大且十分困難的工做。這不是少數人短時期內能夠完成的,還有待長期的、系統的工做。

存在問題

  • 一方面,迄今爲止的語法都限於分析一個孤立的句子,上下文關係和談話環境對本句的約束和影響還缺少系統的研究,所以分析歧義、詞語省略、代詞所指、同一句話在不一樣場合或由不一樣的人說出來所具備的不一樣含義等問題,尚無明確規律可循。
  • 另外一方面,人理解一個句子不是單憑語法,還運用了大量的有關知識,包括生活知識和專門知識,這些知識沒法所有貯存在計算機裏。所以一個書面理解系統只能創建在有限的詞彙、句型和特定的主題範圍內。

如何看待語言理解

  • 從微觀上講,語言理解是指從天然語言到機器(計算機系統)內部之間的一種映射。
  • 從宏觀上看,語言理解是指機器可以執行人類所指望的某些語言功能。這些功能包括:
    • 回答有關提問;
    • 提取材料摘要;
    • 不一樣詞語敘述;
    • 不一樣語言翻譯。

天然語言理解的研究領域和方向

文字識別、語音識別、機器翻譯、自動文摘、句法分析、文本分類、信息檢索、信息獲取、信息過濾、天然語言生成、中文自動分詞、語音合成、問答系統

用天然語言與計算機進行通訊,這是人們長期以來所追求的。由於它既有明顯的實際意義,同時也有重要的理論意義:人們能夠用本身最習慣的語言來使用計算機,而無需再花大量的時間和精力去學習不很天然和習慣的各類計算機語言;人們也可經過它進一步瞭解人類的語言能力和智能的機制。

解題過程

原始問題能夠歸約爲下列3個子問題:

規約過程:

歸約圖示:


與或圖表示

用一個相似於圖的結構來表示,把問題歸約爲後繼問題的替換集合。

  • 與圖:把一個複雜問題分解爲若干個較爲簡單的子問題,造成「與」樹。

  • 或圖:把原問題變換爲若干個較爲容易求解的新問題,造成「或」樹。

謂詞邏輯法

謂詞邏輯法採用謂詞合式公式和一階謂詞演算將要解決的問題變成一個有待證實的問題,而後利用消解定理和消解反演來證實一個新語句是從已知的正確語句中導出的,從而證實這個新語句也是正確的。
謂詞邏輯是一種 形式語言,可以將數學中的邏輯論證符號化,謂詞邏輯常常與其餘表示方法混合使用,能夠表示比較複雜的問題

謂詞演算

語法和語義

  • 基本符號:謂詞符號、變量符號、函數符號、常量符號、括號和逗號
  • 原子公式由若干謂詞符號和項組成

連詞和量詞

  • 連詞
    合取、析取、蘊涵、非、雙條件

  • 量詞
    全稱量詞、存在量詞

謂詞公式

  • 原子謂詞公式
    由謂詞符號和若干項組成的謂詞演算

  • 分子謂詞公式
    能夠用 連詞把原子謂詞公式組成複合謂詞公式,並把它叫作分子謂詞公式
    一般把合式公式叫作謂詞公式。在謂詞演算中合式公式的遞歸定義以下:

合式公式的性質

置換與合一

置換

置換是用變元、常量、函數來替換變元,使該變元不在公式中出現,形如{t1/x1, t2/x2,...,tn/xn}的有限集合,其中:

  • t1,t2,...,tn是項;
  • x1,x2,...,xn是互不相同的變元;
  • ti/xi表示用ti項替換變元xi,不容許tixi相同,也不容許變元xi循環地出如今另外一個tj中。

推理規則:用合式公式的集合產生新的合式公式

置換是 可結合的
s1s2表示兩個置換s1和s2的合成,L表示一個表達式,則有(Ls1)s2 = L(s1s2)以及(s1s2)s3 = s1(s2s3),即用s1和s2相繼做用於表達式L是與用s1s2做用於L同樣的。
通常說來,置換是 不可交換的,即s1s2 ≠ s2s1

合一

尋找項對變量的置換,以使兩表達式一致,叫作合一。
若是一個置換s做用於表達式集合{Ei}的每一個元素,則用{Ei}s來表示置換的集。稱表達式{Ei}是可合一的,若是存在一個置換s使得:E1s = E2s = E3s =……,那麼,稱此s爲{Ei}的合一者,由於s的做用是使集合{Ei}成爲單一形式。
例如:設有公式集E={ P( x, y, f(y)), P( a, g(x), z) },則s={a/x, g(a)/y, f(g(a))/z}是它的一個合一。

語義網路法

語義網絡是經過概念及其語義關係來表達知識一種網絡圖,是一種 結構化表示方法
從圖論的觀點看,語義網絡是一個「帶標識的有向圖」,它由 節點弧線或鏈線組成。節點表明實體、概念、狀況等弧線表明節點間的關係,必須帶標識。
語義網絡的解答是一個通過推理和匹配而獲得的具備明確結果的新的語義網路,擴展後能夠表示更復雜的問題。

語義網絡中最基本的語義單元稱爲語義基元,可用三元組表示爲:(結點1,弧,結點2)。

二元語義網絡的表示

例如:用語義網絡表示:李新的汽車的款式是「捷達」、銀灰色;王紅的汽車的款式是「凱越」、紅色;李新和王紅的汽車均屬於具體概念,可增長「汽車」 這個抽象概念。

多元語義網絡的表示

  • 增長狀況和動做節點;
  • 增長事件節點;
  • 鏈接詞和量詞的表示;

其餘方法

  • 框架表示法
    這是一種 結構化方法
    框架理論是明斯基於1975年做爲理解視覺、天然語言對話及其它複雜行爲的一種基礎提出來的;
    框架理論認爲,人們對現實世界中各類事物的認識都是以一種相似於框架的結構存儲在記憶中的。當遇到一個新事物時,就從記憶中找出一個合適的框架,並根據新的狀況對其細節加以修改、補充,從而造成對這個新事物的認識。

框架網絡:

框架結構:

  • 每一個框架都有框架名,表明某一類對象

  • 一個框架由若干個槽(項目)組成,用於表示對象的某個方面的屬性

  • 有時一個槽(屬性)還要從不一樣的側面來描述,每一個側面可具備一個或多個值。
    注意:框架中的槽與側面可任意定義,也能夠是另外一框架,造成框架網絡系統。

  • 劇本表示法(ppt-6)

  • 過程表示法(ppt-6)

肯定性推理

推理的基本概念

推理方法及其分類

  1. 按推理的邏輯基礎分:演繹推理,概括推理,類比概括推理
  2. 按推理過程所用知識的肯定性分:肯定性推理、 不肯定性推理
  3. 按推理過程推出的結論是否單調增長分:單調推理、非單調推理
  4. 按推理過程是否利用問題的啓發性知識分:啓發式推理、非啓發式推理

推理的控制策略及其分類

推理的控制策略是指如何使用領域知識使推理過程儘快達到目標的策略。

  • 推理策略
    • 推理方向控制策略可分爲
      • 正向推理
      • 逆向推理
      • 混合推理
      • 雙向推理
    • 求解策略:是指僅求一個解,仍是求全部解或最優解等。
    • 限制策略:是指對推理的深度、寬度、時間、空間等進行的限制。
    • 衝突消解策略:是指當推理過程有多條知識可用時,如何從這多條可用知識中選出一條最佳知識用於推理的策略。
  • 搜索策略(下面會詳述)

搜索策略

  • 按是否使用啓發式信息:
    • 盲目搜索:按預約的控制策略進行搜索,在搜索過程當中得到的中間信息並不改變控制策略。
    • 啓發式搜索:在搜索中加入了與問題有關的啓發性信息,用於指導搜索朝着最有但願的方向前進,加速問題的求解過程並找到最優解。
  • 按問題的表示方式:
    • 狀態空間搜索:用指用狀態空間法來表示問題所進行的搜索
    • 與或樹搜索:用指用問題歸約法來表示問題所進行的搜索
狀態空間的搜索策略
  • 狀態空間的盲目搜索
    • 廣度優先搜索
    • 深度優先搜索
    • 代價樹搜索
  • 狀態空間的啓發式搜索
    • 啓發性信息和估價函數
    • A算法和A*算法
  • 基本思想
    • 先把問題的初始狀態做爲當前擴展節點對其進行擴展,生成一組子節點。
    • 而後檢查問題的目標狀態是否出如今這些子節點中。若出現,則搜索成功,找到了問題的解;若沒出現,則再 按照某種搜索策略從已生成的子節點中選擇一個節點做爲當前擴展節點。
    • 重複上述過程,直到目標狀態出如今子節點中或者沒有可供操做的節點爲止。
    • 所謂對一個節點進行「擴展」是指對該節點用某個可用操做進行做用,生成該節點的一組子節點。
  • 數據結構和符號約定
    • OPEN表:未擴展節點表,用於存放剛生成節點
    • CLOSED表:已擴展節點表,用於存放已經擴展或將要擴展的節點
    • S:用表示問題的初始狀態
    • G:表示搜索過程所獲得的搜索圖
    • M:表示當前擴展節點新生成的且不爲本身先輩的子節點集

*各類搜索策略的主要區別在於對OPEN表中節點的排列順序不一樣。*例如,廣度優先搜索把先生成的子節點排在前面,而深度優先搜索則把後生成的子節點排在前面。

廣度優先搜索算法流程:

  1. 把初始節點S放入OPEN表中;
  2. 若是OPEN表爲空,則問題無解,失敗退出;
  3. 把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n;
  4. 考察節點n是否爲目標節點。如果,則獲得問題的解,成功退出;
  5. 若節點n不可擴展,則轉第(2)步;
  6. 擴展節點n,將其子節點放入OPEN表的 尾部,併爲每個子節點設置指向父節點的指針,而後轉第(2)步。

以八數碼問題爲例,獲得下面這個廣度優先搜索樹:

在上述廣度優先算法中須要注意兩個問題:

  • 對於任意一個可擴展的節點,老是按照固定的操做符的順序對其進行擴展(空格左移、上移、右移、下移)。
  • 在對任一節點進行擴展的時候,若是所得的某個子節點(狀態)前面已經出現過,則當即將其放棄,再也不重複畫出(不送入OPEN表)。
    所以,廣度優先搜索的本質是,以初始節點爲根節點,在狀態空間圖中按照廣度優先的原則,生成一棵搜索樹。

廣度優先搜索的優缺點:

  • 優勢
    • 只要問題有解,用廣度優先搜索總能夠獲得解,並且獲得的是路徑最短的解。
  • 缺點
    • 廣度優先搜索盲目性較大,當目標節點距初始節點較遠時將會產生許多無用節點,搜索效率低。

深度優先搜索算法流程:

  1. 把初始節點S放入OPEN表中;
  2. 若是OPEN表爲空,則問題無解 ,失敗退出;
  3. 把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n;
  4. 考察節點n是否爲目標節點。如果,則獲得問題的解,成功退出;
  5. 若節點n不可擴展,則轉第(2)步;
  6. 擴展節點n,將其子節點放入OPEN表的 首部,併爲每個子節點設置 指向父節點的指針,而後轉第(2)步。

在深度優先搜索中,搜索一旦進入某個分支,就將沿着該分支一直向下搜索。若是目標節點剛好在此分支上,則可較快地獲得解。可是,若是目標節點不在此分支上,而該分支又是一個無窮分支,則就不可能獲得解。因此深度優先搜索是不完備的,即便問題有解,它也不必定能求得解。
所以,爲了防止搜索過程沿着無益的路徑擴展下去,每每給出一個節點擴展的最大深度,即 深度界限。當搜索深度達到了深度界限而仍未出現目標節點時,就換一個分支進行搜索。

有界深度優先搜索的特色:

  • 從某種意義上講,有界深度優先搜索具備必定的啓發性;
  • 若是問題有解,且其路徑長度≤dm,則上述搜索過程必定能求得解。
  • 可是若解的路徑長度> dm,則上述搜索過程就得不到解。。
  • 這說明在有界深度優先搜索中,深度界限的選擇是很重要的,可是要恰當地給出dm的值是比較困難的。
  • 即便能求出解,它也不必定是最優解。

代價樹搜索

考慮邊的代價的搜索方法,代價樹搜索的目的是爲了找到一條代價最小的解路徑。代價樹搜索方法包括:

  • 代價樹的廣度優先搜索
  • 代價樹的深度優先搜索

啓發式信息與代價函數

採用問題自身的特性信息,以指導搜索朝着最有但願的方向前進。
啓發性信息是指那種與具體問題求解過程有關的,並可指導搜索過程朝着最有但願方向前進的控制信息。啓發信息的啓發能力越強,擴展的無用結點越少。

啓發性信息的種類

  • 有效地幫助肯定擴展節點的信息;
  • 有效的幫助決定哪些後繼節點應被生成的信息;
  • 能決定在擴展一個節點時哪些節點應從搜索樹上刪除的信息。

估價函數的通常形式爲:f(x) = g(x)+h(x),其中g(x)表示從初始節點S0到節點x的代價;h(x)是從節點x到目標節點Sg的最優路徑的代價的估計,它體現了問題的啓發性信息,h(x)稱爲啓發函數。

A算法與A*算法

A算法:在圖搜索算法中,若是能在搜索的每一步都利用估價函數f(n)=g(n)+h(n)對OPEN表中的節點進行排序,則該搜索算法爲A算法。

A算法的類型
可根據搜索過程當中選擇擴展節點的範圍,將啓發式搜索算法分爲:

  • 全局擇優搜索算法: 從OPEN表的全部節點中選擇一個估價函數值最小的一個進行擴展。
  • 局部擇優搜索算法:僅從剛生成的子節點中選擇一個估價函數值最小的一個進行擴展。

A*算法是對A算法的估價函數f(n)=g(n)+h(n)加上某些限制後獲得的一種啓發式搜索算法。

假設f*(n)是從初始節點出發通過節點n達到目標節點的最小代價,估價函數f(n)是對f*(n)估計值。且f*(n)=g*(n)+h*(n)g*(n)是從初始節點S0到節點n的最小代價。h*(n)是從節點n到目標節點的最小代價,如有多個目標節點,則爲其中最小的一個

A*算法對A算法(全局擇優的啓發式搜索算法)中的g(n)h(n)分別提出以下限制:

  • 第一,g(n)是對最小代價g*(n)的估計,且g(n)>0
  • 第二,h(n)是最小代價h*(n)的下界,即對任意節點n均有h(n)≤h*(n)

即:知足上述兩條限制的A算法稱爲A*算法。

與/或樹的搜索策略(ppt-9~10)

一、 與/或樹的通常搜索過程

(1) 把原始問題做爲初始節點S0,並把它做爲當前節點; 
(2) 應用分解或等價變換操做對當前節點進行擴展; 
(3) 爲每一個子節點設置指向父節點的指針; 
(4) 選擇合適的子節點做爲當前節點,反覆執行第(2)步和第(3)步,在此期間須要屢次調用可解標記過程或不可解標記過程,直到初始節點被標記爲可解節點或不可解節點爲止。

二、 與/或樹的廣度優先搜索

(1)把初始節點S0放入OPEN表中; 
(2)把OPEN表的第一個節點取出放入CLOSED表,並記該節點爲n; 
(3)若是節點n可擴展,則作下列工做:
    ① 擴展節點n,將其子節點放入OPEN表的尾部,併爲每個子節點設置指向父節點的指針;
    ② 考察這些子節點中有否終止節點。如有,則標記這些終止節點爲可解節點,並用可解標記過程對其父節點及先輩節點中的可解解節點進行標記。若是初始解節點S0可以被標記爲可解節點,就獲得瞭解樹,搜索成功,退出搜索過程;若是不能肯定S0爲可解節點,則從OPEN表中刪去具備可解先輩的節點。
    ③ 轉第(2)步。
(4) 若是節點n不可擴展,則做下列工做: 
    ① 標記節點n爲不可解節點;
    ② 應用不可解標記過程對節點n的先輩中不可解解的節點進行標記。若是初始解節點S0也被標記爲不可解節點,則搜索失敗,代表原始問題無解,退出搜索過程;若是不能肯定S0爲不可解節點,則從Open表中刪去具備不可解先輩的節點。
    ③ 轉第(2)步。

【例子】 設有下圖所示的與/或樹,節點按標註順序進行擴展,其中標有t一、t二、t3的節點是終止節點,A、B、C爲不可解的端節點。

本例中與/或樹的廣度優先搜索過程:

(1) 先擴展1號節點,生成2號節點和3號節點。
(2) 擴展2號節點,生成A節點和4號節點。
(3) 擴展3號節點,生成t1節點和5號節點。因爲t1爲終止節點,則標記它爲可解節點,並應用可解標記過程,不能肯定3號節點是否可節。
(4) 擴展節點A,因爲A是端節點,所以不可擴展。調用不可解標記過程。
(5) 擴展4號節點,生成t2節點和B節點。因爲t2爲終止節點,標記爲可解節點,應用可解標記過程,可標記2號節點爲可解,但不能標記1號節點爲可解。
(6) 擴展5號節點,生成t3節點和C節點。因爲t3爲終止節點,標記它爲可解節點,應用可解標記過程,可標記1號節點爲可解節點。
(7) 搜索成功,獲得由一、二、三、四、5號節點和t一、t二、t3節點構成的解樹。


三、 與/或樹的深度優先搜索

(1)把初始節點S0放入OPEN表中; 
(2)把OPEN表第一個節點取出放入CLOSED表,並記該節點爲n; 
與/或樹的深度優先搜索算法以下:
(3)若是節點n的深度等於dm,則轉第(5)步的第①點; 
(4)若是節點n可擴展,則作下列工做: 
    ① 擴展節點n,將其子節點放入OPEN表的首部,併爲每個子節點設置指向父節點的指針;  
    ② 考察這些子節點中是否有終止節點。如有,則標記這些終止節點爲可解節點,並用可解標記過程對其父節點及先輩節點中的可解解節點進行標記。若是初始解節點S0可以被標記爲可解節點,就獲得瞭解樹,搜索成功;若是不能肯定S0爲可解節點,則從OPEN表中刪去具備可解先輩的節點。
    ③ 轉第(2)步。 
(5)若是節點n不可擴展,則做下列工做: 
    ① 標記節點n爲不可解節點;
    ② 應用不可解標記過程對節點n的先輩中不可解解的節點進行標記。若是初始解節點S0也被標記爲不可解節點,則搜索失敗,代表原始問題無解,退出搜索過程;若是不能肯定S0爲不可解節點,則從Open表中刪去具備不可解先輩的節點。
    ③ 轉第(2)步。

四、 與/或樹的啓發式搜索

(1) 把初始節點S0放入OPEN表中;
(2) 求出但願樹T,即根據當前搜索樹中節點的代價h求出以S0爲根的但願樹T; 
(3) 依次在OPEN表中取出T的端節點放入CLOSED表,並記該節點爲n;節點n有三種不一樣狀況:
    ①n爲終止節點,
    ②n不是終止節點,但可擴展,
    ③n不是終止節點,且不可擴展,
對三種狀況分別進行步驟(4) (5) (6)的操做過程; 
(4)若是節點n爲終止節點,則: 
    ① 標記節點n爲可解節點;
    ② 在T上應用可解標記過程,對n的先輩節點中的全部可解解節點進行標記;
    ③ 若是初始解節點S0可以被標記爲可解節點,則T就是最優解樹,成功退出;
    ④ 不然,從OPEN表中刪去具備可解先輩的全部節點。 
    ⑤ 轉第(2)步。 
(5) 若是節點n不是終止節點,但可擴展,則: 
    ① 擴展節點n,生成n的全部子節點;
    ② 把這些子節點都放入OPEN表中,併爲每個子節點設置指向父節點n的指針;
    ③ 計算這些子節點及其先輩節點的h值;
    ④ 轉第(2)步。
(6) 若是節點n不是終止節點,且不可擴展,則: 
    ① 標記節點n爲不可解節點;
    ② 在T上應用不可解標記過程,對n的先輩節點中的全部不可解解節點進行標記;
    ③ 若是初始解節點S0可以被標記爲不可解節點,則問題無解,失敗退出;
    ④ 不然,從OPEN表中刪去具備不可解先輩的全部節點。 
    ⑤ 轉第(2)步。

五、 博弈樹的啓發式搜索
六、 α-β剪枝技術

搜索的完備性與效率

完備性

  • 對於一類 可解的問題和一個搜索過程,若是運用該搜索過程必定能求得該類問題的解,則稱該搜索過程爲 完備的,不然爲不完備的。
  • 完備的搜索過程稱爲「搜索算法」。不完備的搜索過程不是算法,稱爲「過程」。
  • 廣度優先搜索、代價樹的廣度優先搜索、改進後的有界深度優先搜索以及A*算法都是完備的搜索過程,其它搜索過程都是不完備的。

搜索效率

  • 一個搜索過程的搜索效率不只取決於過程自身的啓發能力,並且還與被解問題的有關屬性等多種因素有關。
  • 爲了比較求解同一問題的不一樣搜索方法的效率,經常使用如下兩種指標來衡量:
    • 外顯率
    • 有效分支因數

其中,外顯率定義爲:P=L/T;L爲從初始節點到目標節點的路徑長度;T爲整個搜索過程當中所生成的節點總數。
外顯率反映了搜索過程當中從初始節點向目標節點前進時 搜索區域的寬度。當T=L時,P=1,表示搜索過程當中每次只生成一個節點,它剛好是解路徑上的節點,搜索效率最高。P越小表示搜索時產生的無用節點愈多,搜索效率愈低。

有效分枝因數B定義爲:B+B^2+…+B^L=T;B是有效分枝因數,它表示在整個搜索過程當中 每一個節點平均生成的子節點數目;L爲從初始節點到目標節點的路徑長度;T爲整個搜索過程當中所生成的節點總數。當B=1時,L=T,此時所生成的節點數最少,搜索效率最高。

天然演繹推理

從一組已知爲真的事實出發,直接運用經典邏輯中的推理規則推出結論的過程稱爲天然演繹推理。
天然演繹推理最基本的推理規則是三段論推理,它包括:


【例子】 設已知以下事實:
(1) 只要是須要編程序的課,王程都喜歡。
(2) 全部的程序設計語言課都是須要編程序的課。
(3) C是一門程序設計語言課。
求證:王程喜歡C這門課。

證實:
第一步,首先定義謂詞
Prog(x):x是須要編程序的課。
Like(x, y): x喜歡y。
Lang(x): x是一門程序設計語言課
第二步,把已知事實及待求解問題用謂詞公式表示以下:
Prog(x)→Like(Wang , x)
(∀x)( Lang(x)→Prog(x))
Lang(C)
第三步,應用推理規則進行推理:
Lang(y)→Prog(y) 全稱固化
Lang(C),Lang(y)→Prog(y) ⇒ Prog(C) 假言推理 {C/y}
Prog(C), Prog(x)→Like(Wang , x) ⇒ Like(Wang , C) 假言推理 {C/x}
所以,王程喜歡C這門課。


注意避免如下兩類錯誤:
  • 確定後件的錯誤:當P→Q爲真時,但願經過確定後件Q爲真來推出前件P爲真,這是不容許的。
  • 否認前件的錯誤:當P→Q爲真時,但願經過否認前件P來推出後件Q爲假,這也是不容許的。
天然演繹推理的優缺點
  • 優勢
    • 定理證實過程天然,易於理解,而且有豐富的推理規則可用。
  • 缺點
    • 是容易產生知識爆炸,推理過程當中獲得的中間結論通常按指數規律遞增,對於複雜問題的推理不利,甚至難以實現。

消解演繹推理

一種基於 魯濱遜(Robinson)消解原理的機器推理技術。魯濱遜消解原理亦稱爲消解原理,是魯濱遜於1965年在海伯倫(Herbrand)理論的基礎上提出的一種基於邏輯的「反證法」。

在人工智能中,幾乎全部的問題均可以轉化爲一個定理證實問題。定理證實的實質,就是要對前提P和結論Q,證實P→Q永真。
而要證實P→Q永真,就是要證實P→Q在任何一個非空的個體域上都是永真的。這將是很是困難的,甚至是不可實現的。

魯濱遜消解原理把永真性的證實轉化爲關於 不可知足性的證實。即:要證實P→Q永真,只需證實P∧¬Q不可知足。(¬(P→Q) ⇔ ¬(¬P∨Q) ⇔ P∧¬Q

子句集及其化簡

魯濱遜消解原理是在子句集的基礎上討論問題的。所以,討論消解演繹推理以前,須要先討論子句集的有關概念。

  • 原子謂詞公式及其否認統稱爲 文字。例如: P(x)、Q(x)、¬ P(x)、 ¬ Q(x)等都是文字。
  • 任何文字的析取式稱爲 子句。例如,P(x)∨Q(x),P(x,f(x))∨Q(x,g(x))都是子句。
  • 不含任何文字的子句稱爲 空子句
    • 因爲空子句不含有任何文字,也就不能被任何解釋所知足,所以 空子句是永假的,不可知足的。
    • 空子句通常被記爲NIL。
  • 由子句或空子句所構成的集合稱爲 子句集
    • 在子句集中,子句之間是 合取關係
    • 子句集中的變元受 全稱量詞的約束;
    • 任何謂詞公式均可經過等價關係及推理規則化爲相應的子句集。

把謂詞公式化成子句集的步驟

子句集的意義
在上述化簡過程當中,因爲在消去存在量詞時所用的Skolem函數能夠不一樣,所以化簡後的標準子句集是不惟一的。所以,當原謂詞公式爲非永假時,它與其標準子句集並不等價。但當原謂詞公式爲永假(或不可知足)時,其標準子句集則必定是永假的,即Skolem化並不影響原謂詞公式的永假性。

不可知足性
對於任意論域中的任意一個解釋,S中的子句不能同時取得真值T。

定理:設有謂詞公式F,其子句集爲S,則F不可知足的充要條件是S不可知足。

  • 由此定理可知,要證實一個謂詞公式是不可知足的,只要證實其相應的標準子句集是不可知足的就能夠了。
  • 因爲子句集中的子句之間是合取關係,子句集中只要有一個子句爲不可知足,則整個子句集就是不可知足的
  • 空子句是不可知足的。所以,一個子句集中若是包含有空子句,則此子句集就必定是不可知足的
  • 這個定理是 魯濱遜消解原理的主要依據
魯濱遜消解原理

魯濱遜消解原理的基本思想

  • 首先把欲證實問題的 結論否認,並加入子句集,獲得一個擴充的子句集S’;
  • 而後設法檢驗子句集S’是否含有空子句,若含有空子句,則代表S’是不可知足的;若不含有空子句,則繼續使用消解法,在子句集中選擇合適的子句進行消解,直至導出空子句或不能繼續消解爲止

魯濱遜消解原理包括

  • 命題邏輯的消解
  • 謂詞邏輯的消解

命題邏輯的消解

消解推理的核心是求兩個子句的 消解式

  • 設C1和C2是子句集中的任意兩個子句,若是C1中的文字L1與C2中的文字L2 互補,那麼可從C1和C2中分別消去L1和L2,並將C1和C2中餘下的部分按析取關係構成一個新的子句C12,則稱這一過程爲 消解,稱C12爲C1和C2的 消解式,稱C1和C2爲C12的 親本子句

【例子】

  1. 設C1=¬Q,C2=Q,則C1和C2的消解式C12 = NIL .
  2. 設C1=P∨Q∨R,C2=¬P∨S,則C1和C2的消解式C12 = Q∨R∨S .
  3. 設C1 =¬P ∨ Q ,C2=¬Q,C3=P,則C一、C二、C3的消解式C123 = NIL .

  • 很顯然,能夠得出定理:**消解式C12是其親本子句C1和C2的邏輯結論。**根據該定理,能夠獲得如下推論:
    • 推論1:設C1和C2是子句集S中的兩個子句,C12是C1和C2的消解式,若用C12代替C1和C2後獲得新的子句集S1,則由S1的不可知足性能夠推出原子句集S的不可知足性。即:
      S1的不可知足性⇔S的不可知足性
    • 推論2:設C1和C2是子句集S中的兩個子句,C12是C1和C2的消解式,若把C12加入S中獲得新的子句集S2,則S與S2的不可知足性是等價的。即:
      S2的不可知足性⇔S的不可知足性

上述兩個推論說明,爲證實子句集S的不可知足性,只要對其中可進行消解得子句進行消解,並把消解式加入到子句集S中,或者用消解式代替他的親本子句,而後對新的子句集證實其不可知足性就能夠了
若是經消解能獲得空子句,根據空子句的不可知足性,便可獲得原子句集S是不可知足的結論。
在命題邏輯中,對不可知足的子句集S,其消解原理是完備的。即:子句集S是不可知足的,當且僅當存在一個從S到空子句的消解過程。

應用消解原理證實定理的過程稱爲 消解反演

命題邏輯的消解反演:

在命題邏輯中,已知F,證實G爲真的消解反演過程以下:

  1. 否認目標公式G,得¬G;
  2. 把¬G併入到公式集F中,獲得{F,¬G};
  3. 把{F,¬G}化爲子句集S;
  4. 應用消解原理對子句集S中的子句進行消解,並把每次獲得的消解式併入S中。如此反覆進行,若 出現空子句,則中止消解,此時就證實了G爲真。

【例子】 設已知的公式集爲{P,(P∧Q)→R,(S∨T)→Q,T},求證:R爲真。

解:假設結論R爲假, 將¬R加入公式集,並化爲子句集:
S={P,¬P∨¬Q∨R,¬S∨Q,¬T∨Q,T,¬R}
其消解過程以下圖的消解演繹樹所示。

該樹根爲空子句NIL,則子句集S不可知足,即假設有誤,因而證得R爲真。


謂詞邏輯的消解

  • 在謂詞邏輯中,因爲子句集中的謂詞通常都含有變元,所以不能象命題邏輯那樣直接消去互補文字。
  • 對於謂詞邏輯,須要先用一個最通常合一對變元進行置換,而後才能進行消解。

設C1和C2是兩個沒有公共變元的子句,L1和L2分別是C1和C2中的文字。若是 σ 是L1和¬ L2存在的最通常合一,則稱:
C12=({C1σ}-{ L1σ})∪({ C2σ}-{ L2σ})
爲C1和C2的二元消解式,L1和L2爲消解式上的文字。

注意:在謂詞邏輯的消解過程當中,要注意如下幾個問題:

  1. 若C1和C2有相同的變元x,須要將其中一個變元改名。(例2)
  2. 求消解式不能同時消去兩個互補對,消去這兩個互補文字所得的結果不是兩個親本子句的邏輯結論。(例3)
  3. 對參加消解的某個子句,若其內部有可合一的文字,則在進行消解以前應先對這些文字進行合一,以實現這些子句內部的化簡。(例4)

【例子】
例一、設C1=P(a)∨R(x)C2=¬P(y)∨Q(b),求 C12。
解:取L1= P(a), L2=¬P(y),則L1和¬L2的最通常合一是σ={a/y}。所以:

C12 = ( {C1σ}-{L1σ}) ∪ ({C2σ}-{L2σ})
        = ({P(a), R(x)}-{P(a)})∪({¬P(a), Q(b)}-{¬P(a)})
        = ({R(x)})∪({Q(b)})
        = { R(x), Q(b) } 
        = R(x)∨Q(b)

例二、設C1=P(x)∨Q(a)C2=¬P(b)∨R(x),求 C12。
解:因爲C1和C2有相同的變元x,不符合定義的要求。爲了進行消解,須要修改C2中變元的名字。令C2=¬P(b)∨R(y),此時L1= P(x), L2 =¬P(b),L1和¬L2的最通常合一是 σ={b/x}。則有:

C12 = ({C1σ}-{L1σ})∪ ({C2σ}-{L2σ})
        = ({P(b), Q(a)}-{P(b)}) ∪ ({¬P(b), R(y)}-{¬P(b)})
        = ({Q(a)}) ∪ ({R(y)})
        = {Q(a), R(y)}
        = Q(a)∨R(y)

例三、設 C1=P(a)∨¬Q(x)C2=¬P(y)∨Q(b),求C12。
解:對C1和C2經過最通常合一(σ={b/x, a/y})的做用,便獲得空子句NIL的結論,從而得出C一、C2互相矛盾的結論,而事實上C一、C2並沒有矛盾。

例四、設 C1=P(x)∨P(f(a))∨Q(x)C2=¬P(y)∨R(b),求C12。
解:本例的C1中有可合一的文字P(x)與P(f(a)),用它們的最通常合一σ={f(a)/x}進行代換,可獲得 :
C1σ=P(f(a))∨Q(f(a))
此時對C1σ與C2進行消解。選L1= P(f(a)), L2 =¬P(y),L1和L2的最通常合一是σ={f(a)/y},則可獲得C1和C2的二元消解式爲:
C12=R(b)∨Q(f(a))

例五、設 C1=P(y)∨P(f(x))∨Q(g(x))C2=¬P(f(g(a)))∨Q(b),求C12。
解:對C1,取最通常合一σ={f(x)/y},得C1的因子C1σ=P(f(x))∨Q(g(x)),對C1的因子和C2消解(σ={g(a)/x }),可得:C12=Q(g(g(a)))∨Q(b)


謂詞邏輯的消解反演:

在謂詞邏輯中,已知F,證實G是F的結論的消解反演過程以下:

  1. 否認目標公式G,得¬G;
  2. 把¬G併入到公式集F中,獲得{F,¬G};
  3. 把{F,¬G}化爲子句集S;
  4. 應用消解原理對子句集S中的子句進行消解,並把每次獲得的消解式併入S中。如此反覆進行,若出現空子句,則中止消解,此時就證實了G爲真。

與命題邏輯的消解反演過程比較一下

  • 步驟基本相同,但每步的處理對象不一樣。
  • 在步驟(3)化簡子句集時,謂詞邏輯須要把由謂詞構成的公式集化爲子句集。
  • 在步驟(4)按消解原理進行消解時,謂詞邏輯的消解原理須要考慮兩個親本子句的最通常合一。

【例子】
例一、已知F:(∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))G:¬(∃x)C(x)→(∀x)(∀y)(A(x, y)→¬B(y)),求證G是F的邏輯結論。

證實:
第一步,先把G否認,並放入F中,獲得的{F,¬G}
{(∀ x)((∃ y)(A(x,y)∧B(y))→(∃ y)(C(y)∧D(x,y)))¬(¬(∃ x)C(x)→(∀ x)(∀ y)(A(x,y)→¬ B(y)))}
第二步,把{F,¬G}化成子句集,獲得
(1) ¬A(x,y)∨¬B(y)∨C(f(x))
(2) ¬A(u,v)∨¬B(v)∨D(u,f(u))
(3) ¬C(z)
(4) A(m,n)
(5) B(k)
第三步,應用謂詞邏輯的消解原理對上述子句集進行消解,其過程爲:
(6) ¬ A(x,y)∨¬ B(y) (1)和(3)消解,取σ={f(x)/z}
(7) ¬ B(n) (4)和(6)消解,取σ={m/x,n/y}
(8) NIL (5)和(7)消解,取σ={n/k}
最後,「G是F的邏輯結論」得證。

上述消解過程可用以下消解樹來表示

例二、「快樂學生」問題
假設:任何經過計算機考試並獲獎的人都是快樂的,任何肯學習或幸運的人均可以經過全部考試,張不願學習但他是幸運的,任何幸運的人都能獲獎。
求證:張是快樂的。

證實:(完整的解題過程)
第一步,先定義謂詞:
Pass(x, y):x能夠經過y考試
Win(x, prize):x能得到獎勵
Study(x) :x肯學習
Happy(x):x是快樂的
Lucky(x) :x是幸運的
第二步,將已知條件以及結論的否認用謂詞表示以下:
「任何經過計算機考試並獎的人都是快樂的」
(∀x)(Pass(x, computer)∧Win(x, prize)→Happy(x))
「任何肯學習或幸運的人均可以經過全部考試」
(∀x)(∀y)(Study(x)∨Lucky(x)→Pass(x, y))
「張不願學習但他是幸運的」
¬Study(zhang)∧Lucky(zhang)
「任何幸運的人都能獲獎」
(∀x)(Lucky(x)→Win(x, prize))
結論「張是快樂的」的否認
¬Happy(zhang)
第三步,將上述謂詞公式轉化爲子句集以下:
1. ¬Pass(x, computer)∨¬Win(x, prize)∨Happy(x)
2. ¬Study(y)∨Pass(y, z)
3. ¬Lucky(u)∨Pass(u, v)
4. ¬Study(zhang)
5. Lucky(zhang)
6. ¬Lucky(w)∨Win(w, prize)
7. ¬ Happy(zhang) (結論的否認)
第四步,按消解原理進行消解,消解樹以下:

最後,「張是快樂的」得證。


消解反演推理的消解策略

在消解演繹推理中,因爲事先並不知道哪些子句對可進行消解,更不知道經過對哪些子句對的消解能儘快獲得空子句,所以就須要對子句集中的全部子句逐對進行比較,直到得出空子句爲止。這種盲目的全面進行消解的方法,不只會產生許多無用的消解式,更嚴重的是會產生組核爆炸問題。所以,須要研究有效的消解策略來解決這些問題。

經常使用的消解策略可分爲兩大類:

  • 限制策略:經過限制參加消解的子句減小盲目性
  • 刪除策略:經過刪除某些無用的子句縮小消解範圍
用消解反演求取問題的答案

消解原理除了可用於 定理證實外,還可用來 求取問題答案,其思想與定理證實類似。
其通常步驟爲:

  1. 把問題的已知條件用謂詞公式表示出來,並化爲子句集;
  2. 把問題的目標的否認用謂詞公式表示出來,並化爲子句集;
  3. 對目標否認子句集中的每一個子句,構造該子句的重言式(即把該目標否認子句和此目標否認子句的否認之間再進行析取所獲得的子句),用這些重言式代替相應的目標否認子句式,並把這些重言式加入到前提子句集中,獲得一個新的子句集;
  4. 對這個新的子句集,應用消解原理求出其證實樹,這時證實樹的根子句不爲空,稱這個證實樹爲修改的證實樹;
  5. 用修改證實樹的根子句做爲回答語句,則答案就在此根子句中。

【例子】
例一、已知:「張和李是同班同窗,若是x和y是同班同窗,則x的教室也是y的教室,如今張在302教室上課。」
問:「如今李在哪一個教室上課?」

解:第一步,首先定義謂詞
C(x, y):x和y是同班同窗
At(x, u):x在u教室上課。
第二步,把已知前提用謂詞公式表示以下:
C(zhang, li)
(∀x)(∀y)(∀u)(C(x, y)∧At(x, u)→At(y,u))
At(zhang, 302)
把目標的否認用謂詞公式表示以下:
¬(∃v)At(li, v)
第三步,把上述表示前提的謂詞公式化爲子句集:
C(zhang, li)
¬C(x, y)∨¬At(x, u)∨At(y, u)
At(zhang, 302)
把目標的否認化成子句式,並用下面的 重言式代替:
¬At(li,v) ∨At(li,v)
第四步,把此 重言式加入前提子句集中,獲得一個新的子句集,對這個新的子句集,應用消解原理求出其證實樹。
求解過程以下圖所示。該證實樹的根子句就是所求的答案,即「李明在302教室」。

例二、已知:A,B,C三人中有人從不說真話,也有人從不說假話。某人向這三人分別提出同一個問題:誰是說謊者?
A答:「B和C都是說謊者」;
B答:「A和C都是說謊者」;
C答:「A和B中至少有一個是說謊者」。
問:求誰是老實人,誰是說謊者?

解:第一步,首先定義謂詞
T(x):表示x說真話
第二步,把已知前提用謂詞公式表示以下:
有人從不說真話:¬T(C)∨¬T(A)∨¬T(B)
有人從不說假話:T(C)∨T(A)∨T(B)
根據「A答:B和C都是說謊者」,則
若A說真話:T(A)→¬T(B)∧¬T(C)
若A說假話: ¬T(A)→T(B)∨T(C)
同理,根據「B答:A和C都是說謊者」,則
T(B)→¬T(A)∧¬T(C)
¬T(B)→T(A)∨T(C)
根據「C答:A和B中至少有一個是說謊者」,則
T(C)→¬T(A)∨¬T(B)
¬T(C)→T(A)∧T(B)
第三步,把上述公式化成子句集,獲得前提子句集S:
¬T(A)∨¬T(B)
¬T(A)∨¬T(C)
T(C)∨T(A)∨T(B)
¬T(B)∨¬T(C)
¬T(C)∨¬T(A)∨¬T(B)
T(A)∨T(C)
T(B)∨T(C)
第四步,先求誰是老實人,結論的否認爲:¬(∃x)T(x),把目標的否認化成子句式,並用下面的重言式代替:
¬T(x)∨T(x)
把此重言式加入前提子句集S,獲得一個新子句集。
第五步,對這個新的子句集,應用消解原理求出其證實樹。

第六步,同理證實A不是老實人,結論的否認爲: ¬T(A),將結論的否認¬(¬T(A)) 加入併入前提子句集S中,應用消解原理對新的子句集進行消解:


消解演繹推理的優缺點:
  • 優勢:
    • 簡單,便於在計算機上實現。
  • 缺點:
    • 必須把邏輯公式化成子句集。
    • 不便於閱讀與理解:¬P(x)∨Q(x)沒有P(x)→Q(x)直觀。
    • 可能丟失控制信息,以下列邏輯公式,化成子句後都是: A∨B∨C
(¬A∧¬B)→C    ¬A→(B∨C)
    (¬A∧¬C)→B    ¬B→(A∨C)
    (¬C∧¬B)→A    ¬C→(B∨A)

基於規則的演繹推理

在消解演繹推理中,須要把謂詞公式化爲子句形,這使得原來蘊含在謂詞公式中的一些重要信息卻會在求取子句形的過程當中被丟失。
在很多狀況下人們多但願使用接近於問題原始描述的形式來進行求解,而不但願把問題描述化爲子句集。

基於規則的演繹推理又稱爲與/或形演繹推理,再也不把有關知識轉化爲子句集,而是把領域知識及已知事實分別用蘊含式及與/或形表示出來,而後經過運用蘊含式進行演繹推理,從而證實某個目標公式。

規則是一種比較接近於人們習慣的問題描述方式,按照 蘊含式(「If →Then」規則)這種問題描述方式進行求解的系統稱爲基於規則的系統,或者叫作 規則演繹系統

規則演繹系統按照推理方式可分爲:

  • 規則正向演繹系統
  • 規則逆向演繹系統(ppt-14)
  • 規則雙向演繹系統(ppt-14)
規則正向演繹系統

首先說明一下,在規則正向演繹系統中,對已知事實和規則都有必定的要求,若是不是所要求的形式,須要進行變換。

事實表達式的與或形變換

  • 在基於規則的正向演繹系統中,把事實表示爲非蘊含形式的與或形,做爲系統的總數據庫;
  • 把一個公式化爲與或形的步驟與化爲子句集相似,只是沒必要把公式化爲子句的合取形式,也不能消去公式中的合取。

詳細來講,把事實表達式化爲非蘊含形式的與/或形的步驟以下:

  1. 利用 「P→Q⇔﹁P∨Q」,消去蘊含符號;
  2. 利用狄.摩根定律及量詞轉換率把「﹁」移到緊靠謂詞的位置,直到否認符號的轄域最多隻含一個謂詞爲止;
  3. 從新命名變元,使不一樣量詞約束的變元有不一樣的名字;
  4. 對存在量詞量化的變量用skolem函數代替;
  5. 消去全稱量詞,且使各主要合取式中的變元具備不一樣的變量名。

【例子】
有以下表達式
(∃x) (∀y)(Q(y, x)∧﹁((R(y)∨P(y))∧S(x, y)))
可把它轉化爲:
Q(z, a)∧( ( ﹁R(y)∧﹁P(y) )∨﹁S(a, y) )
這就是 與/或形表示,也可用一棵與/或圖表示出來。


關於 與/或圖說明如下幾點:

  • 當某表達式爲k個子表達式的析取:E1∨E2∨…∨Ek,其中每一個子表達式Ei均被表示爲E1∨E2∨…∨Ek的後繼節點,並由一個k線鏈接符(即圖中的半圓弧)將這些後繼節點都鏈接到其父節點,即表示成與的關係。
  • 當某表達式爲k個子表達式的合取:E1∧E2∧…∧Ek,其中的每一個子表達式Ei均被表示爲E1∧E2∧…∧Ek的一個單一的後繼節點,無需用鏈接符鏈接,即表示成或的關係。
  • 這樣,與/或圖的根節點就是整個事實表達式,葉節點均爲事實表達式中的一個文字

有了與/或圖的表示,就能夠求出其解樹(結束於文字節點上的子樹)集。能夠發現,事實表達式的子句集與解樹集之間存在着一一對應關係,即 解樹集中的每一個解樹都對應着子句集中的一個子句
解樹集中每一個解樹的端節點上的文字的析取就是子句集中的一個子句。

上面那個與/或圖有3個解樹,分別對應這如下3個子句:
Q(z, a)﹁R(y)∨ ﹁ S(a, y)﹁P(y)∨ ﹁ S(a, y)

還須要注意如下兩點:

  • 這裏的與/或圖是做爲綜合數據庫的一種表示,其中的變量受全稱量詞的約束。
  • 在以前 問題歸約表示 中所描述的 與/或圖表示方法與這裏 與/或形的與/或圖表示有着不一樣的目的和含義,所以應用時應加以 區分

規則的表示

爲簡化演繹過程,一般要求規則具備以下形式:L→W,其中,L爲單文字,W爲與/或形公式。
(之因此限制前件L爲單文字,是由於在進行正向演繹推理時要用規則做用於表示事實的與/或樹,而該與/或樹的葉節點都是單文字,這樣就可用規則的前件與葉節點進行簡單匹配。對非單文字狀況,若形式爲L1∨L2→W,則可將其轉換成與之等價的兩個規則L1→W與 L2→W進行處理。)

  • 假定出如今蘊含式中的任何變量全都受全稱量詞的約束,而且這些變量已經被換名,使得他們與事實公式和其餘規則中的變量不一樣。
  • 若是領域知識的規則表示形式與上述要求不一樣,則應將它轉換成要求的形式。

將規則轉換爲要求形式的步驟:

一、 暫時消去蘊含符號「→」。設有以下公式:
(∀x)(((∃y) (∀ z)P(x, y,z))→(∀u)Q(x, u))
運用等價關係「P→Q⇔﹁P∨Q」,可將上式變爲:
(∀x)(﹁((∃ y) (∀z)P(x, y,z))∨(∀u)Q(x, u))
二、 把否認符號「﹁」移到緊靠謂詞的位置上,使其做用域僅限於單個謂詞。經過使用狄.摩根定律及量詞轉換律可把上式轉換爲:
(∀ x)( (∀y) (∃z)﹁P(x, y,z))∨ (∀u)Q(x, u))
三、 引入Skolem函數,消去存在量詞。消去存在量詞後,上式可變爲:
(∀ x)( (∀y) (﹁P(x, y,f(x,y)))∨(∀u)Q(x, u))
四、 把全部全稱量詞移至前面化成前束式,消去所有全稱量詞。消去全稱量詞後,上式變爲:
﹁P(x, y,f(x,y))∨Q(x, u)
此公式中的變元都被視爲受全稱量詞約束的變元。
五、 恢復蘊含式表示。利用等價關係「﹁P∨Q⇔P→Q」將上式變爲:
P(x, y,f(x,y))→Q(x, u)

目標公式的表示形式

  • 與/或樹正向演繹系統要求目標公式用子句形表示。若是目標公式不是子句形,則須要化成子句形。

推理過程

規則正向演繹推理過程是從已知事實出發,不斷運用規則,推出欲證實目標公式的過程。
先用與/或樹把已知事實表示出來,而後再用規則的前件和與/或樹的葉節點進行匹配,並經過一個匹配弧把匹配成功的規則加入到與/或樹中,依此使用規則,直到產生一個含有以目標節點爲終止節點的解樹爲止。

下面分命題邏輯和謂詞邏輯兩種狀況來討論規則正向演繹過程。

命題邏輯的規則正向演繹過程
已知事實:A∨B
規則:r1: A→C∧Dr2: B→E∧G
目標公式:C∨G

證實:
1)先將已知事實用與/或樹表示出來;
2)而後再用匹配弧把r1和r2分別鏈接到事實與/或樹中與r1和r2 的前件匹配的兩個不一樣端節點;
3) 因爲出現了以目標節點爲終節點的解樹,故推理過程結束。這一證實過程可用下圖表示。

謂詞邏輯的規則正向演繹過程
已知事實的與/或形表示:P(x, y)∨(Q(x)∧R(v, y))
規則:P(u, v)→(S(u)∨N(v))
目標公式:S(a)∨N(b)∨Q©

證實:
在謂詞邏輯狀況下,因爲事實、規則及目標中均含有變元,所以,其規則演繹過程還須要用最通常合一對變進行置換。證實過程可用下圖表示。

產生式系統

基本結構

產生式系統的 基本結構數據庫產生式規則控制策略三部分構成。

  • 總數據庫:存放求解問題的各類當前信息,如:問題的初始狀態,輸入的事實,中間結論及最終結論等。
    • 推理過程當中,當規則庫中某條規則的前提能夠和總數據庫的已知事實匹配時,該規則被激活,由它推出的結論將被做爲新的事實放入總數據庫,成爲後面推理的已知事實。
  • 產生式規則:是一個規則庫,也稱知識庫 。用於存放與求解問題有關的全部規則的集合。
  • 控制策略:亦稱推理機,用於控制整個產生式系統的運行,決定問題求解過程的推理線路。
    • 控制系統的主要任務包括: 選擇匹配、 衝突消解、 執行操做、 終止推理、 路徑解釋…
產生式系統的推理

產生式系統的推理分爲 正向推理逆向推理雙向推理三種形式。

主要優缺點

產生式系統的主要 優缺點

  • 優勢:
    • 天然性:採用「若是……,則……」的形式,人類的判斷性知識基本一致。
    • 模塊性:規則是規則庫中最基本的知識單元,各規則之間只能經過總數據庫發生聯繫,而不能相互調用,從而增長了規則的模塊性。
    • 有效性:產生式知識表示法既能夠表示肯定性知識,又能夠表示不肯定性知識,既有利於表示啓發性知識,又有利於表示過程性知識。
  • 缺點:
    • 效率較低:各規則之間的聯繫必須以總數據庫爲媒介。而且,其求解過程是一種反覆進行的「匹配—衝突消解—執行」過程。這樣的執行方式將致使執行的低效率。
    • 不便於表示結構性知識:因爲產生式表示中的知識具備一致格式,且規則之間不能相互調用,所以那種具備結構關係或層次關係的知識則很難以天然的方式來表示。

非經典推理

經典推理和非經典推理

非經典推理

現實世界中的大多數問題存在隨機性、模糊性、不徹底性和不精確性。對於這些問題,若採用前面所討論的精確性推理方法顯然是沒法解決的。
爲此,出現了一些新的邏輯學派,稱爲非經典邏輯,相應的推理方法稱爲 非經典推理。包括非單調性推理、不肯定性推理、機率推理和貝葉斯推理等。

非經典邏輯推理與經典邏輯推理的區別

  • 在推理方法上,經典邏輯採用演繹邏輯推理,非經典邏輯採用概括推理。
  • 在轄域取值上,經典邏輯是二值邏輯,非經典邏輯是多值邏輯。
  • 在運算法則上,二者大不相同。
  • 在邏輯運算符上,非經典邏輯有更多的邏輯運算符。
  • 在單調性上,經典邏輯是單調的,即已知事實均爲充分可信的,不會隨着新事實的出現而使原有事實變爲假。非經典邏輯是非單調的。

不肯定性推理

不肯定性推理的概念

  • 不肯定性推理是創建在非經典邏輯基礎上的一種推理,它是對不肯定性知識的運用與處理。
  • 不肯定性推理泛指除精確推理之外的其它各類推理問題。包括不完備、不精確知識的推理,模糊知識的推理,非單調性推理等。
  • 不肯定性推理從不肯定性的初始證據(即事實)出發,經過運用不肯定性的知識,最終推出具備必定程度不肯定性的結論。

爲何要採用不肯定性推理

  • 所需知識不完備或問題的背景知識不足
  • 所需知識描述不精確或模糊
  • 多種緣由致使同一結論或解題方案不惟一

不肯定性推理的基本問題

  1. 不肯定性的表示
  2. 不肯定性的匹配
  3. 組合證據的不肯定性的計算
  4. 不肯定性的更新
  5. 不肯定性結論的合成

知識的不肯定性的表示

  • 考慮因素:1. 問題描述能力; 2. 推理中不肯定性的計算
  • 含義:知識的肯定性程度,或靜態強度
  • 表示:
    • 機率,[0,1],0接近於假,1接近於真
    • 可信度,[-1,1],大於0接近於真,小於0接近於假

證據的非精確性表示

  • 證據來源:初始證據,中間結論
  • 表示:用機率或可信度

不肯定性的匹配

  • 含義:不肯定的前提條件與不肯定的事實匹配
  • 問題:前提是不肯定的,事實也是不肯定的
  • 方法:設計一個計算類似程度的算法,給出類似的限度
  • 標誌:類似度落在規定限度內爲匹配,不然爲不匹配

組合證據不肯定性的計算

  • 含義:知識的前提條件是多個證據的組合
  • 方法:T(E)表示證據E爲真的程度
    • 最大最小法:
      T(E1 AND E2)=min{T(E1),T(E2)}
      T(E1 OR E2)=max{T(E1),T(E2)}
    • 機率法:在事件之間徹底獨立時使用
      T(E1 AND E2)=T(E1)T(E2)
      T(E1 OR E2)=T(E1)+T(E2)-T(E1)T(E2)
    • 有界法:
      T(E1 AND E2)=max{0,T(E1)+T(E2)-1}
      T(E1 OR E2)=min{1,T(E1)+T(E2)}

不肯定性的更新

  • 主要問題:解決不肯定性知識在推理的過程當中,知識不肯定性的累積和傳遞。
  • 解決方法
    • 已知規則前提證據E的不肯定性T(E)和規則的強度F(E,H),則結論H的不肯定性:T(H) = g1[T(E),F(E,H)]
    • 證據合取: T(E1 AND E2) = g2[T(E1), T (E2)]
    • 證據析取: T(E1 OR E2) = g3[T(E1), T (E2)]

不肯定性結論的合成

  • 主要問題:多個不一樣知識推出同一結論,且不肯定性程度不一樣
  • 解決方法:
    • 並行規則算法:根據獨立證據E1和E2分別求得結論H的不肯定性爲T1(H)T2(H),則證據E1和E2的組合致使結論H的不肯定性:T(H)=g[T1(H), T2(H)]
    • 函數g視不一樣推理方法而定

機率推理

機率論基礎回顧

機率推理方法

  • 設有以下產生式規則:IF E THEN H
    • 其中,E爲前提條件,H爲結論。
    • 條件機率P(H|E)能夠做爲在證據E出現時結論H的肯定性程度,即規則的靜態強度。
  • 把貝葉斯方法用於不精確推理的思想
    • 已知前提E的機率P(E)和結論H的先驗機率P(H)
    • 已知H成立時E出現的條件機率P(E|H)
    • 利用規則推出H在E出現的條件下的後驗機率:
  • 對於一組產生式規則:IF E THEN Hi
    • 一個前提條件E支持多個結論H1, H2, …,Hn
    • 一樣有後驗機率以下( Hi 肯定性的程度,或規則的靜態強度):
  • 對於有多個證據E1, E2, …, Em和多個結論H1, H2, …, Hn,而且每一個證據都以必定程度支持結論的狀況,上面的式子可進一步擴展爲:

【例子】
設H1,H2,H3分別是三個結論,E是支持這些結論的證據。已知:

P(H1)=0.3
P(H2)=0.4
P(H3)=0.5
P(E|H1)=0.5
P(E|H2)=0.3
P(E|H3)=0.4

求P(H1|E),P(H2|E)及P(H3|E)的值各是多少?

解:

同理可得:
P(H2|E)=0.26
P(H3|E)=0.43
觀察:( 注:P(E)=0.47 )
P(H1)=0.3 , P(E|H1)=0.5 P(H1|E)=0.32
P(H2)=0.4 , P(E|H2)=0.3 P(H2|E)=0.26
P(H3)=0.5 , P(E|H3)=0.4 P(H3|E)=0.43
結論:因爲E的出現,H1成立的可能性增長,H2和H3成立的可能性不一樣程度的降低。


機率推理方法的特色

  • 優勢:
    • 機率推理方法有較強的理論背景和良好的數學特性,當證據彼此獨立時計算的複雜度比較低。
  • 缺點:
    • 機率推理方法要求給出結論Hi的先驗機率P(Hi)及條件機率 P(Ej|Hi)。

貝葉斯推理(主觀貝葉斯方法)

使用機率推理方法求結論Hi在存在證據E時的條件機率P(Hi|E) ,須要給出結論Hi的先驗機率P(Hi)及證據E的條件機率 P(E|Hi)。這對於實際應用是不容易作到的。
Duda 和 Hart 等人在貝葉斯公式的基礎上,於1976年提出主觀貝葉斯方法,創建了不精確推理的模型,並把它成功地應用於PROSPECTOR專家系統(PROSPECTOR是國際上著名的一個用於勘察固體礦的專家系統)。

主觀貝葉斯方法(ppt-24)

  • 知識不肯定性的表示

    • 在主觀Bayes方法中,知識是用產生式表示的,其形式爲:
      IF E THEN (LS, LN) H

    • E表示規則前提條件,它既能夠是一個簡單條件,也能夠是用AND或OR把多個簡單條件鏈接起來的複合條件。

    • H是結論,用P(H)表示H的先驗機率,它指出沒有任何專門證據的狀況下結論H爲真的機率,其值由領域專家根據以往的實踐經驗給出。

    • LS是規則的充分性度量。用於指出E對H的支持程度,取值範圍爲[0,+∞),其定義爲:

    • LN是規則的必要性度量。用於指出E對H爲真的必要程度,即﹁E對對H的支持程度。取值範圍爲[0,+∞),其定義爲:

  • 證據不肯定性的表示

  • 組合證據不肯定性的計算

  • 不肯定性的更新

  • 主觀貝葉斯方法的推理過程

可信度方法

什麼是可信度

  • 可信度是指人們根據以往經驗對某個事物或現象爲真的程度的一個判斷,或者說是人們對某個事物或現象爲真的相信程度。
  • 在可信度方法中,由專家給出規則或知識的可信度,從而 避免對先驗機率、條件機率的要求
  • 可信度方法是肖特里菲(Shortliffe)等人在肯定性理論基礎上結合機率論等理論提出的一種不精確推理模型。

該方法 直觀簡單並且 效果好,在專家系統等領域得到了較爲普遍的應用。

C-F模型

C-F模型:基於可信度表示的不肯定性推理的基本方法,其餘可信度方法都是基於此發展而來。

知識的不肯定性表示

知識的不肯定性表示:在C-F模型中,知識是用產生式規則表示的,其通常形式爲:
IF E THEN H (CF(H, E))
E:知識的前提條件,能夠是單一或複合條件;
H:知識的結論,能夠是單一結論或多個結論;
CF(H, E):知識的可信度,稱爲 可信度因子(Certainty Factor)或規則強度。

通常狀況下,CF(H, E)的取值爲[-1, 1],表示當證據E爲真時,對結論H的支持程度。其值越大,表示支持程度越大。

  • CF(H,E)>0對應於P(H|E)>P(H);
  • CF(H,E)=0對應於P(H|E)=P(H);
  • CF(H,E)<0對應於P(H|E)<P(H)。

例如:IF 發燒 AND 流鼻涕 THEN 感冒(0.7),表示當某人確實有「發燒」及「流鼻涕」症狀時,則有七成的把握是患了感冒。

CF(H,E)的定義:

CF(H,E) = MB(H,E) - MD(H,E)

  • MB ( Measure Belief ) 稱爲信任增加度,反映了證據對結論有利的一面。MB(H, E)定義爲:
  • MD ( Measure Disbelief ) 稱爲不信任增加度,MD反映了證據對結論不利的一面。MD(H,E)定義爲:

MB和MD的關係:

  • P(H|E)>P(H)時: E的出現增長了H的機率
    MB(H,E)>0,MD(H,E)=0
  • P(H|E)<P(H)時: E的出現下降了H的機率
    MB(H,E) =0,MD(H,E)>0
    所以,CF(H, E)的計算公式:

可信度的性質(ppt-25)

  • 互斥性:對同一證據,不可能既增長對H的信任程度,又同時增長對H的不信任程度,即MB與MD是互斥的
    • 當MB(H, E)>0時,MD(H, E)=0
    • 當MD(H, E)>0時,MB(H, E)=0
  • 值域:MB(H, E) ∈ [0,1]; MD(H, E) ∈ [0,1]; CF(H, E) ∈[-1,1],
    • 當且僅當P(H|E)=1時, CF(H,E)=1
    • 當且僅當P(H|E)=0時, CF(H,E)=-1
    • CF(H,E)定性地反映了P(H|E)的大小,所以能夠用CF(H,E)近似表示P(H|E) ,描述規則的可信度。
  • 對H的信任增加度等於對非H的不信任增加度
  • 再根據CF的定義和MB、MD的互斥性有
    CF(H,E)+CF(﹁H,E)=0
  • 對前提E,若支持若干個不一樣的結論Hi(i=1,2,…,n),則
  • 所以,若是發現專家給出的知識有以下狀況
    CF(H1, E)=0.7, CF(H2, E)=0.4
  • 則因0.7+0.4=1.1>1爲非法,應進行調整或規範化。

證據不肯定性的表示

  • 證據的E不肯定性也用可信度因子CF(E)表示
  • CF(E)的取值範圍:[-1,+1]。
    • CF(E)=1,證據E確定它爲真
    • CF(E)=-1,證據E確定它爲假
    • CF(E)=0,對證據E一無所知
    • 0<CF(E)<1,證據E以CF(E)程度爲真
    • -1<CF(E)<0,證據E以CF(E)程度爲假

否認證據的不肯定性計算

CF(¬E)=-CF(E)

組合證據的不肯定性計算

  • 可採用最大最小法
    • 當組合證據E是多個單一證據的合取時,若已知CF(E1), …, CF(En),則:
      CF(E)=min{CF(E1), CF(E2), … ,CF(En)}
    • 當組合證據E是多個單一證據的析取時,若已知CF(E1), …, CF(En),則:
      CF(E)=max{CF(E1), CF(E2), … ,CF(En)}

不肯定性的更新

IF E THEN H (CF(H, E))

結論H的可信度由下式計算:

CF(H)=CF(H,E)×max{0,CF(E)}

  • CF(H)的取值範圍:[-1,+1]。
    • CF(H)=0: CF(E)<0,即該模型沒考慮E爲假對H的影響
    • CF(H)>0: 表示結論以某種程度爲真
    • CF(H)<0: 表示結論以某種程度爲假

結論不肯定性的合成

  • 若由多條不一樣知識推出了相同的結論,但可信度不一樣,則用合成算法求出綜合可信度。設有知識:
    IF E1 THEN H (CF(H, E1))
    IF E2 THEN H (CF(H, E2))
  • 則結論H 的綜合可信度可分如下兩步計算:
    (1)、分別對每條知識求出其CF(H)。即
    CF1(H)=CF(H, E1) ×max{0, CF(E1)}
    CF2(H)=CF(H, E2) ×max{0, CF(E2)}

(2)、用以下公式求E1與E2對H的綜合可信度


【例子】
設有以下一組知識:

r1:IF  E1  THEN  H  (0.9)
r2:IF  E2  THEN  H  (0.6)
r3:IF  E3  THEN  H  (-0.5)
r4:IF  E4  AND  ( E5  OR  E6)  THEN  E1  (0.8)


已知:CF(E2)=0.8CF(E3)=0.6CF(E4)=0.5CF(E5)=0.6,CF(E6)=0.8,求:CF(H)

解:由r4獲得:

CF(E1) = 0.8×max{0, CF(E4  AND  (E5  OR   E6))}
        = 0.8×max{0, min{CF(E4),  CF(E5  OR   E6)}} 
        = 0.8×max{0, min{CF(E4),  max{CF(E5),  CF(E6)}}}
        = 0.8×max{0, min{CF(E4),  max{0.6,  0.8}}}
        = 0.8×max{0, min{0.5,  0.8}}
        = 0.8×max{0,  0.5} 
        = 0.4 
 由r1獲得:
    CF1(H) = CF(H, E1)×max{0,  CF(E1)}
           = 0.9×max{0,  0.4} 
           = 0.36

 由r2獲得:
    CF2(H) = CF(H, E2)×max{ 0,  CF(E2) }
          = 0.6×max{ 0,  0.8 } 
           = 0.48
由r3獲得:
    CF3(H) = CF(H, E3)×max{ 0,  CF(E3) }
          = -0.5×max{ 0,  0.6 } 
          = -0.3

根據結論不精確性的合成算法,CF1(H)和CF2(H)同號,有:

CF12(H)和CF3(H)異號,有:

綜合可信度爲CF(H)=0.53。


證據理論(ppt-25-21)

專家系統

專家系統的先行者費根鮑姆(Feigenbaum)曾把專家系統定義爲一個應用知識和推理過程來求解那些須要大量的人類專家解決難題經驗的智能計算機程序。
專家系統主要指的是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,可以利用人類專家的知識和解決問題的經驗方法來處理該領域的高水平難題。

專家系統概述

  • 專家系統是一個具備大量的專門知識與經驗的程序系統,它應用人工智能技術和計算機技術,根據某領域一個或多個專家提供的知識和經驗,進行推理和判斷,模擬人類專家的決策過程,以便解決那些須要人類專家才能處理好的複雜問題。簡而言之,專家系統是一種模擬人類專家解決領域問題的計算機程序系統。
  • 專家系統的基本功能取決於它所含有的知識,所以,有時也把專家系統稱爲基於知識的系統(knowledge-based system)。

專家系統的特色

  • 啓發性
    • 專家系統要解決的問題,其結構每每是不合理的,其問題求解(problem-solving)知識不只包括理論知識和常識,並且包括專家本人的啓發知識。
    • 能運用專家的知識和經驗進行推理、判斷和決策。
  • 透明性
    • 專家系統可以解釋自己的推理過程和回答用戶提出的問題,以便讓用戶瞭解推理過程,提升對專家系統的信賴感。
    • 問題求解過程當中知識應用的合理性可由檢驗專家系統的解釋推理路徑來驗證。
  • 靈活性
    • 專家系統的靈活性是指它的擴展和豐富知識庫的能力,以及改善非編程狀態下的系統性能,即自學習能力。
    • 專家系統能不斷增加知識,修改原有知識,不斷更新

專家系統的優勢

  • 專家系統可以高效率、準確、周到、迅速和不知疲倦地進行工做。
  • 專家系統解決實際問題時不受周圍環境的影響,也不可能遺漏和忘記。
  • 能夠使專家的專長不受時間和空間的限制,以便推廣珍貴和稀缺的專家知識與經驗。
  • 專家系統能促進各領域的發展,使各領域專家的專業知識和經驗獲得總結和精煉,可以普遍有力地傳播專家的知識、經驗和能力。
  • 專家系統能聚集多領域專家的知識和經驗以及他們協做解決重大問題的能力,它擁有更淵博的知識、更豐富的經驗和更強的工做能力。
  • 軍事專家系統的水平是一個國家國防現代化的重要標誌之一。
  • 專家系統的研製和應用,具備巨大的經濟效益和社會效益。
  • 研究專家系統可以促進整個科學技術的發展。專家系統對人工智能各個領域的發展起了很大的促進做用,並將對科技、經濟、國防、教育、社會和人民生活產生極其深遠的影響。

專家系統的結構

  • 專家系統簡化結構圖
  • 理想專家系統的結構圖
  • 專家系統的主要組成部分:
    • 知識庫
    • 綜合數據庫
    • 推理機
    • 解釋器
    • 接口

專家系統的建造步驟

  • 設計初始知識庫
    • 問題知識化
    • 知識概念化
    • 概念形式化
    • 形式規則化
    • 規則合法化
  • 原型機(prototype)的開發與實驗
  • 知識庫的改進與概括

基於規則的專家系統基於框架的專家系統

一個基於規則的專家系統採用下列模塊來創建產生式系統的模型:

  1. 知識庫:以一套規則創建人的長期存儲器模型。
  2. 工做存儲器:創建人的短時間存儲器模型,存放問題事實和由規則激發而推斷出的新事實。
  3. 推理機:藉助於把存放在工做存儲器內的問題事實和存放在知識庫內的規則結合起來,創建人的推理模型,以推斷出新的信息 。

基於框架的專家系統

  • 基於框架的專家系統是一個計算機程序,該程序使用一組包含在知識庫內的框架對工做存儲器內的具體問題信息進行處理,經過推理機推斷出新的信息。
  • 基於框架的專家系統是創建在框架的基礎之上的。通常概念存放在框架內,而該概念的一些特例則被表示在其餘框架內並含有實際的特徵值。
  • 基於框架的專家系統可以提供基於規則專家系統所沒有的特徵,如繼承、側面、信息通訊和模式匹配規則等,於是,基於框架的專家系統比基於規則的專家系統擁有更強的功能,適用於解決更復雜的問題。

基於模型的專家系統

  • 關於人工智能的一個觀點: 認爲人工智能是對各類定性模型(物理的、感知的、認識的和社會的系統模型)的得到、表達及使用的計算方法進行研究的學問。一個知識系統中的知識庫是由各類模型綜合而成的。
  • 模型類型:基於邏輯的心理模型、定性的物理模型、神經元網絡模型、可視知識模型等等。
  • 綜合各類模型的專家系統比基於邏輯心理模型的系統具備更強的功能,從而有可能顯著改進專家系統的設計
  • 在諸多模型中,人工神經網絡模型的應用最爲普遍

基於Web的專家系統

新型專家系統

以上部分專家系統就不詳敘了。


模糊邏輯系統

模糊邏輯原理

模糊邏輯的發展,是由理論準備到理論提出再到理論應用的過程

模糊集

  • 從精確到模糊
    • 精確
      • 答案肯定:要麼是,要麼不是
      • f : A → {0,1}
      • 如:他是學生?不是學生?
    • 模糊
      • 答案不定:也許是,也許不是,也許介於之間
      • μA : U → [0,1]
      • 如:他是成年人?不是成年人?大概是成年人?

【例子】表示「20歲左右」

  • 原集合(年齡)
    • {…, 17, 18, 19, 20, 21, 22, 23, …}
  • 模糊集能夠表示爲:
    • 0.8/18 + 0.9/19 + 1/20 + 0.9/21 + 0.8/12
    • 0.6/17+0.7/18+0.8/19+1/20+0.9/21+0.7/22+0.6/23

集合及其特徵函數

  • 在論域中,把具備某種屬性的事物的全體稱爲集合。因爲集合中的元素都具備某種屬性,所以能夠用集合表示某一種概念,並且可用一個函數來刻畫它,該函數稱爲特徵函數。
  • 設A是論域U上的一個集合,對任意u∈U,令
  • 則稱CA(u)爲集合A的特徵函數。特徵函數CA(u)在u=u0處的取值CA(u0)稱爲u0對A的隸屬度。
  • 集合A與其特徵函數能夠認爲是等價的:A={u |CA(u)=1}

模糊集與隸屬函數

  • 模糊集把特徵函數的取值範圍從{0,1}推廣到[0,1]上。
  • 設U是論域,μA是把任意u∈U映射爲[0,1]上某個值的函數,即
    μA : U→[0,1] 或 u→μA(u)
  • 則稱μA爲定義在U上的一個隸屬函數,由μA(u)(u∈U)所構成的集合A稱爲U上的一個模糊集,μA(u)稱爲u對A的隸屬度。

【例子】
論域U={1,2,3,4,5},用模糊集表示「大」和「小」。

解:設A、B分別表示「大」與「小」的模糊集,μA ,μB分別爲相應的隸屬函數。
A = {0, 0, 0.1, 0.6, 1}
B = {1, 0.5, 0.01, 0, 0}
其中:
μA(1)=0, μA(2)=0 , μA(3)=0.1 , μA(4)=0.6 , μA(5)=1
μB(1)=1, μB(2)=0.5 , μB(3)=0.01 , μB(4)=0, μB(5)=0


模糊集的表示方法

(1)、論域離散且爲有限
若論域 U={u1, … , un}爲離散論域,模糊集A表示爲:
A= {μA(u1), μA(u2), … , μA(un)}
也可寫爲:
A= μA(u1)/u1 + μA(u2)/u2 + … + μA(un)/un
其中,隸屬度爲0的元素能夠不寫。

例如:

A = 1/u1+0.7/u2+0/u3+0.4/u4
  = 1/u1+0.7/u2+0.4/u4

(2)、論域連續
若論域是連續的,則模糊集可用實函數表示。

例如:以年齡爲論域U=[0,100], 「年輕」和「年老」這兩個概念可表示爲:

(3)、通常表示方法
無論論域 U 是有限的仍是無限的,是連續的亦或是離散的,扎德( L. A. Zadeh )又給出了一種相似於積分的通常表示形式:

這裏的記號不是數學中的積分符號,也不是求和,只是表示論域中各元素與其隸屬度對應關係的總括。

模糊集的運算

  • 模糊集的包含運算
    • 設A、B分別是U 上的兩個模糊集,對任意u∈U,都有 μB(u) ≤ μA(u) 成立,則稱A包含B,記爲B A。
  • 模糊集的交、並、補運算
    • 設A、B分別是U上的兩個模糊集,則A和B兩個集合的並集A∪B、交集A∩B和A的補集﹁A的隸屬函數分別爲:

【例子】
設U={u1,u2,u3},
A=0.3/u1+0.8/u2+0.6/u3; B=0.6/u1+0.4/u2+0.7/u3
求A∩B,A∪B和¬A。

A∩B = (0.3∧0.6)/u1+(0.8∧0.4)/u2+(0.6∧0.7)/u3
    = 0.3/u1+0.4/u2+0.6/u3
A∪B = (0.3∨0.6)/u1+(0.8∨0.4)/u2+(0.6∨0.7)/u3
    = 0.6/u1+0.8/u2+0.7/u3
¬A  = (1-0.3)/u1+(1-0.8)/u2+(1-0.6)/u3
    = 0.7/u1+0.2/u2+0.4/u3

模糊關係

模糊關係的定義

  • 設 Ai 是 Ui (i=1,2,…,n) 上的模糊集,則稱爲A1, A2, …, An的笛卡爾乘積,它是U1×U2×…×Un上的一個模糊集。

  • 在U1×…×Un上一個n元模糊關係R是指以U1×…×Un爲論域的一個模糊集,記爲:

通常地說,當U和V都是有限論域時,U={u1,u2,…,um}V={v1,v2,…,vn},則U×V上的模糊關係R可用一個模糊矩陣表示

模糊關係的合成
  • 設R1與R2分別是U×V與V×W上的兩個模糊關係,則R1與R2的合成是指從U到W的一個模糊關係,記爲R1°R2
  • 其隸屬函數爲
  • 隸屬函數計算方法:取R1的第 i 行元素分別與R2的第 j 列元素相比較,兩個數中取其小者,而後再在所得的一組最小數中取最大的一個,以此做爲R1°R2的第 i 行第 j 列的元素。

【例子】
設有兩個模糊關係

則R1與R2的合成是


模糊變換

模糊變換的概念

A={μA(u1),μA(u2),…,μA(un)}是論域U上的模糊集,R是U×V上的模糊關係,則A°R = B稱爲模糊變換。

例如:設A={0.2,0.5,0.3}

用模糊變換可進行模糊推理

例如:設對某廚師作的一道菜進行評判
評判標準是:色(u1)、香(u2) 、味(u3),它們構成論域:U= { u1, u2 , u3}。
評判時由評委對每個評判因素分別進行打分,評判等級是好(v1)、較好(v2) 、通常(v3)、差(v4),它們構成論域:V= {v1, v2 , v3 , v4}。
僅就色而言,有60%的評委認爲這道菜「好」, 20%的評委認爲 「較好」,20%的評委認爲 「通常」,沒有評委認爲 「差」,則對「色」的評價爲:{0.6 , 0.2, 0.2, 0}
對「香」的評價爲:{0.8 , 0.1, 0.1, 0}
對「味」的評價爲:{0.3 , 0.3, 0.3, 0.1}
這樣就能夠寫出矩陣R:

假設三個評判因素在評判中所佔的權重分別是:「色」爲0.3,「香」爲0.3,「味」爲0.4。這三個權重組成了U上的一個模糊向量:A={0.3 , 0.3, 0.4}
由此可獲得評委對這道菜的綜合評判爲:

在此例中,評判結果的各項和恰好爲1,因此它就是最終評判結果。
若是不是這樣,還須要對其進行歸一化處理,將歸一化後的結果做爲最終評判結果。

模糊推理

簡單模糊推理(扎德法)

知識中只含有簡單條件,且不帶可信度因子的模糊推理稱爲簡單模糊推理。
關於如何由已知的模糊知識和證據具體地推出模糊結論,目前已經提出了多種推理方法。其中包括扎德( L. A. Zadeh )等人提出的合成推理規則。

扎德:基於模糊關係合成推理的基本思想

  • 對於知識 「IF x is A THEN y is B」,首先構造出A與B之間的模糊關係R;
  • 再將R與證據合成,求出結論。

合成推理規則
對於知識IF x is A THEN y is B

  • 首先構造出A與B之間的模糊關係R,而後經過R與證據的合成求出結論。
  • 若是已知證據是x is A’,且A與A’能夠模糊匹配,則經過下述合成運算求取B’:
    B'= A’ ◦R
  • 若是已知證據是y is B',且B與B’能夠模糊匹配,則經過下述合成運算求出A’:
    A’ =R◦B'

至於如何構造模糊關係R:

條件命題的極大極小規則:記得到的模糊關係爲Rm

A∈F(U), B∈F(V),其表示分別爲

扎德把Rm定義爲:


【例子】
U=V={1,2,3,4,5}, A=1/1+0.5/2, B=0.4/3+0.6/4+1/5
並設模糊知識爲:IF x is A THEN y is B
模糊證據爲:x is A’
其中, A’的模糊集爲: A’ =1/1+0.4/2+0.2/3

則:由模糊知識可獲得 Rm

求B’:B’= A’ ◦R

若已知證據爲: y is B’
B'=0.2/1+0.4/2+0.6/3+0.5/4 +0.3/5
則:


模糊計算的流程

模糊計算適用

  1. 複雜且沒有完整數學模型的非線性問題:可在不知曉具體模型的狀況下利用經驗規則求解;
  2. 與其它智能算法結合實現優點互補: 提供了將人類在識別、決策、理解等方面的模糊性引入機器及其控制的途徑。

模糊計算的過程

  • 模糊規則庫:
    • 是專家提供的模糊規則。
  • 模糊化:
    • 是根據隸屬度函數從具體的輸入獲得對模糊集隸屬度的過程。
  • 推理方法:
    • 是從模糊規則和輸入對相關模糊集的隸屬度獲得模糊結論的方法。
  • 去模糊化:
    • 就是將模糊結論轉化爲具體的、精確的輸出的過程。

模糊計算的通常流程:

神經網絡系統

人工神經網絡概述

人工智能的各類學說

  • 符號(功能)主義:符號邏輯推理
  • 聯結(結構)主義:人工神經網絡
  • 行爲主義:智能行爲模擬, 「模式-動做」
    聯結主義的觀點:智能的寓所在大腦皮層,它由大量非線性神經元互聯而成 並行處理的神經網絡。

對比這幾種模擬方法:

神經網絡:是一種對人類智能的結構模擬方法,它是經過對大量人工神經元的普遍並行互聯,構造人工神經網絡系統去模擬生物神經系統的智能機理的。
進化計算:是一種對人類智能的演化模擬方法,它是經過對生物遺傳和演化過程的認識,用進化算法去模擬人類智能的進化規律的。
模糊計算:是一種對人類智能的邏輯模擬方法,它是經過對人類處理模糊現象的認知能力的認識,用模糊邏輯去模擬人類的智能行爲的。
  • 人工神經網絡(ANN)是反映人腦結構及功能的一種抽象數學模型,是由大量神經元節點互連而成的複雜網絡,用以模擬人類進行知識的表示與存儲以及利用知識進行推理的行爲。
  • 簡單地講,它是一個數學模型,能夠用電子線路來實現,也能夠用計算機程序來模擬,是人工智能研究的一種方法。
  • 人工神經網絡力求從四個方面模擬人腦的智能行爲: 物理結構,計算模擬,存儲與操做,訓練

人工神經網絡的特性

  • 並行分佈處理:並行結構,耐故障;
  • 非線性映射:任意非線性映射能力;
  • 經過訓練進行學習:經過數據記錄進行訓練,能處理由數學模型或描述規則難以處理的問題;
  • 適應與集成:自適應和信息融合能力;
  • 硬件實現:快速和大規模處理能力。

人工神經元模型

MP模型是美國心理學家麥克洛奇(W.McM ulloch)和數理邏輯學家皮茨(W.Pitts) 根據生物神經元的功能和結構,於1943年提出的一種將神經元看做二進制閾值元件的簡單模型。MP模型是大多數神經網絡模型的基礎。
MP模型示意圖:

  • 人工神經元是仿照生物神經元提出的,神經元能夠有N個輸入:
    x1,x2,x3,...,xN
  • 每一個輸入端與神經元之間有必定的聯接權值:
    w1,w2,w3,...,wN
  • 神經元總的輸入爲對每一個輸入的加權求和,同時減去閾值θ。u表明神經元的活躍值,即神經元狀態:
  • 神經元的輸出y是對u的映射:
  • f 稱爲輸出函數(激勵函數,激活函數),能夠有不少形式:

輸出函數的做用

  • 控制輸入對輸出的激活做用

  • 對輸入、輸出進行函數轉換

  • 將可能無限域的輸入變換成指定的有限範圍內的輸出

  • 神經元的模型肯定以後,一個神經網絡的特性及能力主要取決於網絡的拓撲結構及學習方法

  • 人工神經網絡(ANN)能夠當作是以人工神經元爲結點,用有向加權弧鏈接起來的有向圖

    • 人工神經元就是對生物神經元的模擬
    • 有向弧則是軸突—突觸—樹突對的模擬
    • 有向弧的權值表示相互鏈接的兩我的工神經元間相互做用的強弱。

人工神經網絡的分類


人工神經網絡模型是指對網絡結構、聯結權值和學習能力的總括。經常使用的網絡模型已有數十種。例如:
傳統的感知機模型;具備偏差反向傳播功能的反向傳播網絡模型;採用多變量插值的徑向基函數網絡模型;創建在統計學習理論基礎上的支撐向量機網絡模型;採用反饋聯接方式的反饋網絡模型;基於模擬退火算法的隨機網絡模型。

前饋網絡

單層前饋網絡

單層前饋網絡是指那種只擁有單層計算節點的前向網絡。它僅含有輸入層和輸出層,且只有輸出層的神經元是可計算節點。

其中,輸入向量爲X=(x1,x2,…,xn);輸出向量爲Y=(y1,y2,…,ym);輸入層各個輸入到相應神經元的鏈接權值分別是wij,i=1,2,…,n,j=1,2,…, m。
若假設各神經元的閾值分別是θj,j=1,2,…,m,則各神經元的輸出yj, j=1,2,…,m分別爲:

其中,由全部鏈接權值wij構成的鏈接權值矩陣W爲:

在實際應用中,該矩陣是經過大量的訓練示例學習而造成的。

多層前饋網絡

多層前饋網絡是指那種除擁有輸入、輸出層外,還至少含有一個、或更多個隱含層的前饋網絡。典型表明:BP網絡。

隱含層做用:經過對輸入層信號的加權處理,將其轉移成更能被輸出層接受的形式。

反饋網絡

反饋網絡是指容許採用反饋聯結方式所造成的神經網絡。反饋聯結方式:是指一個神經元的輸出能夠被反饋至同層或前層的神經元。典型表明:Hopfield網絡。

前饋網絡與反饋網絡的區別

  • 前饋網絡:非循環鏈接模式,每一個神經元的輸入都沒有包含該神經元先前的輸出,所以不具備「短時間記憶」的性質。
  • 反饋網絡:每一個神經元的輸入都有可能包含有該神經元先前輸出的反饋信息,這就有點相似於人類的短時間記憶的性質。

傳統的感知器模型

感知器是美國學者羅森勃拉特(Rosenblatt)於1957年爲研究大腦的存儲、學習和認知過程而提出的一類具備自學習能力的神經網絡模型,其拓撲結構是一種分層前向網絡。包括:單層感知器和多層感知器。

使用感知器的主要目的是 爲了對外部輸入進行分類
羅森勃拉特已經證實,若是外部輸入是線性可分的(指存在一個超平面能夠將它們分開),則單層感知器必定可以把它劃分爲兩類。其判別超平面由以下判別式肯定:

做爲例子,下面討論用單個感知器實現邏輯運算的問題。

單層感知器

單層感知器是一種只具備單層可調節鏈接權值神經元的前向網絡,這些神經元構成了單層感知器的輸出層,是感知器的可計算節點。

  • 在單層感知器中,每一個可計算節點都是一個線性閾值神經元。當輸入信息的加權和大於或等於閾值時,輸出爲1,不然輸出爲0或-1。
  • 單層感知器的輸出層的每一個神經元都只有一個輸出,且該輸出僅與本神經元的輸入及聯接權值有關,而與其餘神經元無關。
  • 單層感知器能夠很好地實現「與」、「或」、「非」運算,但卻 不能解決「異或」問題

多層感知器

多層感知器是經過在單層感知器的輸入、輸出層之間加入一層或多層處理單元所構成的。

  • 拓撲結構與多層前饋網絡類似,差異在於其計算節點的鏈接權值是可變的。
  • 輸入與輸出呈現高度非線性的映射關係。

BP網絡模型

偏差反向傳播(Error Back Propagation)網絡簡稱爲BP網絡,是由美國加州大學的魯梅爾哈特和麥克萊蘭於1985年提出的一種網絡模型。

在BP網絡中,同層節點之間不存在相互鏈接,層與層之間多采用全互連方式,且各層的鏈接權值可調。BP網絡實現了明斯基的多層網絡的設想,是當今神經網絡模型中使用最普遍的一種。

如上圖所示,BP網絡的網絡拓撲結構是多層前向網絡。

對BP網絡需說明如下兩點:
第一,BP網絡的每一個處理單元均爲非線性輸入/輸出關係,其做用函數一般採用的是可微的Sigmoid函數,如:

第二,BP網絡的學習過程是由工做信號的正向傳播和偏差信號的反向傳播組成的。所謂正向傳播,是指輸入模式經隱層到輸出層,最後造成輸出模式;所謂偏差反向傳播,是指從輸出層開始逐層將偏差傳到輸入層,並修改各層聯接權值,使偏差信號爲最小的過程。

BP網絡模型

Hopfield網絡是由美國加州工學院物理學家霍普菲爾特1982年提出來的一種單層全互連的對稱反饋網絡模型。分爲離散Hopfield網絡和連續Hopfield網絡。

離散Hopfield網絡是在非線性動力學的基礎上由若干基本神經元構成的一種單層全互連網絡,其任意神經元之間均有鏈接,而且是一種對稱鏈接結構。
離散Hopfield網絡模型是一個離散時間系統,每一個神經元只有0和1(或-1和1)兩種狀態,任意神經元i和j之間的鏈接權值爲Wij。因爲神經元之間爲對稱鏈接,且神經元自身無鏈接,所以有

由該鏈接權值所構成的鏈接矩陣是一個零對角的對稱矩陣。

在 Hopfield網絡中,雖然神經元自身無鏈接,但因爲每一個神經元都與其餘神經元相連,即每一個神經元的輸出都將經過突觸鏈接權值傳遞給別的神經元,同時每一個神經元又都接受其餘神經元傳來的信息,這樣對每一個神經元來講,其輸出通過其餘神經元后又有可能反饋給本身,所以Hopfidld網絡是一種反饋神經網絡 。


【例子】
已知網絡結構如圖所示,網絡輸入輸出路標所示。其中,f(x)爲x的符號函數,bias取常數1,設初始值隨機取成(0.75,0.5,-0.6)。利用偏差傳播學習算法調整神經網絡權值。

解題過程:


機器學習系統

機器學習的基本概念

  • 機器學習是人工智能的核心,經過使機器模擬人類學習行爲,智能化地從過去的經歷中得到經驗,從而改善其總體性能,重組內在知識結構,並對未知事件進行準確的推斷。
  • 機器學習在科學和工程諸多領域都有着很是普遍的應用,例如金融分析、數據挖掘、生物信息學、醫學診斷等。生活中常見的一些智能系統也普遍使用機器學習算法,例如電子商務、手寫輸入、郵件過濾等。

機器學習的定義:
西蒙(Simon,1983):學習就是系統中的適應性變化,這種變化使系統在重複一樣工做或相似工做時,可以作得更好。

明斯基(Minsky,1985):學習是在人們頭腦裏(心理內部)有用的變化。

學習是一個有特定目的知識獲取和能力增加過程,其內在行爲是得到知識、積累經驗、發現規律等,其外部表現是改進性能、適應環境、實現自我完善等。

機器學習是研究如何使用機器來模擬人類學習活動的一門學科。

進入21世紀,機器學習的階段研究熱點:
2000-2006年的流形學習、2006-2011年的稀疏學習、2012年-至今的深度學習、將來:遷移學習?

機器學習與深度學習的關係

  • 機器學習是一種實現人工智能的方法,深度學習是一種實現機器學習的技術。深度學習原本並非一種獨立的學習方法,其自己也會用到監督和無監督的學習方法來訓練深度神經網絡。
  • 最初的深度學習是利用深度神經網絡來解決特徵表達的一種學習過程。

提一下,深度學習目前存在如下問題

  1. 深度學習模型須要大量的訓練數據,才能展示出神奇的效果,但現實生活中每每會遇到小樣本問題,此時深度學習方法沒法下手,傳統的機器學習方法就能夠處理。
  2. 有些領域,採用傳統的簡單的機器學習方法,能夠很好地解決了,不必非得用複雜的深度學習方法。
  3. 深度學習的思想,來源於人腦的啓發,但毫不是人腦的模擬。舉個例子,一個三歲的小孩看一輛自行車以後,再見到哪怕外觀徹底不一樣的自行車,小孩也十有八九就能作出那是一輛自行車的判斷,也就是說,人類的學習過程每每不須要大規模的訓練數據,而如今的深度學習方法顯然不是對人腦的模擬。

機器學習策略與基本結構

機器學習的主要策略

  • 按照學習中使用推理的多少,機器學習所採用的策略大致上可分爲4種:
    • 機械學習:記憶學習方法,即把新的知識存儲起來,供須要時檢索調用,而不須要計算和推理。
    • 示教學習:外界輸入知識與內部知識的表達不徹底一致,系統在接受外部知識時須要推理、翻譯和轉化。
    • 類比學習:須要發現當前任務與已知知識的類似之處,經過類比給出完成當前任務的方案。
    • 示例學習:須要從一組正例和反例中分析和總結出通常性的規律,在新的任務中推廣、驗證、修改規律。

學習系統的基本結構

  • 影響學習系統設計的要素
    • 環境:環境向系統提供信息的水平(通常化程度)和質量(正確性)
    • 知識庫:表達能力,易於推理,容易修改,知識表示易於擴展。

概括學習

  • 概括學習是應用概括推理進行學習的一種方法。

  • 概括學習的模式:

    實驗規劃過程經過對實例空間的搜索完成實例選擇,並將這些選中拿到的活躍實例提交給解釋過程。解釋過程對實例加以適當轉換,把活躍實例變換爲規則空間中的特定概念,以引導規則空間的搜索。

  • 概括學習是目前研究得最多的學習方法,其學習目的是爲了得到新概念、構造新規則或發現新理論。

  • 根據概括學習有無教師指導,可把它分爲

    • 示例學習:給學習者提供某一律唸的一組正例和反例,學習者概括出一個總的概念描述(規則),並使這個描述適合於全部的正例,排除全部的反例。
    • 觀察發現學習:
      • 概念聚類:按照必定的方式和準則分組,概括概念
      • 機器發現:從數據和事例中發現新知識

類比學習

  • 類比學習(learning by analogy)就是經過類比,即經過對類似事物加以比較所進行的一種學習 。

  • 類比學習是利用二個不一樣領域(源域、目標域)中的知識類似性,能夠經過類比,從源域的知識(包括類似的特徵和其它性質)推導出目標域的相應知識,從而實現學習。例如:

    • 一個從未開過truck的司機,只要他有開car的知識就可完成開truck的任務。
    • 若把某我的比喻爲消防車,則可經過觀察消防車的行爲,推斷出這我的的性格。
  • 類比學習系統能夠使一個已有的計算機應用系統轉變爲適應於新的領域,來完成原先沒有設計的相相似的功能。

  • 類比推理過程:

    • 回憶與聯想:找出當前狀況的類似狀況
    • 選擇:選擇最類似的狀況及相關知識
    • 創建對應關係:創建類似元素之間的映射
    • 轉換:求解問題或產生新的知識
  • 類比學習研究類型

    • 問題求解型的類比學習:求解一個新問題時,先回憶之前是否求解過相似問題,如果,則以此爲依據求解新問題。
    • 預測推理型的類比學習
      • 傳統的類比法:用來推斷一個不徹底肯定的事物可能還有的其餘屬性
      • 因果關係型:已知因果關係S1:A->B,若是有A'≌A,則可能有B’知足A'->B'

解釋學習

解釋學習(Explanation-based learning, EBL)興起於20世紀80年代中期,根據任務所在領域知識和正在學習的概念知識,對當前實例進行分析和求解,得出一個表徵求解過程的因果解釋樹,以獲取新的知識。
例如:學生根據教師提供的目標概念、該概念的一個例子、領域理論及可操做準則,首先構造一個解釋來講明爲何該例子知足目標概念,而後將解釋推廣爲目標概念的一個知足可操做準則的充分條件。

解釋學習過程和算法
米切爾提出了一個解釋學習的統一算法EBG,創建了基於解釋的歸納過程,並用知識的邏輯表示和演繹推理進行問題求解。其通常性描述爲:

  • 給定:領域知識DT、目標概念TC、訓練實例TE、操做性準則OC
  • 找出:知足OC的關於TC的充分條件

EBG算法可歸納爲兩步:

  1. 構造解釋:運用領域知識進行演繹,證實提供給系統的訓練實例爲何是知足目標概念的一個實例。
  2. 獲取通常性的知識:
    • 任務:對上一步獲得的解釋結構進行通常化的處理,從而獲得關於目標概念的通常性知識。
    • 方法:將常量換成變量,並把某些不重要的信息去掉,只保留求解問題必須的關鍵信息。

神經網絡學習(ppt-21-32)

Hebb學習

糾錯學習

競爭學習及隨機學習

感知器學習

單層感知器學習算法可描述以下:
(1)、設t=0,初始化鏈接權和閾值。即給wi(0)(i=1, 2, … ,n)及θ(0)分別賦予一個較小的非零隨機數,做爲初值。其中,wi(0)是第0次迭代時輸入向量中第i個輸入的鏈接權值;θ(0)是第0次迭代時輸出節點的閾值;
(2)、提供新的樣本輸入xi(t)(i=1, 2, … , n)和指望輸出d(t);
(3)、計算網絡的實際輸出:

(4)、若y(t)=d(t),不須要調整鏈接權值,轉(6)。不然,須要調整權值;
(5)、調整鏈接權值;

其中,η是一個增益因子,用於控制修改速度,其值若是太大,會影響wi(t)的收斂性;若是過小,又會使wi(t)的收斂速度太慢;
(6)、判斷是否知足結束條件,若知足,算法結束;不然,將t值加1,轉(2)從新執行。這裏的結束條件通常是指wi(t)對一切樣本均穩定不變。
若輸入的兩類樣本是線性可分的,則該算法就必定會收斂。不然,不收斂。


【例子】用單層感知器實現邏輯「與」運算。

解:根據「與」運算的邏輯關係,可將問題轉換爲:
輸入向量:
X1=[0, 0, 1, 1]
X2=[0, 1, 0, 1]
輸出向量:
Y=[0, 0, 0, 1]
爲減小算法的迭代次數,設初始鏈接權值和閾值取值以下:
w1(0)=0.5, w2(0)=0.7, θ(0)=0.6
並取增益因子η=0.4

算法的學習過程以下:
設兩個輸入爲x1(0)=0x2(0)=0,其指望輸出爲d(0)=0,實際輸出爲:

y(0)=f(w1(0)x1(0)+ w2(0)x2(0)-θ(0)) 
    =f(0.5*0+0.7*0-0.6)
    =f(-0.6)
    =0

實際輸出與指望輸出相同,不須要調節權值。
再取下一組輸入:x1(0)=0x2(0)=1,指望輸出d(0)=0,實際輸出:

y(0)=f(w1(0) x1(0)+ w2(0) x2(0)-θ(0)) 
    =f(0.5*0+0.7*1-0.6)
    =f(0.1)
    =1

實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(1)=θ(0)+η(d(0)- y(0))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(1)=w1(0)+η(d(0)- y(0))x1(0)=0.5+0.4*(0-1)*0=0.5
w2(1)=w2(0)+η(d(0)- y(0))x2(0)=0.7+0.4*(0-1)*1=0.3

取下一組輸入:x1(1)=1x2(1)=0,其指望輸出爲d(1)=0,實際輸出爲:

y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
      =f(0.5*1+0.3*0-1)
      =f(-0.51)
      =0

實際輸出與指望輸出相同,不須要調節權值。
再取下一組輸入:x1(1)=1和x2(1)=1,其指望輸出爲d(1)=1,實際輸出爲:

y(1)=f(w1(1) x1(1)+ w2(1) x2(1)-θ(1))
    =f(0.5*1+0.3*1-1)
    =f(-0.2)
    =0

實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(2)=θ(1)+η(d(1)- y(1))*(-1)=1+0.4*(1-0)*(-1)=0.6
w1(2)=w1(1)+η(d(1)- y(1))x1(1)=0.5+0.4*(1-0)*1=0.9
w2(2)=w2(1)+η(d(1)- y(1))x2(1)=0.3+0.4*(1-0)*1=0.7

取下一組輸入:x1(2)=0x2(2)=0,其指望輸出爲d(2)=0,實際輸出爲:
y(2)=f(0.9*0+0.7*0-0.6)=f(-0.6)=0
實際輸出與指望輸出相同,不須要調節權值.
再取下一組輸入:x1(2)=0x2(2)=1,指望輸出爲d(2)=0,實際輸出爲:
y(2)=f(0.9*0+0.7*1-0.6)=f(0.1)=1
實際輸出與指望輸出不一樣,須要調節權值,其調整以下:

θ(3)=θ(2)+η(d(2)- y(2))*(-1)=0.6+0.4*(0-1)*(-1)=1
w1(3)=w1(2)+η(d(2)- y(2))x1(2)=0.9+0.4*(0-1)*0=0.9
w2(3)=w2(2)+η(d(2)- y(2))x2(2)=0.7+0.4*(0-1)*1=0.3

實際上,由與運算的閾值條件可知,此時的閾值和鏈接權值以知足結束條件,算法能夠結束。
對此,可檢驗以下:
對輸入:「0 0」有y=f(0.9*0+0.3*0-1)=f(-1)=0
對輸入:「0 1」有y=f(0.9*0+0.3*0.1-1)=f(-0.7)=0
對輸入:「1 0」有y=f(0.9*1+0.3*0-1)=f(-0.1)=0
對輸入:「1 1」有y=f(0.9*1+0.3*1-1)=f(0.2)=1


多層感知器能夠解決非線性可分問題,但其隱層神經元的指望輸出卻不易給出。
而單層感知器學習是一種有導師指導的學習過程,所以其學習算法沒法直接用於多層感知器。
因爲多層感知器和BP網絡都屬於前向網絡,並能較好解決多層前饋網絡的學習問題.
所以,可用BP學習來解決多層感知器學習問題。

BP網絡學習

Hopfield網絡學習

其餘機器學習方法

  • 遷移學習:將在先前任務中學到的知識或技能應用於一個新的任務或新的領域
  • 加強機器學習:從變化環境中學習蘊含在環境中的知識
  • 流形機器學習:把一組在高維空間中的數據在低維空間中從新表示
  • 半監督機器學習:結合標記和非標記樣本
  • 多實例機器學習:一個對象可能同時有多個描述
  • Ranking機器學習:得到關於檢索中「喜歡」順序的模型
  • 數據流機器學習:從數據流中發現知識
  • ……

相關的一些概念:決策樹、 隨機森林、邏輯迴歸、樸素貝葉斯、K最近臨算法、馬爾可夫……

仿生進化系統(GA)

遺傳算法最先由美國密西根大學的J. Holland 教授提出,起源於20世紀60年代對天然和人工自適應系統的研究。70年代,De Jong 基於遺傳算法的思想在計算機上進行了大量的純數值函數優化計算實驗。在一系列研究工做的基礎上,80年代由Goldberg進行概括總結,造成了遺傳算法的基本框架

遺傳算法的定義

遺傳算法(Genetic Algorithm, GA)是模擬生物在天然環境種的遺傳和進化過程而造成的一種自適應全局優化機率搜索算法。

遺傳算法的基本思想

是從初始種羣出發,採用優勝劣汰、適者生存的天然法則選擇個體,並經過雜交、變異來產生新一代種羣,如此逐代進化,直到知足目標爲止。

遺傳算法的基本過程

算法主要內容和基本步驟

(1) 選擇編碼策略,將問題搜索空間中每一個可能的點用相應的編碼策略表示出來,即造成染色體;
(2) 定義遺傳策略,包括種羣規模N,交叉、變異方法,以及選擇機率Pr、交叉機率Pc、變異機率Pm等遺傳參數;
(3) 令t=0,隨機選擇N個染色體初始化種羣P(0);
(4) 定義適應度函數f(f>0);
(5) 計算P(t)中每一個染色體的適應值;
(6) t=t+1;
(7) 運用選擇算子,從P(t-1)中獲得P(t);
(8) 對P(t)中的每一個染色體,按機率Pc參與交叉;
(9) 對染色體中的基因,以機率Pm參與變異運算;
(10) 判斷羣體性能是否知足預先設定的終止標準,若不知足則返回(5)。

經常使用的遺傳編碼算法

  • 霍蘭德二進制碼
    • 二進制編碼是將原問題的結構變換爲染色體的位串結構。在二進制編碼中,首先要肯定二進制字符串的長度 ,該長度與變量的定義域和所求問題的計算精度有關。
  • 格雷編碼(Gray Code)
    • 格雷編碼是對二進制編碼進行變換後所獲得的一種編碼方法。這種編碼方法要求兩個連續整數的編碼之間只能有一個碼位不一樣,其他碼位都是徹底相同的。它有效地解決了漢明懸崖問題。
  • 實數編碼
    • 實數編碼是將每一個個體的染色體都用某一範圍的一個實數(浮點數)來表示,其編碼長度等於該問題變量的個數。
    • 這種編碼方法是將問題的解空間映射到實數空間上,而後在實數空間上進行遺傳操做。因爲實數編碼使用的是變量的真實值,所以這種編碼方法也叫作真值編碼方法。
    • 實數編碼適應於那種多維、高精度要求的連續函數優化問題。
  • 字符編碼

適應度函數

適應度函數是一個用於對個體的適應性進行度量的函數。一般,一個個體的適應度值越大,它被遺傳到下一代種羣中的機率也就越大。

(1) 經常使用的適應度函數

  • 原始適應度函數:直接將待求解問題的目標函數f(x)定義爲遺傳算法的適應度函數。

    • 優勢:可以直接反映出待求解問題的最初求解目標
    • 缺點:是有可能出現適應度值爲負的狀況。
  • 標準適應度函數

    • 在遺傳算法中,通常要求適應度函數非負,並其適應度值越大越好。這就每每須要對原始適應函數進行某種變換,將其轉換爲標準的度量方式,以知足進化操做的要求,這樣所獲得的適應度函數被稱爲標準適應度函數。
      (2) 適應度函數的加速變換
  • 在某些狀況下,須要對適應度函數進行加速速度。

  • 適應度函數的加速變換有兩種基本方法,即線性加速與非線性加速。

  • 線性加速

    • 線性加速的適應度函數的定義以下:
    • f'(x)=αf(x)+β
    • 其中,f(x)是加速轉換前的適應度函數;f’(x)是加速轉換後的適應度函數;α和β是轉換系數,它們應知足以下條件:
      • 變化後獲得的新的適應度函數平均值要等於原適應度函數的平均值。即
      • 其中,xi(i=1,…,n)爲當前代中的染色體。
      • 變換後所獲得的新的種羣個體所具備的最大適應度要等於其平均適應度的指數倍數。即有關係:
      • 式中,xi(i=1,…,n)爲當前代中的染色體,M是指將當前的最大適應度放大爲平均值的M倍。目的是經過M拉開不一樣染色體適應度值的差距。
  • 非線性加速

    • 冪函數變換方法
      • f'(x)=f(x)k
    • 指數變換方法
      • f'(x)=exp(-βf(x))

基本遺傳操做

(1)、選擇操做
選擇(Selection)操做是指根據選擇機率按某種策略從當前種羣中挑選出必定數目的個體,使它們可以有更多的機會被遺傳到下一代中。
經常使用的選擇策略:

  • 比例選擇
  • 排序選擇
  • 競技選擇
    • 其中比例選擇基本思想是:各個個體被選中的機率與其適應度大小成正比。
    • 經常使用的比例選擇策略:輪盤賭選擇、繁殖池選擇
    • 輪盤賭選擇
      輪盤賭選擇法又被稱爲轉盤賭選擇法或輪盤選擇法。在這種方法中,個體被選中的機率取決於該個體的相對適應度。而相對適應度的定義爲:

      其中,P(xi)是個體xi的相對適應度,即個體xi被選中的機率;f(xi)是個體xi的原始適應度;是種羣的累加適應度。

輪盤賭選擇算法的基本思想是:根據每一個個體的選擇機率P(xi)將一個圓盤分紅N個扇區,其中第i個扇區的中心角爲:

再設立一個移動指針,將圓盤的轉動等價爲指針的移動。選擇時,假想轉動圓盤,若靜止時指針指向第i個扇區,則選擇個體i。
從統計角度看,個體的適應度值越大,其對應的扇區的面積越大,被選中的可能性也越大。這種方法有點相似於發放獎品使用的輪盤,並帶有某種賭博的意思,所以亦被稱爲輪盤賭選擇。

(2)、交叉操做

  • 交配重組是天然界中生物遺傳進化的一個主要環節,也是遺傳算法中產生新的個體的最主要方法。
  • 交叉(Crossover)操做是指按照某種方式對選擇的父代個體的染色體的部分基因進行交配重組,從而造成新的個體。
  • 根據個體編碼方法的不一樣,遺傳算法中的交叉操做可分爲二進制交叉和實值交叉兩種類型。
    • 二進制交叉
    • 二進制交叉(Binary Valued Crossover)是指二進制編碼狀況下所採用的交叉操做,它主要包括單點交叉、兩點交叉、多點交叉和均勻交叉等方法。
      • 單點交叉
        • 單點交叉也稱簡單交叉,它是先在兩個父代個體的編碼串中隨機設定一個交叉點,而後對這兩個父代個體交叉點前面或後面部分的基因進行交換,並生成子代中的兩個新的個體。假設兩個父代的個體串分別是:
        • X=x1 x2 … xk xk+1 … xn
        • Y=y1 y2 … yk yk+1 … yn
        • 隨機選擇第k位爲交叉點,若採用對交叉點後面的基因進行交換的方法,但點交叉是將X中的xk+1到xn部分與Y中的yk+1到yn部分進行交叉,交叉後生成的兩個新的個體是:
        • X'= x1 x2 … xk yk+1 … yn
        • Y'= y1 y2 … yk xk+1 … xn
      • 兩點交叉
        • 兩點交叉是指先在兩個父代個體的編碼串中隨機設定兩個交叉點,而後再按這兩個交叉點進行部分基因交換,生成子代中的兩個新的個體。
        • 假設兩個父代的個體串分別是:
        • X=x1 x2 … xi … xj … xn
        • Y=y1 y2 … yi … yj …,yn
        • 隨機設定第i、j位爲兩個交叉點(其中i< j < n),兩點交叉是將X中的xi+1到xj部分與Y中的yi+1到yj部分進行交換,交叉後生成的兩個新的個體是:
        • X'= x1 x2 … xi yi+1 … yj xj+1 … xn
        • Y'= y1 y2 … yi xi+1 … xj yj+1 … yn
      • 多點交叉
        • 多點交叉是指先隨機生成多個交叉點,而後再按這些交叉點分段地進行部分基因交換,生成子代中的兩個新的個體。
        • 假設交叉點個數爲m,則可將個體串劃分爲m+1個分段,其劃分方法是:
          • 當m爲偶數時,對所有交叉點依次進行兩兩配對,構成m/2個交叉段。
          • 當m爲奇數時,對前(m-1)個交叉點依次進行兩兩配對,構成(m-1)/2個交叉段,而第m個交叉點則按單點交叉方法構成一個交叉段。
      • 均勻交叉
        • 均勻交叉(Uniform Crossover)是先隨機生成一個與父串具備相同長度,並被稱爲交叉模版(或交叉掩碼)的二進制串,而後再利用該模版對兩個父串進行交叉,即將模版中1對應的位進行交換,而0對應的位不交換,依今生成子代中的兩個新的個體。事實上,這種方法對父串中的每一位都是以相同的機率隨機進行交叉的。
    • 實值交叉
      • 實值交叉是在實數編碼狀況下所採用的交叉操做,主要包括離散交叉和算術交叉,下面主要討論離散交叉(部分離散交叉和總體離散交叉) 。
      • 部分離散交叉是先在兩個父代個體的編碼向量中隨機選擇一部分份量,而後對這部分份量進行交換,生成子代中的兩個新的個體。
      • 總體交叉則是對兩個父代個體的編碼向量中的全部份量,都以1/2的機率進行交換,從而生成子代中的兩個新的個體。
      • 以部分離散交叉爲例,假設兩個父代個體的n維實向量分別是 X=x1x2… xi…xk…xnY=y1y2…yi…yk…yn,若隨機選擇對第k個份量之後的全部份量進行交換,則生成的兩個新的個體向量是:
        • X'= x1 x2 … xk yk+1 … yn
        • Y'= y1 y2 … yk xk+1 … xn

(3)、變異操做
變異(Mutation)是指對選中個體的染色體中的某些基因進行變更,以造成新的個體。變異也是生物遺傳和天然進化中的一種基本現象,它可加強種羣的多樣性。遺傳算法中的變異操做增長了算法的局部隨機搜索能力,從而能夠維持種羣的多樣性。根據個體編碼方式的不一樣,變異操做可分爲二進制變異和實值變異兩種類型。

  • 二進制變異
    • 當個體的染色體採用二進制編碼表示時,其變異操做應採用二進制變異方法。該變異方法是先隨機地產生一個變異位,而後將該變異位置上的基因值由「0」變爲「1」,或由「1」變爲「0」,產生一個新的個體。
  • 實值變異
    • 當個體的染色體採用實數編碼表示時,其變異操做應採用實值變異方法。該方法是用另一個在規定範圍內的隨機實數去替換原變異位置上的基因值,產生一個新的個體。
      • 基於位置的變異方法
        • 該方法是先隨機地產生兩個變異位置,而後將第二個變異位置上的基因移動到第一個變異位置的前面。
      • 基於次序的變異
        • 該方法是先隨機地產生兩個變異位置,而後交換這兩個變異位置上的基因。

遺傳算法的優點

  1. 適應度函數不受連續、可微等條件的約束,適用範圍很廣。
  2. 不容易陷入局部極值,能以很大的機率找到全局最優解。
  3. 因爲其固有的並行性,適合於大規模並行計算。
  4. 不是盲目窮舉,而是啓發式搜索。

羣智能系統

由James Kenney(社會心理學博士)和Russ Eberhart(電子工程學博士)於1995年提出粒子羣算法(Particle Swarm Optimization, PSO)。

蟻羣算法(Ant Colony Optimization,ACO)

經過遺留在來往路徑上的信息素(Pheromone)的揮發性化學物質來進行通訊和協調。

  • 螞蟻在尋找食物的過程當中每每是隨機選擇路徑的,但它們能感知當前地面上的信息素濃度,並傾向於往信息素濃度高的方向行進。信息素由螞蟻自身釋放,是實現蟻羣內間接通訊的物質。
  • 因爲較短路徑上螞蟻的往返時間比較短,單位時間內通過該路徑的螞蟻多,因此信息素的積累速度比較長路徑快。所以,當後續螞蟻在路口時,就能感知先前螞蟻留下的信息,並傾向於選擇一條較短的路徑前行。
  • 這種正反饋機制使得愈來愈多的螞蟻在巢穴與食物之間的最短路徑上行進。因爲其餘路徑上的信息素會隨着時間蒸發,最終全部的螞蟻都在最優路徑上行進。

ACO基本要素

  • 路徑構建
    僞隨機比例選擇規則
    • 對於每隻螞蟻k,路徑記憶向量Rk按照訪問順序記錄了全部k已經通過的城市序號。
    • 設螞蟻k當前所在城市爲i,則其選擇城市j做爲下一個訪問對象的機率如上式。Jk(i) 表示從城市i 能夠直接到達的、且又不在螞蟻訪問過的城市序列Rk中的城市集合。
    • η(i, j)是一個啓發式信息,一般由η (i, j)=1/dij 直接計算。
    • τ (i, j) 表示邊(i, j)上的信息素量。
    • 長度越短、信息素濃度越大的路徑被螞蟻選擇的機率越大。
    • α和β是兩個預先設置的參數,用來控制啓發式信息與信息素濃度做用的權重關係。
    • α =0時,算法演變成傳統的隨機貪心算法,最鄰近城市被選中的機率最大。當β =0時,螞蟻徹底只根據信息素濃度肯定路徑,算法將快速收斂,這樣構建出的最優路徑與實際目標差別較大,算法性能較差。
  • 信息素更新:
    (1) 在算法初始化時,問題空間中全部的邊上的信息素都被初始化爲τ0。
    (2) 算法迭代每一輪,問題空間中的全部路徑上的信息素都會發生蒸發,咱們爲全部邊上的信息素乘上一個小於1的常數( ρ: 信息素的蒸發率)。信息素蒸發是天然界自己固有的特徵,在算法中可以幫助避免信息素的無限積累,使得算法能夠快速丟棄以前構建過的較差的路徑。
    (3) 螞蟻根據本身構建的路徑長度在它們本輪通過的邊上釋放信息素。螞蟻構建的路徑越短、釋放的信息素就越多。一條邊被螞蟻爬過的次數越多、它所得到的信息素也越多。
    (4) 迭代 (2),直至算法終止。
    信息素的更新公式:
    • m:螞蟻個數;
    • ρ:信息素的蒸發率,規定0<r≤1
    • Δτ (i, j):第k只螞蟻在它通過的邊上釋放的信息素量,它等於螞蟻k本輪構建路徑長度的倒數。
    • Ck:路徑長度,它是Rk中全部邊的長度和。

粒子羣優化算法

  • 源於對鳥羣捕食行爲的研究,是基於迭代的方法
  • 簡單易於實現,須要調整的參數相對較少
  • 在函數優化、神經網絡訓練、工業系統優化和模糊系統控制等領域獲得了普遍的應用。
    • 鳥羣:假設一個區域,全部的鳥都不知道食物的位置,可是它們知道當前位置離食物還有多遠。
    • PSO算法:每一個解看做一隻鳥,稱爲「粒子(particle)」,全部的粒子都有一個適應值,每一個粒子都有一個速度決定它們的飛翔方向和距離,粒子們追隨當前最優粒子在解空間中搜索。

粒子羣算法的特色

  • PSO算法收斂速度快,特別是在算法的早期,但也存在着精度較低,易發散等缺點。
  • 若加速係數、最大速度等參數太大,粒子羣可能錯過最優解,算法不收斂;
  • 而在收斂的狀況下,因爲全部的粒子都向最優解的方向飛去,因此粒子趨向同一化(失去了多樣性),使得後期收斂速度明顯變慢,同時算法收斂到必定精度時,沒法繼續優化,所能達到的精度也不高。

其餘計算智能方法

模擬退火、工免疫系統、粗集理論、EDA算法、文化進化計算、量子計算、DNA計算、智能Agent、……

多真體及天然語言理解 *

Agent的定義和譯法

Agent的定義

  • 定義1.社會中某個個體通過協商後可求得問題的解,這個個體就是agent.(明斯基,1986年)
  • 定義2.是一種經過傳感器知其環境,並經過執行器做用於該環境的實體,所以,能夠把真體定義爲一種從感知序列到實體動做的映射。(Russell and Norving,1995)
  • 定義3.是一種具備智能的實體。

Agent的譯法

建議把agent譯爲「(艾)真體」的理由:

  • Agent是一種經過傳感器感知其環境,並經過執行器做用於該環境的實體。 這個「實體」也可叫作「真體」。所以,能夠把真體定義爲一種從感知序列到實體動做的映射。
  • 譯爲「主體」多是考慮到agent具備自主性。但交互性、協調性、社會性、適應性和分佈性等不可能在譯名上所有反映出來,於是是片面的。
  • 譯爲「代理」是受到社會科學和管理科學的影響。也不能表示出agent的原義。
  • 音譯不失爲一種可取方法。
  • 有必定的物理意義。

真體的要素和特性

真體的要素

真體必須利用知識修改其內部狀態(心理狀態),以適應環境變化和協做求解的須要。真體的行動受其心理狀態驅動。人類心理狀態的要素有認知(信念、知識、學習等)、情感(願望、興趣、愛好等)和意向(意圖、目標、規劃和承諾等)三種。着重研究信念(belief)、願望(desire)和意圖(intention)的關係及其形式化描述,力圖創建真體的BDI(信念、願望和意圖)模型,已成爲真體理論模型研究的主要方向。

真體的特性

  • 行爲自主性:可以控制自身行爲,其行爲是主動的、自發的/有目標和意圖的,並能根據目標和環境要求對短時間行爲作出規劃。
  • 做用交互性:可以與環境交互做用,可以感知其所處環境,並藉助本身的行爲結果,對環境作出適當反應。
  • 環境協調性:真體存在於必定的環境中,感知環境的狀態、事件和特徵,並經過其動做和行爲影響環境,與環境保持協調。環境和真體互相依存,互相做用。
  • 面向目標性:真體可以表現出某種目標指導下的行爲,爲實現其內在目標而採起主動行爲。
  • 存在社會性:真體存在於由多個真體構成的社會環境中,與其它真體交換信息、交互做用和通信。各真體經過社會承諾,進行社會推理,實現社會意向和目標。
  • 工做協調性:各真體合做和協調工做,求解單個真體沒法處理的問題,提升處理問題的能力。
  • 運行持續性:真體的程序在起動後,可以在至關長的一段時間內維持運行狀態,不隨運算的中止而當即結束運行。
  • 系統適應性:真體不只可以感知環境,對環境作出反應,並且可以把新創建的真體集成到系統中而無需對原有的多真體系統進行從新設計,於是具備很強的適應性和可擴展性。
  • 結構分佈性:在物理上或邏輯上分佈和異構的實體(或真體),如主動數據庫、知識庫、控制器和執行器等,在多真體系統中具備分佈式結構,便於技術集成、資源共享、性能優化和系統整合。
  • 功能智能性:真體強調理性做用,可做爲描述機器智能、動物智能和人類智能的統一模型。

天然語言理解

Natural Language Understanding 俗稱人機對話。研究用電子計算機模擬人的語言交際過程,使計算機能理解和運用人類社會的天然語言如漢語、英語等,實現人機之間的天然語言通訊,以代替人的部分腦力勞動,包括查詢資料、解答問題、摘錄文獻、彙編資料以及一切有關天然語言信息的加工處理。
這一領域的研究涉及天然語言,即人們平常使用的語言,包括中文、英文、俄文、日文、德文、法文等等,因此它與語言學的研究有着密切的聯繫,但又有重要的區別。
天然語言處理並非通常地研究天然語言,而在於研製能有效地實現天然語言通訊的計算機系統,特別是其中的軟件系統。

實現人機間天然語言通訊意味着要使計算機既能理解天然語言文本的意義(即天然語言理解),也能以天然語言文原本表達給定的意圖、思想等(即天然語言生成)。
不管實現天然語言理解,仍是天然語言生成,都遠不如人們原來想象的那麼簡單,而是十分困難的。從目前的理論和技術現狀看,通用的、高質量的天然語言處理系統,仍然是較長期的努力目標,可是針對必定應用,具備至關天然語言處理能力的實用系統已經出現,有些已商品化,甚至開始產業化。典型的例子有:各類數據庫和專家系統的天然語言接口、各類機器翻譯系統、全文信息檢索系統、自動文摘系統等。

天然語言處理,即實現人機間天然語言通訊,或實現 天然語言理解天然語言生成是十分困難的。
形成困難的 根本緣由是天然語言文本和對話的各個層次上普遍存在的各類各樣的歧義性或多義性(ambiguity)。
通常狀況下,它們中的大多數都是能夠根據相應的語境和場景的規定而獲得解決的。也就是說,從整體上說,並不存在歧義。這也就是咱們平時並不感到天然語言歧義,和能用天然語言進行正確交流的緣由。可是一方面,咱們也看到,爲了消解歧義,是須要極其大量的知識和進行推理的。如何將這些知識較完整地加以收集和整理出來;又如何找到合適的形式,將它們存入計算機系統中去;以及如何有效地利用它們來消除歧義,都是工做量極大且十分困難的工做。這不是少數人短時期內能夠完成的,還有待長期的、系統的工做。

存在問題

  • 一方面,迄今爲止的語法都限於分析一個孤立的句子,上下文關係和談話環境對本句的約束和影響還缺少系統的研究,所以分析歧義、詞語省略、代詞所指、同一句話在不一樣場合或由不一樣的人說出來所具備的不一樣含義等問題,尚無明確規律可循。
  • 另外一方面,人理解一個句子不是單憑語法,還運用了大量的有關知識,包括生活知識和專門知識,這些知識沒法所有貯存在計算機裏。所以一個書面理解系統只能創建在有限的詞彙、句型和特定的主題範圍內。

如何看待語言理解

  • 從微觀上講,語言理解是指從天然語言到機器(計算機系統)內部之間的一種映射。
  • 從宏觀上看,語言理解是指機器可以執行人類所指望的某些語言功能。這些功能包括:
    • 回答有關提問;
    • 提取材料摘要;
    • 不一樣詞語敘述;
    • 不一樣語言翻譯。

天然語言理解的研究領域和方向

文字識別、語音識別、機器翻譯、自動文摘、句法分析、文本分類、信息檢索、信息獲取、信息過濾、天然語言生成、中文自動分詞、語音合成、問答系統

用天然語言與計算機進行通訊,這是人們長期以來所追求的。由於它既有明顯的實際意義,同時也有重要的理論意義:人們能夠用本身最習慣的語言來使用計算機,而無需再花大量的時間和精力去學習不很天然和習慣的各類計算機語言;人們也可經過它進一步瞭解人類的語言能力和智能的機制。

版權聲明: [人工智能入門複習總結] (https://zhouie.cn/posts/201806111/ ),由 zhouie首次發表於 北島向南的小屋 ,本文地址爲:https://zhouie.cn/posts/201806111/

相關文章
相關標籤/搜索