人工智慧/comp9414 Chapter1-2

人工智慧/comp9414 Chapter1-2

來自專欄計算機科學的勸退專欄

請點贊支持我的專欄!

前言:在數據挖掘中我就提到了,這類讀書整理類筆記會很花時間,但不適合閱讀。

但事實上我發現太過細節的整理實際上沒有意義,我自己看了就行了,反正也沒有讀者會堅持讀下去。

所以我會採取咀嚼講解的方式,可以把這個文章當成我抽出來的課文吧。

有人提出問題時我們在評論區討論,這樣更有針對性,節約時間。

另:我個人並不特別喜歡總寫一些病毒營銷的標題,畢竟網路可以讓有天分夠努力的學習者得到更好的教育,卻不能讓人不勞而獲。

什麼「一小時可讀」、「學完你就牛逼」、「某妹子喜歡」,也無非是迎合一些愛學不學的傢伙吧,想吃這碗飯的人,如何能夠被人引誘著走完工程師漫漫的學習長路。我也不是在做兒童編程課程。

至少這個系列我不會在標題里加一個字廢話。

另:數據挖掘的後一半的筆記我也會在這個月補齊,先開寫comp9414 unsw,主要還是為了先引出一系列的AI演算法,比如啟發式搜索,比如對抗式演算法等。

另:我採用的是清華大學出版社外文教材影印版,密密麻麻的英文讀起來確實有難度,翻譯上可能不準確,不過表意盡量到位,請見諒,也歡迎提出寶貴意見。

keyword: Artificial Intelligence, agent, model, actuator, agent


0.人工智慧,是人類的未來嗎?

人工智慧實際上是一大堆子領域的總和,從通用(machine learning and perception)到具體應用都有用到。

比如下棋(Alpha Zero,絕藝等),證明數學理論, 文學作品創作, 自動駕駛, 疾病診斷, 個人徵信黑名單, 其技術的應用也逃不開數據支持,比如專家系統,比如商務決策支持,比如大數據預倉儲等,都是人工智慧在支持。

但我們也要客觀理性地看待人工智慧的發展,人工智慧也不過是IT技術,主要是IT技術中的數據技術的一個分支,即使在國內外一些頂尖高校,有人在嘗試將這門技術徹底的變成人類未來唯一的技術,但目前它還不是,也沒有達到「解放人類生產力,讓我們有時間投入到藝術、文學和其他需要愛心和耐心的工作上去」的程度(human-level AI)。

所以在學習的同時,你要明白,現在的AI本質上還是主要基於數據挖掘的機器學習,合理運用各種演算法和統計學知識,來得到一個相對有價值的信息結論、或者決策模型的技術。

人工智慧是未來,但未來不可能只靠人工智慧,未來也屬於生物、化學、微電子、航空航天、材料學等學科,而且他們都將在人類文明中寫下濃重的一筆。

1.AI是什麼?

這種情況下我們首先應該提出AI的定義,由於這是一門上世紀90s就趨於瓶頸式的成熟的技術,我們的很多定義都是這個時代沿用至今。

Thinking, Acting Humanly & Rationally

像人一樣合理的思考和行動。

1-1 Acting Humanly

提到Acting Humanly就不得不提到誕生於1950年的Turing Test,提議者是Alan Turing,人稱AI之父,他是密碼學專家,計算機科學專家,擅長數學和計算機科學領域。

Turing Test要求電腦和真人通過電子通訊交流,前提條件是人類問詢者不知道和自己聊天的是人是電腦,認為能夠成功欺騙過真人問詢者的程序是人工智慧。

實際上這套系統是一種雙盲測試。

這種聊天程序由於沒有知識範圍的限定,要達到一定水準那是非常困難的。從明星,歷史事件這類比較簡單的常識,到比較難以處理的地方俚語,都需要有正常的反應。

這套系統的難點在於對未知的正確反應上,以及學習能力上。

比如一個人會自然的表示我是學渣我不懂,然後快速的學會一些新名詞和定義,並且學以致用,這對AI來說一直是一個難點。

計算機也需要具備如下的一些技術和能力:

Natural Language Processing: NLP技術使得交流在某個語種下得以流暢進行(這和語言學知識息息相關)

Knowledge Representation: 即使我們資料庫里有了這個知識,如何自然地表達是另一個問題

Automated Reasoning: 使用已有的信息進行推導,得出新的結論

(e.g. 我告訴一個人,蘇格拉底是人,凡人必死,那麼我們可以得出蘇格拉底必死的結論)

Machine Learning: 這個技術在此可以用於適應新環境並且推斷和檢測pattern.

pattern是機器學習中的術語,代表數據中蘊含的一定規律。

如果拆掉Turing Test圖解里這堵牆的話,我們還需要:

Computer Vision:讓機器有人類的「視覺」(獲取視覺接收信息的方式,物理環境的信息)

Robotics:操縱物理性質的身軀做出動作等

bionics: 仿生的造型才能讓機器人看起來真假難辨(至少比一堆朋克風的鐵皮更像真人對吧?)

要實際體驗Turing Test的對話方式,請訪問:

Online Turing Machine Simulator?

turingmachinesimulator.com圖標

1-2 Thinking Humanly 認知建模的手段

要了解如何對人類認知建模,我們需要跨學科的一些手段。

通常我們有三種方法來定義人類的思維:

1.內省

試圖抓住我們正在」運行「的思維

2.心理學實驗

這樣的實驗通常是控制變數的,通過心理學標準的社會科學實驗準則來執行。

