总结:
在这一节的学习中,学习到反向传播相关知识,对于反向传播算法,同样也是通过三个方面来进行总结:反向传播算法是什么?为什么需要反向传播?如何实现反向传播?
反向传播算法是什么?
给出官方定义:
BP算法由信号的正向传播和误差的反向传播两个过程组成。
正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出(导师信号)不同,则转至误差反向传播;如果输出层的实际输出与期望输出(导师信号)相同,结束学习算法。
反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。
定义比较官方,简单来说,BP算法实际上是分为正向传播和反向传播,正向传播得到相应损失,反向传播经过一系列过程得到最终梯度
为什么需要反向传播?
回顾之前学习的简易的线性模型,我们拿到相应的输入x,然后通过权重值w和x相乘得到对应的输出y_hat,最后通过真实值y与y_hat作损失,通过梯度下降或者穷举的方法找到loss的最小值,然后对w进行更新,将线性模型使用简单的神经网络(Neurn)表示得到以下图:
然而我们知道,深度学习模型不都是简单的线性模型,对于复杂的模型而言,权重与输入更为复杂:
对于上图的解释,首先要提到的概念便是"输入维度",什么是输入的维度?对此我是这样理解的:我们知道空间中的维度分别对应点,线,面,体。