Tensorflow2 0 啟用函式

2021-10-08 19:01:43 字數 3711 閱讀 2396

常用啟用函式及對應特點

神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。

神經網路中啟用函式的主要作用是提供網路的非線性建模能力。

這是因為反向傳播演算法就是從輸出層到輸入層求出導數,且本質上是使得誤差函式最小,最小就是梯度等於0.所以啟用函式必須要連續可導。

1、 連續可導(允許少數點處不可導)非線性函式,啟用函式連續可導就可以使用數值優化方法來尋優。

2、啟用函式及其導函式要計算簡單,有利於提高網路計算效率。

3、啟用函式導函式的值域要在乙個合理的區間內。如果過大或者過小,會影響網路訓練速度和穩定性。

導數:f`(x) = f(x)*[1-f(x)]

目前神經網路幾乎不使用此函式。

缺點:1、sigmoid容易飽和,並且當輸入非常大或者非常小的時候,神經元的梯度就接近於0了,從圖中就能看出來。這將使得我們在反向傳播演算法中反向傳播接近於0的梯度,導致最終權重基本沒什麼更新,出現梯度消失的情況。

2、輸出不是0均值的,導致輸出訊號均值不為0,對梯度產生影響。

優點:

1、函式的輸出對映在(0,1)之間,單調連續,輸出範圍有限,優化穩定,可以用作輸出層。

2、求導容易。

有兩種方式可以呼叫sigmoid函式,tf.keras.activations.sigmoid(x)和tf.sigmoid(x)。引數x表示x軸上的點。

softmax函式是sigmoid函式的進化,在處理分類問題是很方便,它可以將所有輸出對映到成概率的形式,即值在[0,1]範圍且總和為1。

其中xi是分類器類別的輸出,分母是分類器所有的值進行處理。

導數 f`(x) = 1 - f(x)2

雙曲正弦函式是雙曲函式的一種。雙曲正弦函式在數學語言上一般記作sinh。

定義:sinhx=(ex-e-x)/2

雙曲余弦函式記作cosh.

定義:coshx=(ex+e-x)/2

相比於sigmoid函式,它的均值為0,梯度下降效果更好。但同樣存在著致命缺陷就是容易飽和,並且當輸入非常大或者非常小的時候,神經元的梯度就接近於0了。

relu函式(又稱修正線性單元或整流線性單元)是目前最受歡迎、也是使用最多的啟用函式之一,且relu已經變成啟用函式的預設選擇了,當你不知道隱藏層到底該用哪個啟用函式時,就可以用relu。其數學表示式和函式影象:

優點:

1、大於0的時候,導函式值為1,在一定程度上可以緩解梯度消失問題,加快梯度下降的收斂速度。

2、相較於sigmoid和tanh函式,relu 對於 sgd(梯度下降優化演算法) 的收斂有巨大的加速作用。

3、由於x小於0時,值為0,故提供了神經網路的稀疏表達能力。

4、計算更加簡單,相比於 sigmoid和tanh,relu 只需要乙個閾值就可以得到啟用值,而不用去算一大堆複雜的(指數)運算。

缺點:

1、「死亡「relu問題:實際中,如果學習率設定得太高,可能會發現網路中 40% 的神經元都會死掉。如乙個非常大的梯度經過乙個relu神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了。如果這種情況發生,那麼從此所有流過這個神經元的梯度將都變成 0,即這個relu單元在訓練中將不可逆轉的死亡,導致了資料多樣化的丟失。

tf.keras.activations.relu( x, alpha=0.0, max_value=none, threshold=0 )

引數說明:

1、alpha:上圖中左半邊部分影象的斜率,也就是x值為負數(準確說應該是小於threshold)部分的斜率,預設為0

2、max_value:最大值,當x大於max_value時,輸出值為max_value

3、threshold:起始點,也就是上面圖中拐點處x軸的值

tensorflow2 0之one hot函式使用

先了解一下one hot要幹啥吧。來,咱先看個程式,你一定會很眼熟的。嘿,是不是發現什麼了?labels向量最後可以表示乘矩陣的方式,且 1 0 0 表示0,類推 0 1 0 0 表示1,這樣,可以表示 0 9總共九個數值。one hot的作用就是這樣的,作為儲存標籤的一種方式,用1的位置不同來區分...

tensorflow2 0學習筆記3 常用函式

筆記基於北大的tensorflow2.0教程,將課程的一些重要內容記下來,方便於學習。一 常用函式 強制資料型別轉換 tf.cast 張量名,dtype 資料型別 找張量最小值 tf.reduce min 張量名 找張量最大值 tf.reduce max 張量名 二維張量中,可以通過調整axis控制...

Tensorflow2 0學習筆記(2) 常用函式

對應元素的加減乘除 次方 print tf.square a 平方 a tf.ones 3 2 b tf.fill 2 3 1.print tf.matmul a,b tf.matmul 矩陣1,矩陣2 data tf.data.dataset.from tensor slices 輸入特徵,標籤 ...