循环神经网络。https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py。
自然语言处理(natural language processing, NLP)应用网络模型。与前馈神经网络(feed-forward neural network,FNN)不同,循环网络引入定性循环,信号在神经元传递不消失继续存活。传统神经网络层间全连接,层内神经元没连接。循环神经网络隐藏层输入包括上层输出和上一时刻隐藏层输出。按时间顺序展开,下一步受本步处理影响。网络训练误差反向传播(backpropagation,BP)算法,参数权值共享。反向传播依赖当前层及前面若干层网络,随时间反向传播(backpropagation through time,BPTT)算法。加载网络时序信号按层展开,前馈静态神经网络转为动态网络。
《Supervised Sequence Labelling with Recurrent Neural Networks》http://www.cs.toronto.edu/~graves/preprint.pdf 。
循环神经网络发展。
VanillaRNN
->增强隐藏层功能
->Simple RNN
->GRU
->LSTM
->CW-RNN
->双向化加深网络
->Bidirectional RNN
->Keep Bidrectional RNN
->两者结合:DBLSTM
《Recurrent Neural Networks,Part 1-Introduction to RNNs》 http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ 。
增强隐藏层功能。
简单RNN(Simple RNN,SRNN)。3层网络,隐藏层(上下文层)增加上下文单元。上下文单元节点与隐藏层节点连接、权值固定。假设当前t时刻,分3步预测P(wm)。单词Wm-1映射到词向量,INPUT(t)。连接上一次训练的隐藏层CONTEXT(t-1),sigmoid激活函数生成当前t时刻CONTEXT(t)。softmax函数预测P(wm)。
LSTM。一般RNN梯度消失,导数链式法则导致连乘,梯度指数级消失。引入单元(cell)结构,RNN改进模型长短期记忆(Long-Short Term Memory, LSTM)。Block有1个单元(cell),状态参数记录状态。3个门(gate),输入门(input gate)、输出门(output gate)处理输入输出参数,忘记门(forget gate)设置选择性遗忘权重。
GRU(Gated Recurrent Unit Recurrent Neural Network)。隐藏层不同距离单词对当前隐藏层状态影响不同,越远越小。每个前面状态对当前隐藏层状态影响距离加权,越远越小。发生误差,仅更新对应单词权重。两个门,重置门r(组合新输入和前记忆)、更新门z(留下前记忆)。重置门1,更新门0,得到普通RNN。Junyoung Chung、Caglar Gulcehre、KyungHyun Cho、Yoshua Bengio论文《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》https://arxiv.org/abs/1412.3555 。
CW-RNN(Clockwork RNN)。时钟频率驱动RNN。隐藏层分组,不同隐藏层组工作在不同时钟频率,解决长时间依赖。每组按照规定时钟频率处理输入。时钟时间离散化,不同时间点不同隐藏层组工作,所有隐藏层在每一步不会同时工作,加快网络训练。时钟周期大组神经元速度慢,小组速度快。周期大连接周期小,周期小不连接周期大。隐藏层神经元分组,记g。每组神经元个数相同,记k。每组分配时钟周期Ti∈{T1,T2,···,Tg}。组内所有神经元全连接。Tj>Ti,组j到组i循环连接。按照时钟周期递增从左到右排序T1<T2<···<Tg。连接方向从右到左,速度慢组连接速度快组。Jan Koutnik、Klaus Greff、Faustino Gomez、Jurgen Schmidhuber论文《A Clockwork RNN》https://arxiv.org/pdf/1402.3511.pdf
双向化加深网络。
双向RNN(Bidirectional RNN)。输出与前后序列有关。原始双向RNN,两个RNN上下叠加。输出由两个RNN隐藏层状态决定。Miske Schuster、Kuldip K. Paliwal论文《Bidirectional Recurrent Neural Networks》。双向LSTM、双向GRU。
深度双向RNN(Deep Bidirectional RNN)。隐藏层叠加多层,每步输入多层网络,表达学习能力更强,需要更多训练数据。Alex Graves、Navdeep Jaitly and Abdel-rahman Mohamed论文《Hybrid Speech Recognition With Deep Bidirectional LSTM》https://www.cs.toronto.edu/~graves/asru_2013.pdf。
训练学习算法, BPTT(Back Propagation Through Time)、RTRL(Real-time Recurrent Learning)、EKF(Extended Kalman Filter)。
TensorFlow Model Zoo。
TensorFlow模型https://github.com/tensorflow/models。很多图像、语音处理模型。检查点文件可作预训练模型。比如Inception V1,inception_v1_2016_08_28.tar.gz。Cafe Model Zoo有很多训练好模型,作预训练模型减训练时间、迭代次数。可转换为TensorFlow模型 https://github.com/ethereon/caffe-tensorflow。
强化学习(reinforcement learning)。AlphaGo改良策略网络(policy network)。强化学习介于有监督学习和无监督学习。只有很少标记(奖励),有延迟。模型学习环境行为。游戏、下棋、博弈有得分步骤多活动做连续决策。Q-learning、Sarsa、Policy Gradient、Actor Critic。包括算法更新、思维决策。深度Q网络(Deep Q Network, DQN)。
深度森林。周志华论文《Deep Forest:Towards an Alternative to Deep Neural Networks》https://arxiv.org/abs/1702.08835,多粒度级联森林(multi-grained cascade forest, gcForest)。只有少量数据也可训练,超参数比深度神经网络少,超参数性能健壮性高,训练容易。
深度学习艺术。
绘画领域,艺术风格神经网络算法(A Neural Algorithm of Artistic Style), Leon A. Gatys, Alexander S.Ecker, Matthias Bethge论文 https://arxiv.org/pdf/1508.06576v2.pdf。绘画风格迁移。把图片风格和内容分开,组合不同图片风格和内容,生成风格化内容图片。美图秀秀、魔漫相机、脸萌有应用。https://github.com/anishathalye/neural-style。
音乐领域。大量MIDI音频旋律训练数据,RNN生成旋律。https://github.com/tensorflow/magenta 。
深度学习可以创作艺术小样作为灵感种子。
参考资料:
《TensorFlow技术解析与实战》
欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi