AI入門:AI本質及搭建最簡AI框架三部曲


    如今 AI 變得無所不知,但原因並不是它真的能“窺探”萬物,僅僅是因為它學會了從“數據”中學習,尋得了萬物的規律。你與“淘友們”的瀏覽、購買數據,讓它了解了你這個類群消費者的偏好;你與“出行者們”的日復一日的交通記錄,讓它輕松掌握所有人的出行規律。

    所以 AI 的本質就是“從大數據中學習”,那么想要了解 AI,是不是真的需要先用千萬級的數據練手呢?不是的。接下來我僅用四對數據,便能從中帶你找出“人工智能建模框架”的關鍵公式。

    這一模塊,我們就開始從數學的視角來學習一下人工智能。

    從“身高預測”認識 AI 本質
   我們先來看一個最簡單的人工智能的例子。有四對父子,他們的身高分別如下表所示,假設孩子的身高與父親的身高之間是線性關系,試着用前三對父子身高的關系推算出第四對父子中兒子的身高。

序號   父親 兒子
1 173 170
2 170 176
3 176 182
4 182

我們可以利用 Excel 繪制散點圖的方法擬合,也可以用先前所學的線性回歸進行擬合。不管哪種方法,擬合的結果都是兒子的身高 = 父親的身高+3。我們根據這個關系可以推算出,對於身高 182 的父親,他的孩子更有可能的身高是 185。

                                                  

 

 

其實,這就是一個用人工智能解決問題的案例。人工智能,是讓機器對數據進行計算,從而得到經驗(這很像人類對書本知識的學習),並利用經驗對未知事務做出更智能的決策。

在這個例子中,我們對前三對父子身高關系進行計算,得到了“兒子的身高 = 父親的身高 + 3”的經驗;再用這個經驗,對身高為 182 的父親的孩子身高做出更合理、智能的決策結果。

可見,人工智能的目標就是要做出更合理、智能的決策。它的途徑是對數據的計算,當然數據量越多越好,這也是“大數據”的核心優勢。它的產出結果就是經驗,有時候也叫作模型。換句話說,人工智能就是要根據輸入的數據,來建立出效果最好的模型。

 人工智能建模框架的基本步驟

 

既然我們說,人工智能就是要建立模型,那究竟該怎么建立呢?有沒有一些通用的方法或者步驟呢?

 

答案是,有的。我們接下來,以前面預測孩子身高為例,再結合人工智能的定義,來試着總結出人工智能建立模型的步驟。

 

人工智能要通過數據來建立模型,那么數據是什么呢?其實,就是這三對父子的身高,這也是我們建模的輸入。那么模型又是什么呢?模型是用來做預測的經驗,其實這就是基於某個輸入的自變量,來預測與之對應的因變量的函數,即 y=f(x)。

 

在這個例子中加了一個假設,那就是父子之間的身高關系是線性的,這就意味着 f(x) 有線性函數的表現形式,其通式是 kx+b,也就是說 y=f(x)=kx+b。

 

當然,這個假設也可以是二次多項式的、指數型的。

 

此時可以發現,給定某個自變量 x 時,對因變量 y 的結果起到決定性作用的是參數 k 和 b。也就是說,模型的參數(k 和 b)與自變量 x,共同決定了因變量 y 的值。

 

因此,有時候人們也喜歡把上面的模型寫作 y=f(w;x)。在這里w就代表了模型的參數,它可以是個標量,也可能是個向量,取決於模型的參數有多少個。像此時有 k 和 b 兩個參數,那么w就是個向量,定義為 [k,b]。

 

人工智能的目標是要讓模型預測的結果盡可能正確,而決定模型預測結果的就是模型的參數。因此,建模的過程更像是找到最合適的參數值,讓模型的預測結果盡可能正確。

 

這句話有些隱諱,我們嘗試用數學語言來描述它。

 

圍繞“模型預測結果盡可能正確”,就是說預測的結果和真實的結果之間的偏差盡可能小,我們就需要用一個數學式子來表達。在先前的課時中,我們提到過利用平方誤差來描述兩個值的偏差程度,即 (y1-y2)2,代入到這里就是 (y-ŷ)2。

 

在例子中,我們有三對父子的數據,這樣就有了 3 個預測結果和 3 個真實結果。我們用 L(w) 來表示這 3 條數據的平方誤差之和,就有了 L(w) = (y1-ŷ1)2+(y2-ŷ2)2+(y3-ŷ3)2。

 

之所以用 L(w) 來表示,是因為真實值 ŷi 在數據集中是已知的;而預測值 yi = f(w; xi) 中,xi 在數據集中也是已知的,目前只有w這個模型參數是未知的。這樣,我們就寫出了“偏差”的函數。

 

