神經網路基礎 由淺入深

2021-08-21 10:50:00 字數 1908 閱讀 1434

直觀上看,神經網路就是多層非線性單元(例如sigmoid單元)堆疊而成的。

我們以雙層神經網路(加上輸入層是三層)為例,描述神經網路的表示記號。中括號[ ]表示和layer相關,如下圖所示:

針對單個樣本的向量化神經網路的計算過程,是將各個節點豎向堆疊到各行上。如圖所示:

綜合兩層的計算過程,如下圖所示:

其中,w向量維數的規律是:行數為所在層的節點數,列數為前一層的節點數

b向量和z向量維數的規律是:行數為所在層的節點數,列數恒為1.

通過把訓練樣本堆疊到各列上,我們定義出了x矩陣,z矩陣和a矩陣。

得到雙層神經網路的前向傳播的向量化表示:

也就是只需要簡單的四行**,就可以計算出雙層神經網路的輸出。這裡面使用到了python中廣播這一原理,因為b是個向量,矩陣加上向量的操作使用了廣播這一特性。

當你在搭建多層神經網路的時候,可以選擇在隱層和輸出層使用不同於sigmoid函式的其它啟用函式。

乙個經驗是:基本上不使用sigmoid啟用函式了,除非輸出層是二元分類。

1.雙曲正切函式tanh(更優越)

sigmoid和tanh都有乙個缺點:當z十分大或者十分小的時候,啟用函式斜率接近於0,這樣會拖慢梯度下降演算法。

2.修正線性單元relu(最常用)

prelu中的ai是根據資料變化的;作者稱,在imagenet分類(2015,russakovsky等)上,prelu是超越人類分類水平的關鍵所在。

leaky relu中的ai是固定的;

rrelu中的aji是乙個在乙個給定的範圍內隨機抽取的值,這個值在測試環節就會固定下來。

sigmoid和tanh

是「飽和啟用函式」,而relu及其變體則是「非飽和啟用函式」。使用「非飽和啟用函式」的優勢在於兩點:

1.首先,「非飽和啟用函式」能解決所謂的「梯度消失」問題。

2.其次,它能加快收斂速度。

如果使用線性啟用函式,那麼輸出y帽子(hat)將是輸入特徵x的線性組合。線性隱層一點用都沒有,不如直接去掉。除非你引入了非線性啟用函式,才能產生更有趣的函式。

只有乙個地方可以使用,就是回歸問題的輸出層,輸出乙個實數。

在計算神經網路的反向傳播的過程中,大量的涉及了啟用函式的導數及鏈式法則:

在logistic回歸中,可以對引數初始化為0,但是在神經網路中將引數初始化為0,那將完全無效。

那樣的話,dw將是一行一行的形式,同一層的neuron之間無差別。

初始化引數比較小最好,那樣避免啟用函式處於飽和狀態,以致梯度下降比較慢。

編碼範例:w[1] = np.random.randn((2,2))*0.01

b[1] = np.zero((2,1))

……

卷積神經網路 Keras 由淺入深

python mathematics 卷積神經網路能夠有效的處理影象檔案,當然換一種說法就是能夠有效處理矩陣。其關鍵部分就是 卷積核 過濾器 的生成。當然還有一些其他的基礎操作。對於卷積核 卷積核的特徵 init filters,kernel size,strides 1 1 padding val...

神經網路基礎

上面是前14個筆記的乙個示意圖,簡單了點,但是內容架構應該是有的,先容我再道一道,梳理下 首先整體的第一周的課程是神經 網路 對,通向神經網路的基礎的網路,其中講解了內容模組包括 二分類問題簡單來說就是1和0的問題,也就是著名的cat 和 noncat問題,這個處理是靠輸入,然後計算機整合處理矩陣輸...

神經網路基礎

3.梯度下降 4.反向傳播 由線性分類 看基礎概念 邏輯回歸 線性回歸 只有一套引數,行為 是一套引數對某樣本的 值進行分類,線性分類 是由n套引數 結果有n個種類 行為 是分別對某樣本給出不同類別下的得分 使用softmax分類器後是概率 基礎損失函式 從某樣本在各類的的得分情況看損失 當正確的種...