sigmod函数通常作为激活函数
sigmod函数
导数
sigmod函数作用
这个看了很久一直不明白,但是多看几次总没错,因为在看了n次之后的现在我明白了。
简单的理解就是:将输入的值收敛起来(光滑和约束)。
如果是发散的,那就没有规律了
让一些没有规律的数字展现出规律来,
而函数的作用就是将输入转为另外一种输入,将问题转为另一个问题
这就是我的理解,暂时也不知道对不对,有新的理解了再来更新
有点
求导容易
数据在传递(从原始输入到最终输出)的过程中不易发散
输出范围为(0,1)可以表示概率
不足
sigmoid 的软饱和性,使得深度神经网络在二三十年里一直难以有效的训练,是阻碍神经网络发展的重要原因。具体来说,由于在后向传递过程中,sigmoid向下传导的梯度包含了一个 f′(x) 因子(sigmoid关于输入的导数),因此一旦输入落入饱和区,f′(x) 就会变得接近于0,导致了向底层传递的梯度也变得非常小。此时,网络参数很难得到有效训练。这种现象被称为梯度消失。一般来说, sigmoid 网络在 5 层之内就会产生梯度消失现象
导数的作用
导数也可以理解为梯度,导数越小,表示越接近(猜测,未定)
激活函数(AF activate function)
relu、sigmod、tanh、softplus、softMax(算概率)
sigmod常用来做激活函数,那么激活函数的作用是什么呢?
主要作用是:提供网络的非线性建模能力
当神经网络只有2、3层的时候,对于隐藏层,任意激活函数都可以,影响不大。
当神经网络有很多层的时候,不能随意选择激活函数,因为有可能会产生梯度爆炸,梯度消失等问题
也可以自己创建自己的激励函数,不过激励函数必须是可以微分的。
因为只有可微分的激励函数才能把误差反向传递回去。
常用规则:
普通的神经网络,可以使用任意的
卷积神经网络的卷积层,推荐使用relu
循环神经网络,推荐使用tanh或者relu
损失函数(cost)
cost是价值的意思,大概理解为所需要付出的价值,即损失
是用来计算预测值与实际值之间的差的,通常用平方差函数
a表示我们预测的值,也就是输出,y表示实际的值。
输出与我们的期望(实际值,正确值)相差越大,则损失越大
平方差函数的不足
依然是饱和性,不如交叉熵函数
暂时先这样
欢迎关注我的微信公众号:云端看大地
正准备写一个预测彩票的系列文章,敬请期待