sigmod函数的定义

表达式:

深度学习笔记(2):sigmod函数
在百度上sigmod函数是这么描述的:sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为**函数有以下优缺点:

优点:平滑、易于求导。
缺点:**函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。

(所以对于其缺点我们可以使用ReLU函数去替代掉,这一块还没有太来得及深入研究,暂且按下不表)

sigmod函数的图像

深度学习笔记(2):sigmod函数

为什么要使用sigmod函数

一个很直观的感受就是,sigmod函数可以将R范围的数映射到(0,1)区间上。而这便与倾向于是哪一种类别的概率p相关联起来。

另外还有一点很神奇的是,sigmod函数的导数是可以直接由自己来表示的,这在神经网络的反向传播的求导中起了大用途
深度学习笔记(2):sigmod函数

(随时再有感受随时更新)

常规用法

我们一般将sigmod(logistic)函数套在回归模型上,变成logistic回归。
比如对于线性回归模型,我们便可以复合上一个sigmod函数,将其投射到(0,1)
深度学习笔记(2):sigmod函数

sigmod函数的损失函数(Lost function)

我们输入一组数据{(x(1),y(1)),(x(2),y(2)),(x(3),y(3))…(x(n),y(n))},想要通过模型得到预测a(i),使得a(i)≈y(i)

然后我们定义对于每一组的Lost function如***意是对于每一组预测值a(i)≈y(i)而言的):
L(a,y)=yloga+(1y)log(1a)L(a,y)=y{log{a}}+ (1-y){log{(1-a)}}

为什么要这么定义,为什么不用貌似看起来更加直接的,我们在回归模型中使用过的L(a,y)=1/2(ay)2L(a,y)=1/2(a-y)^2

原因是简单的平方代价函数会使的函数图像趋于多点最优,在使用梯度下降法时会遇到困难。而新定义的损失函数则会使得函数是一个凸函数,不会陷入局部最优。(这里埋个坑,等做作业的时候实验一下图象是什么样的多点局部最优)

小结

这一部分开了一些sigmod函数的坑,但是现在还没有太深入,所以先说一些小的特点,随时补充ing

相关文章: