當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]學(xué)習(xí) tensorflow,caffe 等深度學(xué)習(xí)框架前,需要先了解一些基礎(chǔ)概念。本文以筆記的形式記錄了一個(gè)零基礎(chǔ)的小白需要先了解的一些基礎(chǔ)概念。人工智能,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)

學(xué)習(xí) tensorflow,caffe 等深度學(xué)習(xí)框架前,需要先了解一些基礎(chǔ)概念。本文以筆記的形式記錄了一個(gè)零基礎(chǔ)的小白需要先了解的一些基礎(chǔ)概念。

人工智能,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)系

 

 

人工智能(Artificial Intelligence)——為機(jī)器賦予人的智能

"強(qiáng)人工智能"(General AI):無(wú)所不能的機(jī)器,它有著我們所有的感知(甚至比人更多),我們所有的理性,可以像我們一樣思考

"弱人工智能"(Narrow AI):弱人工智能是能夠與人一樣,甚至比人更好地執(zhí)行特定任務(wù)的技術(shù)。例如,Pinterest 上的圖像分類(lèi);或者 Facebook 的人臉識(shí)別。

強(qiáng)人工智能是愿景,弱人工智能是目前能實(shí)現(xiàn)的。

機(jī)器學(xué)習(xí)—— 一種實(shí)現(xiàn)人工智能的方法

機(jī)器學(xué)習(xí)最基本的做法,是使用算法來(lái)解析數(shù)據(jù)、從中學(xué)習(xí),然后對(duì)真實(shí)世界中的事件做出決策和預(yù)測(cè)。

深度學(xué)習(xí)——一種實(shí)現(xiàn)機(jī)器學(xué)習(xí)的技術(shù)

機(jī)器學(xué)習(xí)可以通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。可以將深度學(xué)習(xí)簡(jiǎn)單理解為,就是使用深度架構(gòu)(比如深度神經(jīng)網(wǎng)絡(luò))的機(jī)器學(xué)習(xí)方法。目前深度架構(gòu)大部分時(shí)候就是指深度神經(jīng)網(wǎng)絡(luò)。

神經(jīng)網(wǎng)絡(luò)組成

 

 

一個(gè)神經(jīng)網(wǎng)絡(luò)由許多神經(jīng)元組成,每個(gè)圓圈是一個(gè)神經(jīng)元,每條線(xiàn)表示神經(jīng)元之間的連接。x 表示的輸入數(shù)據(jù),y 表示的是輸出數(shù)據(jù),w 表示每層連接的權(quán)重。w 也就是我們構(gòu)造完神經(jīng)網(wǎng)絡(luò)之后需要確定的。

最左邊的叫做輸入層,這層負(fù)責(zé)接受輸入數(shù)據(jù)。

最右邊的叫做輸出層,我們可以從這層獲取神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)

輸入層和輸出層之間叫做隱藏層。隱藏層層數(shù)不定,簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)可能是 2-3 層,復(fù)雜的也可能成百上千層,隱藏層較多的就叫做深度神經(jīng)網(wǎng)絡(luò)。

深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)的表達(dá)能力更強(qiáng),能夠處理更多的數(shù)據(jù)。但是深度網(wǎng)絡(luò)的訓(xùn)練更加復(fù)雜。需要大量的數(shù)據(jù),很多的技巧才能訓(xùn)練好一個(gè)深層網(wǎng)絡(luò)。

問(wèn)題:假設(shè)計(jì)算速度足夠快,是不是深度網(wǎng)絡(luò)越深越好?

不是。深度網(wǎng)絡(luò)越深,對(duì)架構(gòu)和算法的要求就越高。在超過(guò)架構(gòu)和算法的瓶頸后,再增加深度也是徒勞。

神經(jīng)元(感知器)

神經(jīng)網(wǎng)絡(luò)由一個(gè)個(gè)的神經(jīng)元構(gòu)成,而一個(gè)神經(jīng)元也由三部分組成。

 

 

輸入權(quán)值 每個(gè)輸入會(huì)對(duì)應(yīng)一個(gè)權(quán)值 w,同時(shí)還會(huì)有一個(gè)偏置值 b。也就是圖中的 w0。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程,其實(shí)就是確定權(quán)值 w 的過(guò)程。

激活函數(shù) 經(jīng)過(guò)權(quán)值運(yùn)算之后還會(huì)經(jīng)歷激活函數(shù)再輸出。比如我們可以用階躍函數(shù) f 來(lái)表示激活函數(shù)。

 

 

輸出 最終的輸出,感知器的輸出可以用這個(gè)公式來(lái)表示

 

 

