如何学习?
关键性质:假设我们对 权重w做了微小变动,我们希望输出的结果也会有微小变动。
学习的过程则是反过来 我们通过 输出的结果与实际值的偏差 来调整参数(w,b)以达到训练模型,最终输出正确结果。
例如:网络把一张照片分类为数字 “8”,而它实际上是数字“9”。我们通过这个识别偏差去调整参数(w,b)让感知机网络更接近于 识别该照片为数字“9”。
用大量的训练数据不断重复这一步骤(输出结果有误差->调整参数减小误差)就是在不断进行学习的过程。
但是 感知机 并不满足上述性质(对权值的微小改动产生微小的输出变化),可能会出现对单个神经元参数的一点点微调就会导致输出结果完全反转,这会导致后面与其连接的网络的行为完全改变。这使得 逐渐修改权值让网络逼近目标结果的想法 完全落空。
本质上是因为 激活函数 不连续 在阈值点处产生值突变所导致的。
为了解决这个问题,我们引入一种新的神经元 sigmoid neuron. ,它和感知机神经元基本一致,只是换了激活函数 为
, 具备了 微小改动产生微小输出变化 这一关键性质。 使得它可以进行渐进学习。
图2:
仍然用下图表示 sigmoid神经元 不过激活函数已经变成了
图3 sigmoid神经元
它的输出output变成了:
由于 激活函数的光滑性它现在拥有了性质: (根据微分知识)
Δoutput 是关于 Δwj 和 Δb 的线性函数, 这种线性关系使得 Δwj 和 Δb 的微小改变会导致 output的微小改变。
实际上我们也可以使用其它的激活函数(例如后文会提到的 LeRU, tanh等) 各个激活函数之间的主要差异在于 上式 偏导数部分一些值会改变。当我们在求解偏导数的时候 函数将会简化代数运算,因为指数具有良好的求导性质。