学习根据sin预测cos的函数曲线,序列长度20,具体见代码
理论和代码-RNN-理论
RNN和DNN相比,RNN是有记忆的DNN,RNN将神经元的输出作为记忆保存起来,和后续的input一起参与后续的计算,而DNN每个神经元的输出只依赖于当前的input。此种情况下的DNN不太好训练,RNN的total loss变化非常陡峭,在训练的时候不是很好操作,原因是神经元的记忆保存,对于长序列情况,同样的权重会被反复积累使用,微小的差别经过积累/相乘之后,差异较大,比如$1.01^{1000}=20000,0.99^{1000}=0$,而1.01和0.99的本身差异是比较小的。
理论和代码-深度学习技巧
实际操作过程中,常见的深度学习场景,基本上会在数据筛选、数据处理、模型结构调整、训练参数调整等,常见的可操作的点有:
1,数据预处理相关,数据集合选取,数据集预处理,训练集与测试集比例和划分
2,模型和调参数相关,模型设计和调整,learning rate, epoch, batch_size,激活函数,dropout,归一化,损失函数选择,优化算法选择/梯度下降类型选择
理论和代码-基础-星号和dot和multiply对比
1 | 矩阵乘([m,n] * [n, p] --> [m, p]) |