神經(jīng)元可以擬合任意的線(xiàn)性函數(shù),如最簡(jiǎn)單擬合 and 函數(shù)。

 

 

and 函數(shù)真值表如上圖所示。取 w1 = 0.5;w2 = 0.5 b = -0.8。激活函數(shù)取上面示例的階躍函數(shù) f 表示??梢则?yàn)證此時(shí)神經(jīng)元能表示 and 函數(shù)。

如輸入第一行,x1 = 0,x2 = 0 時(shí),可以得到

 

 

y 為 0,這就是真值表的第一行。

在數(shù)學(xué)意義上,可以這樣理解 and 函數(shù)的神經(jīng)元。它表示了一個(gè)線(xiàn)性分類(lèi)問(wèn)題,它就像是一條直線(xiàn)把分類(lèi) 0(false,紅叉)和分類(lèi) 1(true,綠點(diǎn))分開(kāi)

 

 

而實(shí)際上,神經(jīng)元在數(shù)學(xué)上可以理解為一個(gè)數(shù)據(jù)分割問(wèn)題。神經(jīng)元是將神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成數(shù)學(xué)問(wèn)題的關(guān)鍵。比如需要訓(xùn)練神經(jīng)網(wǎng)絡(luò)做一個(gè)分類(lèi)器,那么在數(shù)學(xué)上可以將輸入的參數(shù)(x1,x2...,xn)理解為 m 維坐標(biāo)系(設(shè) x 是 m 元向量)上的 n 個(gè)點(diǎn),而每個(gè)神經(jīng)元?jiǎng)t可以理解為一個(gè)個(gè)擬合函數(shù)。取 m 為 2,放在最簡(jiǎn)單的二維坐標(biāo)系里面進(jìn)行理解。

此時(shí)輸入?yún)?shù)對(duì)應(yīng)的是下圖中的黑點(diǎn),每個(gè)神經(jīng)元就是黑線(xiàn)(由于激勵(lì)函數(shù)的存在,不一定像下圖一樣是線(xiàn)性的,它可以是任意的形狀)。神經(jīng)網(wǎng)絡(luò)由一個(gè)個(gè)神經(jīng)元組成,這些神經(jīng)元表示的擬合函數(shù)相互交錯(cuò)就形成了各種各樣的區(qū)域。在下圖中可以直觀的看到,此時(shí)分類(lèi)問(wèn)題就是一個(gè)數(shù)學(xué)的問(wèn)題,輸入?yún)?shù)落在 A 區(qū)域,那么就認(rèn)為他是分類(lèi) 1,落在 B 區(qū)域,則認(rèn)為他是分類(lèi) 2。依次類(lèi)推,我們便建立了神經(jīng)網(wǎng)絡(luò)分類(lèi)器在數(shù)學(xué)上的表現(xiàn)含義。

 

 

激活函數(shù)

事實(shí)上,一個(gè)神經(jīng)元不能擬合異或運(yùn)算。在下圖中可以直觀的看到,你無(wú)法直接用一條直線(xiàn)將分類(lèi) 0 和分類(lèi) 1 分隔開(kāi)。

 

 

此時(shí)可以借助激活函數(shù)來(lái)做分割。激活函數(shù)選擇閥值函數(shù),也就是當(dāng)輸入大于某個(gè)值時(shí)輸出 1(激活),小于等于那個(gè)值則輸出 0(沒(méi)有激活)。

擬合異或函數(shù)的神經(jīng)網(wǎng)絡(luò)如圖所示:

 

 

圖中神經(jīng)網(wǎng)絡(luò)分成三層。在第二層中,如果輸入大于 1.5 則輸出 1,否則 0;第三層,如果輸入大于 0.5,則輸出 1,否則 0.

第一層到第二層(閥值 1.5):

 

 

第二層到第三層(閥值 0.5):

 

 

可以看到最終結(jié)果與異或結(jié)果吻合。

其實(shí),這里放在數(shù)學(xué)上理解體現(xiàn)的是一個(gè)升維思想。放在二維坐標(biāo)中無(wú)法分割的點(diǎn),可以放在三維坐標(biāo)中分割。上面的神經(jīng)網(wǎng)絡(luò)可以理解為只有最后一層,三個(gè)參數(shù)的神經(jīng)元。激活函數(shù)是用來(lái)構(gòu)造第三個(gè)參數(shù)的方式。這樣等同于將三個(gè)點(diǎn)放在三維坐標(biāo)系中做數(shù)據(jù)分割。相當(dāng)于在二維中無(wú)法解決中的問(wèn)題升維到三維中解決。

 

 

