你将看到如下的⼀系列变更:
畏敲?解这个问题的泉源,想想我们的神经元是经由过程改变权重和偏置,并以⼀个价值函数的偏导数(∂C/∂w 和 ∂C/∂b)决定的速度进修,所以,我们在说“进修迟缓”时,实际上就是嗣魅这些偏导数很⼩,懂得他们为何这么⼩就是我们⾯临的挑衅,畏敲?解这些,让我们寂?娅导数看看,我们⼀直在⽤的是⼆次价值函数,定义如下:
个中 a 是神经元的输出,练习输⼊为 x = 1,y = 0 则是⽬标输出,显式地使⽤权重和偏置来表达这个,我们有 a = σ(z),个中 z = wx + b,应用链式轨则来求权重和偏置的偏导数就有:
个中我已经将 x = 1 和 y = 0 代⼊了。畏敲?解这些表达式的行动,让我们细心看 σ ′ (z) 这⼀项,⾸先回想⼀下 σ 函数图像:
我们可以大年夜这幅图看出,当神经元的输出接近 1 的时刻,曲线变得相当平,所以 σ ′ (z) 就很⼩了,也即∂C/∂w 和 ∂C/∂b 会⾮常⼩,这其实就是进修迟缓的原因地点,⽽且,我们后面也会提到,这种进修速度降低的原因实际上也是加倍⼀般的神经⽹络进修迟缓的原因,并不仅仅是在这个特例中特有的。
研究注解,我们可以经由过程应用交叉熵价值函数来调换⼆次价值函数,畏敲?解什么是交叉熵,我们稍微改变⼀下之前的简单例⼦,假设,我们如矫?史习⼀个包含若⼲输⼊变量的的神经元,x1 ,x2 ,... 对应的权重为 w1 ,w2 ,... 和偏置 b:
神经元的输出就是 a = σ(z),个中 z =∑j W j X j+ b 是输⼊的带权和,我们如下定义这个神经元的交叉熵价值函数:
个中 n 是练习数据的总数,乞降是在所有的练习输⼊ x 长进⾏的,y 是对应的⽬标输出,在解决进修迟缓前,我们来看看交叉熵魏何可以或许解释成⼀个价值函数。
如不雅对于所有的练习输⼊ x,神经元实际的输出接近⽬标值,那么交叉熵将接近 0,假设在这个例⼦中,y = 0 ⽽ a ≈ 0,交叉熵接近于0,反之,y = 1 ⽽ a ≈ 1,交叉熵也接近于0,综上所述,交叉熵是⾮负的,在神经元达到很好的┞俘确率的时刻会接近 0,这些其实就是我们想要的价值函数的特点,其拭魅这些特点也是⼆次价值函数具备的,所以,交叉熵就是很好的选择了。
然则交叉熵价值函数有⼀个⽐二次价值函数更好的特点就是它避免了进修速度降低的问题,为了弄清跋扈这个情况,我们来算算交叉熵函数关于权重的偏导数,只列出结不雅:
显然,规范化的应用可以或许解决过度拟呵9依υ?题,⽽且,精确率相当⾼了,最⾼处达到了 87.1%,相较于之前的 82.27%,是以,我们⼏乎可以确信在 400 迭代期之后持续练习会有加倍好的结不雅,看起来,经实践考验,规范化让⽹络具有更好的泛化能⼒,明显地减轻了过度拟合的影响。
这是⼀个优美的公式,它告诉我们权重进修的速度受到 σ(z) − y,也就是输出中的误差的┞菲握,更大年夜的误差,更快的进修速度,这是我们直觉上等待的结不雅。特别地,这个价值函数还避免了像在⼆次价值函数中类似⽅程中 σ ′ (z) 导致的进修迟缓。
让我们重回最原初的例⼦,来看看换成了交叉熵之后的进修过程,如今仍然按照前⾯的参数设备来初始化⽹络,开端权重为 0.6,而偏置为 0.9。
看看在换成交叉熵之后⽹络的进修情况,你将看到如下变更的曲线:
毫不奇怪,在这个例子中,神经元进修得相当出⾊,跟之前差不多,如今我们再看看之前出问题的那个例⼦(链接),权重和偏置都初始化为 2.0:
你将看到如下变更的曲线:
成功了!此次神经元的进修速度相当快,跟我们预期的那样,如不雅你不雅测的⾜够细心,你可以发明价值函数曲线要⽐二次价值函数练习前⾯部分要陡很多,那个交叉熵导致的陡度让我们⾼兴,这恰是我们等待的当神经元开端出现严重缺点时能以最快速度进修。
推荐阅读
就像你看到的,这个函数返回一个 promises,将会赋值给 val,猜一下生成器和异步函数示例做了什么!无论你在这个函数返回了什么,你其实是暗地里返回一个 promise 解析到那个值。如不雅你>>>详细阅读
本文标题:理解深度学习的钥匙–参数篇
地址:http://www.17bianji.com/lsqh/34849.html
1/2 1