神经网络与深度学习第四章前馈神经网络习题解答

[习题4-1] 对于一个神经元 ,并使用梯度下降优化参数时,如果输入恒大于0,其收敛速度会比零均值化的输入更慢。

首先看一下CSDN的解释:

如果输入x恒大于0,使用sigmoid作为激活函数的神经元的输出值将会处于饱和状态,导致其梯度接近于0,这会使得梯度下降算法的收敛速度变慢。而如果输入经过零均值化处理,可以使得输出值的均值为0,避免了sigmoid函数的非0均值问题,从而减少了梯度消失的风险,提高了梯度下降算法的收敛速度。因此,使用零均值化的输入可以加速神经网络的训练过程。

结合图1理解一下:

图1

说一下我的理解:

首先,神经元对求导后的结果为,此处作sigmod激活函数,我们知道sigmod的激活函数图如下:

可以看出,如果是恒大于0的,其次,若x恒大于0,会导致进入神经元后,经过的输出值接近饱和状态(在0.5-1范围内),而的最大为0.5,说明当x大于0的时候,肯定不是沿着最大的负梯度方向进行下降的,而是以曲折抖动的方式进行下降(结合图1),但是以零均值化的方式,可以最大程度的保证数据沿着最大的负梯度方向进行下降,所以当恒大于0时,收敛速度要慢于零均值化的输入。

再举个形象的例子,比如你要从山顶走到山谷,你直线走下去即为最大负梯度方向,收敛快,但是你要很贪心的曲折的走,虽然在朝着山谷的方向走,但不是最快的方向,你同样可以到达终点,但是你的速度相较于直线走肯定是要慢的,条条大路通罗马,但是不可能全部人都走最快的大路,也有人走蜿蜒曲折的小路。

相关推荐
暮冬-  Gentle°4 小时前
C++中的命令模式实战
开发语言·c++·算法
卷福同学6 小时前
【养虾日记】Openclaw操作浏览器自动化发文
人工智能·后端·算法
春日见6 小时前
如何入门端到端自动驾驶?
linux·人工智能·算法·机器学习·自动驾驶
图图的点云库7 小时前
高斯滤波实现算法
c++·算法·最小二乘法
一叶落4387 小时前
题目:15. 三数之和
c语言·数据结构·算法·leetcode
老鱼说AI8 小时前
CUDA架构与高性能程序设计:异构数据并行计算
开发语言·c++·人工智能·算法·架构·cuda
罗湖老棍子9 小时前
【例 1】数列操作(信息学奥赛一本通- P1535)
数据结构·算法·树状数组·单点修改 区间查询
big_rabbit05029 小时前
[算法][力扣222]完全二叉树的节点个数
数据结构·算法·leetcode
张李浩10 小时前
Leetcode 15三题之和
算法·leetcode·职场和发展
2301_7938046910 小时前
C++中的适配器模式变体
开发语言·c++·算法