在反向传播期间,似乎假设在隐藏层中创建的任何错误仅影响一个更高的层(例如,请参见派生here,特别是等式16)。
也就是说,在计算dE/dy_j
派生状态时,它使用链规则,但是它仅区分具有I_j
中的索引的节点(即仅在比y_j
高一层的节点上进行区分)。为什么在此计算中忽略较高层?考虑到i+1
(明显具有x_{i+1} = \sum_i w_{i,i+1} f(\sum_{j} w_{j,i} y_j)
依赖性),我们也可以考虑y_j
图层。
答案 0 :(得分:2)
更高层不被忽略。在等式16中,Relative
中的<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:stretchColumns="1">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="111dp"
android:orientation="horizontal"></LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="173dp">
</RelativeLayout>
</FrameLayout>
是最终输出的误差,因此渐变已经包括所有后续层的效果。这是反向传播的全部要点。您从输出处的错误开始,并计算相对于前一层的渐变。然后,使用该渐变计算下一个上一层的渐变等。
你可以做你所描述的,但它会使一个更复杂的公式。反向传播公式的一个方便/有效的方面是,由于您只需要为后续层使用误差项,因此无论您是否总共有3层或4或50都无关紧要。您应用相同的简单方法每个隐藏图层的公式,在您向后通过网络时累积链规则术语。