ResNets是由残差块组成的神经网络。由理论而言,神经网络越深,错误率也应越低,但实际上随着网络的加深错误率会先减后增。
ResNets 则会解决这个问题。
graph LR A(a_layer_l) --> B[hiddenLayer] B --a_l+1--> C[hiddenLayer] C --> D(a_layer_l+2)
观察以上神经网络,上层输入
用文字表述即:
以上步骤是经典神经网络正向传播的主路径,这在残差网络中有一点变化,我们直接将
此结构被称为一个残差块。
理论而言,如果存在一个
残差网络通过构造恒等映射的方式解决问题,试想给一个深层网络添加新层次,激活函数采用ReLU:
何恺明等人从前后向信息传播的角度给出了残差网路的一种解释:
在前向传播时,输入信号可以从任意低层直接传播到高层。由于包含了一个天然的恒等映射,一定程度上可以解决网络退化问题。