本節書摘來自華章計算機《人工智能:計算agent基礎》一書中的第1章,第1.5節,作者:(加)david l.poole,alan k.mackworth 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
從自動調溫器到在競争性環境中有多種目标的企業,agent在環境中行為的複雜性各不相同。agent的設計存在多個次元的複雜性。這些次元可以分開來考慮,但建造智能agent時必須組合起來。這些次元定義了人工智能的一個設計空間,空間裡的不同點可以通過改變次元值來得到。
這裡我們介紹9個次元:子產品性、表示方案、規劃期、感覺不确定性、效用不确定性、偏好、agent數量、學習和計算限制。這些次元對智能系統的設計空間做了粗糙的劃分。有時為了建立智能系統必須做出很多其他的選擇。
1.5.1 子產品性
第一維是子產品性的層次。
子產品性是系統可以分解成能被獨立了解的互動子產品的程度。
子產品性對降低複雜性是重要的。它在腦部結構中很明顯,是計算機科學的基礎,也是任何大型組織的重要部分。
子產品性主要通過層次結構分解展現。例如,人的視覺皮層與眼睛組成了一個子產品,可以采光,還可以達到更高層的目标,輸出一些簡化的情景描述。如果子產品再分成更小的子產品,并以此類推,還可以分成更小的子產品,直至分成最原始的操作,我們說子產品性是分層的。這種分層組織正是生物學家研究的一部分。大型組織都有一個分層結構,這樣高層決策者才不會被細節壓倒,也不必過問所有的組織細節。計算機科學中的抽象程式設計和面向對象程式設計,就是利用子產品性與抽象性,使系統更為簡化。19
在子產品性次元中,agent的結構是下列一種:
扁平的:系統中沒有組織結構;
子產品化的:系統可被分解成獨立的可了解的互動子產品;
分層的:系統是子產品化的,子產品本身分解成了互動子產品,它們中的每一個又都是一個分層系統,由此循環下去,直到分解成最簡單的元件。
在扁平結構或子產品化的結構中,agent主要進行單層抽象上的推理,而在分層結構中,agent主要是在多層抽象上進行推理。低層結構主要涉及低層抽象的推理。
【例1-3】 一個agent,比如你自己,從家中到海外的度假目的地去旅行,必須從家裡到機場,然後飛到目的地附近的機場,再從飛機場到達目的地。它還可以将實際的移動分解成一系列的腿部運動或車輪滾動。在扁平結構表達中,agent會選擇某一層抽象表達并在該層進行推理。子產品化表達将任務分解成很多可以獨立解決的子任務(例如,訂票,到達出發地機場,到達目的地機場,到達度假的地點)。在分層結構表達中,agent将用分層的方式解決這些子任務,直至将問題分解成一些簡單的問題,例如傳送http請求或采取一種特定的步驟。
對于降低建構能在複雜環境中動作的agent的複雜性,層次分解是重要的。然而,為了考察其他次元,我們首先忽略分層結構,而假設它是一個扁平結構。忽略層次分解這種做法通常适用于中小型問題求解,它适用于低等動物、小型組織或中小型的計算機程式。當問題或系統較為複雜時,就需要一些分層結構了。
如何建立具有分層結構的agent将在2.3節進行讨論。
1.5.2 表示方案
表示方案次元主要讨論如何描述世界。狀态是指世界中影響agent行為的各種方法。我們可以将世界的狀态分解成agent的内部狀态(它的信念狀态)和環境狀态兩個部分。
在最簡單層次上,agent可以以一系列獨立的确定狀态來進行推理。20
【例1-4】 加熱器的自動恒溫器一般有兩個信念狀态:關閉和加熱。環境有三個狀态:冷、舒适和熱。信念狀态與環境狀态的不同組合,可以組成相對應的六種狀态。這些狀态可能無法完全形容世界,但它們足以來描述自動恒溫器的所有行為了。如果環境處于冷狀态,自動恒溫器應該調到或停留在加熱狀态;如果環境處于熱的狀态,自動恒溫器應該調到或停留在關閉狀态;如果環境處于舒适狀态,自動恒溫器停留在現在所在的狀态下即可。agent在加熱狀态可以加熱,而在關閉狀态則不能加熱。
用狀态特征或狀态真假的命題進行推理,要比列舉一系列狀态進行推理更容易些。狀态可以用一系列的特征來描述,其中每個特征在每個狀态中都有一個值(見4.1節)。
【例1-5】 用來看護房屋的agent可能必須對燈泡是否被破壞進行推理。它可能有每個開關的位置、狀态(是否工作良好,是否短路,是否被破壞)和每個燈泡是否能夠正常工作的特征。特征pos_s2有這樣的特點:當開關s2調上去時,pos_s2的特征值為up;當開關調下來時,pos_s2特征值為down。房間裡照明裝置的狀态可以用這一系列的特征值來描述。
布爾型命題的值隻有真、假兩種情況。30個命題經過編碼可以有230=1073741824種狀态。用這30個命題來闡述和推理可能比使用100多萬個狀态更容易些。另外,用狀态的緊湊表示法會更容易了解些,因為它意味着agent已經掌握了本領域内的一些規律。
【例1-6】 考慮一個能夠識别字母表裡字母的agent,假設這個agent在觀察一個30×30像素的二值圖像,這900個網格點中的每一個或開啟或關閉(也就是,沒有使用任何色彩或灰階資訊)。這個行為将決定圖像中繪出的是字母{a,…,z}中的哪一個。這個圖像有2900種不同的狀态,從圖像狀态到{a,…,z}這26個字母的映射函數會有262900種。我們甚至無法用狀态空間來表達這些函數。是以,我們定義了圖像的特征,例如線段,并用這一系列的特征定義了從圖像到字母的映射函數。
當描述複雜世界時,特征可以依賴于關系與個體。單個個體上的關系是一種屬性,個體之間的每一種可能關系上都存在特征。
【例1-7】 在例1-5中看護房屋的agent可以将燈泡與開關看做個體,并有它們之間的位置關系position與有向連接配接關系connected_to。用位置關系position(s1,up)21來表示position_s1=up這個特征。當agent遇到開關并且具有此開關的先驗知識時,agent就能根據關系對這些開關進行推理。
【例1-8】 假設agent是一個學生課程登記系統,用特征grade來描述一個學生所選的一門課程的成績。對于每一組學生課程對(student,course),存在特征passed,特征passed依賴于特征grade。用學生個體、課程個體、成績個體以及grade和passed的關系來進行推理,可能會更容易些。通過定義特征passed是怎樣依賴于特征grade的,agent便能将其應用于每個學生與每門課程。而且,在agent知道任意個體及其所有特征之前,這些就能完成。
是以,用個體及他們之間的關系進行相關性描述,比對那些特征或命題進行處理,可能更為簡便。例如,100個個體和其二值關系可以用1002=10000個命題及210000個狀态來表示。通過一系列的關系與個體推理,agent可以隻通過狀态對全部類型的個體進行解釋推理,而不用枚舉特征或命題。agent有時不得不對無限個體集進行推理,如所有數的集合或所有語句的集合。對于無限個體集,agent無法用狀态或特征進行推理,隻能在關系層面上進行推理。
在表示方案次元中,agent可以通過以下幾個方面進行推理:
狀态;
特征;
從個體與關系角度進行的關系描述。
一些架構結構是通過狀态來描述的,而有些則是通過特征完成的,另外有些則是建立在關系的基礎上。
我們将在第3章介紹狀态推理,在第4章介紹特征推理,關系推理将在第12章介紹。
1.5.3 規劃期
下一個次元是用來說明agent規劃的向前時間的程度。例如,一隻狗被叫過來,它會為了未來能得到獎勵而奔跑,而不僅僅是為了得到即時的獎勵而行動。狗不會為了未來任意無限期長的目标而行動(例如幾個月後),而人類可以(例如為了得到明年的假期而努力工作),這個說法看來是對的。
當agent決定做什麼時,能夠觀察到未來的遠近,我們稱之為規劃期。也就是說,22規劃期是agent認為它的動作結果所能影響的向前程度。從完備性上來說,包括agent不能及時進行推理的非規劃情況。我們把agent做規劃時所考慮的時間點稱為階段。
在規劃期次元中,agent可以分為以下幾種:
非規劃agent,是指在決定做什麼時,不考慮未來的影響,或者不涉及時間的agent。
有限期規劃者,是指遵循固定有限時間步的agent。例如,醫生治療病人,但之前一般會花一些時間做一些檢查,是以整個過程可以分為兩個階段來規劃:檢查階段、治療階段。在退化狀況下,agent可能隻進行一個時間步,我們稱它是貪婪的或目光短淺的。
不确定期規劃者,是指能夠向前探索幾步但是不預先确定多少步的agent。例如,一個agent必須到達一個位置,但是預先不确定到達那個位置需要多少步。
無限期規劃者,是指一直在進行規劃的agent。通常稱之為過程。例如,腿式機器人上的穩定子產品永遠在運作;隻有在達到穩定狀态時才會停止,因為這種機器人永遠在為了防止摔倒而維持穩定。
1.5.4 不确定性
agent可以假設沒有不确定性,也可以把不确定性考慮進去。不确定性可以分為兩部分:感覺不确定性和效用不确定性。
1.感覺不确定性
在一些情況中,agent能夠直接觀察到世界的狀态。例如,在一些棋類遊戲中,或在勞工工作的場地,agent能夠精确地知道世界的狀态。在許多其他情況中,agent能對世界的狀态有一個帶噪聲的感覺,它所能做的最好的就是在它所感覺的狀态集上建立機率分布。例如,給定一個病人的症狀,醫師實際上可能不知道病人患了什麼病,而隻有病人可能患有疾病的機率分布。
感覺不确定性次元主要是用來說明agent能否從觀察中得到世界的狀态。
完全可觀察,是指agent能夠從觀察結果中得到世界的狀态。
部分可觀察,是指agent不能直接觀察到世界的狀态。出現這種情況可能是相同的觀察結果導緻很多可能的狀态或是觀察結果有噪聲。
将世界假設為完全可觀察的是一種簡化假設,其目的是為了使推理更容易進行。
2.效用不确定性
在一些情況中,agent能夠知道動作效果,也就是說,給定一個狀态和動作,它能精确地預測出在那種狀态下運作那種動作後的狀态。例如,與檔案系統進行互動的agent能夠在給定的檔案系統的狀态下預測出删除一個檔案後的效果。在很多情況下,agent很難預測動作效果,最好也隻能有一個效果的機率分布。例如,即使一個人知道狗的狀态,他可能也不會知道對狗進行指令後的效果,但基于經驗,他可能會知道這隻狗可能會做些什麼。即使是那些他以前沒有見過的狗,狗的主人甚至也會知道在他發出指令時那些狗會做些什麼。
效用不确定性從動力學方面可以分為:
确定性的——動作所導緻的狀态由動作及之前的狀态決定。
随機的——對于結果狀态,隻能給出一個機率分布。
本次元隻在世界完全可觀察時成立。如果世界是部分可觀察的,針對動作效果依賴于不可觀察的特征的情況,随機系統可以建立一個确定性系統模型。它是一個單獨的次元,因為我們建立的很多架構都是針對完全可觀察的、随機動作的情況。
對确定性行為的規劃将在第8章介紹,對随機動作及部分可觀察域的規劃将在第9章介紹。
1.5.5 偏好
agent會為自身擷取更優的結果,做出某一動作優于另一動作選擇的唯一原因是其偏好動作會導緻更理想的結果。
一些agent可能會有一個簡單的目标,可能是要達到的狀态或是要證明為真的命題,例如為主人拿一杯咖啡(在她有咖啡的狀态時結束)。另外一些agent則可能會有更為複雜的偏好。例如,醫師一般會考慮痛苦、預期壽命、生命品質、金錢成本(對病人、醫生和社會)、在訴訟案例中為決定辯護的能力以及其他一些必要的東西。當這些條件發生沖突時,正如他們總是做的那樣,醫師必須對這些考慮做出折中處理。24
偏好次元是看agent是否有:
目标。此目标可能是在某一最終狀态下要達到的完成目标,或是在所有已通路過的狀态中必須被保持的目标。例如,機器人的目标可能是拿到兩杯咖啡和一隻香蕉,并且在這期間不能制造混亂或傷害任何人。
複雜偏好。複雜偏好涉及在不同時期權衡各種期望的結果。序數(ordinal)偏好就是隻注重偏好的排序。基數(cardinal)偏好涉及有關值的大小。例如,比起黑咖啡來說,山姆更喜歡卡布奇諾,而比起茶來說,更喜歡黑咖啡,這是序數偏好。基數偏好給定等待時間與飲料類型間的權衡,各種味道之間的權衡,如果咖啡的味道特别好,sam就能在等待咖啡的過程中容忍時間的煎熬。
目标将在第8章介紹,複雜偏好将在第9章介紹。
1.5.6 agent數量
僅一個agent在它所屬的環境裡進行推理就已經足夠困難。然而,如果有多個agent進行推理将更為困難。多agent背景中的agent應該具備對其他agent進行政策性推理的能力,其他agent可能會對它進行欺騙或操縱,也可能會與它進行合作。對于多agent,因為其他agent可以采取确定性政策,是以最優的選擇經常是随機動作。即使當agent之間進行合作,具有共同目标時,協商與交流的問題也使得多agent推理更具挑戰性。然而,許多領域包含多個agent,而且忽略其他agent政策的推理并不是最好的方式。
從單個agent的角度來看,agent數量次元主要是考慮agent是否進行:
單個agent推理。agent會假設其他的agent為環境的一部分。如果沒有其他的agent,或者其他agent的動作不會因為這個agent的動作而改變,那麼這個假設是合理的。
多agent推理。agent會将其他agent的推理考慮進來。當其他agent的目标或偏好部分依賴于此agent的行為,或agent必須與其他agent通信時,這種情況就會發生。
如果agent同時進行動作,或環境隻是部分可觀察的,那麼與其他agent一起進行的推理将會更為困難。多agent系統将在第10章介紹。25
1.5.7 學習
在某些情況下,agent設計者可能為agent建立了一個比較好的模型及環境。但通常情況下,agent設計者無法建立完美的模型,agent需要一些先驗知識或其他的資源來幫助它進行決策。
學習次元由以下兩方面決定:
已有的知識。
學到的知識(從資料或先前經驗中擷取)。
學習一般意味着要找到與資料相符的最好模型,有時候這就像調整固定參數集一樣簡單,但這也就意味着要從一類表達中選擇最優的表達。學習本身就是一個很寬泛的領域,但不是孤立于人工智能的其他領域。除了拟合資料外,還有其他很多問題,包括如何合成背景知識,需要搜集什麼樣的資料,如何表達這些資料以及結果,什麼樣的學習偏差是合适的,怎樣合理使用學習到的知識去影響agent的行為。
學習将會在第7、11和14章介紹。
1.5.8 計算限制
有時候agent可以足夠迅速地決定它的最好的行為,但通常會有很多計算資源限制,阻礙實施這些最好的行為。也就是說,由于agent的記憶體限制,盡管某個動作是最好的,但是它可能不能夠迅速地找到這個最好的動作。例如,如果agent必須現在動作,在十分鐘之前花費十分鐘的時間來推理最好應該做什麼,就沒有什麼用處。通常情況下,agent必須權衡得到一個解所花費的時間和解的好的程度;有時候迅速地找到一個合了解可能要優于花費更長時間來尋求一個更好的解,因為在計算期間世界可能會改變。
計算限制次元由agent是否具有以下性質來決定:
完全理性:agent可以推出最佳行動方案,而不考慮有限的計算資源;
有限理性:在給定的計算限制上,決定它所能找到的最佳行為方案。
計算資源限制包括計算時間、記憶體和數值精度。其中數值精度的限制是由于計算機不能準确地表示實數而引起的。
任意時間算法是解的品質随時間的推移而提高的一種算法。實際上,它可以在任意時間産生目前最佳解,但如果給定更多的時間,可能會産生更好的解決方案。通過允許agent存儲迄今為止發現的最佳解,我們可以確定得到解決方案,并且解決方案的品質不會下降。26然而,等待agent動作需要花費一定的時間;對于agent來說,在找到最佳解之前動作可能更好些。

