2018 年《AI for Good》峰會嗰度展示嘅機械人蘇菲亞 ;佢內置人工智能,曉用語言 同人傾偈。 人工智能,又有叫機械智能 (machine intelligence),泛指由機械 展示嘅智能 ,相對於人 同第啲動物 展示嘅自然智能 ,而喺科學 上,「人工智能」一詞亦都俾人攞嚟指專門研究人工智能嘅認知科學 同電腦科學 交界領域。人工智能呢個領域上嘅研究會關注嘅問題包括點樣教機械做推理 、知識表示 、計劃 、學習 、自然語言處理 、感知 以及郁同操控物體等嘅作業,而呢啲研究其中一個終極目標就係想創造出強人工智能 (strong AI)-即係喺廿世紀嘅人類想像 當中常見、能夠展現出同人無異 嘅智能嘅 AI 。
到咗廿一世紀,人工智能經已係一個蓬勃嘅獨立科學領域,引起咗哲學 、社科 同科幻 等領域嘅討論,而且仲有得按照所使用嘅技術或者想達到嘅目的分做多個唔同嘅子領域。人工智能嘅子領域好多時仲要專化到彼此之間溝通唔到-所以有大量嘅專業行話詞彙。
理論基礎
感知
知識
貝葉斯網絡 (Bayesian network):一種有向圖 (好似下圖噉),幅圖會包含若干個頂點,當中 每個頂點對應一個隨機變數 ,啲隨機變數係離散 定連續 都得; 每對項點之間都可以有箭咀,如果頂點 X {\displaystyle X} 有個箭咀指住頂點 Y {\displaystyle Y} ( X {\displaystyle X} → Y {\displaystyle Y} ),噉 X {\displaystyle X} 係 Y {\displaystyle Y} 嘅母點 (parent); 是但攞個頂點 X i {\displaystyle X_{i}} 嚟睇, X i {\displaystyle X_{i}} 都有個條件概率分佈 Pr ( X i | Parents ( X i ) ) {\displaystyle \Pr(X_{i}|{\text{Parents}}(X_{i}))} -呢個條件概率分佈會講明「如果已知 X i {\displaystyle X_{i}} 啲母點嘅數值, X i {\displaystyle X_{i}} 嘅數值嘅概率分佈 」,用日常用語講即係話個條件概率分佈表示「母點嗰啲變數嘅數值會點影響 X i {\displaystyle X_{i}} 嘅數值嘅概率分佈」。 語言處理 自然語言處理 (natural language processing,NLP)係專門教電腦處理自然語言 (natural language)嘅 AI 技術;喺語言學 上,自然語言係指一啲响人類 當中自然噉發展出嚟嘅語言 ,簡單講即係好似英文 同廣東話 等日常講嘢 會用嘅語言;自然語言係廿世紀嘅電腦 完全搞唔掂嘅嘢-廿世紀啲電腦要求用家 俾嘅命令 有極高嘅精確性,一大串 0
同 1
裏面多咗或者少咗個 0
都會搞到部機做嘅運算 錯嗮,而成日有歧義 同含糊 呢啲情況嘅自然語言電腦就自然處理唔嚟,而自然語言處理就係喺廿世紀後半橛興起嘅一種 AI 技術,專門教電腦處理自然語言。
文字分割 (text segmentation):NLP 成日用嘅一個工序,指將要處理嗰段字分割做若干嚿各自有意思嘅單位,方便做一步嘅分析,常見嘅有將段字切割做句子 或者個別嘅字 呀噉。 記號化 (tokenization):將句子分做個別嘅字 ,通常係將每隻字變成一段字串 ,記號化通常仲會配合埋將每隻字按詞性 分做名詞 、動詞 同形容詞 等嘅類型(詞 )。 詞形還原 (lemmatization):某啲語言嘅 NLP 工作會做嘅一個工序,指教部電腦一個字喺唔同詞性下嘅唔同樣,等部電腦識得將呢啲唔同樣當做同一個字噉嚟分析;例如英文 wolf 同 wolves 都係指狼 ,後者係眾數 ,做詞形還原就會教部電腦知 wolf 同 wolves 係同一個字嘅唔同樣。 停用詞 (stop word):指 NLP 程式喺真係做主要處理之前會攞走嘅字,例如喺英文 當中 the 同 a 呢啲字出現得好密,而呢啲字俾人指會干擾某啲 NLP 程式嘅運作,所以喺做完記號化 同詞形還原 之後,一個 NLP 程式好多時就會郁手攞走啲停用詞。 分析樹 (parse tree):一種語言學 分析上成日會用嘅樹狀數據 ;簡單講即係按文法 將一串字串 嘅句法 結構表述出嚟: 命名實體識別 (named-entity recognition,NER):指由段字串入面搵出邊啲字係表示有名實體 (named entity;即係一件特定嘅物體,例如係某個特定嘅人或者某笪特定嘅地方呀噉)嘅,例如 John hit the ball 嗰句句子入面 John 就係一嚿有名實體。 詞性標注 (part-of-speech tagging,POS tagging):同啲字串入嘅每隻字 標明佢係咩詞性 ,每隻字都標明嗮佢係名詞 定動詞 定形容詞 定點。 語料庫 (text corpus):指一啲有條理噉儲住咗大量語言 數據 嘅資源;到咗廿一世紀初,語料庫幾乎實係以電腦形式儲住嘅,而且各大語言都會有自己嘅語料庫,啲人想教 AI 做 NLP 嗰陣,通常都會由語料庫度攞料嚟用,例如攞啲語料嚟做數據行機械學習 ,教 AI 學識語言嘅法則。 語言模型 (language model):一啲 NLP 上會用到嘅概率分佈 ,會表示「呢一串字喺呢句句子入面出現」嘅機率 。是但攞一串 m {\displaystyle m} 個符號咁長嘅字串,一個語言模型會講明 Pr ( w 1 , … , w m ) {\displaystyle \Pr(w_{1},\ldots ,w_{m})} 。 N-gram :指一串符號, x 1 , … , x j {\displaystyle x_{1},\dots ,x_{j}} ,當中嘅一連 n 個符號;想像有串 100 個符號(LLLRLRRRLL...),一個 3-gram 演算法會考慮每串連續三個符號係乜嘢樣(LLL, LLR, LRL ...;123, 234, 345 ...),再按打前嗰兩個符號嘅規律計算下一個符號最有可能係乜,例:打前嗰兩個符號係 LL,而根據已有數據,已知兩個符號係 LL,下一個符號最有可能會係乜。精確啲講,即係話一個 n-gram 模型會用 x i − ( n − 1 ) , … , x i − 1 {\displaystyle x_{i-(n-1)},\dots ,x_{i-1}} 嘅數值預測 x i {\displaystyle x_{i}} ,計算: Pr ( x i ∣ x i − ( n − 1 ) , … , x i − 1 ) {\displaystyle \Pr(x_{i}\mid x_{i-(n-1)},\dots ,x_{i-1})} 。 語言辨認 (language identification):指「攞段文字或者攞段語音(輸入),答段字或者語音係咩語言(輸出)」嘅工作。 解難
瓣瓣掂玩遊戲 (general game playing,GGP):指思考點樣設計出能夠用嚟「普遍性」噉玩遊戲 嘅 AI 程式-廿世紀尾嘅電子遊戲 AI 技術表明咗,要編寫出能夠玩某隻特定遊戲嘅 AI 程式並唔難;不過問題係,一路直至 2010 年代為止,玩遊戲嘅 AI 程式冚唪唥都係專化 (specialized)嘅-即係每個程式都都淨係識一味玩死某一隻遊戲;瓣瓣掂玩遊戲嘅目的在於教 AI 好似人噉能夠學識玩多隻唔同嘅遊戲。 運算創意 (computational creativity):研究點樣教電腦展現出好似人一樣噉嘅創意 -運算創意上嘅技術通常會模擬創意所涉及嘅認知過程 ,嘗試教電腦做同樣嘅資訊處理 ,最後要部機自己產生出展示到創意嘅圖像 (模擬畫畫 )、樂曲 (模擬作曲 )或者虛構故仔 (模擬寫作 )等嘅產物;例子可以睇《Edmond de Belamy 》呢幅俾人覺得係史上第一幅算係由 AI 創作嘅畫。 決策 決策 (decision making)
決策樹 行為樹 (behavior tree):決策樹 嘅一種;一樖行為樹可以想像成一幅樹狀圖 ,一樖行為樹會有若干個決策點,喺每個決策點,個人工智能都會按某啲條件決定係咪要進入其中一個可能狀態,定係要去下一個決策點;簡例:先睇吓周圍有冇危險(決策點 A),如果冇就進入巡邏 狀態(狀態),如果有就去下一個決策點 B,決策點 B 係按敵人位置決定要防守(狀態)定進攻(狀態)。 蒙地卡羅樹搜尋 (Monte Carlo tree search):一種搜尋演算法 ,用嚟幫個決策者 -由一個有極高複雜性 (complexity)嘅決策 情境下搵出最好 嘅選擇;蒙地卡羅樹搜尋會有技巧噉搜索一樖決策樹 -會揀定一個深度值 d {\displaystyle d} 表示「要考慮幾多步」,並且喺每步按某啲準則揀邊啲節點嘅下一步值得睇。 行動選擇 (action selection):人工智能上最基本嘅問題之一,泛指「教人工智能由若干個可能嘅行動當中揀一個嚟採取」嘅技術。 利用定探索 (exploit or explore):喺教人工智能做決策 嗰陣撞到嘅一個問題;想像有個按過往經驗 做決策嘅人工智能程式,一方面,對於個程式嚟講,响短期內令自己利益最大化嘅做法係「利用」-集中淨係揀一啲根據過往經驗係大機會得益嘅選擇;另一方面,現實嘅決策通常都涉及由數唔嗮咁多嘅選擇當中揀一啲出嚟,所以喺任何一個時間點都實會有大量嘅可能性係個程式未睇過嘅,所以個程式有需要去「探索」-去睇呢啲可能性有一定嘅機會搵到能夠進一步提升自己得益嘅選擇。「利用同探索之間要點平衡」係教人工智能決策上嘅一個大問題。 自動計劃 分級作業網絡 (hierarchical task network,HTN):自動計劃嘅一種做法,基本上係指個人工智能將可能採取嘅行動之間嘅關係用「分級」噉嘅網絡表示出嚟,即係話將啲行動分做三個層次: 原始作業 (primitive task):指一啲實際能夠採取嘅行動,例如喺打機 當中會係「撳呢個呢個掣」。 複合作業 (compound task):指一串行動結合嘅整體,例如教一個人工智能打機嗰陣,一串「撳呢個呢個掣」噉嘅行動會引致「令玩家角色 由 A 點移去 B 點」。 目的作業 (goal task):指一柞由複合作業組成、能夠令某啲狀態變成「真 」嘅作業,例如「由 A 點移去 B 點」同埋「攞嗮眼前嘅遊戲道具 」等能夠具體噉幫助「喺隻遊戲入面過關 」-「過咗關」呢個狀態變成「真」-嘅目的。 STRIPS :自動計劃嘅一套做法;喺 STRIPS 當中,一場自動計劃係一個有以下呢啲部份嘅四元組 ( ⟨ P , O , I , G ⟩ {\displaystyle \langle P,O,I,G\rangle } ): P {\displaystyle P} 係一柞狀態(命題變數 ;propositional variable); O {\displaystyle O} 係一柞行動(運算子;operator);每個行動係一個四元組 ⟨ α , β , γ , δ ⟩ {\displaystyle \langle \alpha ,\beta ,\gamma ,\delta \rangle } ,即係 α {\displaystyle \alpha } :需要係真個行動先發生到嘅狀態、 β {\displaystyle \beta } :需要係假個行動先發生到嘅狀態、 γ {\displaystyle \gamma } :會因為個行動而變成真嘅狀態、同埋 δ {\displaystyle \delta } :會因為個行動而變成假嘅狀態。 I {\displaystyle I} 係起始狀態,包含「邊啲狀態係真」嘅資訊。 G {\displaystyle G} 係目的狀態,包含「想要邊啲狀態係真」嘅資訊。 運動規劃
運動規劃 (motion planning):一種運算問題 ,研究點樣教電腦通過一串有效嘅移動嚟將一嚿物體 由一個地方移去第個地方嗰度。
蟲仔演算法 (bug algorithm):一種用嚟教機械人 應付運動規劃嘅演算法,步驟如下: (假設個機械人經已知終點嘅位置同方向)向終點嘅方向移動,直至撞到障礙物為止; 順時鐘(或者逆時鐘都得)沿住嚿障礙物嘅邊緣嚟行,行到去到第一之撞到嚿障礙物嗰點為止(假設個機械人有感應器 曉探測周圍有乜邊緣); 個機械人行去嚿障礙物嘅邊緣上面最近終點嗰一點; 返去步驟 1。一路重複直至去到終點為止。 機械學習
機械學習 (machine learning,簡稱「ML」)係人工智能 嘅一個子領域,專門研究點樣設計一啲特殊嘅演算法 嚟去教電腦 喺唔使個用家開口俾明文指示嘅情況下,學識 有效噉樣做一啲特定嘅作業。機械學習成日會用統計學嘅技術,典型做法如下:p. 2 :
編寫一個程式 ,教部電腦點樣由數據嗰度建立一個統計模型 嚟描述佢對啲變數 之間嘅關係嘅知識; 搵啲樣本數據(即係所謂嘅「訓練數據」)返嚟,俾個程式處理吓啲數據入面嘅個案,等部電腦按個程式建立一個數學模型;跟住 喺將來再撞到同類個案嗰時,部電腦就會曉按佢個程式,用建立咗嗰個模型,對呢啲之前未見過嘅個案作出預測-個設計者唔使明文噉教部電腦點樣應對呢啲前所未見嘅個案,部電腦都會有能力一定程度上應對。 喺最簡單嘅監督式學習 裏面,個程式會計吓,用佢個數學模型( f {\displaystyle f} )計嘅「預想輸出」同實際嘅輸出差幾遠,按照呢個誤差調較自己個數學模型嘅參數( p i {\displaystyle p_{i}} ), Δ p i = g ( actual y − model output ) {\displaystyle \Delta p_{i}=g({\text{actual y}}-{\text{model output}})} 。呢個過程用虛擬碼 表達係:
讀取事前處理完嘅數據 ; 建立一個數學模型 , 將 y ( 要預測嘅變數 ) 寫成 x ( 用嚟做預測嘅變數 ) 嘅函數 ; 逐個逐個噉讀取數據入面嘅個案 , for 每一個個案 按照個數學模型同個個案嘅 x 值 , 計出預想嘅 y 值 ; 計吓 「 預想中嘅 y 值 」 同 「 個數據所顯示 , 嗰個個案嘅實際 y 值 」 差幾遠 ; 按呢個誤差 , 計吓個模型要點樣改 ; # 如果一切順利,讀取嗮所有數據之後,最後嗰個數學模型會能夠做有返噉上下準嘅預測。 ML 理論 學習 (learning):最廣義上指一個具有認知能力 嘅系統(人等有智能 嘅動物同人工智能 呀噉)按經驗調整自己內部嘅世界觀或者行為嘅過程,簡單嘅例子有一個人喺隻手俾個煮食爐辣親一次之後,下次會識唔好搵手掂個爐;比較複雜嘅例子有一個人喺度練射籃 ,佢每次射籃都做一啲動作,嘗試入波,然後佢會見到「做呢啲動作嘅結果」(入定唔入),按照結果判斷個動作係咪一個好(能夠幫佢達到目的)嘅行動,並且調整自己嘅下一個動作;學習嘅過程會涉及個認知系統內部嘅參數 ( [ p 1 , p 2 , . . . ] {\displaystyle [p_{1},p_{2},...]} )起變化,令到輸入(刺激)同輸出(行為)之間嘅關係改變。 運算學習論 (computational learning theory):專門研究機械學習 演算法 嘅表現嘅電腦科學 子領域。 概念 (concept):指若干個個案嘅抽象化 ,例如一個人腦 睇咗好多件相似嘅物件,嗰柞物件件件都唔同樣,不過佢發覺嗰啲物件冚唪唥都有葉 同樹幹 等嘅特徵,於是佢個腦就產生咗「樹 」嘅概念。家陣想像 X ∋ ( x 1 , x 2 , x 3 . . . x n ) {\displaystyle X\ni (x_{1},x_{2},x_{3}...x_{n})} 呢個集 包含咗 n {\displaystyle n} 件需要將佢哋分類嘅物件(例:當中有啲係樹有啲唔係),個認知系統要將呢啲物件分辨邊啲係樹邊啲唔係-output
有 1(係)同 0(唔係)兩個可能值;一個概念 C {\displaystyle C} 係 X {\displaystyle X} 嘅一個子集 ,分類後 C {\displaystyle C} 會包含所有 output
值係 1 嘅 x i {\displaystyle x_{i}} (所有屬於樹嘅個案),而 X {\displaystyle X} 當中唔屬 C {\displaystyle C} 嘅 x i {\displaystyle x_{i}} 嘅 output
值係 0(所有唔屬於樹嘅個案) 假說 (hypothesis):指一個可以由個演算法產生出嚟嘅可能模型。 假說空間 (hypothesis space):指一個演算法嘅假說嘅集 ;假說空間嘅豐富度 (richness)反映咗個演算法嘅能耐,例如有兩個用嚟做迴歸分析 (regression)嘅機械學習演算法,A 同 B,A 淨係曉處理線性 嘅迴歸模型,而 B 曉處理線性同非線性嘅關係(B 嘅假說空間比較豐富),假設第啲因素不變,B 嘅能耐高過 A 。 Python :廿一世紀初常用嚟做機械學習嘅一種程式語言 ,有好多可以俾用家操控陣列 嘅陳述式 。 超參數 (hyperparameter):指喺機械學習過程當中由設計者設定嘅參數,相對於由機械學習演算法決定嘅模型參數數值。 特徵提取 (feature extraction):係指由數據 數值嗰度計一啲新數值出嚟,而新數值可以內含有用嘅資訊 ,例如一個人工神經網絡 由輸入層嗰 12 粒細胞 嘅啟動程度值(數據數值)計跟住嗰層隱藏層嗰 8 粒細胞嘅啟動程度值(新數值),就係一個特徵提取過程。
事前處理 一個典型嘅數據庫 ;當中每一個直行代表一個變數,每一個橫行代表一個個案,個數據庫會有每個個案喺各變數上嘅數值。 事前數據處理 (data preprocessing)係攞到數據之後要做嘅第一個步驟。喺搜集數據嘅過程之後,個研究者手上會有一個數據庫,個數據庫嘅數據包含咗每一個個案喺每個變數上嘅數值。現實嘅搜集數據過程都係唔完全受控嘅,所以搜集到嘅數據幾乎梗會出啲錯,例如係某幾個個案喺某個變數上嘅數值量度唔到(即係所謂嘅缺失數據 )或者有啲擺明冇可能嘅數值(例:有個個案喺「年齡」呢個變數嘅數值係負數),等等。呢啲噉嘅數據直接攞去分析嘅話好多時會搞到個程式出錯,所以做機械學習嘅人喺開始俾個程式做學習之前往往會做啲事前處理先。
陣列 (array):指由若干件相同類型嘅數據 所組成嘅數據結構 ,例如係 n {\displaystyle n} 個實數 或者係 n {\displaystyle n} 個字串 等等。一個陣列可以有多個一個維度 ,而喺現實應用上,通常一個分析者會用一個二維嘅陣列表示要分析嘅數據,例: a = [ 3 6 2 0 1 − 4 2 − 1 0 ] {\displaystyle a={\begin{bmatrix}3&6&2\\0&1&-4\\2&-1&0\end{bmatrix}}} 呢個陣列喺 C 程式語言 當中係 int a [ 3 ][ 3 ] = {{ 3 , 6 , 2 }, { 0 , 1 , -4 }, { 2 , -1 , 0 }};
。 缺失數據 (missing data):指因為數據搜集嘅過程當中,因為受訪者對問題嘅遺漏、拒絕回答、又或者係啲調查員犯嘅疏忽等原因,而造成數據當中有啲位冇相應嘅數值。基本上做親機械學習個數據庫都梗會有啲缺失數據,而係做機械學習嘅程式語言當中,一件缺失咗嘅數據通常會用 NaN
(Python )或者類似嘅字眼代表。 平均中間化 (mean centering):應付多重共線性 (睇上面)嘅一種方法;指 foreach 個案,將嗰個個案喺個變數上嘅數值,減個變數嘅平均值 ,令到成個數據庫喺嗰個變數嘅平均值變成 0 。 特徵選擇 (feature selection):係指「由手上嘅變數當中揀選一個子集嘅出嚟,建立有用嘅模型」嘅過程;噉做係因為喺實際應用上,數據庫往往有好多個變數,當中淨係其中一啲變數會有用。 數據平滑化 (data smoothing):指攞住一拃數據,搵出一個函數 f {\displaystyle f} , f {\displaystyle f} 係捕捉到啲數據入面嘅某啲重要特徵嘅,同時又冇咗啲雜訊 ;噉做能夠幫分析者攞到有咁多得咁多嘅資訊 ,同時又唔會因為雜音多得滯而干擾到分析。 學習範式 喺建立咗一個數學模型之後,個程式就要以某啲方法慢慢噉改變個模型啲參數-係迴歸模型或者支援向量機嘅話,就要執條線嘅式嗰啲系數;係人工神經網絡 嘅話,就要執啲神經細胞之間嘅權重值... 等等,目的係最後達致一個能夠準確噉做預測同決策嘅模型-就好似人類同第啲動物嘅學習 過程噉樣。喺機械學習上,呢個過程可以用好多演算法做,而呢啲演算法可以分幾大類:
監督式學習 (supervised learning):指個數據庫有講明乜嘢係預想嘅 output
,要個演算法以做到「合乎預想 output
」為目標。 非監督式學習 (unsupervised learning):指個數據庫冇講明乜嘢係預想嘅 output
。 強化學習 (reinforcement learning):指俾個演算法自行同(現實或者虛擬嘅)世界互動,並且按互動嘅結果改變自身個模型嘅參數。 遺傳演算法 (genetic algorithm,簡稱 GA):一種建基於物競天擇 嘅一種學習方法;根據物競天擇上,一個族群內部嘅生物個體(例如一群人類)彼此之間或多或少噉喺遺傳 上有差異,呢啲差異會引致佢哋喺表現型 (包括外表、行為、同體質等)上有個體差異,當中佢哋有啲生存同繁殖會比較叻,所以就更加有機會將自己啲遺傳基因傳俾下一代;假設環境唔變,個族群就會一代一代噉喺遺傳上有變異,變到愈發適合喺嗰個環境生存同繁衍。遺傳演算法就係受呢個理論啟發嘅一種演算法,做法如下: 整一大柞同類嘅數學模型出嚟,當中每個啲參數都有唔同; 叫每個數學模型做若干次嘅預測,每個按佢做預測陣時嘅準確度得返個分數 s {\displaystyle s} ,分數愈高表示佢表現愈好; 揀選分數 s {\displaystyle s} 最高嗰柞模型,將其餘嘅模型淘汰; 做「繁殖」嘅過程-用最高分嗰柞模型做「父母」,生產下一代嘅模型。啲仔喺參數上會似佢哋嘅父母(「每個仔嘅每粒參數」都係「佢父母嘅同位參數」嘅函數); 再做過上述過程,重複若干代; 如果一切順利,若干代之後手上嘅模型會係一啲預估估得啱嘅模型。 應用 環境智能 智能城市 協作智能 (collaborative intelligence,CI):指一班彼此知道對方身份嘅智能體 -包括人 同機械 -各自噉行事,嚟幫手解決 一個佢哋大家都想解決嘅問題 ;喺廿一世紀初嘅管理學 上,有好多工作者都想應對 AI 愈嚟愈普及化嘅形勢,因而有興趣想思考「人應該點樣同 AI 合作,形成一個有協作智能嘅組織」等嘅問題。 註釋 數學相關 拉雜相關 攷 拎
This article uses material from the Wikipedia 粵語 article 人工智能詞彙表 , which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0") ; additional terms may apply (view authors ). 呢度嘅所有文字係根據 CC BY-SA 4.0 牌照嘅條款發佈;可能會有附加嘅條款。 Images, videos and audio are available under their respective licenses. ®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki 粵語 (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.