|
人工智能中的數(shù)學(xué)概念一網(wǎng)打盡!歡迎來到Y(jié)ouTube網(wǎng)紅小哥Siraj的系列欄目“The Math of Intelligence”,本視頻是該系列的第三集,講解與向量、矩陣等相關(guān)的概念,以及在機器學(xué)習中的運作機理。后續(xù)系列視頻大數(shù)據(jù)文摘字幕組會持續(xù)跟進,陸續(xù)漢化推出喔!
https://github.com/llSourcell/The_Math_of_Intelligence
https://github.com/llSourcell/Vectors_Linear_Algebra/tree/master 本期視頻時長11分鐘,來不及看視頻的小伙伴,可以先拉到視頻下方看文字部分。 嗨大家好!我是Siraj! 今天我們來處理向量問題。在機器學(xué)習中你會經(jīng)??吹竭@個詞,這也是我們需要理解的最重要概念之一。 機器學(xué)習很大一部分是在尋求一種合適的方法,將數(shù)據(jù)集以編程的形式表現(xiàn)出來。 假設(shè)你是特斯拉的一位經(jīng)理,你拿到了一些測量數(shù)據(jù),這些數(shù)據(jù)來自于上周生產(chǎn)的所有車輛。每種車有三項測量數(shù)據(jù),這些數(shù)據(jù)表示其長寬高,因此每一輛給定的汽車在三維坐標系中都可以表示成一個點。三維坐標系中每一個維度的數(shù)值,都與我們測量到的特征值一一對應(yīng)。 同理,這也適用于具有300個特征值的數(shù)據(jù)點,300維空間內(nèi),盡管這不像三維尺度那樣容易理解,不過機器可以很好地處理這一多維問題。 我們可以把如圖所示的這個數(shù)據(jù)點x看成一個向量,一個向量就是一個一維數(shù)組,你可以把它看成一列數(shù)值或者表中的一行數(shù)值,n個元素的向量就是n維向量。其中每個元素都是一維,因此對于一個4維數(shù)據(jù),我們用一個1*4數(shù)組就能表示出其四個特征值,并且因為它表示的是一組特征,我們稱之為特征向量。 比向量大一點的范疇是矩陣,矩陣是由數(shù)字組成的矩形數(shù)組,向量則是矩陣中的一行或者一列,因此矩陣中的每一行都可以代表一個不同的數(shù)據(jù)點,相應(yīng)的每一列數(shù)值則是該數(shù)據(jù)點的各個特征值。 比向量小一點的范疇則是標量,只有一個單一數(shù)字。 這幾個概念也都可以統(tǒng)一稱之為張量。張量是多維數(shù)組,一階張量就是向量,二階張量就是矩陣,三階以及更高階張量則叫做高階張量。你可以把一個包括朋友,朋友的朋友,朋友的朋友的朋友的社會關(guān)系譜用一個高階向量來表示。 基于此谷歌建立了一個庫叫做TensorFlow。你可以利用它創(chuàng)建一個計算圖譜。 首先通過數(shù)據(jù)得到張量,再利用張量通過一系列數(shù)學(xué)運算去優(yōu)化一個目標。同時他們還制造了一種全新的芯片,叫做TPU 即張量處理單元。隨著計算能力和數(shù)據(jù)量的增加,我們也越來越有能力處理多維數(shù)據(jù)。 向量通??梢砸远喾N方式表示,它們被廣泛應(yīng)用于科學(xué)的各個領(lǐng)域,尤其是物理學(xué)領(lǐng)域,向量通常被用作記錄工具來跟蹤記錄兩個不同的信息。 向量通常是表示物理量的大小和方向。例如,在愛因斯坦的廣義相對論中,時空曲率引起重力就被表示為Riemann曲率張量。該張量是一個四階張量,好家伙,因此我們不僅可以用這種方法來表示實際問題;還可以表示優(yōu)化問題中的梯度,在一階優(yōu)化法中,我們的模型的權(quán)重隨著每次通過訓(xùn)練樣本集逐步更新,給定一個誤差函數(shù),如方差之和,通過在誤差梯度相反方向操作,我們可以計算出權(quán)重變化的大小和方向。 這一切都是運用線性代數(shù)得到,代數(shù)基本就是在說關(guān)系,是對未知數(shù)之間的關(guān)系的探索。線性代數(shù)基本意味著線性關(guān)系,它是對矢量空間的信息的規(guī)整。而矢量空間使得同時控制不同組的數(shù)據(jù)變得容易,它對類似以矢量和矩陣控制數(shù)據(jù)的結(jié)構(gòu)進行了定義,并引入了加、減、乘、除的新規(guī)則。 給定兩個陣列,使之相乘的代數(shù)方式如上所示,而線性代數(shù)使之相乘則是這樣——我們進行點積計算,而非像這樣使每個數(shù)字相乘。 這個例子中,線性代數(shù)的方法,較之要快上三倍。任何的數(shù)據(jù)都能以適量方式顯示,圖像、影音、股票指數(shù)、文字、聲音信號,還有dougie舞(某種嘻哈舞)……無論何種數(shù)據(jù),都能被分解為一系列的數(shù)字。 這模型貌似不接收數(shù)據(jù)輸入,不停地在報錯。貌似得使之矢量化。這個模型里,輸入值是一定大小的張量,所以我們基本得重組輸入數(shù)據(jù),這樣它才在正確的矢量空間里。這樣,我們就能計算數(shù)據(jù)點和矢量坐標之間的余弦值之類的。 有沒有Python程序庫可以實現(xiàn)這個?你一定會愛上NumPy的!矢量化實質(zhì)就是一個矩陣操作,我一行代碼就能搞定。 一個叫McCullough的研究者,弄了個叫神經(jīng)網(wǎng)絡(luò)的機器學(xué)習模型,來把詞語打成矢量數(shù)據(jù),也即WORD2VEC。給些語料庫里的文本,比如成千上萬的新聞稿,它就能預(yù)測給定詞語的下一個詞語。所以給定的詞語被編碼成了矢量數(shù)據(jù),模型再試圖預(yù)測下一個詞語,如果預(yù)測詞與實際詞語不同,那么就調(diào)整詞語的矢量值。 所有語料庫里的字詞,都像一個老師那樣,返回錯誤信號,從而調(diào)教矢量值,根據(jù)語境測算出的矢量值接近的詞。因調(diào)整矢量數(shù)據(jù)的數(shù)量迭代反復(fù)地靠在一起,模型因而學(xué)習了成千上萬個矢量詞語,給它一個新詞語,模型就能找到這個詞語相關(guān)的矢量詞匯,這又叫做嵌埋詞匯。 矢量也不僅僅只展現(xiàn)數(shù)據(jù),它們也幫助展示我們的模型。很多機器學(xué)習模型都以矢量來展示自己的學(xué)習過程,所有類型的神經(jīng)網(wǎng)都是如此,給定一些數(shù)據(jù),他就能學(xué)習這些數(shù)據(jù)中的密集式表示,這些表示式實質(zhì)上是種類的劃分,類似于你有一系列不同顏色的眼睛彩圖。模型就要學(xué)習所有眼睛顏色的,大致表示法,這樣,給出一個未貼標簽(表示是眼睛)的眼睛圖片,它也能認出,這是眼睛。 一旦數(shù)據(jù)矢量化,我們可以做很多事情了。一個經(jīng)過訓(xùn)練的”單詞對向量”模型可以將“單詞“轉(zhuǎn)化成“向量”,然后我們可以對這些向量,進行數(shù)學(xué)計算。我們可以看出單詞之間有多密切的關(guān)系。通過計算單詞向量之間的距離,例如 “瑞典“這個詞,其他富裕的北歐國家密切相關(guān)。因為它們之間的距離很小,當在圖上繪制時,相似的單詞,他們的向量,傾向于聚集在一起。比如動物的類型,單詞之間的關(guān)聯(lián)關(guān)系也可以構(gòu)造出來,比如,羅馬對于意大利的關(guān)系,和北京對中國的關(guān)系是一樣的。 計算“酒店“加上”汽車旅館“ 可以得出假日酒店,令人難以置信的是,將單詞矢量化,可以讓我們用數(shù)字的形式捕捉單詞的語義。 我們計算向量之間距離的方法,是利用向量范數(shù)的概念,范數(shù)是任何一種函數(shù)G,它將向量映射到實數(shù),且滿足以下條件:
因此 在一個基本向量空間中,向量的范數(shù)是它的絕對值和兩個數(shù)字之間的距離;通常,向量的長度,用歐幾里德范數(shù)來計算。 但這并不是定義長度的唯一方法,還有其他的,你會看到術(shù)語和L2范數(shù),廣泛地在機器學(xué)習中被使用,L2范數(shù)是歐氏范數(shù)、L1范數(shù)又稱曼哈頓距離。我們可以用其中任意一個向量來歸一化它的單位向量,然后用它來計算距離、計算向量之間的距離。對于顯示給用戶推薦是非常有用的,這兩個術(shù)語也正在被使用在規(guī)范化的過程中。 我們訓(xùn)練模型以適應(yīng)一組訓(xùn)練數(shù)據(jù),但有時該模型能適應(yīng)訓(xùn)練數(shù)據(jù),導(dǎo)致它沒有很好的預(yù)測性能。它不能很好地推廣到新的數(shù)據(jù)點。 為了防止這種問題,我們必須規(guī)范我們的模型,找到最佳模型的常用方法就是定義一個損失函數(shù),它可以描述模型和數(shù)據(jù)的擬合程度。概括起來,特征向量是用數(shù)學(xué)的方法,來表示數(shù)據(jù)的數(shù)字,或符號特征。它們可以在多維向量空間中表示出來,從而我們可以對它們進行計算,比如計算它們的距離并把它們相加,方法是,通過計算向量的向量范數(shù),向量范數(shù)描述了向量的大小,防止過度擬合也很有用。 我們這周的行家獎歸屬是Vishnu Kumar。他實施了梯度下降法,和牛頓模型從而得到一個新模型,用于預(yù)測騎自行車一定距離所消耗的卡路里。圖形很棒,代碼也是非??孔V,大家可以看看,棒棒噠! 最后一分鐘得出的亞軍是Hamad Shaikh。非常熱愛你如此細致的筆記本! 本周的挑戰(zhàn)是——線性回歸模型上實現(xiàn)L1和L2正則化。詳情戳下方鏈接: https://github.com/llSourcell/Vectors_Linear_Algebra/tree/master 贏家將在1周后宣布! |
|
|
來自: yazhongwang > 《文件夾1》