目的是通過一個人對某個具體事物的行為來了解他的心裡

3.大腦成像

通過現代醫學手段觀察大腦的運作

1-3 Think Rationally 邏輯的引入

析取三段論作為邏輯的最常見實例。

凡人必死,蘇格拉底是人,則蘇格拉底必死。

邏輯推導則是通過邏輯表達式的轉化來得出結論,具體見《離散數學》

1-4 Acting Rationally 合理代理的手段

An agent is something that acts.

rational agent是自動操作,接受來自環境的信息,並且行動以得到期望中最佳的結果的agent.

2. Agent

agent: An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators.

agent是在環境中,通過sensor得到信息,通過actuator執行響應的一套東西。

在我的理解中,agent更像是一個模塊化編程中的某個即插即用的模塊,它負責的是AI的神經元的功能,或者,更高級的來說,具有一部分對特定任務的大腦功能(學習和做出複雜決策)

example: simple vacuum-cleaner

percepts: cleaner的位置,以及該位置是否有髒東西

actions:上下左右移動,清理或者什麼都不做

按照類型的不同來劃分,Agent也有所不同。

按照參考書的分類,Agent可分為五類:

2-1 Reactive Agent

對比Reactive Agent的示意圖,與Agent 的抽象圖,我們可以發現,Agent的工作被簡化成了一個箭頭,箭頭代表一個映射,那麼根據我們高中所學的函數知識可知,映射是一種函數。

即我們的Agent在這裡是以一個函數的形式而存在。

這說明Agent並不保存任何歷史信息,也不依據歷史信息做出判斷。

這就類似於我們的神經反射弧,膝跳反應一樣。

reactive Agent可以說是最簡單的Agent Type,它的缺點很明顯,就是簡單回應對一些稍微複雜或需要全局」視野「(data)的任務表現很差,也就是說,它在需要歷史記錄和未來規劃的需求上表現很差。

比如這種情況,reactive agent 可能會卡住,也可能會繞路

又或者以膝跳反應為例,即使我們的面前有一塊鐵板,我們在膝跳反應被激活時也會一腳踹上去。

2-2 Model-Based Agent

基於Reactive Agent在state上沒有存儲的不足,我們講到了Model-Based Agent

Model=Based Agent可以保存一個歷史信息,可以知道此前我們做了哪些操作。

example:

對於這樣一個在格子間移動的問題,world model 可以記錄小人的歷史足跡。

這樣就解決了Reactive Agent不考慮歷史足跡的問題,但同樣會因為沒有考慮未來規劃而在某些情況下表現吃虧。

比如:需要考慮接下來幾步的Chess, Rubiks Cube,一些需要考慮許多獨立步驟的任務Cooking, 一些需要邏輯推導的任務如Travel to New York.

2-3 Planning Agent

要解決這個問題,我們就得引入Planning,這就是我們的Planning Agent.

有時agent需要提前做好計劃但實質上這是一種reactive式的處理方式

而我們知道基於當前狀態的啟發式搜索,或者邏輯推導有時都能達到planning的效果,這個之後會詳細說明。

2-4 Game Playing Agent

這是指當環境中玩家大於1的時候的planning方式,以上提及的兩個演算法

Minimax Search 和 Alpha-Beta Pruning都是對抗式演算法的典型。

2-5 Learning Agent

learning通常是機器學習中的一個概念,即從dataset中獲取一定的數據規律,來以此做判斷或者對數據進行規律性的壓縮(比方說把10w量級的學生成績與家庭收入信息壓縮成一個函數表達式)

這幾種learning我們都會在數據挖掘系列中提到。

3.PEAS description - 一種對任務環境的定義

PEAS

Performance Measure: 對agent性能的評價指標

Environment:實際上這個人工智慧Agent所應用的場景

Actuators:什麼設備在執行這個Agent可能給出的Action

Senors:哪些設備在給予Agent足夠的Perception

舉個例子:

神樂小姐姐機械臂喂糖,雖然這個需求很奇葩但是也值得我們用來分析。

Performance Measure: 在不同環境下,對不同臉型的單身狗喂糖的準確度,以及喂糖的角度與VR畫面的同步程度

Environment: 一個宅男的房間,一個髮型不確定的腦袋和大小不確定的嘴

Actuators:機械臂,VR只起到滿足宅男幸福感的作用,並不影響喂糖(儘管人們還是喜歡小姐姐而不是一個看起來像是醫院抓藥用的機械臂

Senors:可能是Camera提供視頻信息, 動作捕捉感測器提供實時角度同步,紅外線熱感測器判斷嘴部中間的位置,紅外線測距感測器判斷機械臂到嘴的距離。

量子位:神樂小姐姐喂你吃糖糖!日本最新機械臂+VR眼鏡登場~?

zhuanlan.zhihu.com圖標

4.環境的性質 //TODO

4-1 Fully Observable vs Partially Observable

4-2 Single Agent vs Multi Agent

4-3 Deterministic vs Stochastic

4-4 Episodic vs Sequential

4-5 Static vs Dynamic

4-6 Discrete v Continous

4-7 Known vs Unknown


推薦閱讀:

深度碎片的學習歷程,方向與特質
Pytorch and Tensorflow的第一步
多目標追蹤-初步調研
聊一聊我的課程「從簡到繁再到簡的CNN網路綜述」
世界盃預測,其實很簡單

TAG:人工智慧 | 計算機科學 | 機器學習 |