神經網路的認識(二)深層神經網路

2021-09-23 18:44:04 字數 3784 閱讀 9544

損失函式

神經網路優化演算法

神經網路進一步優化

深層學習有兩個非常重要的特性———多層和非線性

線性模型的侷限性, 就是任意線性模型的組合仍然還是線性模型。所以引出啟用函式,經過啟用函式變換完的輸出就不再是線性的了。

如果將每乙個神經元(也就是神經網路中的節點)的輸出通過乙個非線性函式,那麼整個神經網路的模型也就不再是線性的了。這個非線性函式就是啟用函式。那麼整個神經網路的模型也就不再是線性的了。

相對於前面的簡單加權和有兩個改變

新的公式中增加了偏置項( bias ),偏置項是神經網路中非常常用的一種結構。

每個節點的取值不再是單純的加權和 。 每個節點的輸出在加權和的基礎上還做了乙個非線性變換。

偏置項可以被表達為乙個輸出永遠為 1 的節點 。 以下公式給出了這個新的神經網路模型前向傳播演算法的計算方法。

感知機可以簡單地理解為單層的神經網路,感知機會先將輸入進行加權和,然後再通過啟用函式最後得到輸出 。這個結構就是乙個沒有隱藏層的神經網路 。當加入隱藏層之後 ,異或問題就可以得到很好地解決。深層神經網路實際上有組合特徵提取的功能。這個特性對於解決不易提取特徵向量的問題(比如識別、語音識別等)有很大幫助。這也是深度學習在這些問題上更加容易取得突破性進展的原因 。

輸入特徵中抽取的更高維的特徵

說實話,這裡我理解是根據低維的特徵能夠取到更加深入事務特質的東西

我的理解 用損失函式可以理解到**的值和真實的值之間的差距,因為隱藏層的引數是可以不斷優化的,每次優化與否的依據就是損失函式。

交叉熵 交叉熵刻畫的是兩個概率分布之間的距離,然而神經網路的輸出卻不一定是乙個概率分布。

softmax 回歸本身可以作為 乙個學習演算法來優化分類結果,將神經網路前向傳播得到的結果變成概率分布。

原始神經網路的輸出被用作置信度來生成新的輸出,而新的輸出滿足概率分布的所有要求。

舉個例子

三分類問題,某個樣例的正確答案是(1,0,0 ) 。某模型經過 softmax 回歸之後的**答案是( 0.5 ,0.4,0.1 ),那麼這個**和正確答案之間的交叉熵為

如果另外乙個模型的**是(0.8, 0.1, 0.1 ),那麼這個**值和真實值之間的交叉熵是:

交叉熵一般會與 softmax 回歸一起使用,合起來是損失函式。

我理解就是softmax能將輸出變成概率分布,然後用交叉熵來計算**的概率分布跟真實的概率分布有什麼關係,所以只能解決分類問題

回歸問題解決的是對具體數值的**

這些問題需要**的不是乙個事先定義好的類別,而是乙個任意實數。解決回歸問題的神經網路一般只有乙個輸出節點,這個節點的輸出值就是**值.損失函式就用均方誤差:

梯度下降演算法主要用於優化單個引數的取值,而反向傳播演算法給出了乙個高效的方式在所有引數上使用梯度下降演算法,從而使神經網路模型在訓練資料上的損失函式盡可能小。反向傳播演算法是訓練神經網路的核心演算法,它可以根據定義好的損失函式優化神經網路中引數的取值,從而使神經網路模型在訓練資料集上的損失函式達到乙個較小值。

梯度下降演算法和反向傳播演算法我的理解 前面有了**值跟真實值的判斷依據,那麼我就可以填不同的引數值來得出不同的**值,從中選乙個和真實值最相近的。

用 θ 表示神經網路中的引數, j(θ)表示在給定的引數取值下,訓練資料集上損失函式的大小,那麼整個優化過程可以抽象為尋找乙個引數 θ ,使得 j(θ)最小 。弄了半天就相當於求j(θ)最小值的時候,引數 θ的值。其實最主要的還是求引數 θ的值。

