Neil Zhu,簡書ID Not_GOD迷扇,University AI 創(chuàng)始人 & Chief Scientist,致力于推進(jìn)世界人工智能化進(jìn)程。制定并實(shí)施 UAI 中長期增長戰(zhàn)略和目標(biāo)骗村,帶領(lǐng)團(tuán)隊(duì)快速成長為人工智能領(lǐng)域最專業(yè)的力量。
作為行業(yè)領(lǐng)導(dǎo)者呀枢,他和UAI一起在2014年創(chuàng)建了TASA(中國最早的人工智能社團(tuán)), DL Center(深度學(xué)習(xí)知識中心全球價值網(wǎng)絡(luò))胚股,AI growth(行業(yè)智庫培訓(xùn))等,為中國的人工智能人才建設(shè)輸送了大量的血液和養(yǎng)分裙秋。此外琅拌,他還參與或者舉辦過各類國際性的人工智能峰會和活動,產(chǎn)生了巨大的影響力摘刑,書寫了60萬字的人工智能精品技術(shù)內(nèi)容进宝,生產(chǎn)翻譯了全球第一本深度學(xué)習(xí)入門書《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》,生產(chǎn)的內(nèi)容被大量的專業(yè)垂直公眾號和媒體轉(zhuǎn)載與連載枷恕。曾經(jīng)受邀為國內(nèi)頂尖大學(xué)制定人工智能學(xué)習(xí)規(guī)劃和教授人工智能前沿課程党晋,均受學(xué)生和老師好評。
GRU
keras.layers.recurrent.GRU(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
Gated Recurrent Unit - Cho et al. 2014.
- 輸入形狀:3D 張量:
(nb_samples, timesteps, input_dim)
. - 輸出形狀:
- 如果
return_sequences
:3D 張量形如:(nb_samples, timesteps, output_dim)
. - 否則:2D 張量形如:
(nb_samples, output_dim)
. - 參數(shù):
- input_dim:輸入的維數(shù)
- output_dim:內(nèi)部投影的維數(shù)和最終輸出的維數(shù)
- init:權(quán)重初始函數(shù)徐块∥床#可以是任何已經(jīng)存在的函數(shù)(str),或者是一個 Theano 的函數(shù)(參見:初始化)
- inner_init:對內(nèi)部元件的權(quán)重初始化函數(shù)
- activation:激活函數(shù)胡控“饨耍可以是任何已經(jīng)存在的函數(shù)(str),或者是一個 Theano 的函數(shù)(參見:初始化)
- inner_activation:內(nèi)部元件的激活函數(shù)
- weights:numpy 數(shù)組的列表用以設(shè)置初始權(quán)重昼激。這個列表應(yīng)該有 9 個元素
- truncate_gradient:BPTT 的截?cái)鄷r間步舞终。參見:Theano scan
- return_sequences:Boolean轻庆。是否返回輸出序列的最后一個,或者返回全部序列敛劝。
- References:
- On the Properties of Neural Machine Translation: Encoder–Decoder Approaches
- Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
LSTM
keras.layers.recurrent.LSTM(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', forget_bias_init='one', activation='tanh', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
Long Short-Term Memory unit - Hochreiter et al. 1997
- 輸入形狀:3D 張量:
(nb_samples, timesteps, input_dim)
. - 輸出形狀:
- 如果
return_sequences
:3D 張量形如:(nb_samples, timesteps, output_dim)
. - 否則:2D 張量形如:
(nb_samples, output_dim)
. - 參數(shù):
- input_dim:輸入的維數(shù)
- output_dim:內(nèi)部投影的維數(shù)和最終輸出的維數(shù)
- init:權(quán)重初始函數(shù)余爆。可以是任何已經(jīng)存在的函數(shù)(str)夸盟,或者是一個 Theano 的函數(shù)(參見:初始化)
- inner_init:對內(nèi)部元件的權(quán)重初始化函數(shù)
- forget_bias_init:用作遺忘門的偏差初的始函數(shù)蛾方。Jozefowicz 等人推薦使用 1 來初始化
- activation:激活函數(shù)∩仙拢可以是任何已經(jīng)存在的函數(shù)(str)桩砰,或者是一個 Theano 的函數(shù)(參見:初始化)
- inner_activation:內(nèi)部元件的激活函數(shù)
- weights:numpy 數(shù)組的列表用以設(shè)置初始權(quán)重。這個列表應(yīng)該有 9 個元素
- truncate_gradient:BPTT 的截?cái)鄷r間步释簿。參見:Theano scan
- return_sequences:Boolean亚隅。是否返回輸出序列的最后一個,或者返回全部序列庶溶。
- References:
- Long short-term memory
- Learning to forget: Continual prediction with LSTM
- Supervised sequence labelling with recurrent neural networks
JZS1, JZS2, JZS3
keras.layers.recurrent.JZS1(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='tanh', inner_activation='sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)```
全連接的 RNN 其中輸出被重回輸入煮纵。不是特別有用,僅供參考偏螺。
* 輸入形狀:3D 張量:`(nb_samples, timesteps, input_dim)`.
* 輸出形狀:
* 如果 `return_sequences`:3D 張量形如:`(nb_samples, timesteps, output_dim)`.
* 否則:2D 張量形如:`(nb_samples, output_dim)`.
* 參數(shù):
* input_dim
* output_dim
* init:權(quán)重初始函數(shù)行疏。可以是任何已經(jīng)存在的函數(shù)(str)套像,或者是一個 Theano 的函數(shù)(參見:[初始化](http://keras.io/initializations/))
* inner_init:內(nèi)部元件的初始化的函數(shù)
* activation:激活函數(shù)酿联。可以是任何已經(jīng)存在的函數(shù)(str)夺巩,或者是一個 Theano 的函數(shù)(參見:[初始化](http://keras.io/activations/))
* weights:numpy 數(shù)組的列表用以設(shè)置初始權(quán)重贞让。這個列表應(yīng)該有 3 個元素,形如:`[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]`
* truncate_gradient:BPTT 的截?cái)鄷r間步柳譬。參見:[Theano scan](http://deeplearning.net/software/theano/library/scan.html)
* return_sequences:Boolean震桶。是否返回輸出序列的最后一個,或者返回全部序列征绎。
* 參考文獻(xiàn):
[An Empirical Exploration of Recurrent Network Architectures](http://www.jmlr.org/proceedings/papers/v37/jozefowicz15.pdf)
---
# SimpleDeepRNN
keras.layers.recurrent.SimpleDeepRNN(input_dim, output_dim, depth=3, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
全連接的 RNN 其中多個時間步的輸出重回輸入中(使用 depth 參數(shù)來控制步數(shù))蹲姐。
output = activation( W.x_t + b + inner_activation(U_1.h_tm1) + inner_activation(U_2.h_tm2) + ... )
也不是常用的模型,僅供參考人柿。
* 輸入形狀:3D 張量:`(nb_samples, timesteps, input_dim)`.
* 輸出形狀:
* 如果 `return_sequences`:3D 張量形如:`(nb_samples, timesteps, output_dim)`.
* 否則:2D 張量形如:`(nb_samples, output_dim)`.
* 參數(shù):
* input_dim
* output_dim
* init:權(quán)重初始函數(shù)柴墩。可以是任何已經(jīng)存在的函數(shù)(str)凫岖,或者是一個 Theano 的函數(shù)(參見:[初始化](http://keras.io/initializations/))
* inner_init:對內(nèi)部元件的權(quán)重初始化函數(shù)
* activation:激活函數(shù)江咳。可以是任何已經(jīng)存在的函數(shù)(str)哥放,或者是一個 Theano 的函數(shù)(參見:[初始化](http://keras.io/activations/))
* inner_activation:內(nèi)部元件的激活函數(shù)
* weights:numpy 數(shù)組的列表用以設(shè)置初始權(quán)重歼指。這個列表應(yīng)該有 3 個元素爹土,形如:`[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]`
* truncate_gradient:BPTT 的截?cái)鄷r間步。參見:[Theano scan](http://deeplearning.net/software/theano/library/scan.html)
* return_sequences:Boolean踩身。是否返回輸出序列的最后一個胀茵,或者返回全部序列。