https://yqfile.alicdn.com/43b50b2c5aefdd295d46ab3108df0466b025cae0.png" >
【例1-9】 圖1-5說明了任意時間算法的計算時間是如何來影響解的品質的。agent實施一個動作時,能做一些計算來決定要做什麼。絕對的解的品質,在時間零點執行的動作,如頂端的短劃線所示,會随着agent利用時間推理而提高。然而,花時間去行動會有損失。在本圖中,如底部的虛線所示,這個損失與agent執行動 圖1-5 對任意時間算法來說,解的品質是一個時間函數。agent必須選擇一個動作。随着時間的推移,agent能夠決定更好的動作。短劃線表示的是,如果它一開始就實施,agent迄今為止所能找到的最佳動作值。虛線表示agent在等待行動時減少的行為值。實線表示agent的淨值,是一個時間函數作之前的時間成比例。這兩個值相加就能得到折扣的品質,依賴于時間的計算值,這就是中間部分的實線。如圖1-5所示,一個agent計算大約需要2.5個時間單元,然後執行動作,在該點折扣品質達到最大值。如果計算持續長于4.3個時間單元,産生的折扣品質将會比僅僅輸出算法的初始猜測而實際不進行計算時更糟糕。解的品質有一個跳躍性的提高是非常典型的;當現有的最好解發生變化時,解的品質會有一個跳躍性的變化。然而,與等待相關的損失通常并不是一條簡單的直線。
将有限理性考慮在内,agent必須決定是應該立即實施動作還是進行更多的思考。這是一項具有挑戰性的難題,因為agent通常無法确定,當它僅花費多一點時間進行推27理時,到底會有多好。而且,在考慮是否進行推理上花費的時間會減少實際推理的可用時間。無論如何,有限理性可以作為近似推理的基礎。
1.5.9 多元互動
圖1-6總結了一系列複雜性的次元。不幸的是,我們無法單獨研究這些次元,因為它們以各種複雜的方式進行互動。在這裡,我們給出一些互動執行個體。
次元值子產品性扁平的、子產品化的、分層的表示方案狀态、特征、關系規劃期無規劃、有限階段、不确定階段、無限階段感覺不确定性完全可觀察、部分可觀察效用不确定性确定性的、随機的偏好目标、複雜偏好學習已知的知識、學到的知識agent數量單個agent、多agent計算限制完全理性、有限理性
表示次元與子產品性次元進行互動。一些層次上的子產品甚至簡單到可以用一系列有限狀态集進行推理,而其他的抽象層次可能要對個體及關系進行推理。例如傳送機器人,維持平衡的那個子產品可能僅有一小部分狀态,而必須優先考慮将多個包裹傳遞給多個人的子產品可能必須對多個個體(比如,人、包裹和房間等)及他們之間的關系進行推理。在更高層次上,對一天内執行的動作進行推理可能隻需幾個狀态來概括這一天内的不同階段(如,可能有三個狀态:忙時、可請求時和再充電時)。
規劃期與子產品性次元進行互動。例如,在較高層次時,跑過來并得到治療後,小狗可能會得到即時的獎勵。當決定将它的爪子放在哪裡時,可能會需要很長時間來得到獎勵,這時就不得不規劃一個無限階段。
感覺不确定性可能對推理的複雜度有很大影響。對agent來說,當它知道世界的狀态時比不知道時更容易進行推理。盡管對狀态的感覺不确定性很好了解,28但是對個體及關系的感覺不确定性是現在研究的熱點。
效用不确定性與子產品性次元進行互動:在分層結構的某個層次上,某個動作可能是确定性的,但在另外的層次則可能是随機的。例如,你跟一個你正試圖讨好的同伴飛到巴黎,在某個層面上來說,你可能知道你所在的位置(巴黎),在較低層面上,你可能會完全迷失并不知道自己在哪兒。在負責維持平衡的更低層面上,你會知道你在哪兒:你正站在地上。在最高層面上,你可能根本不能确定是否給同伴留下了好印象。
偏好模型與不确定性互動,是因為agent必須權衡滿足有一定機率的主要目标,還是滿足具有更高機率的次要目标。這個問題将在9.1節進行讨論。
子產品性可以使用多agent。設計單個agent的一種方式是構造多個擁有共同目标的互動agent,這樣能夠使較高層次的agent智能地執行動作。一些研究者,例如minsky[1986],認為智能是非agent社會的一個湧現特征。
學習可以通過特征來進行描述,決定哪個特征值能夠最好地預測其他特征的值。然而,學習也可以通過個體及關系來進行。我們現在已在學習層次結構、在部分可觀察領域内學習和多agent學習等方面做了很多工作。即使不考慮與其他多重次元的互動,這些研究方向本身也都具有很大的挑戰性。
次元中子產品性和有限理性能使推理更有效。雖然它們使形式化體系變得更為複雜,但卻能夠通過将系統分解成更小的元件并提供所需的近似值,使agent能夠在有限時間和有限的記憶體中及時地執行動作,來幫助建構更為複雜的系統。