求得話可以直接找到j(θ)的導數為零,然後求個極大值極小值,可是 j(θ)我們現在還不知道,所以就只能用梯度下降,走一點是一點,自覺地 j(θ)和0特別相近了就到此為止。梯度下降演算法會法代式更新引數 θ ,不斷沿著梯度

的反方向讓引數朝著總損失更小的方向更新 。

梯度下降解釋

神經網路的優化過程可以分為兩個階段,

通過前向傳播演算法計算得到**值,井將**值和真實值做對比得出兩者之間的差距 。

通過反向傳播演算法計算損失函式對每乙個引數的梯度,再根據梯度和學習 率使用梯度下降演算法更新每乙個引數 。

由於梯度下降耗費時間多,所以有了隨機梯度下降演算法

隨機梯度下降演算法每次優化的只是某一條資料上的損失函式,所以它的問題也非常明顯 : 在某一條資料上損失函式更小並不代表在全部資料上損失函式更小,於是使用隨機梯度下降優化得到的神經網路甚至可能無法達到區域性最優 。

實際應用中一般採用這兩個演算法的折中一一每次計算一小部分訓練資料的損失函式 。(不是全部也不是某一條,比全部少且比某一條多)

反向傳播的解釋

學習率設的大了,可能把好的結果給略過了,設的小了就可能耗費特別多的時間。於是可以用指數衰減的方法設定梯度下降演算法中的學習率。

舉個不恰當的例子:就跟擺錘一樣,擺錘由於空氣阻力,擺動的幅度會越來越小,我們的這個學習率就跟擺錘劃過的距離一樣,到後面會越來越小,是動態的。

通過這個函式,可以先使用較大的學習率來快速得到乙個比較優的解,然後隨著迭代的繼續逐步減小學習率,使得模型在訓練後期更加穩定。

在訓練的時候,過分以為訓練資料是最終目的,而導致在真實的資料上發揮不了效果。所以損失函式也不是越小越好。

為了解決過擬合,所以提出了正則化

大神的理解很到位

知乎大神

這個我的理解是由於公式裡的引數比如x1, x2, x3, x4…太多了,導致公式對應圖出來就是精確的曲曲折折,過擬合了,我們就要想個辦法將這些個引數去一去,一般對應的公式就是f(x) = w1*x1 + w2*x2 + w3*x3 + ... + b,最直接的辦法就是想辦法將w1,w2,w3 … 這些個權重引數變成0,前面說過的損失函式有計算方差的,那這個防止過擬合措施就是損失函式變成平方差加上正則化,平方差是正數,正則化出來也是正數,損失函式要趨於0,那麼平方差要趨於0,正則化也要趨於0,正則化公式是w12 + w22 + … + wn2 ,這個式子要趨於0,只能是每個權重引數趨於0,這就變相的實現了將x1, x2, x3, x4 … xn 去掉了。

在採用隨機梯度下降演算法訓練神經網路時,使用滑動平均模型在很多應用中都可以在一定程度提高最終模型在測試資料上的表現。

深入解析tensorflow中滑動平均模型與**實現

神經網路的認識(一)神經網路的認識

特徵提取 我的理解就是將物體資料化,將乙個實體盡可能的描述成計算機可以懂得話,就比如定義乙個人,姓名 性別 愛好 出生地 出生日期 這樣可以給他打足夠多的標籤,就可以定義他是誰了,這個標籤就是特徵。使用神經網路有4個步驟 提取問題中實體的特徵向量作為神經網路的輸入,不同實體可以提取不同的特徵向量 定...

神經網路和深度學習 深層神經網路

dnn結構示意圖如圖所示 對於第 l 層神經網路,單個樣本其各個引數的矩陣維度為 w l n l n l 1 b l n l 1 在運算過程中,使用python的 廣播 將b 1 複製為 n l m m為訓練集大小dw l n l n l 1 db l n l 1 z l n l 1 a l z l...

神經網路深層網路實現

隨機初始化資料 確定迭代次數 進入迭代迴圈 前向傳播,主要目的是計算出al 分輔助函式的好處 計算cost 計算 dal 目的是初始化反向傳播的起點 反向傳播,主要目的是計算出grads 分輔助函式的好處 更新引數 達到了指定的迭代次數,退出迴圈 dropout正則化 應用 在計算機視覺中十分常見 ...