Python人工智能深度學習模型訓練經(jīng)驗總結(jié)
一、假如訓練集表現(xiàn)不好
1.嘗試新的激活函數(shù)
ReLU:Rectified Linear Unit
圖像如下圖所示:當z<0時,a = 0, 當z>0時,a = z,也就是說這個激活函數(shù)是對輸入進行線性轉(zhuǎn)換。使用這個激活函數(shù),由于有0的存在,計算之后會刪除掉一些神經(jīng)元,使得神經(jīng)網(wǎng)絡變窄。

該函數(shù)也有其他變體,如下圖所示,主要是對于z小于0的時候,對應

Maxout:以上幾種函數(shù)的一般形式
簡單來說就是誰大輸出誰,通過Maxout可以自己學習激活函數(shù)。當給出的參數(shù)不同的時候,可以得到上面所描述的各類函數(shù)。如下圖所示,當輸入給1個計算單元時,得到藍色的線,假如第二個計算單元參數(shù)均為0,則是X軸上的一條線,那么在這兩個之中取大的那個,就是ReLU;當?shù)诙€計算單元參數(shù)不為0的時候,就可以得到其他形式的結(jié)果。

2.自適應學習率
①Adagrad
Adagrad是使用前面的梯度進行平方和再開方,作為計算梯度時系數(shù)的一部分。

②RMSProp
是Adagrad的進階版,在Adagrad中,是使用了前面所有的梯度平方和再開方,這個系數(shù)中沒有考慮當前的梯度。在RMSProp中,是考慮了現(xiàn)在的梯度,也對其進行平方,并對兩項進行一個權重的分配。

③ Momentum
加入動量的梯度下降
下圖中,v就是上一次的方向。在計算本次方向的時候,加入lambda倍的上一次的方向。其實v就是過去算出來的所有的梯度的總和。

④Adam
將RMSProp和Momentum結(jié)合

二、在測試集上效果不好
1.提前停止
通過交叉驗證集,提前停止訓練

2.正則化
和其他的算法正則化方式一致,有L1和L2正則,此處不再詳細描述。
3.Dropout
每次訓練的時候,都以p%的幾率去掉一些神經(jīng)元以及輸入值。得到如下圖所示的更瘦一些的神經(jīng)網(wǎng)絡。直接去訓練這個神經(jīng)網(wǎng)絡。下一次訓練的時候,對整個網(wǎng)絡重新進行采樣。(類似于隨機森林)
在測試的時候不進行dropout,如果訓練的時候的dropout幾率是p%,那么在測試集上,所有的權重都乘上(1-p)%

以上就是Python人工智能深度學習模型訓練經(jīng)驗總結(jié)的詳細內(nèi)容,更多關于Python人工智能模型訓練經(jīng)驗的資料請關注腳本之家其它相關文章!
相關文章
Python astype(np.float)函數(shù)使用方法解析
這篇文章主要介紹了Python astype(np.float)函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
使用Python和GDAL給圖片加坐標系的實現(xiàn)思路(坐標投影轉(zhuǎn)換)
這篇文章主要介紹了使用Python和GDAL給圖片加坐標系的實現(xiàn)思路(坐標投影轉(zhuǎn)換),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

