(最近我在学习 deep learning, 这里只是一些个人的心得记录。如果你觉得内容过于简单,没什么价值,请忽略)
神经网络为什么具备非常强的学习能力?
一个关键点是 backward propagation 时,依赖于函数求偏导数的 chain rule 这样一个根本的原理, 决定了在 output layer measure 到的 error 可以反向推导到前面每一层的连接权重 weight 以及 bias 值的正确的变化率,从而做到合适的修正。
每多一个样本,这个样本的 error 通过 back propagation 就计算出了其对应的网络中所有 weight 和 bias 的贡献值(亦即偏差)。这实际上是一个 “归因” 的过程,当然这里不是指单一的原因,而是所有参数应该承担的责任。通过不断的归因和修正,神经网络就可以不断的拟合到这些样本,从而具有了一定的预测能力。
这些推导能够成立的前提,有这样一些:
首先所有层与层的连接都是基于 y = wX + b 这样的形式,后一层的每一个 neuron 的值,是前一层所有 neurons 的线性组合,它是一个连续的函数。同时 activation function 也都是连续函数,所以它们才可导。
假设神经网络理论上可以 learn 到问题数据集里想要学习的结构 pattern. 也许有限制,某些特征可能学习不到。即使是深度神经网络也学习不到?这个理论依据在哪里,我还没有学到。后续知道了可能会修正这一点。
为了方便起见,暂不讨论 learning rate 大小的影响,以及 overfitting 的情况。