神經網路數學基礎 卷積神經網路 部分實戰訓練

2022-08-09 05:51:09 字數 3335 閱讀 5576

神經網路的數學基礎:

1.矩陣線性變換(起到尺度和旋轉上的變化,w·x與公升降維

、放大縮小相關,b與平移相關

,與彎曲相關)

2.矩陣的秩(秩越低,資料分布越容易**捉,相關性大)

奇異值、低秩近似(保留決定資料分布最主要的模式/方向)

3.概率

概率分布、似然函式、對數似然函式、最大對數似然

4.策略設計:機器學習的目的是獲得最小泛化誤差

無免費午餐定理、奧卡姆剃刀定理

5.欠擬合:提高模型複雜度

過擬合:降低模型複雜度

6.頻率學派:可獨立重複的隨機實驗中單個事件發生頻率(統計機器學習)

貝葉斯學派:關注隨機事件可信程度(概率圖模型)

7.beyond深度學習

因果推斷、群體智慧型

總結:感覺自己數學知識還有一定欠缺,需要惡補。

卷積神經網路

深度學習三步:

搭建神經網路結構(提取特徵)->找到乙個合適損失函式(評估差異)->

找到乙個合適的優化函式,更新引數

一:搭建神經網路結構

1.損失函式:用來衡量輸出和真實標籤之間的差異,可以通過調整引數/權重來進行調整

常用分類損失:交叉熵損失

常用回歸損失:均方誤差、平均絕對值誤差

2.卷積神經網路

區域性關聯(卷積核)、引數共享

基本組成結構:

(1)卷積:是對兩個實變函式(以實數為變數)的一種數學操作

二維卷積:

kernel/filter:卷積核、濾波器

receptive field:感受野(進行一次卷積時所對應輸入的區域)

activation map/featuer map:特徵圖(經過一次卷積所輸出結果)

channel:深度

輸出特徵圖大小:(n+2*padding-f)/stride+1

過擬合:權重矩陣引數太多(過度擬合訓練集)

(2)池化:(pooling)

保留主要特徵的同時減少引數和計算量,防止過擬合,提高模型泛化能力。

一般處於卷積層和卷積層之間,全連線層和全連線層之間。

常用方法:

最大值池化、平均值池化

(3)全連線:

全連線層一般放在卷積神經網路尾部

3.典型神經網路結構:

(1)alexnet

採用relu函式

dropout(隨機失活):訓練時隨機關閉部分神經元(防止過擬合)

資料增強(data augmentation)平移翻轉對稱等 

過程:第一次卷積:卷積---relu---池化

第二次卷積:卷積---relu---池化

第三次卷積:卷積---池化

。。。。。。。

第六層:全連線---relu---dropout

(2)zfnet

(3)vgg:是乙個更深的網路 

(4)googlenet

包含22個但引數層,

沒有fc層

多卷積核增加特徵多樣性,

利用padding在深度上進行串聯

inception v2:插入1*1卷積核進行降維、v3用小卷積核替代大卷積核

(5)resnet

殘差學習網路、深度有152層

殘差:去掉相同的主體部分,從而突出微小變化。

mnist資料集分類

2.建立網路

(1)定義網路時需要繼承nn.module,並實現其forward方法

。forword函式是用來定義網路結構

(2)定義訓練和測試函式:

batch確定乙個樣本單位數量

test用來計算損失

3.在小型全連線網路(fc2layer)上訓練

4.在卷積神經網路上進行訓練

可以顯著看出cnn的準確率明顯優於全連線網路

,原因在於cnn採用了卷積和池化方法

。5.打亂影象順序再次進行訓練

採用torch.randperm( )函式將影象畫素打亂,讓卷積和池化無法發揮作用

打亂:

小型:

卷積神經網路 

可以明顯看出,在不能利用原有的影象區域性關係後,cnn網路失去了原有的準確率

。cifar10資料分類:

其中影象尺寸為3*32*32(rgb的三色通道

)1.匯入資料集

2.定義網路

(1)損失函式和優化器

(2)訓練網路

正向傳播+反向傳播+優化

(3)從測試集取8張,進行模型測試

測試結果:

發現有3個識別錯誤

(4)對整個資料集進行測試:

發現成功率在63%左右。

1.定義dataloader(

將img,label載入到模型中

):發現batch_size相對於第乙個擴大到2倍

2.定義vgg網路

,並將網路放到gpu

發現原本**報錯,提示cfg不存在

,將cfg設定為外部變數後解決

;之後又提示錯誤大小不匹配,因此將nn.linear(1024,10)按提示更改為(512,10),程式成功執行,但對原理比較模糊。

結果執行:

跑的比較慢。

總結:通過本次的三個實驗,對訓練過程有了更深刻的了解,但在許多細節處的原理仍未理解透徹,需要在以後的學習中慢慢精進。

神經網路 卷積神經網路

這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...

神經網路 卷積神經網路

1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...

卷積神經網路和神經網路

在神經網路中,每一層的每個神經元都與下一層的每個神經元相連 如下圖 這種連線關係叫全連線 full connected 如果以影象識別為例,輸入就是是每個畫素點,那麼每乙個畫素點兩兩之間的關係 無論相隔多遠 都被下一層的神經元 計算 了。這種全連線的方法用在影象識別上面就顯得太 笨 了,因為影象識別...