cs231n 神經網路筆記 部分總結工作1

2021-09-11 07:47:56 字數 2357 閱讀 3481

cs231n神經網路nn(或稱為人工神經網路ann或稱為多層感知器mlp)基礎知識部分集中在ppt的lecture05~lecture07,且有整理的筆記(搜尋關鍵字都能搜到),已經算是非常棒了,此處僅針對個人再做下簡化、整理。

神經網路個人理解可以看作是線性函式和非線性函式的組合,所以只要組合得夠好在一定程度上可以逼近任意函式?那麼重點就在於學習如何線性、如何非線性、如何組合?更多的神經元可以表達更複雜的函式也可能造成對訓練資料的過擬合。追求模型的泛化能力,遏制過擬合現象,採取人工干預措施,盡量不通過無腦減少神經元的途徑,干預方法有比如施加權重引數懲罰(正則化)、施加前向傳播雜訊(dropout、data augementation、stochastic pooling)

我們常稱某某知名網路多少多少層,比如resnet152層,那麼n層神經網路的意思?:有n-1個有可學習引數的網路層(像inception module裡存在並行的層,統一當作一層)(不統計沒有引數可學的pool層之類的個數),另加1個輸出層,於是稱之為n-1+1層神經網路。

目前「對於生物神經元的建模是非常粗糙的:在實際中,有很多不同型別的神經元,每種都有不同的屬性。生物神經元的樹突可以進行複雜的非線性計算。突觸並不就是乙個簡單的權重,它們是複雜的非線性動態系統。很多系統中,輸出的峰值訊號的精確時間點非常重要,說明速率編碼的近似是不夠全面的。鑑於所有這些已經介紹和更多未介紹的簡化」【取自知乎翻譯】,覺著這些「模仿粗糙之處」將可能成為下一步的神經網路提公升點?更加完整真實地復現神經元工作,更好的學習能力,更好的表現效果?

在選擇非線性函式(啟用函式)時常用sigmoid(飽和特性會使得梯度消失,非零中心影響梯度運作)、tanh(飽和、零中心)、relu(正向不飽和、非零中心)、maxout(是對relu和leaky relu的一般歸納,好但複雜),目前relu受歡迎程度較高。

神經元的個數?             feature map的每個點都是乙個神經元的輸出。所以 神經元個數 = 特徵圖大小。

可學習引數的個數?    卷積層引數計算f*f*cin*k+k ,其中f是濾波器尺寸,cin是輸入的depth維度(=通道數),k是濾波核個數。                              詳細的通用的尺寸大小和引數量計算可以看這裡。

引數更新方法或者稱之為深度網路的最優化方法。其中,讓學習率lr隨著epotch的增加而減小(隨步數衰減、指數衰減、1/t衰減、...)是非常有幫助的小技巧,同時還有了隨步數衰減的dropout,也就是說讓超引數例如lr或雜訊例如dropout在學習過程中變化是門有用的研究?

一階的更新方法:sgd、sgd+momentum、sgd+nesterov;二階方法:牛頓法、l-bfgs、adagrad、rmsprop、adam

對輸入資料x進行類似零中心和歸一化(還有pca/白化、各種norm)的預處理工作(跟介紹啟用函式時的評判標準零中心如出一轍,網路在處理零中心的資料表現更好?),對網路權重w進行小隨機數等初始化工作,選擇使用norm層,對正則化工作進行選擇和引數設定,對損失函式的表達形式的選擇(折葉損失、平方折葉損失、交叉熵損失...)——可以看出在準備階段處理思路都是針對「損失函式公式loss=f(w·x+b-y)+regularization」逐項進行初始化工作的,甚至有思路對「·」數學操作做了特殊處理。在網路超引數的選擇上,使用隨機搜尋法優於網格搜尋法,從大範圍搜尋到精細化搜尋。

訓練前仍然需要做些檢查工作以期網路足夠合理能夠開始訓練,1.檢查少量維度上解析梯度是否與數值梯度一致;2.檢查在小量輸入資料下初始損失函式得到的值是否符合預期,然後再訓練觀察損失函式是否能歸到零

訓練中需要關注些數值或圖示的變化以判斷超引數是否合理、網路是否擬合、網路是否死亡等資訊,1.損失函式曲線;2.訓練集和驗證集的正確率;3.如果是針對影象的訓練,網路第一層的視覺化效果;4.權重或梯度的更新比例

訓練後有個略微提公升測試集正確率的小妙招,即模型整合:1.同乙個模型,不同的初始化;2.交叉驗證中不同的超引數對應的不同的模型;3乙個模型設定多個記錄點;4訓練時引數備份,跑引數的平均值。

cs231n筆記04 神經網路訓練(上)

主要有三種預處理形式。均值減法,每個特徵減去平均值,使每個維度中心移到原點。歸一化,使資料在各個維度規模差不多。如果是0中心的,可以用資料除它的標準差,另一種形式是最大最小歸一化,使資料在 1,1 pca和白化。首先,將資料中心化,再計算資料協方差矩陣。協方差矩陣svd分解,u的列是特徵向量,將已經...

CS231n課程筆記 神經網路筆記1(下)

內容列表 神經網路結構譯者注 下篇翻譯起始處 小節參考文獻 將神經網路演算法以神經元的形式圖形化。神經網路被建模成神經元的集合,神經元之間以無環圖的形式進行連線。也就是說,一些神經元的輸出是另一些神經元的輸入。在網路中是不允許迴圈的,因為這樣會導致前向傳播的無限迴圈。通常神經網路模型中神經元是分層的...

CS231n課程筆記翻譯 神經網路筆記1(下)

筆記譯自斯坦福cs231n課程筆記neural nets notes 1,課程教師andrej karpathy授權翻譯。內容列表 小節參考文獻 將神經網路演算法以神經元的形式圖形化。神經網路被建模成神經元的集合,神經元之間以無環圖的形式進行連線。也就是說,一些神經元的輸出是另一些神經元的輸入。在網...