一 、反向传播的作用
训练神经网络的目标是 优化代价函数,使得代价函数找到一个 全局最小值或者局部最小值。不管使用何种梯度下降算法(BGD, SGD ,Adam),都需要先算出各个参数的梯度。 反向传播的作用: 就是快速算出所有参数的偏导数。
二、 求导数的方式
求导数通常可以分为两类,一类是直接用定义,第二类是公式法(包括链式法)。
定义法:
定义法求导数存在问题: 当参数较多时(如:100万),计算一个样本所有的参数就需要计算 100万次 C(w+&) , 和一次 C(w) ,计算量太大。所以导数定义法行不通。
若直接将 公式展开求导又太复杂,所以选择用 链式求导法则 求所有参数的偏导。
三 、反向传播的原理
反向传播主要依赖于链式法则, y是复合函数:
反向传播正是用到了 链式法则。
反向传播的优点在于: 尽力用一次前向传播和一次反向传播,就同时计算出所有参数的偏导数。 反向传播计算量和前向传播差不多,并且有效利用前向传播过