今天我們分享的內容,主要是關于機器學習中的基礎數學。
一、機器學習會用到哪些數學基礎
第一部分,我們先來看一看機器學習需要哪些數學的基礎。我們可以先引用一個專家的定義。這個專家是來自美國華盛頓大學的佩羅·多明戈斯。這也是人工智能領域的一個老兵。他對于機器學習給出了這樣一個定義,機器學習是由三個部分組成,分別是表示、評價,還有優化。這樣的三個步驟,實際上也就對應著在機器學習當中所需要的數學。
(1)機器學習三部曲
表示
在表示這一步當中,我們需要建立起數據,還有實際問題的抽象模型。所以,這里面就包括了兩個方面,一方面我們要對要解決的這個實際的問題進行抽象化處理。比方說我們要設計一個算法,判斷一個郵件它到底是不是一封垃圾郵件,那么得到的結果無外乎兩種,要么是,要么不是。這樣一個問題如果對它做抽象,實際上就是個二分分類問題。是,我們可以把它定義成 0,不是,可以把它定義成 1。所以,這個問題最終要解決的是什么呢?輸出一個 0 或者 1 的結果。當然把 0 和 1 的意義調過來也可以,用 1 代表是垃圾郵件,0 代表不是,也是可以的。所以,在表示的過程當中,我們要解決的問題就是把我們面臨的真實世界當中的一些物理問題給它抽象化,抽象成一個數學問題。抽象出來這個數學問題之后,我們要進一步去解決它,還要對這個數據進行表示。
對于問題抽象完了以后,我們還要對數據進行抽象。在判定這個郵件到底是不是垃圾郵件的時候,我們要怎么判斷呢?要根據它的特征進行判斷,看一看這個郵件里的關健字是否有關于推銷的,或者關于產品的一些關鍵字。這些特征,這些關鍵字,我們就要把它表示成一個特征,表示成一個向量,或者表示成其他的形式。表示成向量也好,表示成其他形式也好,都是對這個數據做出了抽象。
在表示階段,我們需要建立的是數據,還有問題的抽象模型。把這個模型建立出來,然后去尋找合理的算法。
K- 近鄰算法 。在機器學習當中,我們常見的有 K- 近鄰算法。K- 近鄰算法在我們的專欄中沒有提到,因為它太簡單了。它實際上就是,找到一個樣本點和這個樣本點最近的幾個鄰居,最近的這 K 個鄰居。按照少數服從多數的原則,對它進行分類,這就是 K- 近鄰算法。
回歸模型 。除此之外,還有線性回歸,這樣的統計學習方法。我建立一個線性回歸模型,當然,對二分類我們可以建立邏輯回歸模型。
決策樹 。還有像決策樹這樣的方法。決策樹它不依賴于數據,它完全是自頂向下的一個設計。線性回歸也好,邏輯回歸也好,它是從數據反過來去推導模型,而決策樹直接去用模型判定數據,兩個方向不太一樣。
SVM 支持向量機 。最后,還有 SVM 支持向量機這樣的純數學方法。所以說表示的部分,我們需要把問題和數據進行抽象,這個時候我們就要用到抽象的工具。
評價
給定模型之后,我們如何評價這個模型的好壞?這個時候就需要設定一個目標函數,來評價這個模型的性質。
1.設定目標函數
目標函數的選取也可以有多種形式。像對于我們說到的垃圾郵件這種問題,我們可以定義一個錯誤率。比方說一個郵件它原本不是垃圾郵件,但是我這個算法誤判成了垃圾郵件,這就是一個錯例。所以呢,錯誤率在分類問題當中是個常用的指標,或者說常用的目標函數。
2.最小均方誤差和最大后驗概率
那么在回歸當中呢,我們會使用最小均方誤差這樣一個常用目標函數,尤其是在線性回歸里。除此之外呢,還有最大后驗概率,一些其他的指標。
優化
有了目標函數以后,我們要求解這個目標函數在模型之下的一個最優解,這個模型能夠獲取到的最小錯誤率,或者最小均方誤差是多少呢?我們要求出一個特定的值。沒有這個值的話,你如何評價不同的模型它到底是好是壞呢?所以說優化這個步驟它的作用是求解目標函數在模型之下的一個最優解,看看這個模型在解決這個問題的時候,最好能達到什么樣的程度。
總結來說,多明戈斯教授總結到的機器學習的三個步驟,包括了表示、評價、優化這樣三個步驟,在這三個步驟當中我們會用到不同的數學公式來分別解決這三個問題。
(2)三種數學工具
線性代數
在這三個步驟中,應用了三種不同的工具。在表示這個步驟當中,我們主要使用的工具是什么呢?就是線性代數。線性代數呢,我們在這個專欄里面也提到,它起到的一個最主要的作用就是把具體的事物轉化成抽象的數學模型。不管你的世界當中有多么紛繁復雜,我們都可以把它轉化成一個向量,或者一個矩陣的形式。這就是線性代數最主要的作用。
所以,在線性代數解決表示這個問題的過程中,我們主要包括這樣兩個部分,一方面是線性空間理論,也就是我們說的向量、矩陣、變換這樣一些問題。第二個是矩陣分析。給定一個矩陣,我們可以對它做所謂的 SVD(singular value decomposition)分解,也就是做奇異值分解,或者是做其他的一些分析。這樣兩個部分共同構成了我們機器學習當中所需要的線性代數,當然了,這兩者也是各有側重。線性空間的話,我們主要應用在一些解決理論問題當中,矩陣分析在理論當中有使用,在實踐當中也有一些使用。
概率統計
我們說到,線性代數起作用是在表示的過程當中。在評價過程中,我們需要使用到概率統計。概率統計包括了兩個方面,一方面是數理統計,另外一方面是概率論。
數理統計好理解,我們機器學習當中應用的很多模型都是來源于數理統計。比方說最簡單的線性回歸,還有邏輯回歸,它實際上都是來源于統計學。在具體地給定了目標函數之后,我們在實際地去評價這個目標函數的時候,我們會用到一些概率論。比方說給定了一個分布,我要求解這個目標函數的期望值。在平均意義上,這個目標函數能達到什么程度呢?這個時候就需要使用到概率論。所以說在評價這個過程中,我們會主要應用到概率統計的一些知識。
實際上對于數理統計來說,我們在評價模型的時候,不只關注的是一個目標函數,我們可能還關注一些它的統計特性。比如說它的置信度,或者是其他的一些指標。你這個模型建立起來,它的可信性程度到底有多大,這些在早期的機器學習算法當中也是需要考慮的。當然隨著神經網絡,隨著深度學習的興起,這部分內容實際上漸漸地衰落,或者漸漸地被忽略。你在神經網絡當中可能只需要達到一個這個好的目標函數,好的指標就行,至于說它的置信度,這些我們不去考慮。
所以說,這也是深度學習不太受學數學,或者說學統計學的人待見的一個原因。因為統計學強調什么呢?強調可解釋性,你這個模型能夠達到什么樣的指標,我們能把它清清楚楚地講明白,為什么能夠達到這樣的指標,它的原理在哪?它背后的根據在哪?我給定一個分布,假如說高斯分布,那么再給定一個模型,我就可以通過嚴謹而簡潔的這個數學推導,把這個結果以公式的形式給它呈現出來,這個看起來就很高大上,或者說很清楚。但神經網絡和深度學習,現在還達不到這樣可解釋的程度。所以說現在也有人批評,說深度學習是煉金術,主要的原因在這里。我只能夠通過調參數調出一個比較好的結果,但是到底這個結果為什么會出現?哪些因素會影響到它?可能還不是那么清晰。所以呢,關于概率統計,我們主要應用在評價這個過程中。
最優化理論
關于優化,就不用說了,我們肯定用到的是最優化理論。在最優化理論當中,主要的研究方向是凸優化。
凸優化當然它有些限制,但它的好處是什么呢?能夠簡化這個問題的解。因為在優化當中我們都知道,我們要求的是一個最大值,或者是最小值,但實際當中我們可能會遇到一些局部的極大值,局部的極小值,還有鞍點這樣的點。凸優化可以避免這個問題。在凸優化當中,極大值就是最大值,極小值也就是最小值。
但在實際當中,尤其是引入了神經網絡還有深度學習之后,凸優化的應用范圍越來越窄,很多情況下它不再適用,所以這里面我們主要用到的是無約束優化。我在整個范圍之內,我對參數,對輸入并沒有限定。在整個的輸入范圍內去求解,不設置額外的約束條件。同時,在神經網絡當中應用最廣的一個算法,一個優化方法,就是反向傳播。
(3)三種數學工具和三個步驟并非一一對應
我們今天談論這個機器學習當中,用到的基礎數學都包括哪些呢?包括這三種,線性代數,概率統計,還有最優化理論。這是我們在機器學習當中用到的最基礎的一些數學工具。如果大概做一個分類,分別對應到我們機器學習當中,表示、評價,還有優化這樣三個步驟。
當然,這種應用它也并不是說一一對應的關系。在表示當中我只用到線性代數,概率統計一點兒都不涉及,同樣地,我在評價的時候,線性代數也不涉及,不是這樣,都會有一個交叉的過程,但是在每個步驟當中應用到的主要工具還是有所區別。
(4)高等數學是數學工具的基礎
當然,在數學工具當中,我們并沒有涉及到高等數學,高等數學我們就把它當作一個基礎,一個基礎中的基礎。不光是人工智能,或者說機器學習,只要有數學參與的地方,我們都需要有高等數學的這個基礎。那么具體到機器學習當中,我們在高等數學這一塊兒用到的比較多的,可能包括求導,微分,這樣的一些內容。當然還有這個積分,我們在求解這個目標函數的期望值的時候可能也會遇到。
所以到這呢,我們就說,我們介紹了機器學習當中用到了哪些數學。主要就是這三塊,線性代數,概率統計,還有最優化,那么任何復雜的算法實際上都是由這三者的結合疊加所構造出來的,那么這三者在機器學習當中他們起到的作用分別是什么呢?我們可以具體地來看一看。
二、三種數學工具在機器學習中的作用
(1)線性代數
1.將具體事物抽象為數學對象
對于線性代數來說,我們可以對它做一個簡單的定義。所謂線性代數是什么?就是數量和結構的一個組合,也就是說,線性代數等于數量加上結構。本身數量呢,它是一個單獨的數。對于單個的數我們沒有結構可言,對于單個的對象沒有結構可言。但是當我們把一組數,或者一堆數排列到一塊兒的時候,這個排列不是隨機的排列,而是有一定的順序進行排列的時候,這個時候,數目之間的順序或者數量之間的順序就形成了一種結構,這個結構就可以蘊含一定的信息,能夠供我們去使用。
除了順序之外,結構還有另外一層含義。我可以對數量定義一些運算。在線性空間里面我們提到,基本的運算包括什么呢?包括加法,包括數乘,這樣一些運算。有了運算之后,我們就可以對不同的對象,單個的數目放在一塊兒,按照一定的順序排列在一起,我們可以把它組成一個向量,組成這樣一個對象。那么有了加法,數乘這樣一些運算之后,你就可以對這個對象再來進行一些操作。這樣的話,就實現了把具體事物給它抽象成數學對象,這樣的一個過程。這就是線性代數最主要的一個作用。當然不光是在機器學習里面,在其他應用到線性代數的場合也是一樣:把具體的事物抽象成為數學對象。
2.提升大規模運算的效率
當然除此之外呢,它還有另外一個優勢,線性代數還有另外一個作用,就是能夠提升大規模運算的效率。因為在現代的機器學習當中,我們要處理的數據都是海量的數據,數據的數量是呈指數形式的增長。我們要處理的數據越來越多,如果只是簡單地說,用最傳統的方法,用一個一個的 for 循環去處理高維的矩陣,它的效率肯定是相當低下。有了線性代數之后,我們可以把矩陣的運算引入到機器學習的算法當中,通過一些額外的庫,或者一些額外的軟件包,提升大規模運算的效率。這里面最直觀的一個例子就是 MATLAB 軟件。MATLAB 軟件本身名字叫矩陣實驗室。它的特點,或者說它的賣點就在于,對矩陣,或者說對向量它操作的高效率。
所以說呢,線性代數,我們把它總結一下,它就等于數量和結構的組合。它的作用,一方面可以把具體的事物抽象成數學對象,另外一方面,可以提升大規模運算的效率。
(2)概率統計
1.利用數據學習模型
如果我們說,線性代數可以看成是數量還有結構的組合的話,那么概率統計就可以看成是模型還有數據的組合。
那么模型和數據組合在一塊,實際上是雙向的處理。我們機器學習有學習的階段,我們要利用這個數據去訓練這個模型,這個階段,我們是用數據去學習這個模型。在模型里面,我們就可以去選擇。有那么多的模型,像我們剛才說到的,有 K- 近鄰的模型,有回歸模型,有決策樹,還有支持向量機,這樣不同的模型。我訓練的任務就是用數據來學習這些模型,來確定這個模型的參數,最終得到一個確定的模型。這就可以看成什么呢?看成是在給定數據的情況下,我來求解這個參數,它的條件概率。給定的數據,如果有一部分參數的條件概率是最大的,那么就選擇這部分參數,作為我這個模型的參數。實際上,訓練過程解決的就是這樣一個問題。
當然具體來說,包括生成模型,包括判別模型,那么生成模型我們求解的是輸入輸出的一個聯合概率分布,那么判別模型是一個條件概率分布。但不管怎么樣,很多情況下,我們關注的目標都是分布,那么利用數據進行訓練的過程也就是學習這個分布的過程。
2.利用模型推斷數據
接下來呢,在訓練結束之后,我們要這個模型要來干什么呢?要進行預測,也就是說,利用這個模型來進行數據的推斷。給定這個模型,我給到一個輸入,我輸入可能是一個特征,一些特征的組合,形成一個向量。我把這個輸入的向量代入到模型當中,就可以求出一個結果,當然也可能是多個結果。我取這個概率最大的結果作為一個輸出,這個過程就是反過來利用模型去推斷數據的一個過程。所以我們說,概率統計等于模型和數據的一個組合,這個組合是雙向的。在學習階段,我們利用數據來訓練模型,在預測階段,我們利用模型反過來去推斷這個數據。
所以,在概率統計這一塊,我們關注的是模型的使用,還有概率的求解。當然兩者不是完全區別開的,是相互融合的。在建立模型的時候,我們會利用到一些先驗概率分布。在求解目標函數的時候,我們也會涉及求解數學期望這樣一些操作。這里面我們也給出了一個實例,就是回歸分析還有機器學習方法的比較。
(3)最優化理論
概率統計呢,我們可以把它解釋成這個模型和數據的一個組合,那么最優化的話,就可以看成是目標和約束的一個組合。在這里面,我們最優化的目標是什么呢?是求解,讓這個期望函數,或者讓目標函數取到最值的解,手段是什么呢?就是通過調整模型的參數來實現,為什么要調整這個模型的參數?因為很多時候,我們想求解到這個解析解是求不出來的。在很多復雜的問題當中呢,這個解析解是沒有辦法求出來的。對于線性回歸來說,我們可以求解出 Beta 的一個表達式,那樣一個矩陣相乘,求逆,再進行相乘的一個表達式。很多時候,這個解析解我們求不到,求不到怎么辦?就只能一點一點去試,一步一步去找,我要的最小值或者最大值,它到底在哪?這個時候就會用到我們最優化的方法,包括梯度下降,包括其他的一些方法。
在使用這些方法的時候,我們要注意調整一些參數。一方面是模型的參數,另外一方面還有所謂的超參數。
調整模型參數,一方面,它的作用讓我們找到真正的最小值,或者找到真正的最大值。另外一方面,避免在尋找的過程中把最小值,或者最大值,本來你是能找到的,但是這個超參數沒有設計好,比如說我的步長、速率沒有設計好,把這個點錯過,要避免這樣一些問題。所以說對于最優化而言,我們可以把它看成是目標,還有參數的一個組合,通過這兩者來找到我們想要的合適的點。
三、需要掌握到什么程度?
剛才呢,我們結合這些實例,解釋了線性代數,概率論,概率學統計,還有最優化,在機器學習當中的一些作用。接下來我們來看一看,需要掌握到什么程度。需要掌握到什么程度呢?實際上,應該說是一個見仁見智的問題。當然理想的情況肯定是掌握得越多越好,最好你能把所有的數學都掌握到,不光是我們提到的這些,甚至更加高級的你都會,這是最好的效果。當然在實際當中,我們不可能,沒有那么多精力去專門地鉆研到這個數學當中,所以說這種理想的情況也是不存在的。那么具體來說,掌握到什么程度呢?
(1)機器學習的三重境界
1. 能使用:利用已知方法解決問題
我在這里列出來了三個階段。第一個階段呢,我管它叫做能使用。也就是說,給定一個模型,我能夠用它來根據給定的輸入來求解輸出,也就是利用已知的方法來解決問題。那么這個已知的方法,我可以把它看成一個黑箱子,我不關注這個過程,不關注這個方法是如何解決問題,只要能夠解決問題就行。可能已經有了一個算法,那么我只需要對數據做一些處理,把這個數據送入到算法當中,得到一個輸出,我能看明白這個輸出是怎么回事,這就可以。這是能使用的階段,我只是做一個算法的使用者,我能把它用清楚就夠了。
2. 能看懂:理解已知方法的工作原理
如果在能使用的基礎上再進一步,那么就是能看懂,我不光用這個已知的方法來解決問題,同時我還能夠理解這個方法的工作原理。知其然,還能知其所以然。能使用就是知其然,能看懂就是知其所以然。那么這個方法可能背后有一些數學推導,會涉及到一些概率,最優化,還有線性代數的一些使用。那么這個能看懂,就要求你具備相關的知識,能夠把這個推導的過程給它順下來,知道這個方法具體是怎么來工作。
3. 能設計:根據問題特征開發新方法
如果在這個能看懂的基礎上,再進一步的話,我們可以把它叫做能設計。我把已知方法理解之后,我還可以根據我的問題,根據我自己的實際問題的特點,來開發一些新的方法。要么呢,可以對已知的方法我來做一些改進,使它更符合我自己的一個待解決問題的方法,或者說我開發一個完全新的方法,就是重新推導,推倒重來,直接設計一個新的方法。那么很顯然,這個呢,對于數學功底就有更深層次的一個要求。
所以我們說對于數學的掌握程度包括這樣的三個層次,能使用,能看懂,還能設計。那么具體在實際當中,你需要做到哪個程度,那么就要根據自己的實際情況來做出判斷。
四、如何盡快、高效率掌握數學知識?
(1) 掌握核心概念
在這方面,我給出的建議是,一方面是,我們要握核心概念,在線性代數當中核心概念是什么?就是線性空間,向量矩陣以及對于向量矩陣的度量,包括范數、包括內積這些,這些就是它的核心概念。那么在概率統計當中,頻率學派,還有貝葉斯學派,他們兩者之間的區別是一個核心概念,同時呢,像期望方差這些指標,還有條件概率,這樣的一些概念,條件概率聯合概率這樣一些概念也是核心概念。那么在最優化當中,這些算法,這個梯度下降法,或者牛頓法,這就是核心概念。
(2) 以點帶面
在時間有限的情況下,我們一定要把有限的精力集中在重要的知識上。先把這些核心概念搞清楚,再通過這些核心的概念,來以點代面,從這些關鍵的問題去鋪開,慢慢地去接觸其他的問題。
(3) 問題導向
最后一點呢,我覺得,在學習的時候,我們可以以問題為導向,就是結合著我們實際的需求,結合我們實際的問題,來決定我們去學什么。這個呢,和我們前面所說到的這個掌握到什么程度也是一樣,掌握到什么程度也是相通的。因為畢竟我們學習,機器學習,學習機器學習當中的數學都是為了解決問題。如果不能解決問題的話,你學到的這個東西的價值就沒有能夠解決問題的這個知識的價值大。當然我們也不能說一點價值都沒有。在學習的時候,大家可以嘗試著以問題為導向。帶著問題去探索這些知識,帶著問題去學習知識,可能你會發現,這樣會得到更高的效率。
五、推薦書目
推薦書目在我們專欄里面也有相應的推送。在基礎數學,基礎學習,神經網絡,還有深度學習,每個模塊我們結束之后都會推薦一些相關的書籍。但是在這里,我想要跟大家推薦的兩本書,都是關于機器學習,或者說都是關于統計學習,一本叫 An Introduction Statistical to Learning ,另一本叫 The Elements of Statistical Learning 。
兩本書的作者是同一撥人,有兩個共同的作者。它們講述的都是統計學習,或者機器學習的方法。其中前一本可以看成是后一本的簡化版。它更通俗、更簡單一些,后面這個稍微有些難。為什么推薦這兩本呢?因為這兩本,它更深入的會挖掘方法背后的一些數學含義。我們能夠看到的教科書,它主要的作用是把這個方法講清楚。來了個方法,比如說線性回歸,怎么推導,怎么區算,一大堆公式寫出來,那么給出一個推導的結果,或者說決策樹,或者其他的算法都一樣,可能到這里就結束了,我的任務就完成了。
這兩本書,它不光是介紹方法推導,它可能更看中統計學上的意義。我們為什么要這么做,我們設計這個方法在統計學上有什么意義。因為作者都是統計學家,有幾十年的積淀,有幾十年的研究積淀,所以,相比于其他市面上教科書,我認為他們兩個 insight 可能更多一些。當然了,大家看起來,也會有相應的難度,可能并不是像我們平時的教科書那么簡單。這些書,我們一遍兩遍是讀不完的,如果真正要從事人工智能、機器學習這方面的工作的話,可能要多讀幾遍,每讀一遍也會有不同的收獲。
數學基礎知識蘊含著處理智能問題的基本思想與方法,也是理解復雜算法的必備要素。今天的種種人工智能技術歸根到底都建立在數學模型之上,要了解人工智能,首先要掌握必備的數學基礎知識,具體來說包括:
線性代數:如何將研究對象形式化?
概率論:如何描述統計規律?
數理統計:如何以小見大?
最優化理論: 如何找到最優解?
信息論:如何定量度量不確定性?
形式邏輯:如何實現抽象推理?
01 線性代數:如何將研究對象形式化
事實上,線性代數不僅僅是人工智能的基礎,更是現代數學和以現代數學作為主要分析方法的眾多學科的基礎。從量子力學到圖像處理都離不開向量和矩陣的使用。而在向量和矩陣背后,線性代數的核心意義在于提供了?種看待世界的抽象視角:萬事萬物都可以被抽象成某些特征的組合,并在由預置規則定義的框架之下以靜態和動態的方式加以觀察。
著重于抽象概念的解釋而非具體的數學公式來看,線性代數要點如下:線性代數的本質在于將具體事物抽象為數學對象,并描述其靜態和動態的特性;向量的實質是 n 維線性空間中的靜止點;線性變換描述了向量或者作為參考系的坐標系的變化,可以用矩陣表示;矩陣的特征值和特征向量描述了變化的速度與方向。
總之,線性代數之于人工智能如同加法之于高等數學,是一個基礎的工具集。
02 概率論:如何描述統計規律?
除了線性代數之外,概率論也是人工智能研究中必備的數學基礎。隨著連接主義學派的興起,概率統計已經取代了數理邏輯,成為人工智能研究的主流工具。在數據爆炸式增長和計算力指數化增強的今天,概率論已經在機器學習中扮演了核心角色。
同線性代數一樣,概率論也代表了一種看待世界的方式,其關注的焦點是無處不在的可能性。頻率學派認為先驗分布是固定的,模型參數要靠最大似然估計計算;貝葉斯學派認為先驗分布是隨機的,模型參數要靠后驗概率最大化計算;正態分布是最重要的一種隨機變量的分布。
03 數理統計:如何以小見大?
在人工智能的研究中,數理統計同樣不可或缺。基礎的統計理論有助于對機器學習的算法和數據挖掘的結果做出解釋,只有做出合理的解讀,數據的價值才能夠體現。數理統計根據觀察或實驗得到的數據來研究隨機現象,并對研究對象的客觀規律做出合理的估計和判斷。
雖然數理統計以概率論為理論基礎,但兩者之間存在方法上的本質區別。概率論作用的前提是隨機變量的分布已知,根據已知的分布來分析隨機變量的特征與規律;數理統計的研究對象則是未知分布的隨機變量,研究方法是對隨機變量進行獨立重復的觀察,根據得到的觀察結果對原始分布做出推斷。
用一句不嚴謹但直觀的話講:數理統計可以看成是逆向的概率論。 數理統計的任務是根據可觀察的樣本反過來推斷總體的性質;推斷的工具是統計量,統計量是樣本的函數,是個隨機變量;參數估計通過隨機抽取的樣本來估計總體分布的未知參數,包括點估計和區間估計;假設檢驗通過隨機抽取的樣本來接受或拒絕關于總體的某個判斷,常用于估計機器學習模型的泛化錯誤率。
04 最優化理論: 如何找到最優解?
本質上講,人工智能的目標就是最優化:在復雜環境與多體交互中做出最優決策。幾乎所有的人工智能問題最后都會歸結為一個優化問題的求解,因而最優化理論同樣是人工智能必備的基礎知識。最優化理論研究的問題是判定給定目標函數的最大值(最小值)是否存在,并找到令目標函數取到最大值 (最小值) 的數值。 如果把給定的目標函數看成一座山脈,最優化的過程就是判斷頂峰的位置并找到到達頂峰路徑的過程。
通常情況下,最優化問題是在無約束情況下求解給定目標函數的最小值;在線性搜索中,確定尋找最小值時的搜索方向需要使用目標函數的一階導數和二階導數;置信域算法的思想是先確定搜索步長,再確定搜索方向;以人工神經網絡為代表的啟發式算法是另外一類重要的優化方法。
05 信息論:如何定量度量不確定性?
近年來的科學研究不斷證實,不確定性就是客觀世界的本質屬性。換句話說,上帝還真就擲骰子。不確定性的世界只能使用概率模型來描述,這促成了信息論的誕生。
信息論使用“信息熵”的概念,對單個信源的信息量和通信中傳遞信息的數量與效率等問題做出了解釋,并在世界的不確定性和信息的可測量性之間搭建起一座橋梁。
總之,信息論處理的是客觀世界中的不確定性;條件熵和信息增益是分類問題中的重要參數;KL 散度用于描述兩個不同概率分布之間的差異;最大熵原理是分類問題匯總的常用準則。
06 形式邏輯:如何實現抽象推理?
1956 年召開的達特茅斯會議宣告了人工智能的誕生。在人工智能的襁褓期,各位奠基者們,包括約翰·麥卡錫、赫伯特·西蒙、馬文·閔斯基等未來的圖靈獎得主,他們的愿景是讓“具備抽象思考能力的程序解釋合成的物質如何能夠擁有人類的心智。”通俗地說,理想的人工智能應該具有抽象意義上的學習、推理與歸納能力,其通用性將遠遠強于解決國際象棋或是圍棋等具體問題的算法。
如果將認知過程定義為對符號的邏輯運算,人工智能的基礎就是形式邏輯;謂詞邏輯是知識表示的主要方法;基于謂詞邏輯系統可以實現具有自動推理能力的人工智能;不完備性定理向“認知的本質是計算”這一人工智能的基本理念提出挑戰。
責任編輯:ct
評論
查看更多