深度学习笔记-激活函数

Sigmoid函数

Sigmoid 是常用的非线性的激活函数,它的数学形式如下:
在这里插入图片描述
Sigmoid的几何图像如下
在这里插入图片描述
特点:
它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1

## Sigmoid函数的意义

(1)输入值X的作用

是【-无穷, +无穷数】 值空间的任意值,它代表了输入数据的一个特征值。

(2)神经元WX+B的作用

对输入数据进行线性变换:即放大或缩小(由w决定),或平移(有b决定)
线性变化后,输出数据Ui=WXi + Bi依然落在【-无穷, +无穷】数值空间中
线性变化得到的输出序列Ui,并没有改变输入数据序列Xi的顺序关系,即单调性关系。

(3)Sigmoid函数作用

数据(-无穷, +无穷) 的数值空间压缩成了【0,1】的数值空间,因此是一种压缩变换。
压缩后得到的输出序列Yi,并没有改变输入序列Ui的顺序关系,即单调性关系。

(4)总体变化的作用

输入序列Xi经过神经元线性变化和sigmoid的压缩变换,由【-无穷, +无穷】到了【0,1】空间。
变化前后,输出序列与输入序列具有一致的顺序(排序)关系。

Sigmoid函数代码

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

Softmax函数

一般回归问题的激活函数用的是恒等函数,二元分类问题用的是sigmoid函数,而多元分类问题可以使用softmax函数作为激活函数。
softmax函数式为:
在这里插入图片描述
Softmax函数的意义

1)将预测结果转化为非负数

下图为y=exp(x)的图像,我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。
在这里插入图片描述
2)各种预测结果概率之和等于1

为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。

Softmax函数溢出问题
softmax 函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大。比如,e10 的值会超过 20000,e100 会变成一个后面有 40 多个 0 的超大值,e1000 的结果会返回一个表示无穷大的 inf 。如果在这些超大值之间进行除法运算,结果会出现“不确定”的情况。
计算机处理“数”时,数值必须在 4 字节或 8 字节的有限数据宽度内。这意味着数存在有效位数,也就是说,可以表示的数值范围是有限的。因此,会出现超大值无法表示的问题。这个问题称为溢出,在进行计算机的运算时必须(常常)注意。所以可以从输入的数据中找出最大值,然后每条数据减去最大值,从而减小整体数据的大小。
Softmax函数代码

def softmax(x):
    x = x - np.max(x)  # 溢出对策
    return np.exp(x) / np.sum(np.exp(x))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值