卷积层数量过多的缺点,卷积积分的被积函数
將原模型中的卷積層(卷積核為5*5)全部替換成兩個3*3級聯(lián)的卷積層(就像VGG模型)訓(xùn)練誤差一直為2.3不變
用局部連接而不是全連接,同時權(quán)值共享。
局部連接的概念參考局部感受域,即某個視神經(jīng)元僅考慮某一個小區(qū)域的視覺輸入,因此相比普通神經(jīng)網(wǎng)絡(luò)的全連接層(下一層的某一個神經(jīng)元需要與前一層的所有節(jié)點連接),卷積網(wǎng)絡(luò)的某一個卷積層的所有節(jié)點只負(fù)責(zé)前層輸入的某一個區(qū)域(比如某個3*3的方塊)。
這樣一來需要訓(xùn)練的權(quán)值數(shù)相比全連接而言會大大減少,進(jìn)而減小對樣本空間大小的需求。權(quán)值共享的概念就是,某一隱藏層的所有神經(jīng)元共用一組權(quán)值。這兩個概念對應(yīng)卷積層的話,恰好就是某個固定的卷積核。
卷積核在圖像上滑動時每處在一個位置分別對應(yīng)一個“局部連接”的神經(jīng)元,同時因為“權(quán)值共享”的緣故,這些神經(jīng)元的參數(shù)一致,正好對應(yīng)同一個卷積核。
順便補(bǔ)充下,不同卷積核對應(yīng)不同的特征,比如不同方向的邊(edge)就會分別對應(yīng)不同的卷積核。
激活函數(shù)f(x)用ReLU的話避免了x過大梯度趨于0(比如用sigmoid)而影響訓(xùn)練的權(quán)值的情況(即GradientVanishing)。同時結(jié)果會更稀疏一些。
池化之后(例如保留鄰域內(nèi)最大或平均以舍棄一些信息)一定程度也壓制了過擬合的情況。
綜述總體來說就是重復(fù)卷積-relu來提取特征,進(jìn)行池化之后再作更深層的特征提取,實質(zhì)上深層卷積網(wǎng)絡(luò)的主要作用在于特征提取。
最后一層直接用softmax來分類(獲得一個介于0~1的值表達(dá)輸入屬于這一類別的概率)。
谷歌人工智能寫作項目:神經(jīng)網(wǎng)絡(luò)偽原創(chuàng)
cnn訓(xùn)練準(zhǔn)確率很高,測試準(zhǔn)確率很低(loss有一直下降)是為什么?
可能的原因:有可能是層數(shù)較少,可以嘗試增加卷積層;可能性不大A8U神經(jīng)網(wǎng)絡(luò)。之前我有出現(xiàn)過類似的情況,數(shù)據(jù)本身質(zhì)量太低,就算訓(xùn)練層可以保證很高的準(zhǔn)確率也沒有什么意義,此時已經(jīng)過擬合了。
這種情況是沒有辦法的,因為你的數(shù)據(jù)本身就有問題,無解。
你可以嘗試用機(jī)器學(xué)習(xí)的方法提取特征值來驗證,如果此時準(zhǔn)確率比CNN結(jié)果要好,那么就是你網(wǎng)絡(luò)本身的問題,如果準(zhǔn)確率也很差,那就應(yīng)該是你數(shù)據(jù)本身質(zhì)量的問題。
高斯過程模型會過擬合嗎?
會的。
減少過擬合的方法:獲取更多數(shù)據(jù):從數(shù)據(jù)源頭獲取更多數(shù)據(jù);數(shù)據(jù)增強(qiáng)(DataAugmentation)?使用合適的模型:減少網(wǎng)絡(luò)的層數(shù)、神經(jīng)元個數(shù)等均可以限制網(wǎng)絡(luò)的擬合能力?dropout,丟棄一些數(shù)據(jù)?正則化,在訓(xùn)練的時候限制權(quán)值變大?限制訓(xùn)練時間,earlystoptraining?增加噪聲Noise,例如高斯模糊數(shù)據(jù)清洗(datackeaning/Pruning):將錯誤的label糾正或者刪除錯誤的數(shù)據(jù)?結(jié)合多種模型:用不同的模型擬合不同度、飽和度、對比度變化。
如何判斷卷積神經(jīng)網(wǎng)絡(luò)是否過擬合
原則上RSquare值越高(越接近1),擬合性越好,自變量對因變量的解釋越充分。但最重要的是看sig值,小于0.05,達(dá)到顯著水平才有意義。
可以看回你spss的結(jié)果,對應(yīng)regression的sig值如果是小于0.05的,就可以了。
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練精度高,測試精度很低的原因
過擬合了,原因很多,解決方案也有很多。百度/谷歌搜索過擬合overfitting個人會優(yōu)先嘗試減小網(wǎng)絡(luò)規(guī)模,比如層數(shù)、卷積濾波器個數(shù)、全連接層的單元數(shù)這些。
其他的比如Dropout,數(shù)據(jù)增強(qiáng)/擴(kuò)充,正則,earlystop,batchnorm也都可以嘗試。
深度網(wǎng)絡(luò)中為何引入池化層?
減少大量的計算量。引入空間過濾器的層級結(jié)構(gòu),從而讓連續(xù)卷積層的觀察窗口變大,這樣可以更加充分地獲得信息。池化(Pooling):也稱為欠采樣或下采樣。
主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,減小過擬合,同時提高模型的容錯性。
主要有:MaxPooling:最大池化AveragePooling:平均池化MaxPooling:選取最大的,我們定義一個空間鄰域(比如,2*2的窗口),并從窗口內(nèi)的修正特征圖中取出最大的元素,最大池化被證明效果更好一些。
AveragePooling:平均的,我們定義一個空間鄰域(比如,2*2的窗口),并從窗口內(nèi)的修正特征圖中算出平均值。
輸出層(全連接層)經(jīng)過前面若干次卷積+激勵+池化后,終于來到了輸出層,模型會將學(xué)到的一個高質(zhì)量的特征圖片全連接層。其實在全連接層之前,如果神經(jīng)元數(shù)目過大,學(xué)習(xí)能力強(qiáng),有可能出現(xiàn)過擬合。
因此,可以引入dropout操作,來隨機(jī)刪除神經(jīng)網(wǎng)絡(luò)中的部分神經(jīng)元,來解決此問題。還可以進(jìn)行局部歸一化(LRN)、數(shù)據(jù)增強(qiáng)等操作,來增加魯棒性。
當(dāng)來到了全連接層之后,可以理解為一個簡單的多分類神經(jīng)網(wǎng)絡(luò)(如:BP神經(jīng)網(wǎng)絡(luò)),通過softmax函數(shù)得到最終的輸出。整個模型訓(xùn)練完畢。
CNN中卷積層、池化層和全連接層分別有什么作用和區(qū)別?
如下:卷積層:提取特征。“不全連接,參數(shù)共享”的特點大大降低了網(wǎng)絡(luò)參數(shù),保證了網(wǎng)絡(luò)的稀疏性,防止過擬合。之所以可以“參數(shù)共享”,是因為樣本存在局部相關(guān)的特性。
池化層:有MaxPool和AveragePool等。其中MaxPool應(yīng)用廣泛。因為經(jīng)過MaxPool可以減小卷積核的尺寸,同時又可以保留相應(yīng)特征,所以主要用來降維。
全連接層:在全連接的過程中丟失位置信息,可以理解為降低了學(xué)習(xí)過程中的參數(shù)敏感度;很多分類問題需要通過softmax層進(jìn)行輸出;進(jìn)行非線性變換等等。但是現(xiàn)在已經(jīng)有很多網(wǎng)絡(luò)結(jié)構(gòu)去掉了最后的全連接層。
我也是入坑沒多久,對這一點理解仍很粗淺。
人工智能的原理是什么
人工智能的原理,簡單的形容就是:人工智能=數(shù)學(xué)計算。機(jī)器的智能程度,取決于“算法”。最初,人們發(fā)現(xiàn)用電路的開和關(guān),可以表示1和0。
那么很多個電路組織在一起,不同的排列變化,就可以表示很多的事情,比如顏色、形狀、字母。再加上邏輯元件(三極管),就形成了“輸入(按開關(guān)按鈕)——計算(電流通過線路)——輸出(燈亮了)”這種模式。
想象家里的雙控開關(guān)。為了實現(xiàn)更復(fù)雜的計算,最終變成了,“大規(guī)模集成電路”——芯片。電路邏輯層層嵌套,層層封裝之后,我們改變電流狀態(tài)的方法,就變成了“編寫程序語言”。程序員就是干這個的。
程序員讓電腦怎么執(zhí)行,它就怎么執(zhí)行,整個流程都是被程序固定死的。所以,要讓電腦執(zhí)行某項任務(wù),程序員必須首先完全弄清楚任務(wù)的流程。就拿聯(lián)控電梯舉例:別小看這電梯,也挺“智能”呢。
考慮一下它需要做哪些判斷:上下方向、是否滿員、高峰時段、停止時間是否足夠、單雙樓層等等,需要提前想好所有的可能性,否則就要出bug。某種程度上說,是程序員控制了這個世界。
可總是這樣事必躬親,程序員太累了,你看他們加班都熬紅了眼睛。于是就想:能不能讓電腦自己學(xué)習(xí),遇到問題自己解決呢?而我們只需要告訴它一套學(xué)習(xí)方法。
大家還記得1997年的時候,IBM用專門設(shè)計的計算機(jī),下贏了國際象棋冠軍。
其實,它的辦法很笨——暴力計算,術(shù)語叫“窮舉”(實際上,為了節(jié)省算力,IBM人工替它修剪去了很多不必要的計算,比如那些明顯的蠢棋,并針對卡斯帕羅夫的風(fēng)格做了優(yōu)化)。
計算機(jī)把每一步棋的每一種下法全部算清楚,然后對比人類的比賽棋譜,找出最優(yōu)解。一句話:大力出奇跡!但是到了圍棋這里,沒法再這樣窮舉了。力量再大,終有極限。
圍棋的可能性走法,遠(yuǎn)超宇宙中全部原子之和(已知),即使用目前最牛逼的超算,也要算幾萬年。在量子計算機(jī)成熟之前,電子計算機(jī)幾無可能。
所以,程序員給阿爾法狗多加了一層算法:A、先計算:哪里需要計算,哪里需要忽略。B、然后,有針對性地計算。——本質(zhì)上,還是計算。哪有什么“感知”!在A步,它該如何判斷“哪里需要計算”呢?
這就是“人工智能”的核心問題了:“學(xué)習(xí)”的過程。仔細(xì)想一下,人類是怎樣學(xué)習(xí)的?人類的所有認(rèn)知,都來源于對觀察到的現(xiàn)象進(jìn)行總結(jié),并根據(jù)總結(jié)的規(guī)律,預(yù)測未來。
當(dāng)你見過一只四條腿、短毛、個子中等、嘴巴長、汪汪叫的動物,名之為狗,你就會把以后見到的所有類似物體,歸為狗類。不過,機(jī)器的學(xué)習(xí)方式,和人類有著質(zhì)的不同:人通過觀察少數(shù)特征,就能推及多數(shù)未知。
舉一隅而反三隅。機(jī)器必須觀察好多好多條狗,才能知道跑來的這條,是不是狗。這么笨的機(jī)器,能指望它來統(tǒng)治人類嗎。它就是仗著算力蠻干而已!力氣活。具體來講,它“學(xué)習(xí)”的算法,術(shù)語叫“神經(jīng)網(wǎng)絡(luò)”(比較唬人)。
(特征提取器,總結(jié)對象的特征,然后把特征放進(jìn)一個池子里整合,全連接神經(jīng)網(wǎng)絡(luò)輸出最終結(jié)論)它需要兩個前提條件:1、吃進(jìn)大量的數(shù)據(jù)來試錯,逐漸調(diào)整自己的準(zhǔn)確度;2、神經(jīng)網(wǎng)絡(luò)層數(shù)越多,計算越準(zhǔn)確(有極限),需要的算力也越大。
所以,神經(jīng)網(wǎng)絡(luò)這種方法,雖然多年前就有了(那時還叫做“感知機(jī)”)。但是受限于數(shù)據(jù)量和計算力,沒有發(fā)展起來。神經(jīng)網(wǎng)絡(luò)聽起來比感知機(jī)不知道高端到哪里去了!
這再次告訴我們起一個好聽的名字對于研(zhuang)究(bi)有多重要!現(xiàn)在,這兩個條件都已具備——大數(shù)據(jù)和云計算。誰擁有數(shù)據(jù),誰才有可能做AI。
目前AI常見的應(yīng)用領(lǐng)域:圖像識別(安防識別、指紋、美顏、圖片搜索、醫(yī)療圖像診斷),用的是“卷積神經(jīng)網(wǎng)絡(luò)(CNN)”,主要提取空間維度的特征,來識別圖像。
自然語言處理(人機(jī)對話、翻譯),用的是”循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)“,主要提取時間維度的特征。因為說話是有前后順序的,單詞出現(xiàn)的時間決定了語義。神經(jīng)網(wǎng)絡(luò)算法的設(shè)計水平,決定了它對現(xiàn)實的刻畫能力。
頂級大牛吳恩達(dá)就曾經(jīng)設(shè)計過高達(dá)100多層的卷積層(層數(shù)過多容易出現(xiàn)過擬合問題)。當(dāng)我們深入理解了計算的涵義:有明確的數(shù)學(xué)規(guī)律。那么,這個世界是是有量子(隨機(jī))特征的,就決定了計算機(jī)的理論局限性。
——事實上,計算機(jī)連真正的隨機(jī)數(shù)都產(chǎn)生不了。——機(jī)器仍然是笨笨的。更多神佑深度的人工智能知識,想要了解,可以私信詢問。
?
總結(jié)
以上是生活随笔為你收集整理的卷积层数量过多的缺点,卷积积分的被积函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于双硬盘电脑装Windows纯净系统的
- 下一篇: 今日头条面试题(二)