神經網路中關於梯度的問題

2021-10-04 01:42:09 字數 1653 閱讀 6834

:在數學上,對於乙個可微分的函式f(x,y,z),向量grad稱為f(x,y,z)的梯度。

因為沿梯度方向時,方向導數取得最大值,計算速度最快。因此,在求解損失函式的最小值時,可以通過梯度下降法來一步步的迭代求解,得到最小化的損失函式和模型引數值。梯度下降法的計算過程就是沿梯度下降的方向求解極小值。當梯度向量為零,說明到達乙個極值點,這也是梯度下降演算法迭代計算的終止條件。

在大多數神經網路深度學習演算法中都會涉及到某種形式的優化,而目前深度學習優化中運用最多的就是隨機梯度下降法。因此,梯度下降法作為乙個最優化演算法,常用於機器學習和人工智慧當中用來遞迴性地逼近最小偏差模型。

我們可以通過下面兩份圖直觀理解。

當我們初始點在a點時,根據梯度下降法,會從點a開始,沿下降最快的方向,即梯度方向尋找到附近的最低點c。但是,我們知道d點才是整個影象的最低點。但是,從a沿梯度方向時尋找不到d,只有從b點開始才能找到d。也就是說,初始點不同,沿梯度方向尋找的最小點是不同的。因此,梯度下降法只能達到區域性最優,而不能達到全域性最優。只有當函式為凸函式時,才是全域性最優。

在實際使用梯度下降時,我們還需要對演算法引數進行調優,以避免一些不必要的錯誤。

首先,資料歸一化處理。不僅在梯度下降演算法需要對資料歸一化處理,在許多演算法使用之前都需要對資料歸一化處理。這是因為樣本不同特徵的量綱不一樣,取值範圍不一樣,會導致計算量很多,從而導致計算速度很慢。這是我們首先要避免的。

層數比較多的神經網路模型在訓練的時候會出現梯度消失和梯度**問題。梯度消失問題和梯度**問題一般會隨著網路層數的增加變得越來越明顯。

梯度不穩定問題

在深度神經網路中的梯度是不穩定的,在靠近輸入層的隱藏層中或會消失,或會**。這種不穩定性才是深度神經網路中基於梯度學習的根本問題。

梯度不穩定的原因:前面層上的梯度是來自後面層上梯度的乘積。當存在過多的層時,就會出現梯度不穩定場景,比如梯度消失和梯度**。

例如,對於圖1所示的含有3個隱藏層的神經網路,梯度消失問題發生時,靠近輸出層的hidden layer3的權值更新相對正常,但是靠近輸入層的hidden layer1的權值更新會變得很慢,導致靠近輸入層的隱藏層權值幾乎不變,扔接近於初始化的權值。這就導致hidden layer 1 相當於只是乙個對映層,對所有的輸入做了乙個函式對映,這時此深度神經網路的學習就等價於只有後幾層的隱藏層網路在學習。

梯度**的情況是:當初始的權值過大,靠近輸入層的hidden layer 1的權值變化比靠近輸出層的hidden layer 3的權值變化更快,就會引起梯度**的問題。

神經網路 梯度下降

優化問題newton s method 牛頓法 least squares method最小二乘法 gradient descent梯度下降法 當 cost對w的梯度最小 斜率最小 時,誤差最小。我們從圖中可以看出,cost 誤差最小的時候正是這條 cost 曲線最低的地方,不過在藍點的 w 卻不知...

神經網路中回歸問題梯度下降的直觀理解

修改迭代次數,就可以直 到回歸問題中採用梯度下降法尋找local minimal的過程。下圖給出了迭代次數分別為1,10,100000時到達local minimal的路徑。import matplotlib import matplotlib.pyplot as plt matplotlib.us...

神經網路的梯度下降法

常用的神經網路如bp神經網路 rbf神經網路等都有三層神經元,即輸入層 隱藏層和輸出層。我們知道通過不斷的修改神經元之間的權值和偏置使網路的輸出能夠擬合所有的訓練輸入,為了量化這個目標,引入乙個代價函式 其中w表示所有網路中權值集合,b是所有的偏置,n是訓練輸入資料的個數,a表示當輸入為x時輸出的向...