在求數值解的優化演算法中,小批量隨機梯度下降(mini-batch stochastic gradient descent)在深度學習中被廣泛使用。它的演算法很簡單:先選取一組模型引數的初始值,如隨機選取;接下來對引數進行多次迭代,使每次迭代都可能降低損失函式的值。在每次迭代中,先隨機均勻取樣乙個由固定數目訓練資料樣本所組成的小批量(mini-batch)bb,然後求小批量中資料樣本的平均損失有關模型引數的導數(梯度),最後用此結果與預先設定的乙個正數的乘積作為模型引數在本次迭代的減小量。
引入非線性變換,例如對隱藏變數使用按元素運算的非線性函式進行變換,然後再作為下乙個全連線層的輸入。
relu函式是乙個通用的啟用函式,目前在大多數情況下使用。但是,relu函式只能在隱藏層中使用。
用於分類器時,sigmoid函式及其組合通常效果更好。由於梯度消失問題,有時要避免使用sigmoid和tanh函式。
在神經網路層數較多的時候,最好使用relu函式,relu函式比較簡單計算量少,而sigmoid和tanh函式計算量大很多。
在選擇啟用函式的時候可以先選用relu函式如果效果不理想可以嘗試其他啟用函式。
softmax與分類模型
一方面,由於輸出層的輸出值的範圍不確定,我們難以直觀上判斷這些值的意義。
另一方面,由於真實標籤是離散值,這些離散值與不確定範圍的輸出值之間的誤差難以衡量。
softmax運算子(softmax operator)解決了以上兩個問題。它通過下式將輸出值變換成值為正且和為1的概率分布:
雖然神經網路引入了隱藏層,卻依然等價於乙個單層神經網路。
多層感知機就是含有至少乙個隱藏層的由全連線層組成的神經網路,且每個隱藏層的輸出通過啟用函式進行變換。多層感知機的層數和各隱藏層中隱藏單元個數都是超引數。以單隱藏層為例並沿用本節之前定義的符號,多層感知機按以下方式計算輸出:
讀入文字
分詞建立字典,將每個詞對映到乙個唯一的索引(index)
將文字從詞的序列轉換為索引的序列,方便輸入模型
一段自然語言文字可以看作是乙個離散時間序列,給定乙個長度為t的詞的序列w1,w2,…,wtw1,w2,…,wt,語言模型的目標就是評估該序列是否合理,即計算該序列的概率:
n元語法(nn-grams),它是基於n−1n−1階馬爾可夫鏈的概率語言模型。
缺陷:引數空間過大
資料稀疏
在隨機取樣中,每個樣本是原始序列上任意擷取的一段序列,相鄰的兩個隨機小批量在原始序列上的位置不一定相毗鄰。
在相鄰取樣中,相鄰的兩個隨機小批量在原始序列上的位置相毗鄰。
基於當前的輸入與過去的輸入序列,**序列的下乙個字元。
深度學習 動手學深度學習筆記 12
g是乙個生成的網路,它接收乙個隨機的雜訊z,通過這個雜訊生成,記做g z d是乙個判別網路,判別一張是不是 真實的 它的輸入引數是x,x代表一張,輸出d x 代表x為真實的概率,如果為1,就代表100 是真實的,而輸出為0,就代表不可能是真實的。在訓練過程中,生成網路g的目標就是盡量生成真實的去欺騙...
動手學深度學習筆記2
part1 模型選擇1 誤差與資料集 訓練誤差 training error 模型在訓練集上表現出的誤差。泛化誤差 generalization error 在任意乙個測試資料樣本上表現出的誤差的期望。舉個栗子,訓練誤差就是做往屆試卷 訓練 的錯誤率,泛化誤差則可以通過真正參加考試 測試 時的答題錯...
動手學深度學習筆記(1)
機器學習,神經網路是很多領域共同發展的成果。時至今日,絕大多數神經網路都包含以下的核心原則 深度學習從發現到發展,仍能屹立的部分原因 在機器學習的眾多研究方向中,表徵學習關注如何自動找出表示資料的合適方式,以便更好地將輸入變換為正確的輸出。深度學習是具有多級表示的表徵學習方法。在每一級 從原始資料開...