1 神經網路為啥用交叉熵
通過神經網路解決多分類問題時,最常用二道一種放肆就是在最後一層設定n個輸出節點,無論在淺層神經網路還是在cnn 中都是如此,比如在alexnet中最後輸出層有1000個節點的輸出層。
交叉熵就是用來判定實際的輸出和期望的輸出的接近程度。
2 lstm與gru的區別
gru和lstm 的效能在很多任務上不分伯仲,2) gru 引數更少,因此更容易收斂,但是資料集很大的情況下,lstm 表達效能更好,從結構上來說,gru 只有兩個門,lstm 有三個門,gru 直接將hiedden state傳給下乙個單元,而lstm 則用memory cell 把hidden stae 包裝起來。
3 使用的cnn模型權重之間有關聯嗎?
權重之間有關聯,cnn 是權重共享,減少了引數的數量。
簡單來說就是用乙個卷積核和乙個影象來進行卷積,記住是同乙個卷積核,不改變卷積核的值,這樣可以減少權值引數,共享就是乙個對卷積核是共同享有的,對於有個100*100 畫素的影象,如果我們用乙個神經元來對影象進行操作,這個神經元大小就是100*100=10000,單如果我們使用10*10 的卷積核,我們雖然需要計算多次,但是我們需要的引數只有10*10=100個,加上乙個偏向b,一共需要101 引數,我們取的影象大小還是100*100,如果我們取的影象比較大,它的引數將會更加多,我們通過10*10 的卷積核對提現進行特徵提取,就得到乙個feature map。
乙個卷積核只能提取乙個特徵,所以需要多幾個卷積核,假設我們有6個卷積核,就會得到6個feature map,將這6個feature map 組成一起就是乙個神經元,這6個feature map 我們需要101*6=606 個引數,這個值和10000比還是比較小的,如果像之前的神經網路,兩兩相連,需要28*28=784 輸入層,加上第乙個隱藏層30個神經元,則需要784*30 在加上30個b,中國23550個引數,多了40倍的引數。
4 用過哪些optimizer 效果如何?
1) sgd;2)momentum; 3) nesterov ;4)adagrad 5)rmsprop;6)adadelta ;7)adam 8) adamax 9) nadam。
(1) 對於稀疏資料,盡量使用學習率可自適應的演算法,不用手動調節,並且最好採用預設引數 (2)sgd 通常訓練時間最長,但是好在初始化和學習率調動方案下,結果往往更可靠,但是sgd容易困在鞍點,這個缺點也不能忽略。(3)如果在意收斂的速度,並且需要訓練比較深比較複雜的網路時,推薦使用學習率自適應的優化方法,(4)adagrad, adadelta和rmsprop 是比較相近的演算法,表現都差不多,(5) 在能使用帶動量的rmsprop 或者adam 的地方,使用nadam 往往能取的更好地效果。
深度學習筆記(2)
2 分詞 對每個句子進行分詞,也就是將乙個句子劃分成若干個詞 token 轉換為乙個詞的序列。3 建立字典 將每個詞對映到乙個唯一的索引 index 為了方便模型處理,我們需要將字串轉換為數字。因此我們需要先構建乙個字典 vocabulary 將每個詞對映到乙個唯一的索引編號。4 將詞轉為索引 使用...
Vue深度學習(2)
可以在表單的input div id span message is span br input type text v model msg placeholder edit me div js var vm new vue 其中placeholder為預設顯示提示。渲染為 多個勾選邏輯值,如下 d...
TNU深度學習筆記2
這節課主要講了怎麼訓練rnn,用的方法是bptt backpropagation through time rnn的目標是訓練引數wh wo,wi。bptt的做法是,先將rnn隨著時間展開,如下圖 展開之後像訓練普通神經網路一樣做backpropagation就行了,唯一的區別在於rnn輸入是乙個連...