【Deep Learning】深度学习中的函数类型
神經網絡包含四類函數:組合函數(Combination Function)、激活函數(Activation Function)、誤差函數(Error Function)、目標函數(Object Function)。
1、組合函數
在神經網絡中,輸入層之后的網絡,每個神經元的功能是將上一層產生的向量通過自身的函數生成一個標量值,這個標量值就是下一層神經元的網絡輸入變量。組合函數是網絡中間將向量映射為標量的函數,即∑。
常見的組合函數包括線性組合函數和基于歐氏空間距離的函數。
2、激活函數
神經元將一維向量的網絡輸入變量通過一個函數映射為另外一個一維向量的數值,這個函數稱為激活函數,其產生的值稱為激活狀態。除輸出層外,激活狀態的值通過神經網絡的鏈接輸入到下一層的一個或者多個神經元里面。
激活函數將一個實數域上的值映射到一個有限域中,也稱為坍縮函數,如常見的tanh或logistic函數,都將無限的實數域上的數值壓縮到(-1,1)或(0,1)之間的有限域中。如果這個激活函數不做任何變換,則被成為Identity或者線性激活函數。
激活函數的主要作用是為隱含層引入非線性。一個只有線性關系隱含層的多層神經網絡不會比一般的只包含輸入層和輸出層的兩層神經網絡更強大,因為線性函數的函數仍然是一個線性函數。但是加入非線性之后,多層神經網絡的預測能力就得到顯著提高。
對于后向傳播算法,激活函數必須可微,而且如果這個函數是在有限域中的話,則效果更好,因此像logistic、tanh、高斯函數是比較常見選擇,這類函數也統稱為sigmoid函數。類似于tanh或arctan這樣包含正和負的值域的函數通常收斂速度更快,因為數值條件(conditioning number)更好。
早起的理論認為sigmoid函數通常比threshold激活函數(如ReLU等激活函數)好。理由是因為采用threshod激活函數后誤差函數是逐級常數(stepwise constant),從而不能使用高效的后向傳播算法來計算一階導數(gradient)。即使不采用梯度算法,而是采用如simulated annealing或基因算法,sigmoid激活函數也被認為是一個較好的選擇;因為sigmoid函數是連續可微的,參數的微小變化就會帶來輸出的變化,有助于判斷參數的變動是否有利于最終目標函數的優化。如果采用threshold激活函數,參數的微小變化并不能在輸出產生變動,因此算法收斂會慢很多。
但sigmoid函數存在梯度消亡(gradient vanishing)問題(Sepp Hochreiter的1991年碩士 論文提出)。梯度消亡是指梯度(誤差的信號)隨著隱層數的增加成指數減小。這是因為在后向傳播算法中,對梯度的計算使用鏈式法則,因此在第n層時要將前面各層的梯度都相乘,但由于sigmoid函數的值域在(-1,1)或(0,1)之間,因此多個很小的數相乘以后第n層的梯度會接近于0,造成模型訓練的困難。而threshold激活函數的值域不在(-1,1)之間,如ReLU的取值范圍是[0,+inf),因此沒有這樣的問題。
另外,如Hard Max這樣的threshold激活函數:max(0,x),可以在隱藏層中引入稀疏性(sparsity),也有助于模型的訓練。
對于輸出層,應盡量選擇適合因變量分布的激活函數:
1)對于只有0、1取值的雙值因變量,logistic是較好的選擇;
2)對于有多個取值的離散因變量,如0到9數字的識別,softmax激活函數是logistic激活函數的自然衍生;
3)對于有有限值域的連續因變量,logistic或tanh激活函數都可用,但要將因變量的值域伸縮到logistic或tanh對應的值域中;
4)如果因變量取值為正,但沒有上限,則指數函數是一個較好的選擇;
5)如因變量沒有有限值域,或者雖然是有限值域但邊界未知,可采用線性函數作為激活函數。
輸出層的激活函數選擇,和對應的統計學模型應用有類似地方,可理解為廣義線性模型中的聯結函數(Link Function)的功能。
3、誤差函數
監督學習的神經網絡需要一個函數來測度模型輸出值p和真實的因變量值y之間的差異,即殘差或誤差。衡量模型質量是誤差偏離0的相對值,即誤差函數的值越接近于0,模型性能越好。
誤差函數也稱為損失函數,常用的函數如下:
1)均方差MSE:用在實數值域連續變量的回歸問題上,并且對于殘差較大的情況給予更多的權重;
2)平均絕對差MAE:和均方差應用場景一樣,在時間序列預測問題中也常用,MAE每個誤差點對總體誤差的貢獻與其誤差絕對值成線性比例關系,而MSE沒有這特特性;
3)交叉熵損失(cross-entropy):也叫做對數損失函數,是針對分類模型的性能比較設計的,用于二分類或多分類,即二分類交叉熵和多分類交叉熵,交叉熵可解釋為映射到最可能的類別的概率的對數,因此當預測值的分布和實際因變量的分布盡可能一致時,交叉熵最小。
4、目標函數
目標函數在訓練階段最小化的對象。神經網絡的訓練表現為在最小化訓練集上估計值和真實值之間的誤差。如采用正則化來規范模型,減少過擬合情況,則目標函數是誤差函數和正則函數的和。如采用權重衰減(weight decay)方法,正則函數為權重的平方和,和嶺回歸(ridge regression)使用的技巧一樣。如運用貝葉斯思路,可將權重的先驗分布的對數作為正則項。如不采用正則項,則目標函數和總的或平均誤差函數一樣。
總結
以上是生活随笔為你收集整理的【Deep Learning】深度学习中的函数类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVM-SMO算法python实现
- 下一篇: 【Deep Learning】MLP识别