(一)正向传播(forward propagation)
正向传播是指对神经网络沿着从输入层到输出层的顺序,依次计算并存储模型的中间变量(包括输出)。
Frobenius 范数,简称F-范数,是一种矩阵范数,记为||·||F。矩阵A的Frobenius范数定义为矩阵A各项元素的绝对值平方的总和。矩阵的F范数和向量的L2范数类似。
得到正向传播的目标函数:
J = L + s,其中 L = (o,y)
(二)反向传播
反向传播依据微积分中的链式法则,沿着从输出层到输入层的顺序,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。
主要利用了两条线,一是s对于w(1)和w(2)的梯度,而是L对于o,o对于h,h对于z,z对于x的梯度计算。
最后得到
(三)训练深度学习模型
在训练深度学习模型时,正向传播和反向传播之间相互依赖。在模型参数初始化完成后,我们交替地进行正向传播和反向传播,并根据反向传播计算的梯度迭代模型参数。这个复用也导致正向传播结束后不能立即释放中间变量内存。这也是训练要比预测占用更多内存的一个重要原因。