激活函数初探

如下图,x为输入,w为权重,b为偏置,激活函数用来处理输入信号的总和,将总和转变为输出。

简单的激活函数主要有以下几类。

          

 1.阶跃函数

                                                     h(x)=\begin{cases} 0&\text{ if } x\leqslant 0\\ 1& \text{ if } x> 0 \end{cases}

阶跃函数一般用在感知机上。如果感知机使用其他函数作为激活函数,就进入了神经网络的世界。

 2.sigmoid函数

       数学表达式为:                                           

                                                        h(x)=\frac{1}{1+exp(-x)}

代码实现为:

import numpy as np

def sigmoid(x):
    z = np.exp(-x)
    sig = 1 / (1 + z)

              

上图为其图像

 3.softmax函数

                                           Softmax(x)= \frac{exp(a_{k})}{\sum exp(a_{i})}

其中,分子表示第k个神经元的指数函数,分母表示所有神经元的指数函数的和。

但是上式会造成溢出问题(值过大无法表示,显示nan,not a number)。避免溢出可以进行类似归一化的操作,例如除以神经元中数值最大的数。

一维数组实现如下:

def softmax(a):
    c = np.max(a)
    exp_a = np.exp(a-c)#溢出对策
    sum_exp_a = np.sum(exp_a)
    y = exp_a / sum_exp_a

    return y

二维数组实现如下:

import numpy as np

def softmax(A):
    # 计算指数
    expA = np.exp(A)
    # 计算指数之和
    sumExpA = np.sum(expA, axis=1, keepdims=True)  #axis定义维度,矩阵的第0维是列,第一维是行
    # 归一化指数
    p = expA / sumExpA
    return p

参考文献:

激活函数 - Bing images

Sigmoid函数解析__Sumor的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值