神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)系統(tǒng)的基石。為了在深度學(xué)習(xí)方面取得成功,我們需要從回顧神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識開始,包括架構(gòu)、神經(jīng)網(wǎng)絡(luò)算法等等。
什么是神經(jīng)網(wǎng)絡(luò)?
神經(jīng)網(wǎng)絡(luò)技術(shù)起源于上世紀(jì)五、六十年代,當(dāng)時(shí)叫感知機(jī)(perceptron),擁有輸入層、輸出層和一個(gè)隱含層
許多涉及智能、模式識別和物體檢測的任務(wù)都極難自動(dòng)化,但動(dòng)物和幼兒似乎可以輕松自然地完成。例如,小孩子如何學(xué)會區(qū)分校車和公交車之間的區(qū)別?我們自己的大腦是如何在不知不覺中每天下意識地執(zhí)行復(fù)雜的識別任務(wù)的?我們是如何一眼就能區(qū)分貓與狗的?
我們每個(gè)人都包含一個(gè)現(xiàn)實(shí)生活中的生物神經(jīng)網(wǎng)絡(luò),它與我們的神經(jīng)系統(tǒng)相連——這個(gè)網(wǎng)絡(luò)由大量相互連接的神經(jīng)元(神經(jīng)細(xì)胞)組成。
“人工神經(jīng)網(wǎng)絡(luò)”是一種試圖模仿我們神經(jīng)系統(tǒng)中的神經(jīng)連接的計(jì)算系統(tǒng)。人工神經(jīng)網(wǎng)絡(luò)也被稱為“神經(jīng)網(wǎng)絡(luò)”或“人工神經(jīng)系統(tǒng)”。通??s寫人工神經(jīng)網(wǎng)絡(luò)并將它們稱為“ANN”或簡稱為“NN”。
對于一個(gè)被視為神經(jīng)網(wǎng)絡(luò)的系統(tǒng),它必須包含一個(gè)帶標(biāo)簽的圖結(jié)構(gòu),圖中的每個(gè)節(jié)點(diǎn)都執(zhí)行一些簡單的計(jì)算。從圖論中,我們知道圖由一組節(jié)點(diǎn)(即頂點(diǎn))和一組將節(jié)點(diǎn)對連接在一起的連接(即邊)組成。在下圖 中,我們可以看到此類 NN 圖的示例。
一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)架構(gòu)。輸入呈現(xiàn)給網(wǎng)絡(luò)。每個(gè)連接通過網(wǎng)絡(luò)中的兩個(gè)隱藏層承載一個(gè)信號。最后一個(gè)函數(shù)計(jì)算輸出類標(biāo)簽。
每個(gè)節(jié)點(diǎn)執(zhí)行一個(gè)簡單的計(jì)算。然后,每個(gè)連接將信號(即計(jì)算的輸出)從一個(gè)節(jié)點(diǎn)傳送到另一個(gè)節(jié)點(diǎn),用權(quán)重標(biāo)記,指示信號被放大或減弱的程度。一些連接具有放大信號的正權(quán)重,表明信號在進(jìn)行分類時(shí)非常重要。其他的具有負(fù)權(quán)重,降低了信號的強(qiáng)度,從而指定節(jié)點(diǎn)的輸出在最終分類中不太重要。我們稱這樣的系統(tǒng)為人工神經(jīng)網(wǎng)絡(luò)
人工模型
讓我們首先看看一個(gè)基本的神經(jīng)網(wǎng)絡(luò),它對輸入執(zhí)行簡單的加權(quán)求和。值x 1 、x 2和 x 3是我們 NN的輸入,通常對應(yīng)于我們設(shè)計(jì)矩陣中的單行(即數(shù)據(jù)點(diǎn))。常數(shù)值 1 是我們的偏差,假定已嵌入到設(shè)計(jì)矩陣中。我們可以將這些輸入視為神經(jīng)網(wǎng)絡(luò)的輸入特征向量。
一個(gè)簡單的神經(jīng)網(wǎng)絡(luò),它采用輸入x和權(quán)重w的加權(quán)和。這個(gè)加權(quán)和然后通過激活函數(shù)來確定神經(jīng)元是否激活。
在實(shí)踐中,這些輸入可以是用于以系統(tǒng)的、預(yù)定義的方式量化圖像內(nèi)容的向量(例如,顏色直方圖、定向梯度直方圖、局部二進(jìn)制模式等)。在深度學(xué)習(xí)的背景下,這些輸入是圖像本身的原始像素強(qiáng)度。
每個(gè)x通過一個(gè)由w 1 , w 2 , ..., w n組成的權(quán)重向量W連接到一個(gè)神經(jīng)元,這意味著對于每個(gè)輸入x,我們也有一個(gè)關(guān)聯(lián)的權(quán)重w。
最后,右側(cè)的輸出節(jié)點(diǎn)取加權(quán)和,應(yīng)用激活函數(shù)f(用于確定神經(jīng)元是否“觸發(fā)”),并輸出一個(gè)值。以數(shù)學(xué)方式表達(dá)輸出,通常會遇到以下三種形式:
· f ( w 1 x 1 + w 2 x 2 + ... + w n x n )
· f (∑ n i =1 w i x i )
· 或者簡單地說,f ( net ),其中net = ∑ n i =1 w i x i
不管輸出值如何表達(dá),我們只是對輸入進(jìn)行加權(quán)求和,然后應(yīng)用激活函數(shù)f
激活函數(shù)
最簡單的激活函數(shù)是感知器算法使用的“階躍函數(shù)”。
從上面的等式我們可以看出,這是一個(gè)非常簡單的閾值函數(shù)。如果加權(quán)和 ∑ n i =1 w i x i > 0,則輸出 1,否則輸出 0。
沿x軸輸入值,沿y軸繪制f ( net )的輸出,我們可以看到為什么這個(gè)激活函數(shù)由此得名。當(dāng)net小于或等于零時(shí),f的輸出始終為零。如果net大于零,則f將返回 1。
左上角:階躍函數(shù)。右上角: Sigmoid 激活函數(shù)。左中:雙曲正切。中右: ReLU 激活(深度神經(jīng)網(wǎng)絡(luò)最常用的激活函數(shù))。左下: Leaky ReLU,允許負(fù)數(shù)的 ReLU 變體。右下: ELU,ReLU 的另一種變體,其性能通常優(yōu)于 Leaky ReLU。
然而,雖然直觀且易于使用,但階梯函數(shù)不可微,這可能會導(dǎo)致在應(yīng)用梯度下降和訓(xùn)練我們的網(wǎng)絡(luò)時(shí)出現(xiàn)問題。
相反,神經(jīng)網(wǎng)絡(luò)更常見的激活函數(shù)是 sigmoid 函數(shù)它遵循以下等式:
sigmoid 函數(shù)是比簡單階躍函數(shù)更好的學(xué)習(xí)選擇,因?yàn)樗?/p>
處處連續(xù)且可微。
圍繞y軸對稱。
漸近地接近其飽和值。
這里的主要優(yōu)點(diǎn)是 sigmoid 函數(shù)的平滑性使得設(shè)計(jì)學(xué)習(xí)算法變得更加容易。但是,sigmoid函數(shù)有兩個(gè)大問題:
sigmoid 的輸出不是以零為中心的。
飽和神經(jīng)元基本上會殺死梯度,因?yàn)樘荻鹊脑隽糠浅P ?/p>
直到 1990 年代后期,雙曲正切或tanh(具有類似 sigmoid 的形狀)也被大量用作激活函數(shù):tanh的方程如下:
f ( z ) = tanh ( z ) = ( e z -e -z ) / ( e z + e -z )
所述的tanh函數(shù)零為中心,但是,當(dāng)神經(jīng)元變得飽和梯度仍然殺死。
我們現(xiàn)在知道激活函數(shù)有比 sigmoid 和tanh函數(shù)更好的選擇。
f ( x ) = max (0 , x )
ReLU 也被稱為“斜坡函數(shù)”,因?yàn)樗鼈冊诶L制時(shí)的外觀。注意函數(shù)對于負(fù)輸入是如何為零的,但對于正值則線性增加。ReLU 函數(shù)是不可飽和的,并且在計(jì)算上也非常高效。
根據(jù)經(jīng)驗(yàn),在RELU激活功能趨于超越sigmoid 和tanh在幾乎所有的應(yīng)用功能。ReLU 激活函數(shù)比之前的激活函數(shù)家族具有更強(qiáng)的生物動(dòng)機(jī),包括更完整的數(shù)學(xué)理由。
截至 2015 年,ReLU 是深度學(xué)習(xí)中最流行的激活函數(shù)。然而,當(dāng)我們的值為零時(shí)會出現(xiàn)一個(gè)問題——不能采用梯度。
ReLU 的一種變體,稱為Leaky ReLU允許在單元不活動(dòng)時(shí)使用小的非零梯度:
我們可以看到該函數(shù)確實(shí)允許采用負(fù)值,這與將函數(shù)輸出為零的傳統(tǒng) ReLU 不同。
Parametric ReLUs,或簡稱 PReLUs,建立在 Leaky ReLUs 的基礎(chǔ)上,允許參數(shù)α在一個(gè)激活的基礎(chǔ)上學(xué)習(xí),這意味著網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都可以學(xué)習(xí)與其他節(jié)點(diǎn)分開的不同“系數(shù)”。
最后,我們還有(ELU)激勵(lì)函數(shù) 。
α的值是常數(shù),并在網(wǎng)絡(luò)架構(gòu)實(shí)例化時(shí)設(shè)置——這與學(xué)習(xí)效率α 的PReLU 不同。對于一個(gè)典型的值α是α = 1 。ELU 通常比 ReLU 獲得更高的分類準(zhǔn)確率。
具有 3 個(gè)輸入節(jié)點(diǎn)、具有 2 個(gè)節(jié)點(diǎn)的隱藏層、具有 3 個(gè)節(jié)點(diǎn)的第二個(gè)隱藏層以及具有 2 個(gè)節(jié)點(diǎn)的最終輸出層的前饋神經(jīng)網(wǎng)絡(luò)示例。
使用哪個(gè)激活函數(shù)?
鑒于最近深度學(xué)習(xí)的普及,激活函數(shù)出現(xiàn)了相關(guān)的爆炸式增長。由于激活函數(shù)的選擇數(shù)量眾多,現(xiàn)代(ReLU、Leaky ReLU、ELU 等)和“經(jīng)典”(step、sigmoid、tanh等),它可能看起來令人生畏,如何來選擇合適的激活函數(shù)。
然而,在幾乎所有情況下,建議從 ReLU 開始以獲得基線準(zhǔn)確度。從那里可以嘗試將標(biāo)準(zhǔn) ReLU 換成 Leaky ReLU 變體。
前饋網(wǎng)絡(luò)架構(gòu)
雖然有許多神經(jīng)網(wǎng)絡(luò)的前饋架構(gòu),最常見的結(jié)構(gòu)是Feedforward網(wǎng)絡(luò)
在這種類型的架構(gòu)中,節(jié)點(diǎn)之間的連接只允許從第i層的節(jié)點(diǎn)到第i +1層的節(jié)點(diǎn)。不允許向后或?qū)娱g接連接。當(dāng)前饋網(wǎng)絡(luò)包括反饋連接(反饋到輸入的輸出連接)時(shí),它們被稱為循環(huán)神經(jīng)網(wǎng)絡(luò)。
我們專注于前饋神經(jīng)網(wǎng)絡(luò),因?yàn)樗鼈兪菓?yīng)用于計(jì)算機(jī)視覺的現(xiàn)代深度學(xué)習(xí)的基石。卷積神經(jīng)網(wǎng)絡(luò)只是前饋神經(jīng)網(wǎng)絡(luò)的一個(gè)特例。
為了描述一個(gè)前饋網(wǎng)絡(luò),我們通常使用一個(gè)整數(shù)序列來快速簡潔地表示每一層的節(jié)點(diǎn)數(shù)。例如,上圖中的網(wǎng)絡(luò)是一個(gè)3-2-3-2前饋網(wǎng)絡(luò):
第 0 層包含 3 個(gè)輸入,即我們的x i 值。這些可能是圖像的原始像素強(qiáng)度或從圖像中提取的特征向量。
第 1 層和第 2層分別是包含 2 個(gè)和 3 個(gè)節(jié)點(diǎn)的隱藏層。
第 3 層是輸出層或可見層——在那里我們可以從網(wǎng)絡(luò)中獲得整體輸出分類。輸出層通常具有與類標(biāo)簽一樣多的節(jié)點(diǎn);每個(gè)潛在輸出一個(gè)節(jié)點(diǎn)。例如,如果我們要構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)來對手寫數(shù)字進(jìn)行分類,我們的輸出層將包含 10 個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表0-9。
當(dāng)然,如果使用適當(dāng)?shù)募軜?gòu),神經(jīng)網(wǎng)絡(luò)可用于監(jiān)督、無監(jiān)督和半監(jiān)督學(xué)習(xí)任務(wù)。神經(jīng)網(wǎng)絡(luò)的常見應(yīng)用包括分類、回歸、聚類、矢量量化、模式關(guān)聯(lián)和函數(shù)逼近等等
事實(shí)上,對于機(jī)器學(xué)習(xí)的幾乎每個(gè)方面,神經(jīng)網(wǎng)絡(luò)都以某種形式得到應(yīng)用。
1、無人駕駛汽車
無人駕駛使用到了很多人工智能方面的技術(shù),其中一個(gè)計(jì)算機(jī)視覺便是使用CNN卷積神經(jīng)網(wǎng)絡(luò)讓無人駕駛能夠看到路面路況等
2、人臉識別
人臉識別的應(yīng)用就比較廣泛了,手機(jī)人臉解鎖,人臉付款,人臉打卡等
3、機(jī)器翻譯
隨著人工智能學(xué)習(xí)能力的不斷提升,機(jī)器翻譯的準(zhǔn)確性得到了大幅提高
4、聲紋識別
生物特征識別技術(shù)包括很多種,除了人臉識別,目前用得比較多的還有聲紋識別。聲紋識別是一種生物鑒權(quán)技術(shù),也稱為說話人識別,包括說話人辨認(rèn)和說話人確認(rèn)。
聲紋識別的工作過程為,系統(tǒng)采集說話人的聲紋信息并將其錄入 數(shù)據(jù)庫 ,當(dāng)說話人再次說話時(shí),系統(tǒng)會采集這段聲紋信息并自動(dòng)與數(shù)據(jù)庫中已有的聲紋信息做對比,從而識別出說話人的身份。聲紋解鎖APP,控制智能家居等等
5、AI智能機(jī)器人
機(jī)器人的發(fā)展經(jīng)歷了漫長的發(fā)展,隨著人工智能技術(shù)的發(fā)展,給機(jī)器人加上了智能的翅膀
6、智能家居
智能音箱,智能冰箱,洗衣機(jī),空調(diào),電視等等,隨著人工智能技術(shù)的發(fā)展,現(xiàn)在的家庭家居貌似沒有點(diǎn)人工智能的點(diǎn)綴,便不好意思立足家居行業(yè)
7、推薦系統(tǒng)
大量的數(shù)據(jù)喂給人工智能,給人帶來了更多的便利推薦,個(gè)性化推薦系統(tǒng)廣泛存在于各類網(wǎng)站和App中,本質(zhì)上,它會根據(jù)用戶的瀏覽信息、用戶基本信息和對物品或內(nèi)容的偏好程度等多因素進(jìn)行考量,依托推薦引擎算法進(jìn)行指標(biāo)分類,將與用戶目標(biāo)因素一致的信息內(nèi)容進(jìn)行聚類,經(jīng)過協(xié)同過濾算法,實(shí)現(xiàn)精確的個(gè)性化推薦。
8、圖像搜索
大量瀏覽器中的相似圖片搜索,該技術(shù)的應(yīng)用與發(fā)展,不僅是為了滿足當(dāng)下用戶利用圖像匹配搜索以順利查找到相同或相似目標(biāo)物的需求,更是為了通過分析用戶的需求與行為,如搜索同款、相似物比對等
9、大健康
未來醫(yī)療,大健康行業(yè)會越來越多地走入人類的生活,未來隨著智能AI的加入,相信人類會提前預(yù)測自己的疾病,給人類帶來更加美好的明天。
以上等等都會使用到人工智能的神經(jīng)網(wǎng)絡(luò)技術(shù),就像人類一樣,未來的機(jī)器會越來越多的有自己的神經(jīng)網(wǎng)絡(luò),也會越來越聰明。