深度學(xué)習(xí)過(guò)程

構(gòu)造神經(jīng)網(wǎng)絡(luò)

確定學(xué)習(xí)目標(biāo)

學(xué)習(xí)

如何進(jìn)行深度學(xué)習(xí),過(guò)程基本都可以分為這三步來(lái)做。用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明。如圖,假設(shè)我們需要通過(guò)深度學(xué)習(xí)來(lái)識(shí)別手寫(xiě)圖片對(duì)應(yīng)的數(shù)字。

 

 

1.構(gòu)造神經(jīng)網(wǎng)絡(luò)。這里可以采用最簡(jiǎn)單的全連接神經(jīng)網(wǎng)絡(luò),也可以采用卷積神經(jīng)網(wǎng)絡(luò)。同時(shí)確定神經(jīng)元的激勵(lì)函數(shù),神經(jīng)網(wǎng)絡(luò)的層數(shù)等?;A(chǔ)概念篇不做過(guò)多介紹

2.確定學(xué)習(xí)目標(biāo)。這里簡(jiǎn)單假設(shè)我們所有輸入的都是手寫(xiě)的數(shù)字圖片。那么這里就有 10 個(gè)輸出,分別對(duì)應(yīng) 0~9 的數(shù)字的比例。我們用 [y0,y1,...y9]表示,每個(gè) y 值代表這張圖可能對(duì)應(yīng)該數(shù)字的概率(y0 表示這張圖是數(shù)字 0 的概率)。對(duì)于上圖中第一個(gè)輸入圖片,在訓(xùn)練過(guò)程中,我們知道第一張圖片輸出應(yīng)該是數(shù)字 5。于是我們期望輸出是 [0,0,0,0,0,1,0,0,0,0]。但是實(shí)際上,我們的模型不是完美的,肯定會(huì)有誤差,我們得到的結(jié)果可能是 [0,0,0.1,0,0,0.88,0,0,0,0.02]。那么就會(huì)有個(gè)訓(xùn)練得到的結(jié)果和期望結(jié)果的誤差。

這時(shí)候我們的學(xué)習(xí)目標(biāo)也就是希望這個(gè)誤差能夠最小。誤差用 L 來(lái)表示,學(xué)習(xí)目標(biāo)就是找到權(quán)值 w,使得 L 最小。當(dāng)然,這里涉及到我們需要用一個(gè)公式來(lái)表達(dá)這個(gè)誤差 L,這個(gè)公式選取也很有學(xué)問(wèn),不同的公式最終在學(xué)習(xí)過(guò)程時(shí)收斂速度是不一樣的,通過(guò)訓(xùn)練模型得到的權(quán)值 w 也是不一樣的。這里先不多介紹。

3.學(xué)習(xí)。假設(shè)我們神經(jīng)模型確定下來(lái)的權(quán)值 w 與 L 的關(guān)系如圖所示(這里我們考慮最簡(jiǎn)單的二維坐標(biāo)下的情況,原理是相通的,推廣到多元坐標(biāo)也是適用的)。由于數(shù)學(xué)模型的復(fù)雜,這里找最小值 L 的過(guò)程其實(shí)是找局部最小值的過(guò)程。[!--empirenews.page--]

 

 

我們都知道,函數(shù)某個(gè)位置可導(dǎo),那么就可以確定這個(gè)點(diǎn)的斜率。要找到局部最小值,可以根據(jù)這個(gè)點(diǎn)的斜率移動(dòng) w。如根據(jù)此時(shí)斜率的值我們可以確定 w 應(yīng)該向右移動(dòng)一段距離。

 

 

此時(shí)移動(dòng) w 的距離稱(chēng)為步長(zhǎng)。步長(zhǎng)的選取很關(guān)鍵,如果步長(zhǎng)過(guò)長(zhǎng),那么每次 w 偏移過(guò)大,永遠(yuǎn)都找不到真正的最小值。而如果步長(zhǎng)選取過(guò)小,那么收斂會(huì)變得很慢,而且有可能在中間某段平滑處停下來(lái),找到的也不是真正的最小值。而步長(zhǎng)怎么選擇呢?其實(shí)比較坑爹,某些時(shí)候有經(jīng)驗(yàn)值,大部分時(shí)候則只能自己調(diào)整去試驗(yàn)。