最后,人工智能的目標是模型盡可能准確,也就是要讓“偏差盡可能小”,這就是求極值的問題,即計算 minL(w)。

人工智能建模框架的三個公式

其實,不論是多么復雜的人工智能模型,其建模過程都是上面的過程,而上面的過程又可以凝練出三個標准路徑,分別對應三個數學公式,它們分別如下。

第一步,根據假設,寫出模型的輸入、輸出關系 y = f(w; x);

第二步,根據偏差的計算方法,寫出描述偏差的損失函數 L(w);

第三步,對於損失函數,求解最優的參數值,即w*= argmin L(w)。

值得一提的是,前面所說的“偏差”,通常用損失函數這個專業名詞來表達。

人工智能技術不斷更新換代,但所有技術分支都在這三個步驟當中。不同種類的模型,其區別不外乎是這三個步驟實現方法的不同,下面我簡單舉例以下這種實現方式:

第一步的假設,可以由線性模型調整為高階多項式的假設 y=ax^2+bx+c;

第二步的損失函數,可以由平方誤差調整為絕對值求和的誤差,即 L(w) = |y1 - ŷ1| + |y2 - ŷ2| + |y3 - ŷ3|;

第三步的求解最優,可以采用求導法,也可以調整為梯度下降法,甚至可以用一些啟發式方法求解。

不管這些實現細節如何調整,永遠不變的就是這三個標准路徑,這也是搭建最簡 AI 模型的基本框架。

 

我們建模的目標就是,建立出效果最好的模型。由於參數決定了模型的預測結果,效果最好就是偏差最小,也就是說建模的目標就是,要找到讓偏差最小的參數值。用數學符號來表達就是w*= argmin L(w),而w*就是我們要建立的最佳模型。

 

 用 AI 基本框架重新看“線性回歸”

 

經過多年的發展,人工智能領域有很多被驗證成熟可用的模型。在這一講,先以我們都很熟悉的“線性回歸”為例,來驗證一下基本框架。

 

第一步,根據假設,寫出模型的輸入、輸出關系 y = f(w; x)。我們假設是線性模型,則有

 

y = kx + b。

 

第二步,根據偏差的計算方法,寫出描述偏差的損失函數 L(w)。我們選擇平方誤差,則有

 

L(w) = (y1 - ŷ1)^2 + (y2 - ŷ2)^2 + (y3 - ŷ3)^2。其中w= [k,b],我們再把 y=kx+b 和三對父子的實際身高 xi、ŷi 代入上式,則有 L(k,b) = (173k+b-170)^2 + (170k+b-176)^2 + (176k+b-182)^2。

 

第三步,對於損失函數,求解最優的參數值,即w*= argmin L(w)。為了求解函數的極小值,我們考慮計算損失函數關於 k 和 b 的導數,則有

 

 

 

 

我們用求導法來計算函數最小值,則令這兩個偏導數為零並解方程,則有 179610k+1038b-182724=0 和 1038k+6b-1056=0,求得 k=1,b=3,這個結果與剛剛用 Excel 的計算結果完全一致。

 

這個例子就是對“線性回歸”另一個視角的解讀。你也可以理解為,線性回歸就是一種最基礎的人工智能模型。

 

總結

最后,我們對這一講進行總結。我們通過一個預測身高這樣一個最簡單的例子,以小見大,認識了人工智能模型的建模過程和基本本質。

人工智能的目標是做出更合理、更智能的決策,它的途徑是對數據進行計算,從而輸出結果,並將這一結果叫作模型。用一句話來概括,人工智能就是要根據輸入的數據,來建立出效果最好的模型。

人工智能的建模過程通常包括下面三個步驟:

第一步,根據假設,寫出模型的輸入輸出關系 y = f(w; x);

第二步,根據偏差的計算方法,寫出描述偏差的損失函數 L(w);

第三步,對於損失函數,求解最優的參數值,即w*= argmin L(w)。

人工智能發展到今天,很多成型的復雜的模型,都是對這三個步驟實現細節的優化。

 

 

附錄:

    導數計算公式

1.y=c(c為常數) y'=0

2.y=x^n  y'=nx^(n-1)

3.y=a^x  y'=a^xlna

y=e^x  y'=e^x

4.y=logax y'=logae/x

y=lnx y'=1/x

5.y=sinx y'=cosx

6.y=cosx y'=-sinx

7.y=tanx y'=1/cos^2x

8.y=cotx y'=-1/sin^2x


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM