跑个题,这个视频下面的一个回复很inspiring。
能轻易access到这种好的资源是一件很幸福的事情,所以我觉得大学生最重要的是拥有一个fq软件。反之国内的很多大学不去用国外多如牛毛的经典教材,而是组织一帮语言表达能力差的人自己编写及其难懂的教科书,让学生学得云里雾里,最后还说是什么“精品教材”推广,让人很无语。
在这里放一下3Blue1Brown的链接,不知道这个名字是不是指眼睛的颜色?hhh
好吧现在我们继续来谈谈反向传播,它是神经网络学习的最关键的算法。
上一节视频谈到gradient descent告诉你如何来改变神经网络的权重与偏置。反向传播是一个计算这个复杂的梯度的算法。
举一个简单的例子,还是手写输入的问题,我们如果要用一个手写的‘2’来训练这个神经网络,我们就要让最终的输出层的代表‘2’的结果的值增加。为了做到这一点,我们可以调整weight,or bias,or 改变之前层的输出a等。
在这插入一个赫布理论,是一个神经科学理论,解释了在学习的过程中脑中的神经元所发生的变化。
我们可以假定,反射活动的持续与重复会导致神经元稳定性的持久性提升……当神经元A的轴突与神经元B很近并参与了对B的重复持续的兴奋时,这两个神经元或其中一个便会发生某些生长过程或代谢变化,致使A作为能使B兴奋的细胞之一,它的效能增强了。
这个理论经常被写为"Neurons that fire together wire together"。 在人工神经网络中,突触间传递作用的变化被当作是(被映射成)神经元网络图中相应权重的变化。如果两个神经元同步激发,则它们之间的权重增加;如果单独激发,则权重减少。赫布学习规则是最古老的也是最简单的神经元学习规则。
为了让‘2’的结果的值变高,我们要做的是把对它positive的节点的weights变高,对它negative的节点的weights变低。之前的输出层的结果我们不能直接改变,只能间接做到这一点,所以我们先记下来我们想要改变的方向。同理,不仅仅是‘2’的值,其他输出层的值也有我们想要变化的方向。
在这里,我们开始引入反向传播的概念。By adding together all these desired effects, you basically get a list of nudges that you want to happen to the second-to-last layer. And once you have those, you can recursively apply the same process to the relevant weights and biases that determine those values.
上面提到的,只是‘2’这一个image训练时要发生的事情。如果只用这个来训练,则以后所有的image它都会辨认成‘2’。所以我们要做的是对于其他的训练exampe遍历这个backprop routine,记录每一个他们需要怎么变换权重和偏置,平均那些desired changes,我们得到的(大约)就是上次谈到的负梯度了。
因为每次都用全部的训练集来做梯度下降太耗费时间,所以通常会把那些数据集分成一些mini-batch,然后用反向传播来计算each step。可能不是最精确的梯度,但是这样很有效率。这种方法被称作stochastic gradient descent。
总结: Backpropagation is the algorithm for determining how a single training sample would like to nudge the weights and biases, not just in terms of whether they should go up or down, but in terms of what relative proportions to those changes cause the most rapid decrease to the cost. A true gradient descent step would involve doing this for all the samples and averaging the desired changes that you get. But that's slow, so instead you randomly subdivide the data into these mini-batches and compute each step with respect to mini-batch. Repeatedly going through all of the mini batches and making these adjustments, you will converge towards a local minimum of the cost function.