在學(xué)習(xí)的過(guò)程中,遇到的最常見(jiàn)的一個(gè)問(wèn)題是"走不動(dòng)"了。比如在下圖中。從 A 點(diǎn)走到 B 點(diǎn),B 點(diǎn)由于斜率平滑,慢慢走到了 C 點(diǎn),這時(shí)候可能 C 點(diǎn)斜率是平滑了,那么 w 將無(wú)法繼續(xù)往下走,永遠(yuǎn)停留在 C 點(diǎn)!這樣得到的神經(jīng)網(wǎng)絡(luò)的誤差 L 顯然不是最小的,權(quán)值 w 也不是最佳的。

 

 

因此,在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程中,常用的做法是模擬物理世界引入一個(gè)"動(dòng)量球"。假設(shè)每次的移動(dòng)看成 是一個(gè)"動(dòng)量球"的移動(dòng)。在移動(dòng)過(guò)程中,"動(dòng)量球"先從最高點(diǎn)往下走,雖然下載下來(lái)后斜率減少,但是由于"動(dòng)量球"將移動(dòng)下來(lái)的重力勢(shì)能轉(zhuǎn)變的動(dòng)能,它會(huì)繼續(xù)往下走,從而移動(dòng)過(guò)平緩區(qū)。當(dāng)"動(dòng)量球"到達(dá)某個(gè)局部最低點(diǎn)的時(shí)候,"動(dòng)量球"會(huì)依靠自己的動(dòng)能繼續(xù)滾動(dòng),設(shè)法尋找到下一個(gè)局部最低點(diǎn)。當(dāng)然,"動(dòng)量球"不是萬(wàn)能的,它也可能會(huì)遇到"山坡"上不去最終滑下來(lái)停留在某個(gè)局部最小值(并不是真正的最小值)。但是"動(dòng)量球"的引入,大大增加了學(xué)習(xí)過(guò)程的魯棒性,擴(kuò)寬了局部最小值的尋找范圍。

 

 

實(shí)際上,借助理解神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的過(guò)程,我們會(huì)更加理解為什么深度越高的網(wǎng)絡(luò)不一定就越好。對(duì)于深度越高的神經(jīng)網(wǎng)絡(luò),"平滑區(qū)"會(huì)越來(lái)越多,局部最小點(diǎn)也會(huì)越來(lái)越多。沒(méi)有合適的算法,很容易就陷入某個(gè)局部最小值里面去,而這個(gè)最小值可能還不如深度更淺的神經(jīng)網(wǎng)絡(luò)獲得的局部最小值小。也就是說(shuō),神經(jīng)網(wǎng)絡(luò)復(fù)雜之后,對(duì)架構(gòu)和算法的要求大大加高。

卷積

如果對(duì)卷積這個(gè)數(shù)學(xué)概念還沒(méi)有了解,可以先看知乎這里通俗的解釋。

怎樣通俗易懂地解釋卷積?

如果沒(méi)有做過(guò)圖像處理,還需要先看看卷積核,感受一下它的神奇。

圖像卷積與濾波的一些知識(shí)點(diǎn)

以圖片的卷積為例,深度學(xué)習(xí)中的卷積計(jì)算就是使用卷積核遍歷一張圖片的過(guò)程。

 

 

根據(jù)對(duì)于邊緣的處理不同,卷積分為相同填充和有效填充兩種方法。相同填充中,超出邊界的部分使用補(bǔ)充 0 的方法,使得輸入和輸出的圖像尺寸相同。而在有效填充中,則不使用補(bǔ)充 0 的方法,因此輸出的尺寸會(huì)比輸入尺寸小一些。

 

 

例 1:3*3 的卷積核在 5*5 的圖像上進(jìn)行有效填充的卷積過(guò)程

 

 

例 2. 兩個(gè) 3*3*3 卷積核在 5*5 圖像上進(jìn)行相同填充卷積過(guò)程。動(dòng)圖

圖像有 r,g,b 三個(gè)通道。這里使用卷積核也分為 3 個(gè)通道分別進(jìn)行卷積運(yùn)算

 

 

池化

池化是卷積神經(jīng)網(wǎng)絡(luò)中用到的一種運(yùn)算。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層后面一般是池化層。先進(jìn)行卷積運(yùn)算,再進(jìn)行池化運(yùn)算。

池化層在神經(jīng)網(wǎng)絡(luò)中起到的是降低參數(shù)和計(jì)算量,引入不變形的作用。

池化常用的是兩種,一種是 Avy Pooling,一種是 Max Pooling。下圖是 Max Pooling 的示意圖,可以看到分別找的是 2*2 矩陣中的最大值,Avy Pooling 則是將矩陣所有值加起來(lái),求平均值。

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